AIP-C01 · LESSON 4

GenAI アプリケーションの運用効率と最適化12% · 3項目

コストの最適化とリソースの効率化、アプリの性能の最適化、生成 AI のアプリの監視を学びます。

4.1コスト最適化とリソースの効率化

4.1 コスト最適化とリソース効率化の戦略を実施する。

概念

生成 AI のコストは主にトークンの量で決まります。プロンプトキャッシュ(繰り返し使う長い文脈をキャッシュして入力のコストとレイテンシを削減)、適切なモデルの選択(小さいモデル・蒸留)、プロンプトルーティング、バッチ推論、出力のトークンの制限、RAG の取得件数の調整でコストを下げます。

仕組み・手順

  1. トークンの使用量をモデル・機能ごとに測る
  2. 長いシステムプロンプトや文書の文脈にプロンプトキャッシュを使う
  3. 品質を保てる最小のモデルを選ぶ(蒸留も検討)
  4. 即時性が不要な処理はバッチ推論にする
  5. 取得件数や会話の履歴を削減して入力のトークンを減らす

業務での例

毎回同じ 20 ページの製品マニュアルを文脈に入れていたチャットで、プロンプトキャッシュを使い、入力のコストと最初の応答までの時間を大きく下げる。

紛らわしい点・試験の注意

ミニクイズ

Q1. 長い会話のチャットで、会話の履歴をすべて毎回送っているため、入力のトークンが増え続ける。最も適切な対策はどれか。

  1. 会話の履歴をすべて 2 回ずつ送って、モデルが忘れないようにする
  2. 古いやり取りを要約して短くし、最近のやり取りと要約だけを送る
  3. 会話の履歴は送らずに、毎回の質問だけを送って前の話は無視する
  4. 最大トークン数を大きくすれば、入力のトークンの費用は下がるとみなす
答えと解説を見る

正解:B 古いやり取りを要約して短くし、最近のやり取りと要約だけを送る

古いやり取りの要約と最近のやり取りだけを送ると、文脈を保ちつつトークンを減らせる。

Q2. 回答に長い前置きや繰り返しが多く、出力のトークンの費用がかさむ。最も適切な対策はどれか。

  1. 出力の長さは気にせずに、生成された回答をそのまま利用者にすべて表示する
  2. 入力のプロンプトを長くすれば、出力は自然に短くなるとみなす
  3. temperature を上げて、毎回違う長さの回答が出るようにしておく
  4. 出力の形式と長さをプロンプトで決め、maxTokens で上限も設定する
答えと解説を見る

正解:D 出力の形式と長さをプロンプトで決め、maxTokens で上限も設定する

出力の形式と長さの指示と maxTokens の上限で、不要な出力のトークンを減らせる。

参考リンク

4.2アプリケーションのパフォーマンスの最適化

4.2 アプリケーションのパフォーマンスを最適化する。

概念

性能の指標は、最初のトークンまでの時間(TTFT)・全体のレイテンシ・スループットです。ストリーミング、レイテンシ最適化の推論(対応するモデルで高速なインフラを使う)、プロンプトキャッシュ、小さいモデル、並列の処理、出力の短縮で改善します。スループットはクロスリージョン推論やプロビジョンドスループットで確保します。

仕組み・手順

  1. TTFT とレイテンシの目標を決める
  2. ストリーミングで体感の速さを上げる
  3. 対応するモデルでレイテンシ最適化の推論を使う
  4. 独立した処理(検索と分類など)を並列にする
  5. スループットの不足にはクロスリージョン推論やプロビジョンドを使う

業務での例

音声のアシスタントで、レイテンシ最適化の推論とストリーミングを使い、最初の応答を 500 ミリ秒以内にする。

紛らわしい点・試験の注意

ミニクイズ

Q1. プロンプトキャッシュの説明として誤っているものはどれか。

  1. 入力のトークンの費用と遅延を減らせる
  2. キャッシュには有効な時間(TTL)がある
  3. キャッシュした部分の内容が毎回変わっても、同じように費用の削減の効果がある
  4. 繰り返し送る長い先頭の部分の処理を減らせる
