跳到主要内容

5 篇博文 含有标签「model-versioning」

查看所有标签

当准确率成为负债:用户如何围绕 AI 的失败模式构建工作流

· 阅读需 11 分钟
Tian Pan
Software Engineer

一个团队以 70% 的准确率发布了某个 AI 功能。十八个月过去了。用户起初抱怨,随后逐渐适应。他们学会了哪些提示短语能绕开边缘情况,知道了涉及日期的输出需要二次核查,因为 AI 有时会产生特定字段名称的幻觉,所以他们在工作流中加入了验证步骤。然后团队发布了新模型,准确率跃升至 85%。支持工单激增。投诉最多的用户,恰恰是那些最重度使用该功能的人。

这就是"准确率即产品契约"问题,而且大多数 AI 团队都是以惨痛的方式发现这一点的。

Semver 的谎言:为什么 LLM 的次要更新比重大重构更容易搞垮生产环境

· 阅读需 12 分钟
Tian Pan
Software Engineer

在 AI 工程领域流传着一个隐秘的神话:模型的一次“小幅”升级——比如 claude-x.6claude-x.7,或者 gpt-y.0gpt-y.1,甚至是按日期推进的补丁级快照更新——都应该是无缝替换的。厂商发布的更新日志里谈论着推理能力的提升、更低的延迟以及更好的工具调用。版本号轻轻跳动,没有任何迹象表明这些改动会破坏现有系统。

然后更新上线了。值班频道随即被各种警报点亮:摘要生成器莫名其妙多出了一段以前没有的话;JSON 提取器开始对以前不处理的 Unicode 字符进行转义;Agent 循环在以前只需三次调用就能完成的任务上,现在却触碰到了最大步数限制。从整体上看,评估得分似乎没什么问题,但用户可见的功能却在细微之处出了错。

你的模型更新是一次破坏性变更:你欠集成商的“行为变更日志”

· 阅读需 14 分钟
Tian Pan
Software Engineer

某家厂商在周二下午向模型别名推送了一个“小幅更新”。到了周四,四家客户公司正在进行事件响应。他们本周都没有部署代码。他们的仪表板上没有任何关于延迟、错误率或任何其他基础设施维度的指标退化。改变的是,在他们固定的别名背后的模型开始返回略有不同的句子、略有不同的 JSON 以及略有不同的拒绝——而他们的团队针对旧行为编写的每一个提示词(Prompt)现在都成了一份没人履行的合约。

这种不对称性就是问题的核心。供应商将这次发布视为一次部署:经过内部测试,通过了一些聚合评估,并在维护窗口内逐步推向 100%。而消费端将其视为一次语义化版本(semver)违规:一个依赖项在生产环境中自动升级,却没有更改其版本字符串,随后最终用户的错误报告接踵而至,主题还带着轻快的“我们这边什么都没改”。

模型升级即破坏性变更:你的部署流水线遗漏了什么

· 阅读需 14 分钟
Tian Pan
Software Engineer

当 OpenAI 在其较新的模型中弃用 max_tokens 而改用 max_completion_tokens 时,已经稳定运行了数月的应用程序开始返回 400 错误。没有任何公告触发警报,你的代码中也没有错误。模型改变了,但你的假设没有变。这是将模型升级视为破坏性变更(Breaking Change)的典型案例 —— 只不过大多数变更更加隐蔽,因此更难被发现。

基础模型的更新并不遵循与库发布相同的“社会契约”。Git 提交中没有 BREAKING CHANGE: 前缀。没有语义化版本(SemVer)的提升来告知你的 CI 流程去报错。输出格式变窄、语调偏移、JSON 结构重组、推理路径缩短 —— 下游消费者是通过逐渐恶化的用户体验和混乱的数据分析慢慢发现这些问题的,而不是通过抛出的异常。

模型升级陷阱:基础模型更新如何静默破坏生产系统

· 阅读需 11 分钟
Tian Pan
Software Engineer

你的生产系统运行正常。可用性为 99.9%。延迟处于正常水平。错误率告警为零。然后一个用户提交了一个工单:“最近的摘要变得莫名其妙地偏差。”你调取日志,一切看起来都没问题。你检查模型版本 —— 还是三个月前部署的那个。到底发生了什么变化?

是模型提供商变了。而且是悄无声息地变了。

这就是模型升级陷阱:基础模型在你不知情的情况下发生了变化,而标准的观测基础设施对这种行为偏移(behavioral drift)完全视而不见。等到用户注意到时,性能下降已经持续累积数周了。