← 概念辨析に戻る

Concept Contrast Fable

チャンクと親子チャンク:一方は豆腐を切るだけ、もう一方は切った後も元の一皿を残しておく

先に結論:RAG システムを作る際、チャンキングと親子チャンキングが同じ行の設定に書かれ、多くの人が親子チャンキングはチャンキングのパラメータ設定の一種だと思っている。チャンキングは文書をどれくらいの大きさに、どう切るかを決める;親子チャンキングは、切断と同時に元のチャンクと子チャンクの対応関係を保持し、検索時に大きなチャンクで位置を特定し、小さなチャンクで正確に答えることを可能にする。この対応関係が一層欠けると、召回精度が一桁変わる。

RAG システムを作る際、チャンキングと親子チャンキングが同じ行の設定に書かれ、多くの人が親子チャンキングはチャンキングのパラメータ設定の一種だと思っている。チャンキングは文書をどれくらいの大きさに、どう切るかを決める;親子チャンキングは、切断と同時に元のチャンクと子チャンクの対応関係を保持し、検索時に大きなチャンクで位置を特定し、小さなチャンクで正確に答えることを可能にする。この対応関係が一層欠けると、召回精度が一桁変わる。

寓話

公文書館の二つの番号付け方式

文書館は徒弟に旧案件を素早く調べさせようとした。当初、文書ファイル全体は厚すぎ、一つの証言を探すのに半日かかった。館長は文書ファイルを小さく切り分け、それぞれに番号を貼らせたところ、調査はずっと速くなった。徒弟は大きな皿から小さな塊を挟み出すように、口に入れやすくなった。

厄介なことも現れました。見習いは「河堤は修復済み」という一文を見つけましたが、それがどの年、どの区間の川、誰の検収によるものか分かりません。小さな断片は切り出した豆腐のように口に入れやすいですが、元の皿の料理の味を失っています。一つの断片は正確に見えても、元の案件に戻すと意味が変わっていることが分かります。

断片を大きく切る提案もあった。大きければ文脈は足りるが検索は遅く、小さければ検索は正確だが読むと途切れる。両者は数日争ったが解決しなかった。最初の補修は刃の太さを巡るだけで、小さな断片と元の巻物の関係を扱っていなかった。

老館員は父子冊に切り替えた。小片は依然として手がかりを探すために使われ、目録の中で決定的な証言に触れるようなものだった。一度命中すれば、それが属する大ページや親巻全体を一緒に取り出し、学徒が元の文脈で判断できるようにした。

初版の父子帳にも問題があった。親巻の範囲を大きく取りすぎると、机の上は紙で溢れる。親巻を小さく取りすぎると、依然として前因後果が見えない。老館員は事件ごとに範囲を定め直した。証言には尋問ページを、工事記録には前後の検収区間を、帳簿には同じ回の収支を添える。

その後、館には二つの尺度があった:小片がどれだけ細かいかで、見つける精度が決まる。親巻がどれだけ大きいかで、取り戻して読むときに十分完全かが決まる。徒弟はまず小片で位置を特定し、次に親巻で理解し、孤立した一文を事件全体の結論と見なさなくなった。

ただ細かく刻むだけでは針を探すことになる。親巻ごと持ち帰って初めて、針がどんな衣服に刺さっているかがわかる。文書館が本当に学んだのは、より細かく切ることではなく、検索と理解を二段階に分けることだった。

その後、新しい案件が館に入ると、館員はまず二つのことを決めた:索引に使うのはどれほど小さな片か、閲覧に供するのはどれほど大きな親巻か。前者は見つけられるかどうかに影響し、後者は判断できるかどうかに影響する。二つの物差しをはっきり分けた後、巻宗は記憶を失った紙切れに切り刻まれることはなくなった。後に館員が短い文を調べるときは、必ずそれがどの巻に属するかを先に問い、それから引用できるかどうかを決める。

チャンク化

長い文書を一定の戦略でより小さな段落やテキストチャンクに分割し、チャンクのサイズ、重複方式、区切り規則を決める。RAGシステムの基本的な前処理ステップである。

親子チャンク

チャンク化の特定の実装方式:意味マッチングと位置特定のために大きな親チャンクを保持しつつ、正確な内容を返すために小さな子チャンクを維持し、両者をインデックスで関連付ける。

物語の対応

  • 五ページごとに独立したパッケージに切る:単純なチャンク戦略、断片化された検索
  • 位置特定の錨として全量版を追加で保持:親ブロックの概念を導入
  • まず議事録番号を探してからスライスを呼び出す:親子チャンクの検索フロー——親ブロックで位置を特定し、子ブロックで精密に回答
  • バラ豆腐 vs 各豆腐に料理皿ラベル:チャンク化と親子チャンク化の核心的な違いは階層帰属の有無にある

RAG システム設計に落とし込む

チャンクパラメータを設定する際は、chunk_size と parent_chunk_size を二つの独立した決定として扱う。chunk_size は LLM に返す段落の精度を決め、parent_chunk_size は意味マッチングの範囲を決める。まず親チャンクを完全な意味を捉えるのに十分大きく設定し、次に子チャンクを答えが冗長にならないよう十分小さく設定する。chunk_size だけを調整することは、親チャンクという検索精度のレバーを放棄することに等しい。

京ICP备2026014272号