次の方法で共有


大規模言語モデルのエンドツーエンドの評価

このフェーズでは、言語モデルに対して取得されたグラウンド データを含む予想されるユーザー プロンプトを調べることで、Retrieval-Augmented 生成 (RAG) ソリューションを評価します。 このフェーズに到達する前に、前のフェーズを完了する必要があります。 テスト ドキュメントとクエリを収集し、テスト ドキュメントをチャンクし、チャンクをエンリッチし、チャンクを埋め込み、検索インデックスを作成し、検索戦略を実装する必要があります。 次に、これらの各フェーズを評価し、結果が期待値を満たしていることを確認する必要があります。 この時点で、ソリューションがユーザー クエリの関連するグラウンド データを返すという確信を持つ必要があります。

この接地データは、ユーザーのクエリに対処するために言語モデルに送信するプロンプトのコンテキストを形成します。 プロンプト エンジニアリング戦略 は、この記事の範囲外です。 この記事では、接地データの観点から、言語モデルに対するエンジニアリングされた呼び出しの評価について説明します。 この記事では、一般的な言語モデル評価メトリックと、モデル評価の計算またはスタンドアロン メトリックとして使用できる特定の類似性と評価メトリックについて説明します。

この記事では、言語モデルのメトリックまたは類似性と評価メトリックの完全な一覧を提供しようとはしません。 これらのメトリックの数は毎日増加します。 この記事から取り除くために重要なのは、それぞれが異なるユース ケースを持つさまざまなメトリックがあることです。 ワークロードを包括的に理解できるのは、自分だけです。 自分とデータ サイエンティストは、測定する対象と適切なメトリックを決定する必要があります。

この記事はシリーズの一部です。 最初に、の概要 を参照してください。

言語モデルの評価メトリック

言語モデルの応答を評価するために使用できるメトリックがいくつかあります。 これらのメトリックの一部は、根拠、完全性、使用率、関連性です。

重要

言語モデルの応答は非決定的です。つまり、言語モデルに対して同じプロンプトを実行すると、多くの場合、異なる結果が返されます。 この概念は、評価プロセスの一部として言語モデルを使用する場合に理解することが重要です。 言語モデルの使用を評価するときは、1 つのターゲットではなくターゲット範囲を使用することを検討してください。

現実性

根拠性は、忠実度とも呼ばれ、応答が文脈に完全に基づいているかを測定します。 応答がコンテキストに存在する情報以外の情報を使用していないことを検証します。 接地度の低いメトリックは、言語モデルが不正確または無意味な応答を出力している可能性があることを示します。

接地度を計算する

応答の根拠を計算するには、次のメソッドを使用します。

根拠性を評価する

根拠性の算定地が低いということは、言語モデルでチャンクを関連性のあるものとして認識されていないことを示しています。 コレクションにデータを追加するか、チャンク戦略やサイズを調整するか、プロンプトを微調整する必要があるかを評価してください。

完全

完全度 は、応答がクエリのすべての部分に応答するかどうかを測定します。 完全性は、コンテキスト内のチャンクが関連しているかどうかを理解し、クエリに直接関連し、完全な回答を提供するのに役立ちます。

完全性を計算する

応答の完全性を計算するには、次のメソッドを使用します。

  • AI 支援による検索スコアのプロンプト
  • 言語モデルは、言語モデルの応答の品質を測定するのに役立ちます。 この測定を行うには、質問、コンテキスト、生成された回答が必要です。 次の手順では、大まかなプロセスについて説明します。
    1. 言語モデルを使用して、質問の言い換え、要約、または簡略化を行います。 この手順では、意図を識別します。
    2. モデルに、意図または意図に対する回答が、取得されたドキュメントで見つかったか、取得されたドキュメントから派生できるかを確認するように依頼します。 答えは、各ドキュメントに対して "はい" または "いいえ" にすることができます。 "yes" で始まる回答は、取得したドキュメントが意図または意図に対する回答に関連していることを示します。
    3. "はい" で始まる回答を持つ意図の比率を計算します。
    4. スコアを 2 乗してエラーを強調表示します。

完全性を評価する

完全性が低い場合は、埋め込みモデルを評価して、その向上に取り組み始めます。 コンテンツのボキャブラリと埋め込みモデルのボキャブラリを比較します。 ドメイン固有の埋め込みモデルが必要かどうか、または既存のモデルを微調整する必要があるかどうかを判断します。 次の手順は、チャンク戦略を評価するためのものです。 固定サイズのチャンクを使用する場合は、チャンクサイズを増やすことを検討してください。 また、テスト データに問題に完全に対処するのに十分なデータがあるかどうかを評価することもできます。

稼働率

利用度 は、応答がコンテキスト内のチャンク情報でどの程度構成されているかを測定します。 目標は、各チャンクがどの程度応答の一部であるかを判断することです。 使用率が低い場合は、結果がクエリに関連しない可能性があることを示します。 使用率は、完全性と共に評価する必要があります。

