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

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

検索品質は、間違いなくRAGアプリケーションの最も重要なコンポーネントです。 特定のクエリに対して最も関連性の高いチャンクが返されない場合、LLM は高品質の応答を生成するために必要な情報にアクセスできません。 検索が不十分な場合、無関係、不完全、または幻覚的な出力につながる可能性があります。 このステップでは、基礎となるデータを分析するために手作業が必要です。 Mosaic AIエージェント フレームワークは、データ プラットフォーム ( 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 を使用して、メタデータ フィルタリングで使用するプロパティを抽出します)。

次のステップ

生成品質の問題も特定した場合は、ステップ 5 (生成) に進みます。生成品質をデバッグする方法

特定された問題がすべて解決されたと思われる場合は、手順 6 に進みます。品質修正を繰り返し実装して評価します