答えと解説を見る

正解:C キャッシュした部分の内容が毎回変わっても、同じように費用の削減の効果がある

キャッシュは同じ先頭の部分が繰り返されるときに効く。内容が変わればキャッシュは使われない。

Q2. ベクトルストアの運用の説明として誤っているものはどれか。

  1. 埋め込みのモデルを変えても、古いベクトルと新しいベクトルはそのまま比べられる
  2. HNSW などの近似の検索のパラメータで、再現率と遅延のバランスを調整できる
  3. レプリカを増やすと、読み取りの処理を分けられる
  4. 量子化でベクトルのメモリーを減らせる
答えと解説を見る

正解:A 埋め込みのモデルを変えても、古いベクトルと新しいベクトルはそのまま比べられる

違う埋め込みのモデルのベクトルは、同じ空間にないので比べられない。

参考リンク

4.3生成 AI アプリのモニタリング

4.3 GenAI アプリケーションのモニタリングシステムを実装する。

概念

CloudWatch には、Bedrock のメトリック(呼び出し数・レイテンシ・トークン数・スロットリング)、生成 AI の可観測性(モデルの呼び出しとエージェントのトレース)、AgentCore Observability(エージェントのセッション・ツールの呼び出しのトレース)があります。品質の監視には、呼び出しのログのサンプルの定期的な評価を組み合わせます。

仕組み・手順

  1. トークン数・レイテンシ・エラー・スロットリングのダッシュボードとアラームを作る
  2. エージェントのトレースで、遅いツールや失敗の手順を特定する
  3. ガードレールの介入の回数を監視する
  4. ログのサンプルを定期的に評価し、品質の低下を検知する
  5. コストの異常を Cost Anomaly Detection で検知する

業務での例

エージェントの応答が遅くなったことをアラームで検知し、AgentCore のトレースで在庫 API のツールが 6 秒かかっていると特定する。

紛らわしい点・試験の注意

ミニクイズ

Q1. 生成 AI のアプリの月の費用が予算を超えそうなときに、早めに知らせてほしい。最も適切な方法はどれか。

  1. Cost Explorer で毎週 Bedrock の費用の推移を確かめる
  2. AWS Budgets で予算を作り、予測の金額が上限を超えそうなときに通知する
  3. Service Quotas で Bedrock のクォータを下げ、使用量を抑える
  4. CloudWatch のトークンの数のメトリクスにアラームを設定する
答えと解説を見る

正解:B AWS Budgets で予算を作り、予測の金額が上限を超えそうなときに通知する

AWS Budgets は、実際の金額や予測の金額が予算を超えそうなときに通知できる。 【他の選択肢】週ごとの確認は人の作業で、早めの通知にならない。トークンの数は金額と予算の比較にならない。クォータを下げると正しい利用まで止まる。

Q2. 先月から Bedrock の費用が急に 3 倍になった。原因が分からない。次に行うべきこととして最も適切なものはどれか。

  1. CloudWatch のトークンの数をモデルと推論プロファイルごとに見て、増えた処理を特定する
  2. プロンプトキャッシュを全アプリで有効にし、入力のトークンの費用を下げる
  3. 最も使われているモデルを安いモデルに切り替え、翌月の費用で効果を見る
  4. Cost Explorer で Bedrock のサービスの合計の推移を見て、増えた月を確かめる
答えと解説を見る

正解:A CloudWatch のトークンの数をモデルと推論プロファイルごとに見て、増えた処理を特定する

まず計測で原因を特定する。モデル・推論プロファイル・時期ごとのトークンの数を見ると、増えた処理が分かる。 【他の選択肢】サービスの合計だけでは、どの処理が増えたかが分からない。原因を特定する前のモデルの切り替えやキャッシュの導入は、効果も品質の影響も確かめられない。

参考リンク

レッスンは当サイトがAWS 認定の公式ページと公式試験ガイドをもとに独自に作成したもので、試験の内容を保証するものではありません。製品の仕様は変わることがあるため、参考リンク先の最新情報を確認してください。

ご利用上の注意(非公式・独自問題・合格保証なし)