调用云端 API 和私有化部署开源模型,怎么选?

进阶对比场景题约 4 分钟读完

一句话回答

核心差别在数据边界、效果、成本结构和运维责任。云端 API 按 token 付费、没有固定成本、上手快,能用上闭源模型,但数据要发给供应商,价格、限流和模型下线也不由自己决定。自部署开放权重的模型,数据不出自己的环境、可以深度定制,但要承担 GPU 的固定成本和整套运维,调用量小时单位成本反而更高。常见做法是先用 API 验证需求,调用量大且稳定、或者有合规要求时再考虑自部署,也可以按数据敏感度和任务类型混合使用。

详细解析

对比

维度 云端 API 自部署开放权重的模型
数据安全和合规 数据发给供应商,要看它的数据使用和留存政策、数据存放的地区 数据留在自己的环境里,容易满足"数据不出内网、不出境"的要求
效果 可以用闭源模型,选择多 只能用开放权重的模型,但可以针对自己的任务微调
成本结构 按 token 付费,和调用量成正比,没有固定成本 GPU 采购或租用、机房、运维人力是固定成本,算力用满之前边际成本很低
运维 几乎为零 推理框架、扩缩容、监控、故障处理、模型升级都要自己做
延迟 受公网、供应商负载和限流影响 可以和业务部署在同一个机房;高峰时受限于自己的算力
可定制性 部分供应商提供微调,选项有限 全量微调、LoRA、量化、修改解码策略都可以
供应商依赖 价格调整、模型下线、限流策略都由供应商决定 模型版本自己控制,但依赖开源社区的更新

效果没有通用的结论,要在自己的任务上用评测集对比(见大模型应用怎么做评测)。

成本和调用量的关系

文本
API 月成本    = 月 token 量 × 单价                 (随调用量线性增长)
自部署月成本  = GPU 费用 + 机房和运维人力的分摊     (算力用满之前基本固定,之后按台阶增加)
盈亏平衡点:月 token 量 × 单价 = 自部署月成本

举个例子,下面的数字都是假设值:API 的综合单价为每百万 token 5 元,自部署每月的固定成本为 3 万元,盈亏平衡点就是每月 6000 个百万 token,也就是 60 亿 token。低于这个量,用 API 更便宜。

实际比较时还要考虑:

  • 利用率:GPU 要按峰值配置,流量有波峰波谷时,平均利用率更低。同样的机器,跑满和只用一半,单位 token 的成本差一倍
  • 隐性成本:运维和算法人力、模型评测和升级、故障时的业务损失
  • 算力上限:量继续增长,自部署要加机器,成本是阶梯式上升的

常见做法

  1. 先用 API 验证:需求和效果还没确定时,不值得先投入 GPU 和运维
  2. 按数据敏感度分流:敏感数据走私有化部署的模型,一般请求走 API
  3. 按任务分流:分类、抽取、Embedding 这类简单高频的任务用自部署的小模型,复杂任务用 API 上的大模型
  4. 中间方案:云厂商托管的模型服务,可以选择数据所在的区域、签企业数据协议,又不用自己运维 GPU
  5. 保留切换能力:业务代码只依赖内部统一的接口,通过网关接入不同来源的模型(见设计一个大模型网关)

面试官可能追问

自部署就一定安全吗?

不一定。数据不出内网,只解决了"数据发给第三方"的问题,访问控制、日志脱敏、网络隔离照样要做。模型文件本身也有供应链风险:一些基于 pickle 的权重格式在加载时可以执行任意代码,要从可信的来源下载,优先用 safetensors 这类只存数据的格式。

自部署需要多少 GPU,怎么估算?

分两步。显存决定一张卡放不放得下:权重加上 KV Cache,按目标并发数和上下文长度估算(见部署 7B 模型需要多少显存)。吞吐决定需要几张卡:用推理框架在目标硬件上压测,测出满足延迟要求时每张卡能承受多少并发,再按峰值流量加上冗余,算出卡数。

用 API 时,怎么降低对单一供应商的依赖?

业务代码不直接依赖某一家 SDK 的数据格式,通过适配层或网关统一接口;准备一个备用模型,并用评测集验证过它的效果;Prompt 不要过度依赖某个模型的特殊行为。故障时的切换做法见限流、重试和降级。

易错点

  • 只比较 GPU 的价格和 API 的单价,忽略了利用率和运维人力
  • 以为开源模型免费,自部署就一定省钱:模型免费,算力和人力不免费
  • 以为自部署的数据就一定安全
  • 选型只看公开的排行榜,不在自己的任务上评测

AI 模拟面试官

用自己的话回答,AI 对照参考答案打分、指出遗漏,再追问,最多 3 轮

登录后就可以和 AI 面试官对练,面试记录也会保存下来。登录

这道题你掌握了吗?

选一个最接近的状态,没掌握的题会出现在"我的进度 · 待复习"里。

学习记录暂存在本机浏览器。登录后自动同步到账号,换设备也能看到。