技术专题 · RAG 02 · Chunking资料到底应该怎么切?
店员能看到的
query:饮料洒了一半,这杯能退款吗?(Q02-zh)
evidence_sections:refund.spillage.severe
| strategy | 索引 | complete | retrieved tokens | signal |
|---|---|---|---|---|
whole-document | 7 块(一份文件 = 一块) | true | 3309 | 3% |
structure-aware | 60 块 | true | 283 | 41% |
whole-document 的 top-3 是 3 份完整文件:refund-policy.md(1308 tokens)、store-operations.md(1025 tokens)、allergens.md(976 tokens)。 两边都取全了证据;差别只在为这一个问题带回了多少文字。
全部 11 题平均:whole-document complete 11/11 · 平均 2991 tokens · signal 8%;structure-aware complete 6/11 · 平均 396 tokens · signal 42%。
两处限制:索引里只有 7 个单位,top-3 就是整个知识库的 43%;7 份文件全部长于模型的 512-token 窗口,向量只代表每份文件的开头(39%–64%)。 整份文件当一块,相当于把「切多大」推到最粗的一端 —— 情境 2 的拉杆就是这件事。
点击概念,查看中文・日本語・English 对照与解释。
把文档分成检索单元。主体、条件与正文被拆散后,片段可能不足以支持回答。
相邻 chunk 故意保留一段共同内容,让切口附近的句子在两块里都能找到。它不增加知识库的内容,只让同一段文字在索引里多存一份;重叠越大,检索单位越多,Top-K 里出现近重复片段的机会也越大。
切分边界来自文档自身的结构 —— 标题、段落、一问一答、表格和它的注释 —— 而不是固定的 token 数。它不保证检索更准:词汇对不上时,切得再整齐也取不回来。
从资料集合中找回与问题相关的候选资料,之后仍需判断证据是否足够。
依据语义相关性找资料,能处理不同表述,但相似不等于事实相同。第八关结果为手写示例。
先检索相关资料,再把问题和资料交给模型生成回答。资料被找回不代表答案一定正确。