Amazon Web Services ブログ
Amazon Bedrock の新しい RAG 評価機能と LLM-as-a-Judge 機能
2024 年 12 月 1 日、テストの合理化と生成 AI アプリケーションの改善に役立つ Amazon Bedrock の 2 つの新しい評価機能を発表しました。
Amazon Bedrock ナレッジベースで RAG 評価 (プレビュー) のサポートを開始 – Amazon Bedrock ナレッジベースを使用して、自動ナレッジベース評価を実行して、検索拡張生成 (RAG) アプリケーションを評価および最適化できるようになりました。評価プロセスでは、大規模言語モデル (LLM) を使用して評価のメトリクスを計算します。RAG 評価では、さまざまな設定を比較し、設定を調整して、ユースケースに必要な結果を得ることができます。
Amazon Bedrock Model Evaluation に LLM-as-a-Judge (プレビュー) を追加 – 人間による評価を行う場合と比べて、わずかなコストと時間で、人間並みの品質でテストや他のモデルを評価できるようになりました。
これらの新機能により、AI を活用したアプリケーションの評価を迅速かつ自動的に行い、フィードバックループを短縮し、改善をスピードアップすることで、本番環境への移行が容易になります。これらの評価では、正確性や有用性、および回答拒否や有害性などの責任ある AI 基準を含む、品質に関する複数の側面を評価します。
簡単かつ直感的に理解できるように、評価結果は各スコアの自然言語による説明を出力とコンソールに表示し、スコアは解釈しやすいように 0 から 1 に正規化されています。ルーブリックはすべてジャッジプロンプトとともに文書に公開されているため、サイエンティストでなくてもスコアの導出方法を理解できます。
実際にどのように機能するか見てみましょう。
Amazon Bedrock ナレッジベースで RAG 評価を使用する
Amazon Bedrock コンソールの[Inference and Assessment] (推論と評価) セクションで [Evaluations] (評価) を選択します。そこに、新しい [Knowledge Bases] (ナレッジベース) タブが表示されます。
[Create] (作成) を選択し、評価の名前と説明を入力して、メトリクスを計算する [Evaluator model] (評価者モデル) を選択します。今回は、Anthropic の Claude 3.5 Sonnet を使います。
評価するナレッジベースを選択します。以前、AWS Lambda デベロッパーガイド PDF ファイルのみを含むナレッジベースを作成しました。このようにすることで、評価のために AWS Lambda サービスについて質問することができます。
検索機能だけを評価することも、検索して生成するワークフロー全体を評価することもできます。この選択は、次のステップで利用できるメトリクスに影響します。検索と応答生成の両方を評価することにし、使用するモデルを選択します。今回は Anthropic の Claude 3 Haiku を使います。Amazon Bedrock Guardrails を使用したり、応答生成モデルの後に [configurations] (設定) リンクを選択してランタイム推論設定を調整したりすることもできます。
これで、評価するメトリクスを選択できます。[Quality] (品質) セクションで [Helpfulness] (有用性) と [Correctness] (正確性) を選択し、[Responsible AI metrics] (責任ある AI メトリクス) セクションで [Harmfulness] (有害性) を選択します。
次に、評価に使用するデータセットを選択します。これは、この評価用に準備して Amazon Simple Storage Service (Amazon S3) にアップロードした JSONL ファイルです。各行には会話が含まれ、その中のメッセージごとに参照応答があります。
評価の結果を保存する S3 の場所を指定します。評価ジョブでは、S3 バケットが Amazon Bedrock ユーザーガイドに記載されているクロスオリジンリソース共有 (CORS) 許可で設定されている必要があります。
サービスにアクセスするには、Amazon Bedrock が引き受けることができる AWS Identity and Access Management (IAM) サービスロールを作成または提供する必要があります。これにより、評価で使用される Amazon Bedrock および Amazon S3 リソースへのアクセスが可能になります。
数分後に評価が完了したので、結果を閲覧します。評価の実際の所要時間は、プロンプトデータセットのサイズ、使用したジェネレータおよび評価者モデルによって異なります。
一番上のメトリクスサマリーでは、すべての会話の平均スコアを使用して全体的なパフォーマンスを評価します。
その後、生成メトリクスの内訳に、選択した各評価メトリクスの詳細が表示されます。私の評価データセットは小さかった (2 行) ので、大きな分布を見る必要はありません。
ここから、会話例とその評価も確認できます。すべての会話を見るには、S3 バケットの全出力を確認することができます。
なぜ有用性が 1 を少し下回っているのかに興味があります。有用性が見れるように、会話例の拡大とズームを行います。そこには、生成された出力、評価データセットと共に提供したグラウンドトゥルース、およびスコアが表示されます。モデルの推論を見るためにスコアを選びます。モデルによると、より詳細な情報があれば役立ったようです。モデルは本当に厳しい審査員です。
RAG 評価の比較
ナレッジベースの評価の結果は、それ自体では解釈が難しい場合があります。このため、コンソールでは複数の評価の結果を比較して違いを理解できます。これにより、関心のあるメトリクスが改善されているかどうかがわかります。
例えば、以前、他に 2 つのナレッジベースの評価を実行しました。これらは、同じデータソースを持つナレッジベースに関連していますが、チャンクと解析の設定が異なり、埋め込みモデルも異なります。
2 つの評価を選択し、[Compare] (比較) を選択します。コンソールで比較できるようにするには、評価が同じメトリクスを対象とする必要があります。
[At a Glance] (概要) タブでは、スパイダーチャートを使用してメトリクスを視覚的に比較しています。この場合、結果はそれほど変わりません。主な違いがあるのは忠実度スコアです。
[Evaluation details] (評価の詳細) タブには、スコアの違いなど、各メトリクスの結果の詳細な比較が表示されます。
Amazon Bedrock Model Evaluation で LLM-as-a-judge (プレビュー) を使用する
Amazon Bedrock コンソールでは、ナビゲーションペインの [Inference and Assessment] (推論と評価) セクションで [Evaluations] (評価) を選択します。[Create] (作成) を選択した後、Automatic: Model as a judge (自動: Model as a judge) オプションを選択します。
評価の名前と説明を入力し、評価メトリクスの生成に使用される評価モデルを選択します。ここでは Anthropic の Claude 3.5 Sonnet を使います。
次に、評価したいモデルである [Generator model] (ジェネレータモデル) を選択します。モデル評価は、より小さく、より費用対効果の高いモデルがこのユースケースのニーズを満たしているかどうかを把握するのに役立ちます。ここでは Anthropic の Claude 3 Haiku を使います。
次のセクションでは、評価するメトリクスを選択します。[Quality] (品質) セクションで [Helpfulness] (有用性) と [Correctness] (正確性) を選択し、[Responsible AI metrics] (責任ある AI メトリクス) セクションで [Harmfulness] (有害性) を選択します。
[Datasets] (データセット) セクションでは、評価データセットが保存される Amazon S3 の場所と、モデル評価ジョブの結果が保存される S3 バケット内のフォルダを指定します。
評価データセット用に、別の JSONL ファイルを用意しました。各行には、プロンプトと参考用の回答が記載されています。形式はナレッジベースの評価とは異なることに注意してください。
最後に、Amazon Bedrock にこの評価ジョブで使用されるリソースへのアクセスを許可する IAM サービスロールを選択できます。
評価の作成が完了しました。数分後、評価が完了します。ナレッジベースの評価と同様に、結果はメトリクスの概要から始まります。
生成メトリクスの内訳には各メトリクスの詳細が記載されています。いくつかのサンプルプロンプトの詳細も見ることができます。評価スコアをよりよく理解するために、有用性を確認します。
評価のプロンプトはモデルによって正しく処理されており、その結果を自分のユースケースに適用できます。この評価で使用したものと同様のプロンプトをアプリケーションで管理する必要がある場合は、評価モデルが良い選択肢です。
知っておくべきこと
これらの新しい評価機能は、次の AWS リージョンでプレビュー版として利用できます。
- 米国東部 (バージニア北部)、米国西部 (オレゴン)、アジアパシフィック (ムンバイ、シドニー、東京)、カナダ (中部)、欧州 (フランクフルト、アイルランド、ロンドン、パリ)、南米 (サンパウロ) での RAG 評価
- 米国東部 (バージニア北部)、米国西部 (オレゴン)、アジアパシフィック (ムンバイ、ソウル、シドニー、東京)、カナダ (中部)、欧州 (フランクフルト、アイルランド、ロンドン、パリ、チューリッヒ)、南米 (サンパウロ) での LLM-as-a-Judge
利用可能な評価者モデルはリージョンによって異なることに注意してください。
料金は、モデル推論用の標準的な Amazon Bedrock の料金に基づいています。評価ジョブ自体に追加料金はかかりません。評価者モデルと評価対象モデルの請求は、通常のオンデマンド料金またはプロビジョニング料金に従って行われます。ジャッジプロンプトテンプレートは入力トークンの一部であり、透明性を高めるため、このようなジャッジプロンプトは AWS のドキュメントに記載されています。
評価サービスはリリース時点では英語コンテンツ向けに最適化されていますが、基盤となるモデルではサポート対象の他の言語のコンテンツも処理できます。
使用を開始するには、Amazon Bedrock コンソールにアクセスしてください。詳細については、Amazon Bedrock のドキュメントをご覧になり、AWS re:Post for Amazon Bedrock にフィードバックを送信してください。community.aws では、詳しい技術コンテンツを検索し、ビルダーコミュニティが Amazon Bedrock を使用する方法を見出すことができます。これらの新機能で何を構築するのか教えてくださいね!
– Danilo
原文はこちらです。