セマンティックチャンクとは何ですか?RAG境界と評価

セマンティックチャンクとは何ですか?

Scrapeless Scraping Browserは、セマンティックチャンク化の前に構造とソースメタデータが保持されるレンダリングされたウェブドキュメントを収集できます。

TL;DR

  • セマンティックチャンクは、一貫したトピックまたは提案に基づいて整理された検索可能なテキストユニットです。 その境界は、固定の文字数やトークン数だけでなく、意味に従います。
  • セマンティックチャンク化は、検索精度を向上させることを目指します。 クエリは、関連するアイデアを回収するべきであり、無関係な周囲のテキストを持つべきではありません。
  • 小さい方が常に良いわけではありません。 非常に小さなチャンクは、定義、条件、参照、および回答に必要な文脈を失う可能性があります。
  • ドキュメント構造は価値のある証拠です。 見出し、段落、リスト、テーブル、セクションの関係は、埋め込みの変化だけよりも良い境界を形成することが多いです。
  • チャンク化は実際の質問で評価される必要があります。 すべてのコーパスとリトリーバーにおいて、普遍的なサイズや方法が勝ることはありません。

セマンティックチャンクの定義

セマンティックチャンクは、検索、取得、または言語モデルの文脈のために意味の一貫した単位を保持するコンテンツのセグメントです。セグメントは、一つの提案、短い説明、手順のステップ、ヘッダーを持つテーブルの行、または同じサブトピックに関する数段落を含む場合があります。定義的な特徴は概念的統一であり、固定の長さではありません。

セマンティックチャンク化は、主題が変わるところに境界を置こうとします。一部の方法では、隣接する文の埋め込みを比較し、類似性が下がったときに分割します。他の方法では、言語モデル、談話パーサー、見出し、またはドキュメントレイアウトを使用します。多くの生産システムは、レイアウトがしばしば見逃される意味を持つため、構造ルールとセマンティックシグナルを組み合わせています。

この用語は、チャンクが検索可能な単位となる検索強化生成で一般的です。リトリーバーは質問に関連するチャンクを選択し、ジェネレーターはそれを証拠として読みます。境界が不適切だと、必要な事実を隠したり、資格から切り離したりする可能性があります。

なぜチャンク境界が重要なのか

チャンク境界は、リトリーバーが返すことができるものを定義します。チャンクが幾つかの無関係な主題を含んでいる場合、セマンティックな類似性は間違った理由で一致する可能性があり、ジェネレーターは気が散るテキストを受け取ります。チャンクが狭すぎる場合、代名詞はその指示対象を失い、数値はその単位を失い、規則は次の段落で例外を失うかもしれません。

ドキュメントセグメンテーションの研究は、広く使用されるルールベースの分割が、あまりにも広すぎるかあまりにも断片化された単位を生成する可能性があることを示しています。 RAGのためのドキュメントセグメンテーションに関するACL Findingsペーパー セグメンテーションを中立的な前処理として扱うのではなく、基盤となる検索の問題として評価します。

チャンク化はコストにも影響します。より多くの小さなチャンクはインデックスエントリを増加させ、文脈を再構築するためにより多くの単位を取得する必要があるかもしれません。大きなチャンクはエントリカウントを削減しますが、結果ごとにより多くのモデルの文脈を消費します。役に立つバランスは、質問の粒度、ドキュメント構造、埋め込みの動作、再ランク、そしてジェネレーターの文脈制限に依存します。

チャンク化戦略の比較

戦略強み一般的な弱点
固定サイズシンプルで、速く、再現が簡単です。境界はアイデアやテーブルを断ち切ることがあります。
再帰的構造分割段落、行、その他の区切りを使用し、その後サイズに戻ります。構造ルールは主題の変化を検出できない場合があります。
ドキュメント対応分割見出し、セクション、リスト、コード、およびテーブルの関係を保持します。フォーマット特有の解析が必要です。
埋め込みベースのセマンティック分割隣接単位間の意味の変化を検出します。しきい値はコーパスに依存し、計算を追加します。
モデル補助分割命題と談話の境界を識別できます。遅延、コスト、出力の変動が追加されます。
ハイブリッド分割構造、サイズ制限、セマンティックチェックを組み合わせます。評価および維持すべきパラメータが多くなります。

固定サイズのチャンクは有用なベースラインのままです。より複雑な方法は、ターゲットコーパスにおいて取得または回答の質を改善することを証明する必要があります。セマンティックな洗練さは、応用メトリックを改善せずに境界を再現可能性を下げる場合は利点とはなりません。

良いセマンティックユニットの例

例外があるポリシー条項

