跳到主要内容

为什么你的 AI 模型总是滞后 6 个月:缩短反馈循环

· 阅读需 11 分钟
Tian Pan
Software Engineer

你的模型是基于去年的数据训练的。它在两个月前进行了内部评估,并在一个月后正式发布。当你得知用户遇到故障时,你已经落后于模型运行所需的现实世界六个月了。这种差距并非部署问题,而是反馈循环的问题。大多数团队不仅没有闭合这个循环,甚至根本没有对其进行衡量。

当模型表现不佳时,本能反应往往是归咎于模型架构或训练数据。但更深层次的问题通常在于反馈系统的延迟。从用户经历故障到该故障影响你的模型,这中间需要多长时间?大多数团队如果说实话,其实并不知情。行业分析表明,如果模型在六个月或更长时间内没有获得针对性更新,其在面对新数据分布时的错误率会上升 35%。原因并非模型本身在衰减——而是世界在前行,而模型却停滞不前。

流水线的五个阶段,每个阶段都在增加延迟

AI 产品的反馈循环在每个阶段都可能失效,且延迟会不断叠加。理解每个阶段是压缩整个周期的第一步。

阶段 1:用户遇到故障。 这种情况不断发生且隐蔽。用户重新组织查询语句、复制回复并进行大量修改、直接放弃会话、或者明天再重试。故障已经发生,只是你还不知道。

阶段 2:信号捕获。 显式反馈——如点踩按钮、评分组件、调查问卷——仅能捕获大约 1–3% 的交互。另外 97% 的有意义信号来自于行为:用户是否重组了查询(模型没理解)?他们是否复制并修改了回复(模型接近正确但有误)?他们是否提前停止了生成(模型方向跑偏了)?这些隐式信号就存在于你现在的日志中。大多数团队并没有对它们进行汇总。

阶段 3:标注与策划。 即使捕获了信号,你也需要决定它的含义。会话放弃是失败还是成功?修正操作是模型错误还是用户偏好的改变?手动标注队列可能会积压数周。即便处理了,标注者的分歧也会引入噪声——领域专家的不一致性可能会破坏下游训练。

阶段 4:训练。 拥有标注数据后,你需要进行训练。传统的批量重训会等到积累了足够的样本后再进行完整运行。这使得你的流水线偏向于频率低、规模大的更新,而非高频、有针对性的更新。团队通常会等待季度的重训周期,因为频繁训练在成本和组织运作上都显得繁琐。

阶段 5:部署。 训练完成后,你仍需评估新模型、运行安全检查、协调发布并监控上线情况。这又要增加几周时间。

每个阶段都在增加延迟。它们共同作用,将实时的用户故障流变成了季度的补丁周期。

显式反馈是少数信号

团队最容易犯的错误是过分依赖显式反馈。点踩按钮容易实现、容易衡量,也容易向利益相关者报告。但它只捕获了极小部分的可用信号。

隐式信号在大约 8% 的交互中识别出问题——其覆盖范围是仅靠显式反馈的 13 倍以上。这些信号包括:

  • 查询重组:用户第一次尝试没有得到所需结果
  • 会话放弃:用户未完成任务就离开
  • 响应截断:用户在生成结束前手动停止
  • 下游修正:用户获取输出并在使用前进行了显著修改
  • 后续查询:用户提出的追问只有在前一个回答不完整或错误时才有意义

捕获这些信号需要对产品进行比大多数团队更精细的埋点。但回报是丰厚的:你从一个只能听到 1% 受影响用户声音的反馈系统,转变为一个能听到近 10% 用户声音的系统。

挑战在于解释。快速退出会话可能意味着高效的问题解决(模型立即给出了正确的回答),也可能意味着由于挫败感而放弃(模型立即失败)。上下文至关重要。你需要能够区分这些情况的特征:页面停留时间、用户是否采取了进一步行动、是否返回、以及接下来的查询内容。

在线评估将阶段 2 压缩至零

传统的评估模式是离线的:收集测试集,运行模型,计算指标,报告结果。这引入了结构性延迟。测试集反映的是过去,评估是周期性的,而结果需要数周才能转化成行动。

在线评估则扭转了这一局面。每一个生产请求都成为了评估机会。你使用轻量级的裁判模型(Judge Model)——通常是更小、更快的 LLM,按照评分标准对质量进行打分——异步地为模型输出评分,并将这些分数直接输入监控流水线。从用户的角度来看,这实际上是零延迟开销。

影子模式(Shadow mode)部署则更进一步。候选模型接收每一个生产请求的副本,生成响应并记录,但绝不直接服务于用户。影子模型的响应会被评分,并与生产模型的响应进行对比,而不会对客户产生任何影响。当影子模型持续优于生产模型时,你就有证据自信地进行晋升发布。

这些方法让你能够持续评估而非周期性评估。你可以在几小时内(而非数周)得知模型变更是否改善了真实流量下的表现。

快速路径微调:从数月缩短至数小时

