みなさんは Azure OpenAI を利用していますか?
Azure OpenAI の利用にあたっては、2つの観点から1分あたりのトークン数(文章量)に制限を設定することを推奨します。

1つ目は、多くのユーザーに高品質な自然言語処理のサービスを提供するために、リソースの配分や管理を行うことです。トークン数に制限を設けることで、サービスの品質や安定性を維持し、ユーザー間で公平に利用できるようになります。

2つ目は、料金の面です。Azure OpenAI は API から呼び出したトークン量に応じて従量課金される仕組みです。その為、利用状況や頻度によっては、課金額が管理者の想定を上回り、想定外のコストが発生してしまう可能性があります。事前に制限をかけることで想定外なコストの発生を防ぐことが可能です。

トークン制限の具体的な方法

Azure OpenAI Service では API を利用する際に、クォータ管理機能を使って、デプロイに対するトークンの使用量を制限することができます。クォータは TPM(Tokens-per-Minute)という単位でサブスクリプションに割り当てられます。

TPM(Tokens-per-Minute)とは?

TPM とは1分間あたりに利用することができるトークン数のことで、リージョンごと、モデルごとに上限数が決められています。
Azure OpenAI Studio の「クォータ」メニューより、各リージョンごとのデプロイモデル使用率と上限値を確認することができます。

TPM(Tokens-per-Minute) の確認

実際に TPM の値を確認してみましょう。
現在米国東部リージョンでの GPT3.5-Turbo のトークンの上限値は 240k となっています。

リージョンを東日本リージョンに変えてみると上限値が 300k になっていることを確認できます。

次はリージョンを変えずに同一モデルを複数デプロイした場合はどうなるでしょうか。
最大値の 240k を 2 で割っていることが確認できます。
もちろん 120k に必ず固定されるわけではなく、デプロイ 1つあたりの最大値が 120k になっているため、それ以下なら任意で調整可能です。

図にまとめると以下の様になります。

*リージョンは複数あり、デプロイモデルによってトークン上限は変化するので注意が必要

TPM(Tokens-per-Minute) の変更方法

TPM はデプロイの編集→詳細設定オプションから変更することが可能です。

トークン制限を超えようとすると、以下のようなエラーが返ってくる可能性があります。

  • 429 Too Many Requests
  • ResourceQuotaExceeded
  • OperationNotAllowed

もしこれらのエラーが発生した場合は1度トークン数を見直すことをお勧めします。