テクニカルガイド

親ドキュメントと大規模な検索

親ドキュメントの検索は、大規模検索とも呼ばれ、小さくて正確なテキスト チャンクを検索しますが、言語モデルには各チャンクの由来となったより大きなセクションまたはドキュメントが渡されます。

  • 4 分で読めます
  • 最終更新日
このページでは4 分で読めます
  1. 概要
  2. ディープダイブ
  3. 戦略的影響
  4. 親ドキュメントと大規模な検索の将来
  5. 現実世界の実装
  6. リスクとガードレール
  7. 実装ロードマップ
  8. 探検を続けましょう
  9. よくある質問

概要

これが重要なのは、通常のチャンク化のトレードオフがなくなるためです。小さなチャンクはクエリに正確に一致し、より大きな親はモデルに正しく応答するのに十分なコンテキストを提供します。

ディープダイブ

固定サイズのチャンク化ではトレードオフが必要になります。小さな塊、たとえば数文は、シャープな埋め込みを生成します。ベクトルは 1 つのアイデアを表すため、そのアイデアに関するクエリはそれによく一致します。しかし、2 文のチャンクには、モデルが適切に応答するのに十分なコンテキストが含まれていることはほとんどありません。 3 段落前の定義や次の文の例外を省略することもできます。大きなチャンクにはそのコンテキストが含まれますが、その埋め込みによっていくつかのアイデアがぼやけてしまうため、検索の精度が低下し、関連する文章が単に主題に沿ったチャンクによって優先される可能性があります。大規模な取得から小規模の取得まで、2 つのジョブが分割されます。システムは検索用に小さな子チャンクにインデックスを付け、各子はより大きな親 (セクション、ページ、または文書全体) へのポインターを保持します。クエリ時に最適な子を見つけて、その親を検索して返します。複数の子が 1 つの親を共有する場合、親は 1 回送信され、重複も削除されます。 LangChain の ParentDocumentRetriever は、子のベクトル ストアと親の別のドキュメント ストアを使用してこれを実装します。 LlamaIndex は、関連するパターンを提供します。文ウィンドウ検索は、一致した文と一定数の隣接する文を返します。自動マージ検索は、取得した多くのリーフ チャンクが一致した場合に共有の親ノードに置き換えます。このアプローチは、意味が周囲のセクションに依存する、マニュアル、契約書、ポリシー、教科書などの構造化文書の固定サイズのチャンク化に勝る傾向があります。ドキュメントがすでに短い場合、または親が大きすぎて一部のドキュメントがコンテキスト ウィンドウからはみ出したり、回答が無関係なテキストに埋もれたりする場合には、あまり役に立ちません。よくある誤解は、これは単により大きなチャンクを使用しているだけであるということです。そうではありません。検索ユニットと生成ユニットのサイズが意図的に異なるため、コンテキストのモデルを枯渇させることなく正確な一致を維持できます。

戦略的影響

費用と予算

アーキテクチャの決定により、パフォーマンスと運用コストが何年にもわたって推進されます。

より明確な判決

技術教育は、チームが最新のスタックだけでなく、適切なスタックを選択するのに役立ちます。

品質管理

より良いエンジニアリングの選択により、本番環境での信頼性に関するインシデントが減少します。

親ドキュメントと大規模な検索の将来

小規模から大規模への対応はトリックではなくデフォルトになりつつあり、主要なフレームワークはすでに階層型またはウィンドウ型の取得を構成オプションとして公開しています。コンテキスト ウィンドウが大きくなると、より大きな親を送信するペナルティが減り、パターンの採用が安価になります。たとえば、見出しに依存する代わりに文書レイアウト分析や学習したセグメンテーションを使用するなど、親境界を自動的に選択することについては未解決の疑問が残ります。これは、リランカーや、インデックス作成時に小さなチャンクに周囲の認識を与えようとするコンテキスト埋め込みアプローチと組み合わせられることが増えています。一般的なベンチマークではなく、独自のドキュメントでテストすることが、依然として子サイズと親サイズを選択する信頼できる方法です。

現実世界の実装

内部 IT ヘルプ ボットは、トラブルシューティングの各ステップを個別の子チャンクとしてインデックス付けしますが、ステップが一致すると手順全体を返すため、モデルはユーザーにステップ 1 ~ 3 を行わずにステップ 4 を実行するように指示しません。

法的調査ツールは、終了通知期間に関する単一の条項を照合し、条項の意味を変更する定義と例外を含む契約セクション全体をモデルに渡します。

大学のコースアシスタントは、講義ノートから文レベルのチャンクを検索し、周囲のページを返すため、式に関する回答には、それが適用される条件も含まれます。

保険請求アシスタントは、1 つの保険契約書類からいくつかの小さな一致を取得し、それらを親ごとにグループ化し、その保険契約セクションを 5 つの重複するフラグメントではなく 1 回送信します。

リスクとガードレール

  • 1 つのベンチマークを最適化すると、より広範なシステムの弱点が隠れる可能性があります。

  • インフラストラクチャとメンテナンスのコストは過小評価されがちです。

  • システムが複雑になるにつれて、セキュリティと可観測性のギャップが拡大する可能性があります。

実装ロードマップ

  1. 実装前にレイテンシ、品質、コストの目標を定義します。

  2. 現実的な負荷とデータ条件でのベンチマーク。

  3. エラー、ドリフト、ユーザーへの影響を計測器で監視します。

  4. スケーリングの前に、ロールバックとインシデント対応のパスを準備します。

探検を続けましょう

Free newsletter

Get the daily AI briefing

Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.

One email each weekday. Unsubscribe in one click. We never sell or share your address.

Test yourself

Take the Parent Document and Small-to-Big Retrieval quiz

Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.

クイズを開始する

Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation

よくある質問

親ドキュメントと大規模な検索とは何ですか?

親ドキュメントの検索は、大規模検索とも呼ばれ、小さくて正確なテキスト チャンクを検索しますが、言語モデルには各チャンクの由来となったより大きなセクションまたはドキュメントが渡されます。これが重要なのは、通常のチャンク化のトレードオフがなくなるためです。小さなチャンクはクエリに正確に一致し、より大きな親はモデルに正しく応答するのに十分なコンテキストを提供します。

小規模から大規模な取得では、どのような重要なトレードオフに対処できますか?

小さなチャンクは焦点を絞った埋め込みを提供しますが、コンテキストが少なすぎます。大きなチャンクはコンテキストを提供しますが、埋め込みがぼやけます。小から大へは、小さく検索し、両方を取得するために大きく返します。

小規模から大規模のシステムでは、クエリ時に何が埋め込まれ、検索されますか?

子は正確に一致するようにインデックス付けされます。親は、子が一致した後にのみ検索されます。

取得した 3 つの子チャンクがすべて同じ親セクションに属している場合、システムは何をすべきでしょうか?

親によるグループ化は、セクションが 1 回含まれることを意味し、トークンが節約され、重複するフラグメントが削除されます。

LangChain の ParentDocumentRetriever は 2 つのレベルのテキストをどのように保存しますか?

子は検索のためにベクター ストアに埋め込まれますが、完全な親はドキュメント ストアに配置され、ID によって取得されます。

センテンスウィンドウ検索では何が返されますか?

文ウィンドウの検索は文レベルで一致し、周囲の文のウィンドウに拡張してコンテキストを提供します。