跳到主要内容

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

查看所有标签

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

· 阅读需 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)完全视而不见。等到用户注意到时,性能下降已经持续累积数周了。