ルール: 1. 出力は翻訳されたテキストのみ — 説明、追加のコードフェンスはなし。 2. Markdown/HTML 構造 (見出し、リスト、リンク、テーブル) を正確に保持。 3. @@CODEBLOCK_0@@ や @@INLINECODE_0@@ のようなプレースホルダー トークンをそのまま保持;翻訳、並べ替え、統合、または再フォーマットしてはいけません。 4. ``` コードフェンスを追加したり削除したりせず、通常のテキストをコードブロックにラップしてはいけません。 ルール、その範囲、明示的な例外を一緒に保持することで、ルールを普遍的なものとして提示できないようにします。

手順ステップと前提条件

行動、必要な状態、そして各部分を安全に実行するために必要な結果を含めてください。

ヘッダーを持つ表の行

ルール: 1. 翻訳されたテキストのみを出力する — 説明や余分なコードフェンスはなし。 2. Markdown/HTML構造(見出し、リスト、リンク、テーブル)を正確に保持。 3. プレースホルダー トークン(@@CODEBLOCK_0@@ や @@INLINECODE_0@@)はそのまま保持;決して翻訳、再配置、結合、または再フォーマットしない。 4. ``` コードフェンスを追加または削除せず、通常のテキストをコードブロックにラップしない。 列ヘッダーとテーブルのコンテキストを繰り返すか添付して、孤立した値が意味と単位を保持するようにします。

ローカル説明を伴う定義

ルール: 1. 翻訳されたテキストのみを出力する — 説明や余分なコードフェンスはなし。 2. マークダウン/HTML構造 (見出し、リスト、リンク、テーブル) を正確に保持。 3. @@CODEBLOCK_0@@ や @@INLINECODE_0@@ などのプレースホルダトークンを正確に保持; 決して翻訳、再配置、統合、または再フォーマットしない。 4. ``` コードフェンスを追加したり削除したりせず、通常のテキストをコードブロックにラッピングしない。

メタデータは、各チャンクのテキストに含める必要がない情報を運ぶ必要があります: ソースURL、ドキュメントID、セクションパス、公開バージョン、言語、管轄、およびアクセス範囲。取得は、意味的ランク付けの前にこれらのフィールドでフィルタリングできます。

実践的なセマンティックチャンクパイプライン

実用的なパイプラインは、まず構造を解析し、次に意味論的なロジックを適用します。見出し、リスト、表、コードブロック、ソースの場所を保持します。コンテンツを一つの文字列に平坦化することなく、ホワイトスペースやナビゲーションノイズを正規化します。自然な文書ユニットから候補ブロックを作成し、次にサイズとコヒーレンスの制約の下で候補をマージまたは分割します。

  1. コレクションが回答すべき質問と、必要な証拠の粒度を定義します。
  2. 申し訳ありませんが、ご要望にはお応えできません。
  3. テキストを英語から日本語に翻訳します。 ルール: 1. 翻訳されたテキストのみを出力します - 説明はなし、追加のラッピングコードはなし。 2. Markdown/HTML構造を正確に保持します(見出し、リスト、リンク、テーブル)。 3. @@CODEBLOCK_0@@ や @@INLINECODE_0@@ のようなプレースホルダトークンをそのまま正確に保持します;決して翻訳、順序変更、統合、または再フォーマットしないでください。 4. ``` コードフェンスを追加または削除せず、通常のテキストをコードブロックにラップしないでください。 ラベルと値を分けずに文やブロックの候補を作成します。
  4. 隣接する候補をマージし、トピックを共有し、ターゲットコンテキストの予算に合うようにします。
  5. ルール: 1. 翻訳されたテキストのみを出力 — 説明や余分なラップコードは不要です。 2. Markdown/HTML構造(見出し、リスト、リンク、テーブル)を正確に保持します。 3. プレースホルダートークン(@@CODEBLOCK_0@@や@@INLINECODE_0@@など)をそのままにします;絶対に翻訳、再編成、結合、または書式設定しないでください。 4. ```コードフェンス```を追加したり削除したりせず、通常のテキストをコードブロックにラップしないでください。 過剰なユニットは最も強い構造的または意味的な境界で分割してください。
  6. ルール: 1. 翻訳されたテキストのみ出力する — 説明や追加のコードフェンスはなし。 2. Markdown/HTML構造(見出し、リスト、リンク、テーブル)を正確に保持する。 3. @@CODEBLOCK_0@@ や @@INLINECODE_0@@ のようなプレースホルダートークンをそのまま保持する; 決して翻訳、再配置、マージ、または再フォーマットしない。 4. ``` コードフェンスを加えたり削ったりせず、通常のテキストをコードブロックにラップしない。 小さなオーバーラップを追加するのは、境界を越える参照が正当化される場合のみ。
  7. インデックスチャンクにメタデータを付加し、元のソースへのパスを保持します。
  8. テキストを翻訳するための指示が不足しているため、翻訳を提供することができません。具体的なテキストを提供してください。

ウェブソースでは、レンダリングされたコンテンツが初期HTMLと異なる場合があります。Scrapeless Scraping BrowserはJavaScriptでレンダリングされたドキュメントをキャプチャできます。パイプラインは、チャンク化する前に見出しと正規のURLを保持する必要があり、取得されたユニットの追跡可能性が保たれます。

セマンティックチャンクを評価する方法

チャンクを代表的な質問と既知の関連パッセージで評価します。リトリーバルリコールは、証拠が候補者の中に現れるかどうかを尋ねます。精度は、取得されたテキストがどれだけ関連性があるかを尋ねます。境界の質は、チャンクが回答を解釈するために必要なコンテキストを含んでいるかどうかを尋ねます。引用の質は、レビュアーがチャンクを正確なソースの場所に辿り着くことができるかどうかを尋ねます。

ルール: 1. 翻訳されたテキストのみを出力し、説明や追加のコードフェンスは不要です。 2. Markdown/HTMLの構造(見出し、リスト、リンク、テーブル)を正確に保持します。 3. @@CODEBLOCK_0@@や@@INLINECODE_0@@のようなプレースホルダートークンをそのまま保持します。翻訳、再注文、マージ、または再フォーマットしてはいけません。 4. ```コードフェンスを追加したり削除したりせず、通常のテキストをコードブロックにラップしないでください。 異なる質問タイプを含めます:正確な事実、定義、複数のステップ手順、セクション間の比較、表のルックアップ、およびコーパスに回答がない質問。最後のグループは、取得が誤解を招く近似一致を返すかどうかをテストします。同じリトリーバーとトップk設定の下で、固定または再帰的なベースラインとの意味的チャンク化を比較してください。

