ステップ 5 (取得)。 取得品質をデバッグする方法

このページでは、取得の問題の根本原因を特定する方法について説明します。 このページは、 根本原因分析 で根本原因 Improve Retrievalが示された場合に使用します。

取得品質は、間違いなくRAGアプリケーションの最も重要なコンポーネントです。 特定のクエリに対して最も関連性の高いチャンクが返されない場合、LLM は高品質の応答を生成するために必要な情報にアクセスできません。 検索が不十分な場合、出力が無関係、不完全、または幻覚につながる可能性があります。 このステップでは、基になるデータを分析するために手動の作業が必要です。 Mosaic AI Agent Frameworkは、データプラットフォーム( Unity Catalog やベクトル検索を含む)とエクスペリメント追跡と MLflow ( LLM 評価や MLflow トレーシングを含む)が緊密に統合されているため、トラブルシューティングがはるかに簡単になります。

指示

以下の手順に従って、取り出し品質の問題に対処してください。

  1. B_quality_iteration/01_root_cause_quality_issues ノートブックを開きます。

  2. クエリを使用して、取得品質の問題があったレコードの MLflow トレースを読み込みます。

  3. レコードごとに、取得したチャンクを手動で調べます。 可能な場合は、それらをグラウンドトゥルース検索ドキュメントと比較します。

  4. 検索品質が低いクエリ間でパターンまたは一般的な問題を探します。 例えば:

    • 関連情報がベクターデータベースから完全に欠落しています。

    • 取得クエリに対して返されるチャンクまたはドキュメントの数が不足しています。

    • チャンクが小さすぎて、十分なコンテキストが不足しています。

    • チャンクが大きすぎて、無関係なトピックが複数含まれています。

    • 埋め込みモデルは、ドメイン固有の用語の意味的類似性をキャプチャできません。

  5. 特定された問題に基づいて、潜在的な根本原因と対応する修正を仮定します。 ガイダンスについては、 取得品質が低下する一般的な理由を参照してください。

  6. 「変更の実装と評価」の手順に従って、潜在的な修正プログラムを実装および評価します。これには、データパイプラインの変更 (チャンク サイズの調整や別の埋め込みモデルの試行など) や RAG チェーンの変更 (ハイブリッド検索の実装やより多くのチャンクの取得など) が含まれる場合があります。

  7. それでも検索品質が十分でない場合は、目的のパフォーマンスが得られるまで、次に有望な修正についてステップ 4 と 5 を繰り返します。

  8. 根本原因分析を再実行して、チェーン全体に対処すべき追加の根本原因があるかどうかを判断します。

検索品質が悪い一般的な理由

次の表に、デバッグ ステップと、一般的な取得の問題に対する潜在的な修正を示します。 修正プログラムはコンポーネントごとに分類されます。

  • データパイプライン

  • チェーン設定

  • チェーンコード

このコンポーネントは、 変更の実装と評価 のステップで従うべきステップを定義します。

取得の問題

デバッグ ステップ

潜在的な修正

チャンクが小さすぎる

  • チャンクで不完全なカットオフ情報がないか調べます。

  • データパイプライン チャンク サイズまたはオーバーラップを増やします。

  • データパイプライン 別のチャンク戦略を試してください。

チャンクが大きすぎる

  • 取得したチャンクに、無関係なトピックが複数含まれているかどうかを確認します。

  • データパイプライン チャンク サイズを小さくします。

  • データパイプライン 無関係なトピック (セマンティック チャンクなど) の混在を避けるために、チャンク戦略を改善します。

チャンクには、取得元のテキストに関する十分な情報がありません

  • 各チャンクのコンテキストの欠如が、取得した結果に混乱やあいまいさを引き起こしているかどうかを評価します。

  • データパイプライン 各チャンクにメタデータとタイトル (セクション タイトルなど) を追加してみてください。

  • チェーン設定 より多くのチャンクを取得し、より大きなコンテキスト サイズの LLM を使用します。

埋め込みモデルがユーザークエリのドメインまたはキーフレーズを正確に理解しない

  • 同じクエリに対して意味的に類似したチャンクが取得されているかどうかを確認します。

  • データパイプライン さまざまな埋め込みモデルを試してください。

  • チェーン設定 ハイブリッド検索をお試しください。

  • チェーンコード 取得結果をオーバーフェッチし、再ランク付けします。 再ランク付けされた上位の結果のみを LLM コンテキストにフィードします。

  • データパイプライン ドメイン固有データへの埋め込みモデルを微調整します。

ベクターデータベースに関連情報がありません

  • ベクトルデータベースに関連するドキュメントまたはセクションが欠落していないか確認してください。

  • データパイプライン より関連性の高いドキュメントをベクターデータベースに追加します。

  • データパイプライン ドキュメントの解析とメタデータ抽出を改善します。

取得クエリの定式化が不十分である

  • ユーザークエリがセマンティック検索に直接使用されている場合は、これらのクエリを分析し、あいまいさや特異性の欠如がないか確認します。 これは、生のユーザークエリが会話の前の部分を参照するマルチターンの会話で簡単に発生する可能性があるため、取得クエリとして直接使用するのは不適切です。

  • クエリ用語が検索コーパスで使用されている用語と一致するかどうかを確認します。

  • チェーンコード クエリの拡張または変換アプローチを追加します (たとえば、ユーザー クエリを指定して、セマンティック検索の前にクエリを変換します)。

  • チェーンコード クエリの理解を追加して、意図とエンティティを識別します (たとえば、LLM を使用してプロパティを抽出し、メタデータ フィルタリングで使用します)。