跳到主要内容

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

· 阅读需 11 分钟
Tian Pan
Software Engineer

我曾合作过的一个团队有一个评估集(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 点的样本误将长尾当作了主干。

隐藏了总体的排行榜故事

加载中…
References:Let's stay in touch and Follow me for more thoughts and updates