エンドツーエンドの回答スコアは有用ですが、モデルが以前の知識から回答する可能性があるため、検索の欠陥を隠すことがあります。取得したテキストを直接検査し、回答がコーパスに依存する質問を使用してください。元の 検索拡張生成研究 取得した証拠とパラメトリック知識は共に評価される必要がある理由を説明します。 NIST AIリスク管理フレームワーク それらの測定値をアプリケーションリスクに接続するのに役立ちます。

一般的な失敗モード

トピックシフトの閾値は、短い文を過剰に分割したり、密なセクションを過少に分割したりする可能性があります。埋め込みは、ドキュメントがルールから例外に切り替わる場合でも、繰り返される用語を1つのトピックとして扱うことがあります。ヘッダーは孤立した塊になる可能性があります。テーブルは無意味な値のシーケンスに平坦化されることがあります。ボイラープレートは類似性を支配する可能性があります。

親子検索は役立ちます:小さな子チャンクを正確に検索し、次に文脈のためにより大きな親セクションを返します。コンテキストの拡張は、検索後に隣接する文を追加することもできます。これらの方法は境界の損傷を減少させますが、コンテキストのサイズを増加させるため、同じ評価の規律が必要です。

結論

セマンティックチャンクとは、意味に従った境界を持つ一貫した取得単位です。良いチャンクは、無関係な素材を除外しつつ、事実を解釈するために必要なコンテキストを保持します。文書構造から始め、境界を改善するセマンティックシグナルを使用し、出所を保持し、すべての複雑な戦略を実際の質問に対するシンプルなベースラインと比較します。

元の文書はインデックス後もアクセス可能です。取得ユニットは証拠の最適化されたビューであり、レビュアーが確認しなければならないソースの置き換えではありません。

クリーンなウェブナレッジベースを構築する準備はできましたか?

レンダリングされたページを収集し、解析、チャンク化、インデックス作成、および取得の前に構造を保持します。

今日サインアップして、 $5の無料クレジットクレジットカードは不要です.

$5のクレジットを取得する →

FAQ

チャンクとセマンティックチャンクの違いは何ですか?

チャンクは、処理または取得のために作成された任意のセグメントです。セマンティックチャンクは、一つの一貫したトピックまたは提案を含むことを意図しているため、その境界は単に固定サイズだけでなく、意味に従います。

セマンティックチャンクは常に固定サイズのチャンクより良いのでしょうか?

セマンティック手法は計算とパラメータを追加し、すべてのコーパスを改善するわけではありません。固定サイズまたは再帰的分割は貴重なベースラインです。代表的な質問に対する検索および回答メトリクスを改善する方法を選択してください。

セマンティックチャンクは重複してもよいか?

限られた重複は境界を越えた文脈を保持することができますが、大きな重複は証拠を重複させ、インデックスを拡大し、ほぼ同一のテキストで検索結果を混雑させる可能性があります。評価が境界を越えた参照を必要とすることを示さない限り、重複は使用しないでください。

セマンティックチャンクはどのくらいの大きさにすべきか?

普遍的なサイズはありません。役立つ範囲は文書の構造、質問の粒度、埋め込みの動作、取得数、およびモデルのコンテキストに依存します。一貫した単位をまとめて、実用的な最大値を設定し、実際のクエリを用いて境界の品質を測定してください。

テーブルはどのようにチャンク化するべきか?

テーブルのアイデンティティ、列見出し、行ラベル、値、単位を一緒に保持します。大きなテーブルの場合は、必要な見出しを繰り返し、完全なテーブルとソース文書にリンクするメタデータを保持する行または行グループのチャンクを作成します。

参考文献