跳转到主要内容

模型迁移指南:如何在不冻结功能开发的情况下更换基础模型

阅读需 2 分钟Tian PanTian Pan

每个生产环境中的 LLM 系统都会面临模型迁移。供应商发布了新版本。你需要降低成本。竞争对手提供了更好的延迟。监管要求需要更换供应商。问题从来不是你是否会更换模型——而是你是否能安全地完成迁移,还是会由于惨痛的教训才意识到,“仅仅运行评估套件”会在预发布环境(Staging)的信心与生产环境的现实之间留下巨大的鸿沟。

大多数团队将模型迁移视为库升级:更换依赖项、运行测试、然后发布。这对于确定性软件有效。但对于概率性系统,这种方式会遭遇灾难性的失败。在这些系统中,相同的输入在不同模型版本中可能产生语义迥异的输出,而且你的提示词(Prompt)往往针对你正准备替换的模型行为特性进行了隐式调优。

为什么模型迁移与软件升级截然不同

当你升级数据库驱动程序时,契约是明确的:同样的查询,同样的结果。LLM 迁移则从三个互相关联的维度打破了这一假设。

提示词与模型的共同适应(Prompt-model co-adaptation)。 你的提示词是随着当前模型一起演进的。每当工程师微调系统提示词以修复边缘情况时,他们其实是在隐式地将该模型的理解风格编码到提示词中。一个在 GPT-4 上能稳定产生结构化 JSON 的提示词,在 Claude 上可能会产生被 Markdown 包裹的 JSON,或者在 Gemini 上添加不必要的评论。这些并不是新模型的 bug —— 它们是为旧模型优化后留下的痕迹。

行为表面积(Behavioral surface area)。 模型不仅仅是在你的评估集上的准确率。它还包括它如何处理歧义、如何果断地拒绝边缘情况、在模式(Schema)未完全指定时如何格式化输出,以及它如何响应对抗性输入。两个在基准测试中得分相同的模型,在 15% 不符合评估分布的生产流量中,表现可能完全不同。

下游耦合。 你的后处理代码、护栏(Guardrails)、输出解析器 —— 它们都学会了期待当前模型的特定模式。一个用三个反引号包裹 JSON、或者用单词拼写数字而不是数字、或者在结构化响应前添加前导语的模型,会以单元测试从未预料到的方式破坏下游系统。

阴影期:切换前进行双写

模型迁移中唯一最重要的技术是阴影部署期(Shadow deployment period)。在真实的生产流量上运行新模型,但将其响应返回给用户。记录一切。对比一切。只有当差异(Delta)被理解且在可接受范围内时,才进行切换。

以下是其实施结构:

第一阶段:并行执行(1-2 周)。 将每个生产请求的副本路由到新模型。使用关联 ID 存储两者的响应。用户只看到现有模型的响应。这会增加你的推理成本,但这是你能买到的最便宜的保险。

第二阶段:自动化对比。 构建超越字符串匹配的对比流水线。你需要旧输出与新输出之间的语义相似度评分、结构一致性检查(新模型的 JSON 是否能正确解析?),以及行为分类(新模型是否拒绝了旧模型处理过的请求,反之亦然?)。

第三阶段:差异分类。 并非所有差异都是退化。新模型在某些输入上可能会产生更好的答案。目标不是零差异 —— 而是零令人惊讶的差异。将差异分为:

  • 改进(Improvements):新模型明显更好
  • 中性变体(Neutral variants):语义等价,表述不同
  • 退化(Regressions):新模型在旧模型成功的地方失败了
  • 新行为(Novel behaviors):新模型执行了既非预期也未被评估覆盖的操作

“新行为”类别是最棘手的。这些是你的评估套件从未预料到的情况,因为旧模型从未触发过它们。

提示词转换是工程问题,而非查找替换

当团队在不同的模型系列之间迁移时 —— 例如,从 OpenAI 到 Anthropic,或者从专有模型到开源模型 —— 提示词层需要真正的重新工程化。每个模型系列对于指令结构、上下文界定以及输出格式规范都有不同的偏好。

