ARTICLE · 1226341
一张Excel表,我们的RAG答错了7次
「企业开办需要带什么材料?」
AI 答得又快又稳:身份证、营业执照,3 个工作日。
前两个是对的。第三个是隔壁行的办理时限,串到这儿来了。
这是我们第 7 次问同一个问题。中间我们换过提示词、调过 top-k、加过 rerank,答案变来变去,唯一没变的就是那个「3 个工作日」。它顽固得像刻进模型里似的。
最后我们打开原始文件,找到了源头。那是一张 Excel,四列,二十几行,长得跟我每年填的报销单差不多朴素。
一、表格转文本,丢的不是内容,是关系
那张表大概长这样(已脱敏,结构示意):
我们第一版的处理特别「标准」:Excel 转成一串文本,按段落切 chunk。切完是这样一坨:
你盯着这行字看一分钟,你也不知道「5 个工作日」是给谁的。模型更不知道。
这里有个反直觉的地方:表格被拍扁成文本以后,字一个都没少,行和列的对应关系却全没了。检索阶段它照样能被召回——毕竟「企业开办」「身份证」这些关键词都在里面。可一旦进了上下文,模型拿到的是一串没有结构的词,它只能猜。最要命的是它猜错了还不知道,语气还特别肯定。
RAG 最恶心的地方就在这儿:它很少说「我不知道」,它给你一个看起来很像答案的东西。
二、同一张表,我们切了三遍
我们后来做了个笨实验:同一份数据,只改切片方式,其余全部不动,用业务方出的 50 道题测(判分由窗口经办人做,不由工程师做)。
第一种:整表一个 chunk。
关系最完整,但表一大就超长,检索粒度也太粗——问一件具体的事,把 20 多行全塞进上下文,模型自己都得挑花眼。50 题对了 20 道。
第二种:一行一个 chunk,列名塞进 metadata。
这招看着最「结构化」,我们当时觉得稳了。结果只对了 22 道,还多出一类新毛病:表里有,模型偏说「未找到相关信息」。
原因很实在:一行就几十个字,embedding 拿到的上下文太薄,向量漂得厉害,检索阶段压根没召回来。生成阶段再聪明也没用,它根本没看见。
第三种:一个完整事项一块,表头复述进正文。
把列名和这一行拼起来,写成一句人话:
单块控制在 200-300 字。50 题对了 41 道。
三轮下来:40% → 44% → 82%。
82% 不算漂亮。剩下的 18% 里,有相当一部分是文档本身就没写明白的——比如「这个证明到底要不要开」,连窗口自己人都说不清,AI 更说不清。这部分别硬凑,凑不出来。
三、四个只有踩过才信的细节
1. 表头必须写进正文,不能只写进 metadata。
上面已经说过一遍。值得再说一遍,因为这是最容易被「看起来很专业」的方案骗过去的地方。
2. 合并单元格和跨页表,先还原成「完整行」。
跨页表最阴。页与页之间一切断,第二页那几行就只剩值、没有列名,症状跟上面一模一样。我们的处理是按表头重新拼接,而不是按页切。合并单元格要展开,把「3 个工作日」这种值跟它的列名绑死,别让它裸奔。
3. 清洗只做减法,不要顺手润色。
数字、单位、否定词、「仅限」「除外」「自xx日起」,这些限定词一个字都不能为了读着顺而改掉。制度条款里每个限定词都有业务含义。
我听过一个同行的项目:有人嫌「申请材料:仅限本市户籍」读着别扭,改成「申请材料:本市户籍」,四个字,「仅限」没了。后来真有非本市户籍的市民拿着 AI 的回答跑到窗口,闹了一场不大不小的投诉。这个故事我每次给新人做培训都讲,因为它特别能说明问题——模型不会替你保守,它只会替你放大。
4. 每块都要挂元数据,而且要挂全。
文件名、版本号、生效/失效日期、密级、页码或行号、章节路径。少了这些,你没法在检索时做权限过滤,也没法在答案末尾给出「可点开核对」的引用来源。而「能不能核对」,是业务方愿不愿意用你这系统的分水岭。
四、一份可以直接抄的切片规则
最后那条最容易被砍。但我劝你守住——让工程师给自己的检索效果打分,等于让考生自己批卷子。
五、这笔账到底值不值
我们那个项目,847 份文档,洗了三周,21 天。其中表格结构化和返工就占掉 11 天。这 11 天里,模型一行代码没改,架构一个模块没动,三个人就对着表格死磕。
同期有个对照组:同样的数据,不洗直接入库,招人调了两周检索策略,准确率 40% → 51%。洗完数据,82%。
所以我的结论很粗暴:在脏数据上调参,是在给错误买单,而且这单越买越贵。
再说个更现实的账。那个项目合同额 156 万,数据清洗占掉大约三分之一的工期和人力。投标方案里「数据治理」四个字,评委看着觉得这家考虑周全。真干起来才知道,这四个字底下是几百份文档的人肉清洗,是 298 份 2019 年那台老扫描仪扫出来的 200DPI 歪脖子扫描件,是 156 份谁也说不清哪个是终稿的重复文档,是 8 份文件头坏了根本打不开的死文件。
六、别把「一键入库」当成免责声明
现在市面上不少平台宣传「拖进去就能用」。这话对干净的数字文档是成立的。真实的政企文档不是那样的。
我不反对买平台,我反对的是把平台的「一键入库」当成免责声明。出了事,平台会说你的数据有问题——它没错,确实有问题。可到了那时候,背锅的是你,不是平台。
数据治理不是上线前的准备工作。它本身就是交付物的一部分,是应该写进合同、排进工期、算进报价的那一部分。
切片决定这话是不是真的。
数据说明
本文案例数据为脱敏后的项目口径与行业经验值整理,供方法参考,不构成对任何具体企业的描述;表格与切片示例均为结构示意,不对应任何真实文件。文中比率型指标受语料类型、测试集规模与判分口径影响,跨项目不可直接横向比较。
主要参考资料:《847份文档里298份是扫描件:打败RAG的从来不是模型,是人类杂乱无章的原始数据》(夜雨聆风);《企业知识库「垃圾进垃圾出」治理:RAG 数据质量 5 步法》(环曜);《RAG 知识库数据集构建:一份从文档到高质量语料的完整工程手册》。















































































