云镜收藏

稍后阅读

清单保存在当前浏览器,方便下次回来继续阅读。

清单还是空的

在笔记卡片或正文页点击“加入稍后阅读”即可收藏。

卷7 · 工程实战手册

7.4 推理部署与成本估算:把模型变成可运营的服务

约 5 分钟阅读
全书目录

展开本章目录与同卷章节1. 服务化架构(20 秒版)2. 容量与性能账(7.1/2.8 公式的合并应用)3. 单位成本账(本章核心,就业面试常考)4. 部署形态选择5. 生产工程细节清单(缺一样都是事故)6. 自测题7. 动手作业8. 延伸资源同卷章节7.1 显存估算速查与 OOM 排查大全7.2 训练调试案例集:十大经典翻车与处置7.3 分布式训练入门:DDP、FSDP 与 DeepSpeed7.4 推理部署与成本估算:把模型变成可运营的服务7.5 数据 pipeline 工程:把数据当代码对待7.6 AI 协作守则:驾驭代码 agent 而不被其驾驭

本章目标:2.8 讲了”怎么部署”,这一章讲”怎么像工程师一样算账”——容量规划、单位成本、自建 vs API 的盈亏平衡,以及生产服务的工程细节。学完标准:能对一个真实需求出一份”部署方案+月成本”报价单。

1. 服务化架构(20 秒版)

客户端 → API 网关(鉴权/限流/计费统计) → 推理引擎(vLLM: 批处理/KV管理) → GPU

vLLM 起的 serve 已经把后两层打包成 OpenAI 兼容接口(2.8 实操过);你要补的是网关层的思维——限流(防止一个用户打满)、按 token 计量(usage 字段入账)、监控埋点。

2. 容量与性能账(7.1/2.8 公式的合并应用)

三步:① 显存预算 = 权重 + KV cache(并发数 × 上下文 × 单 token KV);② 吞吐上限 = 并发数 × 单请求 decode 速度(受显存带宽约束,7.1 的公式);③ 压测找拐点——并发涨到某处 TPOT(每 token 延迟)开始恶化,业务按可接受延迟取工作点。

一张 4090 跑 7B bf16 的量级感(实测经验值):单流 40–60 tok/s;并发 16 时总吞吐约 600–900 tok/s(TPOT 恶化到 ~0.3s)。

3. 单位成本账(本章核心,就业面试常考)

每百万 token 成本=GPU 租金/小时×3600吞吐×3600=时租总吞吐×106\text{每百万 token 成本} = \frac{\text{GPU 租金/小时} \times 3600}{\text{吞吐} \times 3600} = \frac{\text{时租}}{\text{总吞吐}} \times 10^6

关键修正:利用率。上面的账假设 GPU 24 小时满载——真实服务有波峰波谷:

  • 4090 自建(2 元/时)、满载吞吐 700 tok/s:2 ÷ 700×3600×10⁶ ≈ 0.8 元/M token;
  • 利用率只有 10%(夜间没人用):实际 8 元/M token;
  • 对照:主流 API(Qwen/GLM 级 7–9B)约 0.2–2 元/M token——API 集团比你便宜,除非你的利用率很高或需要私有化。

结论模板(给老板/导师的版本):“日请求量 < X 时用 API(弹性、免运维);超过 X 或有隐私/定制需求时自建,盈亏平衡点在利用率 Y%“。会算这个账,你在任何团队都值钱——大模型岗位的”降本”叙事全从这里来。

4. 部署形态选择

形态适用工具
单机自用/小团队1–2 张卡,利用率低vLLM serve + Caddy/Nginx
多租户多任务一底座多 LoRAvLLM --enable-lora 动态挂载(2.6 伏笔兑现)
端侧/离线隐私/无网llama.cpp + GGUF(Ollama 一键)
API 上游不想运维直接调 Qwen/GLM/DeepSeek API

5. 生产工程细节清单(缺一样都是事故)

  1. 流式输出(SSE)——用户感知延迟的第一杠杆(TTFT 体验化);
  2. 超时与重试——生成没有”失败重试无害”的保证(重试要幂等设计);
  3. 限流:按用户/按 token 双维度(令牌桶即可);
  4. 监控四件套:吞吐、TTFT/TPOT 分位数(p50/p99)、显存水位、错误率——Prometheus + Grafana 是标配;
  5. 输入防护:max tokens 截断、special token 过滤(2.2 §4 的注入问题在服务侧防);
  6. 版本管理:模型版本与 API 版本一起打标——回滚能力比新功能重要。

6. 自测题

  1. 单位成本公式的最大误差源是什么?(利用率假设——满载 vs 实际波峰波谷差 10 倍)
  2. 什么条件自建才划算?(利用率高/隐私定制需求/有闲置卡——三占其一)
  3. 并发拐点压测测的是什么关系?(并发 ↑ → 总吞吐先升后 TPOT 恶化——工作点在延迟可接受处)
  4. 流式输出优化的是哪个指标的用户体验?(TTFT 的感知——先吐首 token)
  5. 多 LoRA 服务的价值?(一底座多任务动态挂载——几十 MB/任务 vs 14GB/任务)
  6. 给导师的部署建议为什么常是”先用 API”?(学生实验请求量低→利用率低→自建单位成本反而贵)

7. 动手作业

  1. 给你 2.8 部署的模型写一份”报价单”:假设日均 1 万次请求、每次 500 token 出 200 token 入,算 API 方案 vs 4090 自建方案的月成本(用真实 API 牌价与 2 元/时租价);
  2. 压测:并发 1/4/16/32 四档的吞吐与 TPOT 曲线(2.8 作业的完整版),标出你的工作点;
  3. 给 vLLM 前面挂一层 FastAPI 网关:限流 + usage 计量入库——一个周末的微项目,简历可写”完整服务化经验”;
  4. 挑战:Ollama 把 4bit 模型跑在本地 CPU/小显卡上,对比云端的延迟与质量——端侧路线的亲手账。

8. 延伸资源

  • vLLM 生产实践文档(serving 配置与监控页)
  • 《LLM inference cost calculator》类开源表格——行业牌价速查
  • OpenAI 兼容协议文档——网关层的事实标准