6
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

お題は不問!Qiita Engineer Festa 2024で記事投稿!
Qiita Engineer Festa20242024年7月17日まで開催中!

Azure OpenAI Service のクォータ制限について理解する

Last updated at Posted at 2024-07-07

こちらの記事は投稿時点の情報です。
最新情報は公式ドキュメントMicrosoft Learnでご確認お願いいたします。

Microsoft Japan - Azure Developer Platform Team の D̷ELL と申します。
本日は Azure OpenAI Service に関して触れてみます。

Azure OpenAI Service は、GPT-4o、GPT-4 Turbo with Vision、GPT-4、GPT-3.5-Turbo、Embeddings モデル シリーズなど、OpenAI の強力な言語モデルへの REST API アクセスを提供します。 これらのモデルは、特定のタスクに合わせて簡単に調整できます。たとえば、コンテンツの生成、要約、画像の解釈、セマンティック検索、自然言語からコードへの翻訳などです。 ユーザーは、REST API、Python SDK、または Azure OpenAI Studio の Web ベースのインターフェイスを介してサービスにアクセスできます。

Azure OpenAI Service は、生成AI関係のアプリ開発におけるデファクトスタンダードになりつつあります。今回は、サービス利用開始直後に躓きがちな「クォータ制限」と「クォータ管理」に関する、自分用の備忘録です。

0. リファレンス

公式ドキュメント

1. クォータ制限とクォータ管理の違い

私が一番躓いたポイントですが、クォータ制限とクォータ管理は別物です。以下に、調べた結果を記載します。本稿ではクォータ管理については触れませんが、MS Learnをご参照頂ければ幸いです。

  • クォータ制限:
    クォータ制限は、Azure OpenAIサービスが提供する各種リソースや機能に対する使用量の上限を指します。これには、Tokens-per-Minute (TPM) の制限や、各Azureサブスクリプションのリージョンあたりの OpenAI リソース数などが含まれます。

  • クォータ管理:
    クォータ管理を使うと、ユーザーのサブスクリプション・リージョンごとに与えられた Tokens Per Minute (TPM) のクォータを、各デプロイに対してユーザー任意の値 (1K 単位) で割り当てることができます。

つまり、クォータ制限は「各リソースに設定された利用上限」を、クォータ管理は「制限をデプロイごとに設定できる」ということですね。

2. クォータ制限とは

Azure OpenAI Service には、モデルごとの1分あたりの要求数やトークン数、モデルデプロイの最大数など、クォータによる制限があります。クォータは容量の保証ではなく、Azure リソースのクレジット制限です。大規模な容量が必要な場合は、Azure サポートに連絡してクォータを引き上げることができます。

例えば、以下のドキュメントを見てみましょう。

image.png

Azure Open AI の japaneast リージョンの GPT-35-Turbo における「300 K」という記載は、通常、1 分間あたりのトークン制限を示しています。具体的には、これは東日本リージョンの GPT-3.5-Turbo モデルにおいて、1 分間あたり最大 300,000 トークンまでのリクエストが可能であることを意味します。

つまり、「あなたは このリージョンのこのモデル において、1 分間最大 {n} token まで、サービスを利用するように制限できるよ」というものですね。

なお、クォータ制限にかかると、以下のようなエラーが表示されます。
image.png

image.png

3. トークンとは

トークンとは、入力テキストや生成されたテキストの一部を指します。
たとえば、「Hello, world!」という文章は、一般的なトークナイザー(例えば、OpenAI の GPT-4 で使われるもの)では 5 つのトークン(「Hello」「,」「 」「world」「!」)としてカウントされます。

トークン数の計測

なお、トークン数は以下のリポジトリを用いることで、計測が可能です。

このリポジトリには、OpenAI LLM 用のバイト ペア エンコーディング (BPE) トークナイザーの Typescript および C# 実装が含まれています。これは、OpenAI tiktokenのオープン ソースの rust 実装に基づいています。
このリポジトリを利用することで、プロンプトを LLM に送る前に、Nodejs および .NET 環境でプロンプト トークン化を実行できます。これにより、トークン数を計測できるということですね。

トークンの計測に関する詳しい解説は、以下の当社社員による Zenn ブログをご覧ください。

トークンのカウント方法

Azure OpenAIのクォータ制限におけるトークン数は、送信されたプロンプトと受信したレスポンスの両方を含む総トークン数としてカウントされます。つまり、API リクエスト時に送信されたプロンプトのトークン数と、それに対する生成されたレスポンスのトークン数の合計 で計算されます。

  1. プロンプトのトークン数: ユーザーが送信するテキスト(プロンプト)が100 トークン
  2. レスポンスのトークン数: AI が生成するレスポンスが 150 トークン

この場合、クォータにカウントされるトークン数は、プロンプトの100トークンとレスポンスの150トークンを合わせた250トークンとなります。

4. クォータ制限の解除申請

さて、実際のクォータ制限が表示されている画面を見てみましょう。
Azure AI | Azure OpenAI Studio にアクセスし、[管理] セクションの [クォータ] ブレードにアクセスしてください。

[リージョン] に [JAPANEAST] を選択し、表示します。
すると、 [Tokens Per Minute (thousands) - GPT-35-Turbo] - [使用量/制限] に [0 of 1] と表示されています。現在(デフォルト)の設定では、1 分間に 1,000 token しか扱えないことがわかります。
なお、右の 0% は、現在のトークンの使用量です。

タイトルなし.png

[クォータの要求]という欄から、リンクをクリックします。すると、クォータ制限の解除を申請するための Form が表示されます。内容を確認して申請を行うことで、クォータのトークン制限を引き上げることができます。

image.png

image.png

5. まとめ

ざっくりとAzure OpenAIのクォータ制限についてまとめてみました。
自分の理解がまだ浅いところもありますが、参考にして頂けると幸いです。

最後に

*本稿は、個人の見解に基づいた内容であり、所属する会社の公式見解ではありません。また、いかなる保証を与えるものでもありません。正式な情報は、各製品の販売元にご確認ください。

6
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?