Skip to main content

数据闭环怎么接上

一个 AI 功能上线之后,它的质量就不再由发布那一次决定了——而是由"上线之后有没有东西在持续喂它"决定。没有闭环的系统,第 100 天和第 1 天一样笨。

而大多数团队的实际情况是:日志在采,看板在做,但中间少了一环——没人知道采集来的信号该变成什么。于是线上一堆点踩数据躺在表里,下一个版本还是靠拍脑袋改提示词。

1 采集信号点踩、重问、转人工、取消2 归因到环节检索漏、切片错、还是生成错3 转化成资产评测用例、知识补丁、样本4 验证并上线重跑门禁,再小流量对照转起来才算闭环里最容易被跳过的是第 2 步:不归因,采集来的数据就只是数据。
图:四段闭环——采集、归因、转化、验证

1. 采集:先想清楚哪些信号有用​

不是所有用户行为都值得记。按信息量排:

强信号(直接表明结果不好):点踩、转人工、投诉、明确表示"你答错了"。这些数量少但确定性高,是最该优先接入的。

弱信号(间接推断):立刻重问同一个问题、把问题改写后重问、生成中途点停止、答复停留时间极短就离开、复制了答复(这个其实偏正面)。这些量大但噪声高,适合用来找"哪些问题类型体验差",不适合逐条当失败案例。

隐式信号(需要对比才能看):拒答率、引用覆盖率、检索空结果率、单轮平均步骤数。这些不来自用户动作,来自系统自身指标,但往往最早暴露问题。

采集时有一条硬要求:每一条信号都要能关联回那次请求的 trace。只有点踩没有 trace,你只知道"这条不好",不知道是检索没找到还是生成写错了——后面所有环节都做不了。埋点怎么设计见《给大模型链路装仪表》。

隐私侧也有两个约束:留存期要设,不能永久存;正文默认不落全量,需要时按采样保存并脱敏。用户数据被用来改进系统这件事本身,通常在隐私政策里是要写明的。

2. 归因:这一步决定了数据有没有用​

闭环里最常被跳过的是归因,而它恰恰是唯一把"数据"变成"结论"的一步。

一次不好的答复,可能的环节只有几类,判据都是可从 trace 里读出来的:

召回漏     召回集合里根本没有正确答案所在的切片
切片切断 相关切片召回了,但答案跨在切片的边界上
排序错 正确答案在召回集合里,但排得太靠后被截断
生成错 上下文里有正确答案,模型没用或者用错了
理解错 用户意图和系统理解的不一样(问题本身有歧义)
拒答不当 该答的拒了,或者不该答的硬答了

前三类是检索问题,第四类是模型或提示词问题,第五类是产品设计问题,第六类是阈值问题。它们的修法完全不同。

归因可以自动化一部分:召回集合里有没有正确答案、正确答案排第几,这些能用代码判。剩下的(生成错还是理解错)需要人工或模型辅助,通常靠抽样。

有一条经验值得记住:归因错误比不归因更糟。把所有失败都记成"模型不行",然后拼命调提示词,实际问题是切片切断——这时候调提示词不但没用,还会让团队得出"调提示词没用"的错误结论。

3. 转化:三种产出,别只做一种​

归因之后,一条失败样本可以变成三种资产,而多数团队只做了第一种:

评测集用例。 把这条问题连同期望答案加进回归集,让它以后不再退步。这是最直接的产出,做法见《评测集怎么变成门禁》。

知识库补丁。 如果问题是召回漏或文档过期,真正的修法是补文档、改切片、调同步——而不是加评测用例。用例只能防止退步,不能补上缺失的知识。

提示词或模型样本。 如果问题是生成错或理解错,这条样本可以进提示词的 few-shot 示例,或者积累成微调数据。

三者的优先级通常是知识补丁 > 提示词样本 > 评测用例:先补上缺的知识,再改表述方式,最后才是锁住不退步。反过来做(先加一堆用例)会得到一条漂亮的通过率曲线和一个仍然答不对的系统。

4. 验证:改完要证明变好了​

改了之后要能回答两件事:这批用例过了吗,以及线上真的变好了吗。

前者是离线门禁,跑同一批评测集,比对基线。注意要按类别分开看——总分会把单个类别的崩塌平均掉,这一点在《RAG 评测指标怎么选》里反复强调过。

后者是小流量对照:改完不要直接全量,按《灰度与 A/B 怎么分》走一遍。特别是"补了一批文档"这类改动,离线指标会明显变好,但线上可能因为引入了新的干扰项而持平——只有线上数据能告诉你这个。

5. 三个人工侧的入口​

闭环不能全自动,有三处必须留人工接口:

人工修正知识。 客服或运营发现答案错了,应当能直接提交正确的说法,走审核后进入知识库。这一条链路的体验直接决定闭环跑不跑得动——如果提交一次要走三天审批,大家就不会提交(具体设计见《反馈回流与人工转接》)。

人工标注归因。 抽样一批失败案例,人工标上属于哪一类。这批标注有两个用途:训练自动归因的规则,以及校准你用来做判断的模型裁判。

人工审核补丁。 知识补丁和提示词改动都要有人看一眼。自动把线上反馈写进知识库是很危险的——用户不满意不代表用户是对的。

6. 三个失败模式​

只采不用。 最常见。看板上有十几个指标,每周开会看一遍,然后什么都没变。判据很简单:上一次因为线上数据改了东西,是什么时候? 说不上来,闭环就是断的。

数据集腐烂。 评测集是资产,也会烂。三种典型腐坏方式:用例泄漏进了训练数据或提示词、用例分布和真实流量脱节、每次出 bug 就加一条于是渐渐只测去年的 bug。数据集要定期清理和重采样,这一点《Agent 怎么评测》里也提过。

闭环太慢。 从发现问题到修复上线要两个月,用户早就流失了,而且你无法验证这次修复到底有没有用(因为流量分布已经变了)。闭环的速度应当按天或周计,不是按季度。慢闭环等于没有闭环。

7. 别把微调当第一选择​

线上攒了一批高质量样本之后,很自然的想法是拿去微调。多数情况下这不是最优顺序:

微调解决的是"格式与风格",不是"知识"。 模型不知道你们最新的退货政策,给它喂一百条相关问答,它仍然可能在下次问到边界情况时编一个。知识缺失要靠检索补,不靠微调——这一点《微调解决什么》讲得更细。

微调会让迭代变慢。 每改一次要重新训练、重新评测、重新部署,而改提示词或补文档是分钟级的。在问题分布还在快速变化的阶段(也就是刚上线那几个月),慢迭代是致命的。

微调会固化一批数据。 今天的高质量样本,半年后可能已经不符合新政策。微调进去的知识很难单独摘出来。

合理的顺序是:先补知识、再调提示词、再上缓存与路由优化,最后才考虑微调。微调是当格式稳定性和成本都成了瓶颈时的选项,不是质量问题的首选解。

8. 一个最小可跑的版本​

不用一上来就建平台。四件事做完,闭环就转起来了:

  1. 在答复上放一个"有没有帮到你",把结果连 trace ID 一起存下来
  2. 每周抽 20 条负反馈,人工标上属于哪一类
  3. 按类别分头修:补文档的补文档、改提示词的改提示词,同时把这些问题加进评测集
  4. 下次发布时跑一遍评测集,看这批用例有没有过

一周半天的工作量。它的价值不在于规模,在于让"下一个版本改什么"这个问题有据可依——而不是靠谁在会上声音大。