跳转到主要内容

那个在东部时间凌晨 3 点采样生产流量的评估集

阅读需 1 分钟Tian PanTian Pan

我曾合作过的一个团队有一个评估集(eval set),它在不知不觉中演变成了一项针对其批量自动化任务的调查。采样定时任务(cron)在东部时间凌晨 3 点运行,从生产日志表中抓取了 5,000 条追踪记录(traces),并将它们放入评估语料库中。排行榜看起来很干净。新的提示词(prompt)赢了 4 分。他们发布了。不到一天,支持队列里就充满了他们在回归测试中从未见过的投诉——模型现在对定价问题闪烁其词,而这发生在一个工作时间完全在评估窗口关闭后才开始的客户群体中。

评估本身对于其测量的内容并没有错。错在于它测量的是谁。在东部时间凌晨 3 点,生产集群主要由深夜批量重试、定时报告生成以及少数主要询问导航类问题的亚太地区(APAC)日间会话占据。新的提示词在这个切片上的表现确实更好。然而,这个切片仅占每周流量的 12%,而在按收入加权的流量中占比为 0%。没有人问过“这个数据集中包含什么样的用户”这个问题,因为数据集是由一个在数据仓库最空闲时运行的定时任务构建的,而“空闲”是大家唯一想到的优化采样标准。

这种失败模式并不罕见。它是从日志中构建评估集而不明确说明该评估集代表哪些人群的默认结果。定时任务很方便。非高峰时段很方便。生成的整体数据集看起来很合理。而它捕捉到的时间切片正在默默地编码那些并非出于本意的选择——关于地理位置、用户意图以及工作负载形态的选择。

采样窗口是人群过滤器

生产流量不是静止的。它至少在四个对评估至关重要的维度上发生变化:地理位置、客户细分、意图组合以及人工与自动化。在固定时间点运行的采样定时任务会从这些维度的每一个中挑选出一个点并将其冻结。

在东部时间凌晨 3 点,你采样的群体主要是亚太地区(APAC)的日间用户、大量的深夜批量任务、高度自动化的重试,并且几乎完全缺失了北美办公时间的流量。这种组合具有特定的形态:导航类查询多于咨询类查询。Token 数量偏短。延迟容忍度很高,因为没人在盯着看。拒绝敏感度几乎不重要,因为请求是例行公事的,而请求方是脚本。

如果你的真实用户主要是北美知识工作者,并在当地时间下午 2 点询问咨询类问题,那么凌晨 3 点的样本在任何重要的维度上都无法代表他们。评估会告诉你一个并非你客户的群体的真相。

这是推荐系统评估已经纠结多年的经典曝光与采样偏置(exposure-and-sampling bias)问题。最近的研究将其正式引入离线评估:采样日志交互的方式与潜在的曝光偏置相互作用,产生的评估结果可能根本无法预测在线行为。LLM 评估流水线继承了这种失败模式,却没有继承相关的文献积累。

为什么非高峰期采样看起来很安全

凌晨 3 点的定时任务并不是分析上的失误。它是三个合理的工程直觉收敛到一个错误答案的结果。

首先,数据仓库负载。采样生产日志会冲击客户分析查询所使用的表,平台团队宁愿不与早晨的仪表板负载竞争。因此,采样任务被移动到仓库最空闲的时候。

其次,日志完整性。一些团队担心午间的样本会错过来自跨区域写入的延迟到达的日志记录。深夜的定时任务为摄取流水线提供了缓冲。这确实是一个现实的考量,但解决方法应该是设置水位线(watermark),而不是选择一个避开它的时间点。

第三,评估是一个副作用项目。离线评估的第一个版本几乎总是由一名工程师在一次冲刺中构建的,而“每晚运行”是阻力最小的路径。没有人会将 v1 评估流水线设计为一个采样实验,因为在 v1 阶段,流水线甚至还不存在。

麻烦在于 v1 会固化。排行榜与仪表板挂钩。发布决策开始引用它。等到有人审计数据来源时,采样定时任务已经成了生产部署的支撑力量,而且没有人愿意主动改变方法论,因为每一次历史对比都必须重新设定基准。

时间切片到底编码了什么

当评估对其人群保持沉默时,你必须通过阅读数据集中过度代表的内容来还原它。凌晨 3 点的窗口通常过度代表了:

  • 来自早期故障的自动重试。 东部时间晚上 9 点的一个不稳定的工具调用在午夜引发了重试风暴,其长尾效应渗入了你的样本。评估集最终奖励了那些擅长处理特定失败恢复形态的模型,而这与正常使用毫无关系。
  • 亚太地区日间的导航流量。 在办公时间内使用产品的亚太地区用户。意图分布偏向于“寻找某个东西”而不是“给我建议”。在咨询类问题上表现谨慎的模型会丢分;在导航类问题上检索良好的模型会胜出。
  • 内部员工使用。 加州工程师在太平洋时间晚上 11 点测试修复程序。查询形态偏向技术性,对响应缓慢的耐心较高,且查询不代表任何外部用户。
  • 定时任务和批量消费者。 每小时准点冲击 API 的定时驱动流水线。这些具有稳定的、可脚本化的查询形态,它们会惩罚任何随机波动的模型行为。

对这些内容进行评估本身并没有错。错在将它们作为整个产品的代表进行评估。凌晨 3 点的样本误将长尾当作了主干。

隐藏了总体的排行榜故事

会员专享

余下内容仅对会员开放。

会员可读完整内容 —— 每一个公开发布的观点背后,那些框架、决策与推理的全貌。

  • 完整文章,包含未公开存档的部分
  • 可落地的工作框架,附带权衡与决策依据
  • 新文章抢先看,先于公开发布

随时取消 · 一次订阅,畅读全部

参考资料

保持联系,关注我获取更多内容

阅读需 10 分钟

评估集腐化:为什么评估分数在上升,而用户满意度在下降

评估分数在攀升,但用户投诉也在同步增长。一个基于发布周流量构建的评估集,在六个月后可能已经悄然失去了衡量产品的能力 —— 本文将介绍如何通过影子集、重采样和切片规则来保持仪表板的真实性。

insider
llm-evals
阅读需 10 分钟

不存在的单一质量指标

你的 AI 功能质量是一个分布,而非一个标量。为什么平均评估分数会将细分领域的崩溃误报为提升,以及你应该在汇报 PPT 中展示什么——细分网格、底线指标、最差案例记录——以及保持噪声指标可信度的报告节奏。

insider
ai-engineering
阅读需 9 分钟

演示成功是因为有人在看:会话长度是你的评测套件遗漏的那个维度

五轮的演示掩盖了在第二十八轮才会出现的误差累积、注意力漂移和承诺粘性。把会话长度当作一等评测维度来对待,否则你交付的可靠性数字,用户其实已经见过它的另一个版本。

insider
ai-engineering
阅读需 12 分钟

下午 3 点和凌晨 3 点的同一个 Prompt 并不是同一个 Prompt:LLM 评估中的昼夜漂移

LLM 调用的行为取决于挂钟时间 —— 批次大小、缓存状态和路由层级会随着供应商负载而变化。凌晨 2 点运行的评估是在生产环境永远不会遇到的条件下进行校准的。这里有五个实践,可以缩小非高峰期评估与高峰期现实之间的差距。

insider
ai-engineering
阅读需 10 分钟

你的评测集是一张用户早已离开的流量快照

基准测试的提升衡量的是用户早已离开的分布上的进展。本文探讨评测集陈旧、幸存者陷阱以及单一聚合指标如何掩盖无声的衰退 —— 以及你如何让评测始终紧跟流动的动态。

insider
llm-evaluation