最近、Azure OpenAI Service(AOAI)を使う機会が多いので、自己学習のためにコストの考え方について整理しておきます。※基本的な情報しか記載しません。基本中のキのみです。
本記事の内容
RAGとは
RAG(Retrieval-Augmented Generation:検索拡張生成)はLLMが備える知識に加えて、社内情報等の検索結果を回答生成に生かす手法です。最も簡単なRAGの構成は以下の様になります。
ここでかかる費用は、大きく以下の2つに大別されます。
- Azure OpenAI Serviceの言語モデル使用料
- 周辺リソース(Azure AI Search 等)の使用料
それぞれについて、確認していきます。
トークンとは
言語モデルはトークンという概念に基づいて課金されます。
トークンは、自然言語処理モデルがテキストを処理する際の基本単位で、英語の場合には、単語を分割したものと考えることができます。日本語の場合には、単語単位で分割されません。OpenAIのサイトでトークンを計算できます。
<トークンの目安>
英語と日本語のトークン
漢字1文字 = 1~3トークン
https://platform.openai.com/tokenizer
言語モデルの価格
モデルごとに価格が異なるため、目的や要求精度に応じて使い分けることがコストを抑える上でのポイントになります。言語モデルの価格は以下で確認できます。以下の画像は、スウェーデン中央リージョンの価格表です。モデルによって大きな価格差があります。GPT4はGPT3.5よりも高く、生成文はプロンプトよりも高い傾向があります。
表の金額は1000トークンあたりの値であることに注意してください。
最も簡単なRAGにおけるコスト計算事例
RAGを実施する際は、トータルコストを把握しておくことが大切です(事業部のDX予算には、限りがあるので、、)。コストは料金計算ツールを使って見積れます。これが、かなり便利です。
以下のユースケースで、1カ月間(営業日数:20日)のRAGのコストを試算してみます。RAGにはいくつかのリソースを使うのですが、キーとなるAzure AI SearchとAzure OpenAI Serviceにフォーカスしてコスト試算します。
- 100人の社員がいます
- 1日に1人あたり10回RAGを実行します
その上で、1回の実行で消費するトークンは6000とします。内訳は、プロンプト5000、生成1000です。
コスト試算例 言語モデル:GPT-4-Turbo
<計算式>
- Azure AI Search:定額課金の考え方
1カ月のトータル時間 × ユニット数 × 1時間あたりの1ユニットの使用料 - Azure OpenAI Service:従量課金の考え方
1回の実行で消費するトークン数 × 1日あたりの実行回数 × 営業日数 × 1トークンあたりの使用料
Azure AI Searchはサービスを一時停止して、課金を止める運用ができません。なので実質、定額課金の考え方になります。
コスト管理の方法
上記の様に、Azure OpenAI Serviceの仕様には少なからずコストがかかります。なので、コストを正確に把握することが大切です。これは、Azure PortalからCost Managementを使うと簡単に把握することができます。
1.Azure Portalに移動する
2.Cost Managementを検索して、アクセスする
(画面にアイコンが示されいる場合は、それをクリック)
3.コスト分析をクリック
4.累積コストをクリック
5.期間を設定
6.フィルターの追加からリソースを選択
7.Azure OpenAI Serviceのリソースを選んでチェックボタンを押す
(リソースの上にカーソルを置くと、リソースのIDが最後まで表示されます)
8.画面右上の設定でグループ化を「Meter」、細分性を「累積」、グラフ種類を「線」に設定
9.Azure OpenAI Serviceのリソースの言語モデルごとのコストの累積が表示されます。
グラフ上にカーソルを合わせると、言語モデルごとのプロンプトと生成文のコストが別々に表示されます。Azure OpenAI Serviceのサービス名は「Cognitive Service」になっていることに注意してください。
以上の方法で、言語モデル使用料金の把握が可能です。
うっかり予算オーバーすることを防ぐ方法
予算に対して、コストが閾値を超えるとメールで通知して注意喚起することができます。その方法を示します。
1.Cost Managementのページから予算をクリック
2.+追加をクリック
3.フィルターでResourceIdを選択、Azure OpenAIのリソースにチェックを入れる
(リソースの上にカーソルを置くと、最後まで表示されます)
4.名前、リセット期間、作成日、有効期限、予算金額を入力して次へボタンを押す
5.種類、予算の割合を入力(例では、実コストが閾値の50%に達するとメール発報する)
6.受信するメールアドレスを入力して、作成ボタンを押す
7.閾値を超えると、以下の様な警告メールが届きます
まとめ
- 言語モデルはトークン消費量に応じて課金される
- RAGを実行する際は、言語モデル以外のコストも把握必要
- コストは、Cost Managementを使用して簡単に把握できる