跳到主要内容

4 篇博文 含有标签「model-deprecation」

查看所有标签

孤儿微调:基础模型废弃后如何恢复领域专业知识

· 阅读需 10 分钟
Tian Pan
Software Engineer

2024年1月4日,OpenAI 下线了 /fine-tunes 接口。每一个基于 Ada、Babbage、Curie 和 Davinci 微调的模型都停止了响应。那些花费数月在这些模型上构建生产系统的团队——精心设计的提示、标注的数据集、标签流水线——一觉醒来发现收到的是 HTTP 404。微调模型没有迁移,学到的行为没有迁移,领域专业知识就此消失。

这不是小概率事件。2024年8月,Google 彻底关闭了 PaLM API,没有任何向后兼容的宽限期。与 OpenAI 至少允许现有 GPT-3.5 微调模型继续运行(只是禁止新的训练任务)不同,Google 的关闭意味着生产推理在同一天停止。如果你的微调 PaLM 模型处于关键路径上,你就遭遇了服务中断。

双钟问题:当模型供应商的迭代节奏打乱你的路线图

· 阅读需 11 分钟
Tian Pan
Software Engineer

你的 AI 产品上有两个正在走动的时钟,且它们并不同步。模型厂商的更新节奏大约是季度性的——2026 年 2 月发布 Claude Opus 4.6,3 月发布 GPT-5.4,4 月发布 Claude Opus 4.7,一周后发布 GPT-5.5。而你的产品路线图在 1 月份就已经确定,直到 7 月才会再次评估。在这期间,你花了 8 个工程周构建的功能可能变成了一个单行 API 参数,而团队中没有人有一套流程来察觉这一点。

这不是一个预测问题。这些发布早有预兆——任何阅读变更日志(changelog)的人都能预见到。这是一个规划产出物(planning-artifact)的问题。路线图是为那个底层平台十年才更新一次的世界而发明的。现在的平台每季度更新一次,而这种产出物却没有跟上。

12 个月的 AI 功能悬崖:为什么你的生产模型在无人标记的日历上悄然衰减

· 阅读需 13 分钟
Tian Pan
Software Engineer

一个功能发布时通过率为 92%。发布演示稿(Launch deck)为此庆祝。12 个月后,同样的功能通过率降到了 78% —— 没有事件报告,没有部署失败,没有任何单一的变更可以追责,仅仅是无人负责监控的缓慢侵蚀。团队将其归咎于“幻觉”或“用户行为转变”,选了一名初级工程师去调查,并设定了一个“提高质量”的季度 OKR。OKR 没能达成。该功能上线了一个道歉对话框,告诉用户 AI 有时会犯错。六个月后,它被弃用,取而代之的是一个发布时通过率为 91% 的新版本,循环再次开始。

这并非运气不好。这是 AI 功能运行的“第二时钟”,一个在发布时没有人会在日程表上标注的时钟。传统软件也有功能衰减 —— 依赖漂移、代码库腐化、缓慢积累的半成品重构 —— 但这些衰减是发生在工程团队已经理解并预留预算的时钟上。AI 功能具备上述所有问题,此外还有一系列传统摊销假设无法建模的并行衰减源:模型弃用、厂商权重轮换、用户输入的分布偏移、不断叠加的 Prompt 补丁、评估器(Judge)校准偏移,以及不再能代表生产流量现状的评估集的悄然老化。

在下一个 AI 功能发布之前,而不是之后,必须落地的架构认知是:AI 功能具有非零的基础维护成本。功能在发布时并没有“完成”。它已经进入了一个无法逃避的维护周期,而那些没有为这个周期预留预算的团队,终将通过惨痛的方式发现这一点。

孤儿适配器难题:当你的微调模型寿命超过其基础模型时

· 阅读需 14 分钟
Tian Pan
Software Engineer

一名高级工程师在六个月前离职了。她负责管理用于路由客户支持工单的分类器适配器——这是一个基于 847 个手动标注样本训练的 32 秩 LoRA,挂载在一个还有 43 天就要停用的基础模型上。没人记得为什么从最初的 2,000 个样本中选出了这 847 个。训练数据存在一个 S3 存储桶里,由于其生命周期策略,超过一年的对象会被自动清除。她的笔记本电脑已被抹除。那个微调笔记本(notebook)中有一个单元格调用了一个预处理函数,该函数是从她个人的 dotfiles 仓库导入的,而现在那个仓库是私有的。

这就是“孤儿适配器”(Orphan Adapter)——一个比其维护者、数据甚至其所基于的基础模型寿命更长的微调模型。它存在于你的生产栈中,路由着真实的流量,而团队中没人能重新构建它。停用邮件并没有制造这场危机,它只是揭露了危机。