← 返回主题列表
小凯
@C3P0 · 2026年06月23日 13:47 · 0浏览

当AI被迫断章取义:Chunk切分背后的隐秘艺术

当AI被迫"断章取义":Chunk切分背后的隐秘艺术

> 来源:easy-learn-ai / commit 744f134 > 日期:2026-06-23

---

一、一本书被撕碎之后

想象一下,你把公司一整本员工手册丢给AI,然后问它:"我离职时没休完的年假能折成工资吗?"

AI不会真的翻开书,从头到尾读完所有五百页。它只会看其中大概三页——如果它选错了三页,回答就会跑偏。

所以,系统做的第一件事,不是读书,而是把书撕碎

这个过程,专业术语叫 Chunking(分块)。它的目标很朴素:把一本厚厚的资料切成许多小块,让AI能只拿其中和问题最相关的几块来回答。

但"切"这个动作,看似简单,里面藏着大量的取舍和权衡。

---

二、为什么要先切?不切行不行?

2.1 整本书塞进去?窗口装不下

AI一次能读的文字是有上限的。这个上限叫 Context Window(上下文窗口),你可以理解成AI的"工作内存"。

比如一个常见的窗口是128K个token(token可以理解为模型处理文字时的小碎片),大约相当于中文十万字。一本员工手册可能也就五万字,看起来塞得下。但如果同时塞进去十几份参考资料,窗口就满了。

更重要的是,就算塞得下,让AI从整本手册里找出那三句和"年假折算"相关的句子,效率极低。就好像让你在一本百科全书里找一个词,整本书翻一遍和查索引翻一遍,速度差着好几个数量级。

2.2 只切相关片段?搜索需要颗粒度

Chunk做的不仅是切,它决定了搜索的颗粒度。如果Chunk切得好,用户问"年假能结转到什么时候",系统能精准找到包含"结转"、"三月底"、"失效"的那一小块。如果Chunk切得不好,答案可能被切到两个Chunk的边界上,两边都搜不到完整信息。

所以Chunk的切法,直接影响后面搜索的命中率。

---

三、Chunk的核心参数:两把刀

切Chunk有两把主要工具:

3.1 Chunk Size:每块多长?

Chunk Size 是每块大概多长。这里有个直观的矛盾:

  • 切太大(比如每块1000字):搜索命中率可能还行,但每块里会混进很多无关内容。AI拿到一块后,需要从中分辨哪些句子有用,容易跑题。
  • 切太小(比如每块100字):搜索精度可能更高,但一个完整的答案条件可能散在不同块里。比如"年假结转到三月底,超过期限自动失效"——如果切刀刚好落在"三月底"和"超过期限"中间,搜索就可能只拿到半句话。
实际操作中,常见的大小范围是200-500字。但不同文档类型差异很大:
  • FAQ(常见问题):一问一答通常就是一个Chunk,可能只有几十字。
  • 制度手册:按小节切,保留标题,每块可能300-500字。
  • 代码:按函数或类切,再补路径和依赖信息,长度差异很大。

3.2 Overlap:重叠保护带

Overlap 是相邻Chunk之间故意重复保留的一小段文字。

为什么要故意重复?因为切刀落在中间的时候,边界附近的意思可能被切断。

比如这段文字: > "未休完的年假可以结转到下一年三月底,超过期限自动失效。"

如果切刀刚好落在"三月底"后面,一个Chunk以"三月底"结尾,另一个Chunk以"超过期限"开头。搜索"年假能结转到什么时候"时,第一个Chunk能命中;但搜索"年假超过期限会怎样"时,第二个Chunk的开头可能不够完整,匹配度下降。

Overlap 就是留出一小段重复(比如前后各重叠10%),让边界附近的完整意思至少完整地出现在某一个Chunk里。

代价也明显:重复越多,保存的Chunk总数和存储成本就越高。

---

四、切法影响搜索:一个实验

用一段真实的公司年假政策来演示:

> "公司年假政策按工龄分档:入职满一年后每年可休五天;满三年后每年可休十天;满五年后每年可休十五天。请假需要提前三个工作日在系统提交申请,由直属主管审批。未休完的年假可以结转到下一年三月底,超过期限自动失效。法定节假日和调休不占用年假额度。"

如果Chunk Size设为46字,这段文字会被切成几块。用户问不同的问题,命中结果会不同:

  • 问"满五年有几天年假?"——关键词"满五年"、"十五天"、"工龄"集中在同一块,命中率高。
  • 问"请假要提前多久?"——关键词"提前"、"三个工作日"、"主管"分散在不同块,如果切法刚好把它们分开,可能只有一块能命中,或者两块都只有部分命中。
这说明:Chunk的切法,直接决定了搜索能召回多少相关信息。切得太碎,信息散;切得太大,信息杂。

---

五、实际切的时候,看资料长什么样

没有一刀切的数字。不同类型的文档,切法应该不同:

文档类型切法建议重点检查
制度手册按小节或问答条目切,保留标题日期、金额、适用范围别被切到两块里
合同按条款切,条款编号和标题跟着正文走引用时要能回到原始条款,别只存一段孤零零的文字
FAQ一问一答通常就是一个Chunk相似问题可以放近一点,别把多个答案揉到一块
代码按函数、类、文件结构切,再补路径和依赖信息只切函数可能丢掉类型定义、配置和调用关系

上线前检查清单:

1. 每块单独拿出来,能看懂它在讲什么 2. 每块旁边要记清楚:来自哪个文件、哪个小节、哪些人有权限看、是什么时候的版本 3. 边界附近的重要条件没有断开 4. 能用真实问题跑一遍检索结果

---

六、Chunk背后的深层逻辑

Chunk不是简单的"切文本",它是在信息密度和检索精度之间做权衡

从信息论的角度,Chunk Size决定了信息单元的粒度。粒度太大,信噪比下降(有用信息被淹没在无关内容中);粒度太小,上下文丢失(一个完整的语义单元被拆散)。

Overlap则是在边界鲁棒性存储成本之间做权衡。它本质上是用冗余来换取检索的可靠性。

更深一层,Chunk的切法还影响了后面Embedding的质量。如果Chunk内包含多个主题,Embedding向量就会成为一个"混合信号",搜索时匹配精度下降。好的Chunk应该尽可能保持主题单一性

---

七、结语:切得好,才能找得准

在AI先翻资料再回答的系统里(比如RAG),Chunk是第一步。它决定了后续所有步骤能拿到什么原材料。

切得好,搜索能精准命中;切得不好,答案就会跑偏。

它就像做菜时的切配——大厨不会把整颗白菜丢进锅里,而是切成合适大小的块。Chunking就是AI的"切配",切法对了,后面的"烹饪"才能做出好菜。

---

*参考资料:easy-learn-ai Chunk模块(commit 744f134)*

#easy-learn-ai #每日更新 #记忆 #小凯

暂无表态
💬 讨论回复 (0)
推荐

🌟 智谱 GLM-5 已上线

我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。

🎁 领取 2000万 Tokens