OpenAI 模型对带有章节分隔符的 Markdown 格式提示词响应良好。Claude 更喜欢使用 XML 标签来分隔指令和上下文。Gemini 则强调明确的约束放置。这些并不是表面的差异 —— 它们影响着模型遵循复杂多步指令的可靠性。

实际的迁移模式:

  1. 提取意图:从每个提示词中提取意图。这个提示词实际想要实现的目标是什么?剥离模型特定的格式,写下核心要求。
  2. 针对目标模型重新表述:使用目标模型偏好的结构约定。这通常意味着重写,而不是翻译。
  3. 先在最困难的案例上进行测试:不要从理想路径(Happy path)开始。先处理那些在旧模型上需要最多迭代才能搞定的提示词 —— 这些最容易出问题。
  4. 保留逃生舱口:如果你的旧提示词有处理边缘情况的特定指令(“如果用户询问 X,则回答 Y”),验证这些仍然能被正确触发。边缘情况的处理是模型特定调优最集中的地方。

一个常见的错误是构建一个旨在“规范化”跨供应商提示词的抽象层。这听起来很优雅,但在各处的表现都平平。最好的提示词是特定于模型的。接受为每个模型维护提示词变体的成本,以换取每个模型的可靠性。

嵌入迁移:没人预留预算的重索引问题

如果你的系统使用了嵌入(Embedding)——无论是用于 RAG、语义搜索还是分类——模型迁移都会引发第二次迁移,而且往往规模更大:你的整个向量索引将变得不兼容。新的嵌入模型会在不同的语义空间中生成向量。你不能在同一个索引中混合使用新旧嵌入,并指望获得有意义的相似度评分。

会员专享

余下内容仅对会员开放。

会员可读完整内容 —— 每一个公开发布的观点背后,那些框架、决策与推理的全貌。

  • 完整文章,包含未公开存档的部分
  • 可落地的工作框架,附带权衡与决策依据
  • 新文章抢先看,先于公开发布

随时取消 · 一次订阅,畅读全部

参考资料

保持联系,关注我获取更多内容

阅读需 11 分钟

季度模型迁移:将其变成日程安排,而非消防演习

基础模型提供商退役模型的节奏往往不在你团队的计划之内。将每次迁移视为一次性项目,意味着每年要支付三到四次相同的设置成本。相反,应该进行季度演练——指定负责人 (DRI)、候选模型、回归测试重跑、运行手册更新——这样当下一次弃用邮件寄达时,它只是团队既定节奏中的一部分。

insider
llm-ops
阅读需 8 分钟

模型下线悬崖:当供应商淘汰你产品依赖的模型时会发生什么

强制模型迁移暴露了生产 AI 系统中的隐藏依赖。一份关于回归测试框架、金丝雀发布和构建模型可替换系统的实用指南。

insider
llm-ops
阅读需 9 分钟

模型迁移的双重账单:被忽视的评测重锚税

更换基础模型会悄无声息地使你的评测基准失效——人工锚定的评分、LLM 裁判、快照以及团队直觉都需要重新锚定,而由此产生的人工成本通常比节省的 token 费用更高。

insider
evals
阅读需 11 分钟

按客户定制的提示词分支:为什么你的下一次模型迁移是 47 次迁移

针对每个客户的系统提示词定制会在不知不觉中累积,直到模型迁移那一天,单一供应商的版本弃用演变成了 47 个独立的重新验证任务。本文探讨了能够防止这种情况的“基础加覆盖”架构和审批规范。

insider
prompt-engineering
阅读需 13 分钟

模型弃用跑步机:在收到停用通知邮件之前必须建立的规范

供应商的停用通知邮件通常只有 60 天的倒计时。要在邮件寄达之前(而非之后)建立起注册表、日程表、n+1 评估和合同条款,让每一次迁移都变成机械化的常规工作。

llm-ops
model-migration