Azure OpenAI ServiceとOpenAI APIの比較:企業サービスへ導入のためのポイント
目次
はじめに
生成AIの進化に伴い、企業が生成AIを組み込んだサービスを開発するケースがますます増えてきています。
その際に悩ましいのがGPTモデルを使用するときに、Azure社が提供するAzure OpenAI ServiceとOpenAI社が提供するOpenAI APIのどちらを選択するのかという問題ではないでしょうか。
本記事では、Azure OpenAI ServiceとOpenAI APIを利用する場合のそれぞれの特徴や要点を比較し、どのような選択が適切かを検討していきます。
比較項目について
以下に、Azure OpenAI ServiceとOpenAI APIの比較内容をまとめました。 後々各項目について詳しく書いていきます。
項目 | Azure OpenAI Service | OpenAI API |
---|---|---|
プライベート通信 | プライベート通信が可能(Azure上にアプリを構築する場合) | インターネットを介した通信が必要 |
学習データの設定 | 学習データとして使用しない | 学習データとして使用しない |
プロンプトインジェクション | 最低限のフィルタリングが初期実装されている | 基本的に自前で対策が必要 |
可用性 | 稼働率99.9%を保証、SLAに基づくサービスクレジット提供 | 公式ホームページで過去90日間の稼働率表示 |
認証方法 | APIキー認証に加え、Microsoft Entra IDを統合しロールベース認証 | APIキー認証のみ |
価格 | 使用量に応じた課金 | 使用量に応じた課金 |
モデル | OpenAIの後に最新モデルがリリース | すぐに最新モデルが使える |
レートリミットの柔軟性 | 詳細な設定が可能 | 基本的な設定が可能 |
推奨用途 | Azure環境を利用する場合、高セキュリティ要件が必要な場合 | インフラがAzure以外で、開発のスピードを重視する場合 |
プライベート通信
-
Azure OpenAI Service:Azure環境でアプリケーションを構築することで、Azure内でのAPI実行が可能であり、インターネットを介さないプライベート通信を実現できます。
-
OpenAI API:インターネットを介した通信が必要です。
選定の基準
要件としてインターネットを介した通信が行えない場合は、Azure OpenAI Serviceを選ぶ必要があります。
学習データの設定
両サービスとも、入力データを学習データとして使用しないための設定が可能です。
この要件についてはどちらを選択しても問題ありません。
プロンプトインジェクション対策
-
Azure OpenAI Service:最低限のコンテンツフィルタが初期実装されている。
-
OpenAI API:初期実装されていないため、自分で追加実装が必要となる。
選定の基準
こちらを重視する場合はAzure OpenAI Serviceを使用しておくのが無難です。
ただどちらを用いる場合も、対策には別途実装が必要です。
可用性
-
Azure OpenAI Service:稼働率99.9%を保証。またこれを下回る場合、サービスクレジットが提供されます。
-
OpenAI API:公式ホームページで過去90日間の稼働率表示 ※執筆時点で99.68% Azure OpenAI Serviceは高い稼働率が保証されており、エンタープライズ向けと言えます。
OpenAI APIは執筆時点から過去90日で1時間以上のダウンタイムが3回発生しています。
選定の基準
PoCや個人開発では問題ありませんが、企業のサービスとして正式にリリースする場合、SLAを満たせない可能性が高いです。
稼働率を重視する場合はAzure OpenAI Serviceを使用しておくのが無難です。
OpenAI APIを使用しつつ稼働率を高める必要がある場合は別の工夫が必要です。
※私の経験したプロジェクトでは、複数のLLMを使用し、メインのLLMがダウンしている時はエラーハンドリングして別のLLMに切り替えるような仕組みを導入していました。
認証方法
-
Azure OpenAI Service:APIキー認証に加えて、Azureでインフラが完結する場合、Microsoft Entra IDと統合可能でロールベースのアクセス制御が可能です。
-
OpenAI API:APIキー認証が標準。
選定の基準
アプリケーションをAzureで構築する場合は、Azure OpenAI Serviceの方が優れています。
一方で外部からアクセスする形になる場合は、どちらもAPIキーによる認証がベースとなります。
Azureで完結する場合はAzure OpenAI Serviceを選定すれば間違いありません。
価格
レートリミットの柔軟性
-
Azure OpenAI Service:詳細なレートリミット設定が可能で、用途に応じた最適な制限を行えます。
-
OpenAI API:基本的なレートリミットの設定が可能。
選定基準
過剰使用や不正利用を防ぐためにも、レートリミットは柔軟に設定したいですが、
OpenAI APIのレートリミットは最低の値が高く、サービスの規模が大きくないと有効に活用できません。
Azure OpenAI Serviceは柔軟にレートリミットを設定できるので、サービスが小規模な場合や、PoC段階でも大きなメリットとなります。
インフラがAzure以外場合
Azure以外と書きましたが、私個人的にはAWSを使用することが多いのでAWSを想定して書かせていただきます。
AWSであればAmazon Bedrockを通じて様々なモデルを使用することができます。
その場合は上記で記載したAzure上で完結する場合と同じように、AWS内に閉じた通信となるため、セキュリティ面などのメリットも享受できます。
インフラがAzure以外の場合は、アカウントの管理などが追加で発生するため、多少の煩雑さが生まれます。
(OpenAI APIを使用する場合もそこまで変わりませんが)
使用できるモデル
使用できるモデル自体は両者に大きな違いはありません。
ただしモデルの利用開始スピードは、OpenAI APIで最新モデルがリリースされてからAzure OpenAI Serviceに提供されるため、OpenAI APIの方が速いです。(わずかな差ですが)
まとめ
Azure環境を利用している企業や高いセキュリティ要件やサービス要件を満たしたい場合は、
Azure OpenAI Serviceを選ぶのが適切でしょう。
一方で、Azure以外のインフラを使用している場合で、開発のスピードを重視する場合はOpenAI APIでも良いと思います。
本記事では「Azure OpenAI Service vs OpenAI API」という名目で執筆していますが、GPTモデルの利用にこだわらないのであれば他のモデルやサービス(例: ClaudeやAmazon Bedrockの提供モデル)も比較検討して選択する必要があります。 また、本記事では触れていませんが、モデルの精度も選択する際に重要な要素になります。
モデルを選定する際には、どのモデルが要件を満たしているのか判断し、最適なモデルを判別する必要があります。 さらに、モデルを複数組み合わせることで、可用性や精度を向上させることも可能です。 ここが我々エンジニアの腕の見せ所ですね。
参考資料
アジアクエスト株式会社では一緒に働いていただける方を募集しています。
興味のある方は以下のURLを御覧ください。