线上回流:让真实失败喂养你的评测集
从"上线那天的想象"到"越用越准"的活水
你的评测集再用心,也只是上线那天你能想到的场景。
真实用户会用你想不到的方式提问、上传你没见过的脏文件、问你从没准备过的问题。这些才是你产品真正的战场——而它们全都躺在你的线上日志里,等着被捞出来。
这一节讲怎么建"活水":让线上的每一次失败,都变成评测集里的一条新样本。做到这一点,你的评测会越用越准;做不到,它会停在上线那天,慢慢腐烂。
医院的诊疗规范不是一次写成的——每一次误诊、每一例罕见病,都会被写进病例讨论,然后更新规范。
你的评测集就是那份规范。线上失败样本,就是病例。
四种信号:哪些线上样本值得捞
| 信号 | 怎么采 | 说明 |
|---|---|---|
| 用户显式负反馈 | 👎 按钮、"这个回答没帮到我" | 最直接,但触发率低(多数人不点,直接走人) |
| 行为信号 | 重问、换个说法再问、立刻转人工、复制走人 | 量最大——用户用脚投票 |
| 自动核验失败 | 引用核验不通过、schema 校验失败、拒答 | ap4.6/ap3.2 已经在算了,直接接过来 |
| 异常指标 | 超长响应、超高成本、超时重试 | 从 ap1.6 的流水里筛 |
第二行最容易被忽略、也最值钱:用户"换个说法再问一遍",几乎就等于说"你上一次答得不好"——而且不需要用户做任何额外动作。
三步回流管线
① 采集:在 ap1.6 的调用流水里加几个字段
row.update(
user_feedback=None, # 👍/👎,事后回填
followup_within_60s=False, # 60 秒内是否又问了相似问题(重问信号)
verify_result="通过", # 引用核验结果(ap4.6)
escalated=False, # 是否转了人工
)
② 筛选:每周跑一次,按信号打分排序
def candidate_score(row):
s = 0
if row["user_feedback"] == "down": s += 3
if row["followup_within_60s"]: s += 2
if row["verify_result"] != "通过": s += 2
if row["escalated"]: s += 3
return s
# 取 top-30 人工过一遍
③ 甄别与入库:人工看这 30 条,分四类处理
| 判定 | 处理 |
|---|---|
| 确实答错了 | ✅ 加进评测集(标好标准答案和 note) |
| 答对了但用户没看懂 | → 这是表达问题,记入"话术优化"清单,不进评测集 |
| 用户问题本身超出产品范围 | → 加进"不该答"样本(测拒答能力) |
| 是数据/文档的问题(内容过时) | → 触发 ap4.7 的知识更新,不是模型的锅 |
第二和第四类特别重要:很多团队把所有差评都当"模型不行",于是拼命调提示词——其实一半是表达问题,一半是文档过期。
三条纪律
① 脱敏后再入库。线上样本含真实用户数据。进评测集前必须脱敏:人名换代号、手机号/订单号换假值、保留结构不保留身份(ap1.5 的规矩,AP6 会展开)。
② 控制评测集的增长速度。每周加 10-20 条就够。评测集变大 = 每次跑分变贵变慢,大到跑一次要半小时,门禁就形同虚设。加新的同时淘汰过时的,保持总量稳定。
③ 新样本先"隔离观察"。新加的样本单独跑一遍,看它们的通过率——如果一批新样本全都失败,先别急着改产品,可能是标注标准需要澄清,或者这是个新场景需要产品决策(而不是技术优化)。
一个正向循环
线上失败 → 回流评测集 → 门禁挡住同类问题再次发生 → 产品变稳
↑ ↓
└────────────── 用户更愿意用,产生更多真实样本 ←──────┘
这就是 AP5 的终局:评测不再是你上线前做的一次性工作,而是产品自我改进的飞轮。
🔧 动手做:建你的回流管线(12 分钟)
- 在你的调用流水里补上四个信号字段(反馈、重问、核验结果、转人工)。
- 在前端加一个 👎 按钮(最低成本的显式反馈),点击后回填流水。
- 写一个
weekly_review.py:按打分取 top-30,输出成一个待人工过目的清单(CSV/Markdown)。 - 真的过一遍:哪怕现在只有你自己的测试数据——按四类判定分一下,体验"不是所有失败都是模型的锅"。
- 定一条日程:每周固定 30 分钟做回流(写进日历,否则永远不会做)。
✅ 做到这里你应该有:带信号字段的流水 + 一个筛选脚本 + 一次分类判定的经历 + 一个日程提醒。
为什么:🎉 AP5 完结。你现在有了完整的评测体系:评测集(5.1)→ 规则评分(5.2)→ 模型判分(5.3)→ 幻觉测量(5.4)→ 门禁(5.5)→ 回流(5.6)。
这一章不产出任何用户能看见的功能,但它决定了你后面每一次改动是进步还是自嗨。本课那三次"白改"实测(加规则没用、加步骤没用、更便宜但更差),就是它的价值证明。
下一章回到用户能看见的地方:AP6 可靠性与安全——兜底降级、提示注入攻防、内容安全、防滥用、合规底线。
一个常见退化:所有用户投诉全都塞进评测集,半年后它变成 800 条什么都有的大杂烩——跑一次要 40 分钟、成本高到没人愿意跑、分数还因为大量"标注可疑"的样本而失真。
保持它的品质:每条都要有明确的标准答案和标注理由(ap5.1);没法明确标注的,就不该进;定期清理过时的、重复的、争议未决的。评测集是精心维护的资产,不是收件箱。
我的产品是【描述】,现有日志字段【列出】。请帮我设计线上回流管线:1) 该补哪些信号字段(显式反馈/行为信号/自动核验/异常);2) 候选样本的打分排序规则;3) 人工甄别的分类标准和各自去处;4) 脱敏规则(哪些字段必须处理);5) 每周回流的操作清单(30 分钟内能做完)。
回流四件事:采集四种信号(重问信号最值钱)、按分筛 top-30、人工甄别分四类、脱敏后入库;控制增长速度,别让评测集变成垃圾桶。
🎉 AP5 完结!全课的灵魂章结束了。下一章开始为上线做准备:可靠性与安全——模型宕机怎么办、提示注入怎么防、内容安全怎么过、滥用怎么挡、合规底线在哪。
🔎 来源与核验· 1 条,点开核对
