Azure環境の整備
目的
OpenAIのモデルをクラウド環境にデプロイして、APIにプログラムからアクセスできるようにしたい。
クラウド環境においてOpen AIのモデルをデプロイしたいのであれば、Azureが現状では唯一の選択肢となる。
前提
Azureのアカウントを既に持っているものとする。
個人で試すには、Azureの無料アカウントが利用できる。
また、組織でAzureのテナントを持っている場合もあるだろう。
Azure OpenAI
OpenAIのモデルに関しては、Microsoft Azure上でデプロイできる。
Microsoft Azure上で、OpenAIの利用を申請していれば、OpenAIのモデルをデプロイして使うことができる。
Azureのリソース作成する際には、どのリージョンに作成するかを検討する必要がある。
Azureのリージョンごとに、使えるモデルが微妙に異なる。このあたりの情報については、ドキュメントを見ても追いついていないことが多いので、Azure CLIを使って情報を取得するのが確実である。コマンド az account list-locations でリージョンをリストアップしたあと、az cognitiveservices model list –location japaneast のように各リージョンを指定して、利用可能なモデルのリストを取得することができる。例えば、2024年7月23日現在、gpt-4oが使えるリージョンは、以下の通りである。
name regionalDisplayName
southafricanorth (Africa) South Africa North
australiaeast (Asia Pacific) Australia East
japaneast (Asia Pacific) Japan East
koreacentral (Asia Pacific) Korea Central
southindia (Asia Pacific) South India
canadaeast (Canada) Canada East
francecentral (Europe) France Central
germanywestcentral (Europe) Germany West Central
norwayeast (Europe) Norway East
polandcentral (Europe) Poland Central
swedencentral (Europe) Sweden Central
switzerlandnorth (Europe) Switzerland North
uksouth (Europe) UK South
westeurope (Europe) West Europe
brazilsouth (South America) Brazil South
eastus (US) East US
eastus2 (US) East US 2
northcentralus (US) North Central US
southcentralus (US) South Central US
westus (US) West US
westus3 (US) West US 3
リージョンによって、どれくらいのレイテンシーが発生するかはマイクロソフトのドキュメントに記載がある。日本と北米あるいはオーストラリアとの間では、およそ100ms以上のレイテンシーが発生するが、LLMのレスポンスが数秒以上かかることを考えれば、さほど気にはならないだろう。
以下は、いくつかのOpenAIリソースを作成した状態である。リソース名がエンドポイントのURLに使われることに注意して名前を付ける必要がある。[テナント名]-[リージョン名]としておけば、分かりやすく、かぶることも少ないだろう。リソースが所属するリソースグループについては、必ずしもリソースと同じである必要はない。ここでは簡単のため、japaneastリージョンにopenaiリソースグループを1つ作成し、OpenAIリソースは全てそこに所属させることにした。作成した各リソースについて、異なるAPIキーが発行されることに注意する。
モデル名だけを見ていると、混乱することがある。小文字のモデル名とバージョンの組み合わせで確認する必要がある。例えばGPT3.5-Turbo(バージョン0613)の最大入力は4,096だが、バージョン1106だと16,385となっている。GPT3.5-Turbo-16k(バージョン0613)の最大入力が16,385だったが、同等の性能で半額になっているので、GPT3.5-Turbo-16kを選ぶ理由はない思われる。これを知らないと、つい-16kが付いたモデルを高性能だと思って選択してしまうかもしれない。同じ性能を持つモデルであっても、バージョンアップするごとに、費用が安くなっている。各モデルの費用は、以下の通りである (100万トークンあたりの料金)。
実際に利用可能なAPIを立ち上げるには、Azureポータルから、OpenAI Studioという別のサイトに移動して、特定のモデルをデプロイする必要がある。
ここで注意すべきことがあるとすれば、クオータの調整である。デフォルトの設定だと、クオータにすぐ達してしまい、レスポンスが返ってこないことがある。そこで、「1分当たりのトークンレート制限」を最大に設定した。デプロイの種類で「標準」と「グローバル標準」が選べるときは、「グローバル標準」を選択した。これによって、トラフィックが分散され、クオータが増えることになる。
モデルがデプロイできたら、プレイグラウンドで動作確認をすることができる。
また、「コードを表示」からPythonなどのサンプルコードを表示させることができる。
ローカル環境にPythonのopenaiライブラリーをインストールし、APIキーを環境変数として設定すれば、PythonコードからAPIを利用することができる。
実際の使用にあたっては、いくつかパラメータを調整した。temperatureは0、max_tokensは2048とした。