使用率の計算

言語モデルを使用して使用率を計算します。 応答とチャンクを含むコンテキストを言語モデルに渡すことができます。 言語モデルに、回答を伴うチャンクの数を決定するように依頼できます。

使用率を評価する

次の表に、完全性と使用率を評価する方法に関するガイダンスを示します。

高使用率 使用率が低い
完全性が高い アクションは必要ありません。 この場合、返されたデータは質問に対処しますが、無関係なチャンクも返します。 上位 k のパラメーター値を小さくして、より可能性の高い、または確定的な結果を生成することを検討してください。
完全性が低い この場合、言語モデルは指定したチャンクを使用しますが、質問に完全には対処しません。 次の手順を実行することを検討してください。
  • チャンク内のコンテキストを拡大するために、チャンク化戦略を見直してください。
  • top-k パラメーター値を増やすことで、チャンクの数を増やします。
  • 完全性を高めることができる、返されなかったチャンクがあるかどうかを評価します。 その場合は、返されなかった理由を調査します。
  • の完全性セクションの指示に従ってください。
この場合、返されるデータは質問に完全には回答せず、指定したチャンクは完全には利用されません。 次の手順を実行することを検討してください。
  • チャンク内のコンテキストを増やすために、チャンク戦略を見直します。 固定サイズのチャンクを使用する場合は、チャンク サイズを大きくすることを検討してください。
  • 応答を改善するために、プロンプトを微調整します。

関連性

関連性 は、言語モデルの応答が関連し、クエリに関連する範囲を測定します。

関連性の計算

応答の関連性を計算するには、次のメソッドを使用します。

手記

Azure AI Foundry ポータルを使用して計算を実行するか、この記事のガイダンスを使用して関連性を自分で計算できます。

関連性を評価する

関連性が低い場合は、次のタスクを実行します。

  1. 言語モデルに提供されるチャンクが関連していることを確認します。
    • 関連する実行可能なチャンクが返されないかどうかを判断します。 これらのチャンクを検出した場合は、埋め込みモデルを評価します。
    • 実行可能なチャンクがない場合は、関連するデータが存在するかどうかを確認します。 存在する場合は、チャンク戦略を評価します。
  2. 関連性のあるチャンクが返された場合は、プロンプトを評価します。

評価方法として、完全性や 出力のスコアは、関連性スコアに似た結果を得るべきです。

類似性と評価のメトリック

データ サイエンスで使用できる類似度と評価のメトリックは数百あります。 一部のアルゴリズムは、音声テキスト変換や言語間翻訳など、ドメインに固有です。 各アルゴリズムには、メトリックを計算するための独自の戦略があります。

データ サイエンティストは、測定する対象と、測定に使用できるメトリックまたはメトリックの組み合わせを決定します。 たとえば、言語翻訳の場合、2 か国語の評価アンダースチューディ (BLEU) メトリックでは、機械翻訳と人間の翻訳の両方に表示される n グラムの数がチェックされ、翻訳で同じ単語が使用されているかどうかに基づいて類似性が測定されます。 コサイン類似性は、機械翻訳と人間の翻訳の間の埋め込みを使用して、セマンティック類似性を測定します。 目標が高いセマンティック類似性を達成し、人間の翻訳と似た単語を使用することなら、コサイン類似度と高いBLEUスコアの両方が必要です。 セマンティックの類似性のみを考慮する場合は、コサインの類似性に焦点を当てます。

次の一覧には、一般的な類似性と評価メトリックのサンプルが含まれています。 一覧表示されている類似性メトリックは、トークン ベース、シーケンス ベース、または編集ベースとして記述されていることに注意してください。 これらの説明は、類似性の計算に使用されるメトリックのアプローチを示しています。 この一覧には、ある言語から別の言語へのテキスト翻訳の品質を評価する 3 つのアルゴリズムも含まれています。

  • 最も長い共通部分文字列 は、2 つの文字列間で最も長い共通部分文字列を検索するシーケンスベースのアルゴリズムです。 最も長い共通部分文字列の割合は、最も長い共通部分文字列を受け取り、小さいまたは大きい入力文字列の文字数で除算します。
  • 最も長い共通サブシーケンス (LCS) は、2 つの文字列間で最も長いサブシーケンスを検索するシーケンス ベースのアルゴリズムです。 LCS では、サブシーケンスが連続する順序である必要はありません。
  • コサイン類似性 は、2 つのベクトル間の角度のコサインを計算するトークンベースのアルゴリズムです。
  • Jaro-Winkler 距離 は、1 つの文字列を別の文字列に変換するための最小ステップ数をカウントする編集ベースのアルゴリズムです。
  • Hamming distance は、1 つの文字列を別の文字列に変換するために必要な置換の最小数を測定する編集ベースのアルゴリズムです。
  • Jaccard インデックス は、2 つの文字列の交差部分をそれらの文字列の和集合で除算して類似性を計算するトークンベースのアルゴリズムです。
  • Levenshtein distance は、1 つの文字列を別の文字列に変換するために必要な 1 文字の編集の最小数を決定することによって類似性を計算する編集ベースのアルゴリズムです。
  • BLEU は、ある言語から別の言語への機械翻訳の結果であるテキストの品質を評価します。 BLEU は、機械翻訳と人間品質翻訳の間の n グラムの重複を計算して、この評価を行います。
  • 、ROUGE は、ある言語の機械翻訳と人間が作成した翻訳を比較するメトリックです。 n-gram、skip-bigram、または最長共通部分列の重複を使用する ROUGE バリアントがいくつかあります。
  • METEOR は、完全一致、ステミング後の一致、シノニム、言い換え、配置を調べることで、機械翻訳の結果であるテキストの品質を評価します。

