跳到主要内容

供应商锁定深度分析:导致更换 LLM 供应商变成 6 个月工程项目的七个耦合点

· 阅读需 13 分钟
Tian Pan
Software Engineer

每一个交付 LLM 驱动功能的团队最终都会进行同样的对话:“如果我们需要更换供应商怎么办?”标准的回答——“我们只需要换一下 API 密钥”——揭示了对耦合实际存在位置的危险误解。在实践中,尝试进行供应商迁移的团队会发现,API 端点是他们最不需要担心的问题。真正的锁定隐藏在七个不同的耦合点中,每一个都能将一次“快速更换”变成一个耗时一个季度的项目。

供应商锁定深度分析:导致更换 LLM 供应商变成 6 个月工程项目的七个耦合点

迁移费用通常会消耗原始开发时间的 20–50%。那些将模型切换视为即插即用的企业团队,往往在面对损坏的输出、激增的 Token 成本以及需要数周才能诊断出的推理质量变化时束手无策。在需要迁移之前,了解这些耦合点在哪里,是受控过渡与紧急应对之间的本质区别。

1. 提示词语法和特殊 Token

最显而易见的耦合点也是最被低估的。每个供应商都开发了自己的提示词方言,而这些方言所编码的假设比格式偏好更为深刻。

OpenAI 模型对带有章节分隔符、强调标记和嵌套列表的 Markdown 结构提示词响应最好。Anthropic 的 Claude 系列在输入中使用 XML 标签划分不同部分时表现最佳。Google 的 Gemini 模型则在系统指令和多轮对话格式方面有自己的惯例。

这些并非表面上的差异。一个在一个供应商的评估套件中得分 92% 的提示词,在另一个供应商那里可能会降到 74%——这并不是因为第二个模型更差,而是因为提示词结构触发了不同的注意力模式。那些仅仅通过更改 API 端点来迁移提示词的团队会发现,每一个精心调整的提示词都需要系统性的重做。

真正的成本不在于重写提示词,而在于为每个重写的提示词重新运行整个评估套件,迭代新模型处理方式不同的边缘情况,并验证新提示词在每一个你关注的维度上都达到了同等水平。对于拥有数百个生产环境提示词的团队来说,单单这一项就可能耗时数周。

2. 工具调用模式(Schema)的差异

如果你的应用程序使用了函数调用(Function Calling)或工具使用,那么你就是针对特定供应商的模式进行构建的,而这些模式并不能直接转换。

OpenAI 使用带有 type: 'function' 包装器的 tools 数组。Anthropic 在顶层定义带有 input_schema 的工具。Google 的 Gemini 将所有内容包装在嵌套于 Tool 对象内的 FunctionDeclaration 对象中。当你观察每个供应商如何返回结果时,结构差异会进一步加剧:

  • OpenAI 将函数参数作为 JSON 字符串返回,需要 JSON.parse()
  • Anthropictool_use 内容块中直接返回解析后的对象
  • GooglefunctionCall 部分中返回解析后的对象

除了结构差异外,模式约束的处理方式也大不相同。当工具模式使用不支持的属性时,OpenAI 会抛出明确的错误。Gemini 会默默忽略诸如字符串长度或数组最小值之类的约束。Anthropic 则能优雅地处理大多数约束。研究表明,兼容层可以将跨供应商的工具调用错误率从 15% 降低到 3%——这意味着如果没有兼容层,你在迁移时将面临 5 倍的错误率增长。

模型上下文协议(Model Context Protocol, MCP)正作为一种标准出现,有望减少这种耦合。OpenAI 和 Google 都已跟随 Anthropic 采用了该协议,且 OpenAI 已宣布弃用其 Assistants API,转而支持 MCP,并计划于 2026 年中期停止服务。但目前采用尚处于早期阶段,大多数生产系统都已经固化了多年来特定于供应商的工具模式。

3. 依赖分词器(Tokenizer)的分块

每个 LLM 都使用不同的分词器——一套将文本拆分为数字 ID 的不同规则。将同一句话输入 GPT-4o 和 Claude,你会得到不同的 Token 数量、不同的分块边界和不同的成本。

GPT 模型使用在字节层面运行的字节对编码(BPE)。其他模型则使用具有不同合并规则的 WordPiece 或字符级分词。这些差异比看起来更重要,因为你的整个 RAG 流水线都是建立在分词器假设之上的。

你的分块策略——你选择的大小、重叠窗口、拆分启发式方法——都是针对特定分词器的行为进行优化的。更换供应商后,这些分块不再与新模型的 Token 边界对齐。原本在上下文中可以轻松容纳的文档现在会溢出。原本捕获了完整语义单元的分块现在会在概念中间断开。

修复方法不仅仅是更新 Token 计数器。它意味着重新对整个文档库进行分块,使用新的分块大小重新测试检索质量,并可能重新调整你的重叠策略。对于 RAG 流水线中拥有数百万文档的团队来说,这是一项重大的基础设施工程。

4. 嵌入空间不兼容性

这就是供应商锁定变得真正痛苦的地方。每个嵌入模型都会创建自己独特的向量空间——来自一个模型的 768 维向量与来自另一个模型的 768 维向量之间没有任何意义上的关联,即使它们代表的是同一个概念。

你的向量索引针对之前的坐标系进行了优化,现在却在错误的空间中进行搜索。像 HNSW 和 IVF 这样的近似最近邻算法构建了专门针对当前嵌入几何结构优化的数据结构。当几何结构发生变化时,这些结构就会变得错位,检索质量会无声无息地下降——你不会收到错误提示,只会得到更差的结果。

加载中…
References:Let's stay in touch and Follow me for more thoughts and updates