跳到主要内容

15 篇博文 含有标签「llm-evals」

查看所有标签

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

· 阅读需 13 分钟
Tian Pan
Software Engineer

评估套件在凌晨 2 点运行。流量很低。缓存是冷的,但队列是空的。供应商的连续批处理程序有空闲插槽,并将以接近其 TTFT(首 Token 延迟)底线的水平处理每个请求。延迟分布很紧凑,评测模型分数稳定,仪表盘显示一片绿色。团队发布上线。

六个小时后,太平洋时间上午 8 点,同样的 Prompt 在美国早高峰期间进入生产环境。p95 延迟是评估报告的 2.4 倍。相当一部分请求从一个供应商那里收到了 529 错误,并回退到另一个供应商的较小路由层级。流式传输的节奏更加断断续续。评测模型(当天晚上对生产环境追踪样本进行重新运行)给出的中位数得分比凌晨 2 点给出的相同 Prompt 的得分低了半分。代码库没有变化。Prompt 没有变化。只是挂钟时间变了。

必须意识到的架构真相是:LLM 调用不是其输入 Token 的纯函数。它是一个随机分布式系统调用,其输入包括挂钟时间、供应商集群的负载、Prompt 缓存的状态、当前解码批次的大小,以及供应商负载均衡器在你的请求到达的那一毫秒所做出的路由决策。在凌晨 2 点运行评估的团队,是在一种用户永远无法体验到的条件下校准仪器。

用户侧概念漂移:当你的提示词依然奏效,但用户已经变了

· 阅读需 11 分钟
Tian Pan
Software Engineer

大多数团队都在契约的错误一端设置了漂移监控(drift monitoring)。他们盯着模型——当供应商发布新的 checkpoint 时发生的性能偏移、提示词重写后的输出分布变化,或是预示着安全过滤器重新调整的拒绝率激增。仪表板非常详尽,告警已接入 PagerDuty,团队也准备好了针对“模型变了”的运维手册。然而,当模型没变而仪表板依然报红时,这些都无济于事,因为真正发生偏移的是你的用户。

用户侧概念漂移是几乎所有评估流水线(eval pipeline)都会忽略的一种问题。你的提示词、模型和工具与发布当天完全一致。你的黄金测试集(golden test set)依然保持 91% 的通过率。但在第一周达到 91% 的提示词,在第三十周的实际效果可能只有 78%,因为底层的输入分布已经发生了变化——用户了解了产品并改变了提问方式、词汇发生了演变、出现了季节性的任务类型、竞争对手重新定义了品类,或者某个热门帖子教给用户一种表达相同意图的新方式。模型和提示词稳住了,契约也稳住了,但契约所针对的那个世界变了。

演示循环偏见:你的开发流程如何悄然演变为针对“有魅力的失败”进行优化

· 阅读需 12 分钟
Tian Pan
Software Engineer

每个 AI 产品团队都会有一种特定的会议,通常发生在周四。有人共享屏幕,在 notebook 里输入一个 prompt,然后运行三四个例子。房间里的人反应热烈。大家惊叹“哇”。有人截图发到 Slack。决策就这样做出了——上线、更换模型、调整 temperature。没有人记录失败率,因为根本没人去衡量它。

这就是演示循环(demo loop),它带有一种几乎没有团队意识到的结构性偏见:它筛选的不是最佳输出,而是最“易读”的输出。几周或几个月下来,你的 prompt 不断演进,最终生成的是那些能“在会议中镇住场面”的答案——自信、流利、格式整齐、切中主题。至于它们是否正确,则是另一个变量,而你的流程并没有衡量这个变量。

其结果就是我所说的“有魅力的失败”(charismatic failure):输出结果在某些方面是错误的,但由于选择压力,你的演示循环已经被训练得会自动忽略这些错误。