一般的な類似性と評価メトリックの詳細については、次のリソースを参照してください。

ドキュメント、レポート、集計

ハイパーパラメーターが結果にどのように影響するかを理解できるように、実験用に選択したハイパーパラメーターと結果の評価メトリックの両方を文書化する必要があります。 ハイパーパラメーターと結果は、埋め込みや検索評価などの細かいレベルで、マクロ レベル (システム全体をエンド ツー エンドでテストする場合など) で文書化する必要があります。

設計と開発時に、ハイパーパラメーターと結果を手動で追跡できる場合があります。 ただし、テスト ドキュメント全体とテスト クエリ コレクション全体に対して複数の評価を実行するには、何百もの評価実行と数千の結果が必要になる場合があります。 評価のパラメーターと結果の永続化を自動化する必要があります。

ハイパーパラメーターと結果が保存されたら、ハイパーパラメーターがメトリックに与える影響を視覚化するのに役立つチャートやグラフを作成することを検討してください。 視覚化は、パフォーマンスの低下やスパイクにつながる選択肢を特定するのに役立ちます。

RAG ソリューションの設計と評価は 1 回限りの操作ではないことを理解しておくことが重要です。 ドキュメントのコレクションは時間の経過と同時に変化します。 顧客が質問する質問は時間の経過と同時に変化し、運用環境から学習するにつれて、質問の種類に対する理解が進化します。 このプロセスを繰り返し見直す必要があります。 今後の設計と評価の取り組みには、過去の評価の文書化を維持することが重要です。

RAG 実験アクセラレータ

これらの記事では、RAG ソリューションの設計と評価に関連するすべてのフェーズと設計の選択肢について説明します。 記事では、その方法ではなく、何をすべきかに焦点を当てています。 Microsoft のトップ カスタマーと連携するエンジニアリング チームは、RAG 実験アクセラレータと呼ばれるツールを開発しました。 RAG 実験アクセラレータは、最先端の実験フレームワークです。 RAG ソリューションの開発を最適化し、強化するように設計されています。 RAG 実験アクセラレータを使用すると、研究者や開発者は RAG のパフォーマンスを向上させる重要なコンポーネントを効率的に調査して微調整できます。 このイノベーションにより、最終的には、より正確でコヒーレントなテキスト生成が実現します。

RAG 実験アクセラレータはコマンドライン インターフェイスを使用するため、さまざまな埋め込みモデルを簡単に試したり、チャンク戦略を調整したり、さまざまな検索アプローチを評価して RAG システムの可能性を最大限に引き出すことができます。 ハイパーパラメーター調整用の単純な構成を使用して、RAG 開発の主要な側面に焦点を当てることができます。

このフレームワークでは、言語モデルの構成に対する包括的なサポートも提供されます。 このサポートは、モデルの複雑さと生成品質の完璧なバランスを取るのに役立ちます。 このツールを使用すると、実験プロセスを効率化し、時間を節約し、RAG モデルのパフォーマンスを大幅に向上させることができます。

RAG と Vision アプリケーション フレームワーク

RAG ソリューションでのメディアの操作に関するこの記事のガイダンスの多くは、Microsoft のトップ カスタマーと連携する別のエンジニアリング チームから提供されています。 このチームは、Vision Application Frameworkを使用して RAG というフレームワークを作成しました。 このフレームワークは、MHTML ドキュメントからのテキストコンテンツと画像コンテンツの両方を処理する Python ベースの RAG パイプラインを提供します。

フレームワークは、MHTML ファイルからテキストと画像を読み込み、チャンクし、エンリッチします。 その後、データのチャンクが Azure AI 検索に取り込まれます。 フレームワークでは、処理とコスト効率のためにイメージ エンリッチメントのキャッシュを実装します。 フレームワークには、パイプラインの一部として評価も組み込まれています。

貢献者

この記事は Microsoft によって管理されています。 もともとは次の共同作成者によって作成されました。

次の手順