生成AI

Azure OpenAI ServiceによるRGA構築
【コスト編】

 

最近、Azure OpenAI Service(AOAI)を使う機会が多いので、自己学習のためにコストの考え方について整理しておきます。※基本的な情報しか記載しません。基本中のキのみです。

マルチンゲール
PoCに幾らかかるのか?、お客さんに聞かれることが多いです 。コスト試算方法を理解しておくことが重要です。

RAGとは

RAG(Retrieval-Augmented Generation:検索拡張生成)はLLMが備える知識に加えて、社内情報等の検索結果を回答生成に生かす手法です。最も簡単なRAGの構成は以下の様になります。

クリックで拡大

ここでかかる費用は、大きく以下の2つに大別されます。

  • Azure OpenAI Serviceの言語モデル使用料
  • 周辺リソース(Azure AI Search 等)の使用料

それぞれについて、確認していきます。

トークンとは

言語モデルはトークンという概念に基づいて課金されます。
トークンは、自然言語処理モデルがテキストを処理する際の基本単位で、英語の場合には、単語を分割したものと考えることができます日本語の場合には、単語単位で分割されません。OpenAIのサイトでトークンを計算できます。

<トークンの目安>

英語と日本語のトークン

  • 英語 1単語 = 1トークン
  • 日本語 ひらがな・カタカナ1文字 = 1~2トークン、
    漢字1文字 = 1~3トークン

マルチンゲール
日本語の場合は英語よりもややこしいですね(;^_^A

言語モデルの価格

モデルごとに価格が異なるため、目的や要求精度に応じて使い分けることがコストを抑える上でのポイントになります。言語モデルの価格は以下で確認できます。以下の画像は、スウェーデン中央リージョンの価格表です。モデルによって大きな価格差があります。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のコストが大部分を占めることになります

マルチンゲール
お客さんにPoCのコストの概算を問われた際は、予算オーバーにならない様に、ユースケースでのトークン÷0.6~0.7くらいで回答します

コスト管理の方法

上記の様に、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を使用して簡単に把握できる

マルチンゲール
次はセキュリティーについてまとめたいと思います

  • この記事を書いた人
  • 最新記事

マルチンゲール

材料工学専攻 ▶大手メーカーで生産技術▶データ解析の技術者派遣▶大手メーカーでデータサイエンティスト ▶外資コンサルでAIエンジニア | データ解析やキャリアについて発信します|特許登録8件、経産省AI Quest2期修了

-生成AI

© 2024 製造業のDXに挑むデータサイエンティストのブログ Powered by AFFINGER5