在上篇中介绍的 RAG 评估与优化是在语料库不齐全时做的核心就是为了补充语料。可能有人会问为什么需要这么麻烦直接抓不就好了吗这个问题其实隐含了一些假设在里面。首先如果对 RAG 所需的行业背景知识很了解自然是知道要抓什么可实际上我不太懂咖啡。其次当你不知道需要什么数据的时候你自然就不知道要去哪里抓。上次评估后最明显的问题就是数据确实所以我又补充了一些文档。这里其实经过一次文档的拆分中间忘了截图保存就只能看看拆分之后的文档长啥样了而补充数据完成之后需要再次评估目的是看补充数据的数据是否有效。所以评测数据集仍然保持不变再次跑 RAG 评估。怎么跑分没变好像越改越差了不是吧~仔细一想我发现之前我只是补充了一些文档所以真实关心的应该是召回相关的指标。之前是有部分问题直接召回不到内容所以 context_relevance 提升表示我们的文档是有用的。长舒一口气之前的工作不是负作用~接着我又注意到“个别回答质量真变差了”乍看之下还真是有点害怕~。我心想“啥情况这豆子是AI 编出来的但当时我明确让他围绕已有的产品来构建的问题集啊”我仔细去数据集里找了找发现还真是有提到这款豆子。我开始思考我是怎么构建的初始语料库的怎么会无中生有呢后来我想起来了。原来在第一版的语料库中只有可售商品这个字段它来自于商品的详描。而当时我为了偷懒没有挨个去抓取真实的SKU的名字。因为这些参数在图片上我懒得打字一个个敲出来一个个核对。后来我在同事的提醒下发现可以用 DeepSeek 的免费视图模式来提取就又把SKU的名称和它对应的参数信息都补充进去了。最关键的问题是我还更新了可售SKU把那两款豆子删掉了。可能是商家曾经卖过这两款豆子现在不卖了我没察觉到~那现在就面临一个尴尬的问题。评测数据集已经不太对了。里面有实际根本不存在的问题和答案如果删掉当然可以但删掉了之后问题集的评测体系就被打乱了。所以我选择让 Agent 再次帮我生成一批评测数据集。生成的时候有个坑注意下。Agent 问了我之后我才发现它想作弊。一定不能围绕语料库来构建问题而是要围绕问题去充实你的语料库。构建语料库知识手段不是目标千万不要被 Agent 带偏最后我其实有个小技巧忘了跟大家说。在最开始构建语料库的时候。如果你行业背景知识不充分语料库在公网上有但是怕大模型乱回答用别家的产品知识来回复自己家的产品你可以在系统提示词里面强制要求如果上下文没有就回复“上下文不足无法回答”。之所以这样设计是为了方便你在评估阶段能立马就知道是缺语料而不是其他问题。最后给大家看看评估优化的结果吧~