上一篇聊了一个现象:你的前提错了,AI不会反驳,反而会顺着你往下圆。因为它没有事实依据,只能讨好你的倾向
怎么治?让AI基于证据回答。这就是RAG。
但很多团队上了RAG,AI照样翻车。问你自家年假政策,它给你背劳动法。资料明明在里面,它没找到。
问题出在哪?RAG的第一步:文档切块。
这一步没做好,后面调模型、写Prompt都是白费。
为什么不直接把整本PDF丢进去?两个原因。
第一,检索靠的是“小块”,不是整本。
RAG的工作方式:先把文档切成小块,每块转成向量。你的问题也转成向量,然后去小块堆里找最相似的。
如果不切,整本手册变成一个向量,只能代表“平均意思”。你问“年假”,它找到的是那个不痛不痒的“平均”。
第二,块太大,噪音太多。
假设你切2000字的大块。用户问“年假”,检索回来的块里有200字讲年假,其余1800字讲加班、病假、产假。
你把1800字噪音塞给模型,它很容易跑偏。
💡核心结论:切块不是为了限制长度,是为了提高检索精度。

切块多大?500字是答案
用一段真实手册举例(约400字):
“年假政策:入职满3个月即可申请。工龄不满1年的,按月折算,每月0.5天。工龄1-3年的,每年5天……”
不同大小的效果:
| 200字 | ||
| 500字 | ||
| 1000字 | ||
| 2000字 |
500字适合90%的业务文档。结构极其规整的(如法律条文)可放宽到800字,但超过1000字,准确率明显下降。

还有个容易被忽略的参数:重叠
假设你的第500字恰好在“员工可申请”和“每年三次”中间。切完后:
块A结尾:“员工可申请”
块B开头:“每年三次年假”
用户问:“最多几次?”两块都找不到完整信息。
解决方案:让相邻的块有重叠。
块A:第1-500字
块B:第450-950字(重叠50字)
这样块B里也包含了“员工可申请”,信息就连贯了。
📌重叠推荐设置:

普通文档只需要10%-15%的轻重叠,就能保证上下文不断裂。
像法律、合同这类文本,一旦切碎关键条款就会理解错误,所以要提高到15%-20%。
代码和列表本身有天然边界,强行重叠只会引入噪音,按行切反而最稳定。

一套参数 + 一个实验
直接给参数表:
| 切块大小 | |
| 重叠大小 | |
| Top-K(召回块数) | |
| 相似度阈值 | |
| Embedding模型(中文) |
实验告诉你切块有多重要:
| 500字 + 重叠50字 + 免费BGE模型 | |
| 1500字 + 无重叠 + OpenAI最新模型 |
切块和重叠带来的提升,远大于升级模型。先花一小时把文档切好,比纠结用哪个大模型实在得多。

落地检查清单
上线前,过这6条:
☑️ 文档切成400-600字的小块
☑️ 相邻块设50字以上的重叠
☑️ 去除页眉页脚、特殊符号
☑️ 相似度阈值 ≥0.7
☑️ Top-K = 3-5
☑️ Prompt明确:“严格基于资料,没有就说不知道”
缺任何一条,你的RAG都还在“猜”而非“查”。

写在最后
上一篇聊了AI为什么太会顺着你说。
这一篇给出了具体的起点:把文档切对。
切块和重叠,听起来基础,但正是这些细节决定了RAG是“能干活”还是“看热闹”。
下一篇,聊一个更深入的问题:资料之间互相矛盾时,AI怎么判断?
欢迎关注我,一个被KPI要求做AI工具、帮别人提效30%的打工人!👇👇👇
夜雨聆风