一旦你获得了信号并知道哪里出了问题,你能多快做出反应?全量重新训练是最慢的方案。虽然它能产生最好的结果,但需要数周或数月的时间。对于针对性的修正,这未免大材小用。

参数高效微调方法,如 LoRA(低秩自适应),可以显著压缩更新周期。一个基于 5,000 个特定领域样本训练的 LoRA 适配器在单个 GPU 上运行只需四到六个小时。在推理时,适配器会被合并回基座模型权重中,不增加任何延迟开销。你可以每天或每周运行一次这个周期,而不是每季度运行一次。

权衡在于覆盖范围。LoRA 对于针对性的行为修正非常有效 —— 修复某一类失败、强化某种风格、提高特定领域的准确性。当你需要广泛的能力提升或分布发生显著偏移时,它无法替代全量重新训练。可以将其视为已知失败的“快速路径”,以及结构性模型改进的“慢速路径”。

直接偏好优化 (DPO) 是另一种快速路径选择,在你拥有隐性偏好信号时特别有用。DPO 不需要显式标签,而是可以在对比对上进行训练:用户接受的响应与他们重写或纠正的响应。这让你能够从行为数据中提取训练信号,而无需标注流水线。

针对两种信号的两种速度

并非所有的反馈信号都在同一时间尺度上运行,试图让所有信号通过同一条流水线会造成人为的瓶颈。

快速信号 —— 个人交互、修正、明确的点踩 —— 应该在几分钟内更新你的评估仪表板,并在几小时内更新你的微调候选模型。这些信号虽有噪声但数量庞大。你不需要对它们进行逐一标注;跨数千次交互的统计聚合就能提供可靠的质量信号。

慢速信号 —— 综合偏好趋势、话题分布的变化、仅在大规模情况下出现的潜在失败模式 —— 需要更多的处理。单个用户询问一个你从未见过的话题是噪声;一万个用户询问该话题则是你的训练数据存在缺口的信号。慢速信号以每周或每月的频率更新你的训练数据流水线,为下一个全量重训周期提供参考。

将所有信号视为同等紧急的团队,最终会导致标注队列被低价值的个例堵塞,从而忽视了只有在大规模下才会显现的全局性模式。

连接一切的架构

闭环反馈需要将这些阶段连接成一个连续的系统,而不是一个批处理过程:

信号摄取 应该实时发生,在交互数据到达时将其写入特征存储。每一个查询、每一个响应、每一个下游用户操作都应该在发生的那一刻被捕获,而不是在一天结束时批量处理。

异步评分 使用裁判模型独立于推理路径对每个生产环境的响应进行评分。分数会累积在你的监控系统中,并在质量下降超过阈值时触发警报。

自动微调触发器 监视累积的分数,并在失败模式达到统计显著性时启动 LoRA 训练任务。你定义阈值,系统完成剩下的工作。

影子评估 在微调候选模型接触生产流量之前对其进行验证。当影子模型在足够的流量中持续优于生产模型时,自动进行晋升。

部署门控 记录晋升事件,更新你的评估基准,并重置阈值。循环重新开始。

这些组件在技术上都不罕见。挑战在于组织层面:建立持续根据信号采取行动的文化和流程,而不是按季度批处理。

标注瓶颈通常是真正的约束

能够很好地利用信号的团队通常会发现,标注才是周期陷入停滞的地方。即使有良好的隐性信号捕获和自动评分,你最终仍需要人工判断来验证失败类别、筛选训练样本并评估边缘情况。

常见的错误是将标注集中在一个小团队中,并将所有内容都交由他们处理。这会产生一个增长速度超过处理速度的队列。有两种更好的方法:

第一,对于评分标准明确的高通量、常规案例,使用自动标注器(LLM 裁判)。将人工标注员留给评分标准模糊的边缘案例和复杂失败。

第二,预先投入精力保持标注的一致性。领域专家的意见分歧往往比你预想的要大。在扩大标注规模之前建立共识标准并进行校准会议,比在事后清理不一致的标签要便宜得多。

闭环改变了你对模型质量的看法

当你的反馈周期以月为单位时,质量感觉像是你发布的模型版本的一个固定属性。当它以天为单位运行时,质量就变成了一个持续的运营指标,与服务延迟或错误率没有什么不同。

这种转变改变了你构建产品的方式。你会减少对详尽的发布前评估的投入(因为你知道在生产环境的第一周学到的东西比数月的离线测试还要多),而更多地投入到快速恢复基础设施上(因为你知道失败总会发生,而你的竞争优势在于你能多快修复它们)。

那些发布最可靠 AI 产品的团队,并不是在发布前消除了所有失败的团队。他们是那些将失败到修复之间的时间压缩到用户几乎察觉不到差距的团队。


快速反馈循环并不能消除模型债 —— 它们只是防止债务复利。目标是建立一个从生产环境中学习的速度快于生产分布偏移速度的系统。

References:Let's stay in touch and Follow me for more thoughts and updates