第 20 课:从失败案例出发改进 RAG
最后一篇,拿出一条答错的记录。先别想着换模型、装新框架,把三个问题写下来:错在哪里?准备改什么?怎样知道改好了?能回答这三句,前面的学习就用上了。
留着原来的结果,才有得比较
固定资料版本、十题、候选方法、提示词和评分标准,保存修改前的输出。这份基线让你能回头比较。别先删难题、修答案,再称效果提升。人工模拟就写人工模拟,结论跟实际做过的事一致。
把失败放回它发生的环节:原文缺事实就补来源,切分丢条件就修片段,没搜到关键段就查检索,搜到了仍答错就查证据使用。一次先动一个地方,比较才说得清楚。
修当前规则,也要照顾历史问题
假设第一题用了 E 的旧上限。你打算保留 B、E 的版本信息,并要求按适用范围回答。修改前先写预期:“当前题引用 B,历史题仍能引用 E。”然后复测第一题与第八题,看看预期有没有发生。
如果只看当前题,删除所有旧资料似乎也能修好;一测历史比较,就发现损失。修复失败题之外,原来答对的题也要重新检查,这就是回归检查。
日期题缺 D,先确保候选包含 A、D;罚金题编金额,检查未知处理。原因不同,改动也不同。不要为了同时修三题,把模型、提示词、检索全换一遍,最后不知道哪一步起作用。
总分之外,留下没修好的那几题
记录修改前后通过数、题数、具体失败和新增问题,再试两道没参与修改的同义题。整体通过率上升,资料外问题却仍在猜金额,就说明还有重要缺陷。小测试只能支持它实际测到的范围。
没有收益的复杂改动可以撤回。目标是让某种失败少发生,并能解释为什么;组件越来越多,本身不是进步的证据。
留下一份你能讲清楚的成果
把资料、十题、提示词、原始记录、逐题评分和一次改进放在一起。选一条失败,写“现象、原因依据、修改、复测结果”,区分自己的猜想和已经验证的事。用三分钟讲给别人听,看他能不能跟着找到证据。
一个够用的结课练习
选日期题缺 D:保存原候选,补入 D,核对比较答案,再重做十题。如果是人工补入,就写明这是流程模拟,没有证明自动搜索已改善。你要展示的是完整判断过程,而不是一张看起来漂亮的成绩表。
想继续动手,可以带着这套题试一个无代码知识库,或者学 Python 做最小流程。工具可以以后再选;现在你已经知道该拿什么问题去检验它。
继续阅读:Microsoft: RAG LLM evaluation phase
← 上一篇 · 学习计划 · 练习用的虚构图书馆资料