«

学习笔记-AIGC全栈认知与落地(4)

排骨非人 发布于 阅读:20 技术学习


第4章 · 大模型推理加速与服务化落地


开场:从"训完了"到"能用"之间的鸿沟

算法团队发来消息:"模型训完了!效果评测很好,明天给你看Demo。"

Demo确实惊艳。你开始兴奋地盘算上线时间表。然后,现实的问题接踵而至:

这就是"训完"和"能用"之间的真实鸿沟。

训练是花三年读博,推理是每天接诊看病。 读博只需要图书馆和时间,你可以一个人闷头学。接诊需要诊室、护士、挂号系统、排队管理、急诊分流——这完全是另一套体系,另一种工程思维。

这一章,我们就讲这套"接诊体系"。

我记得第一次和推理优化团队开会,他们说"TTFT现在P99是4.2s,需要压到1s以下"。我当时心里想:TTFT是什么?P99又是什么?这些数字对产品有什么影响?那次会我基本是个听众。后来我才发现,这些指标不只是技术数字——它们直接决定了你的产品在用户面前的体验是"流畅对话"还是"等待焦虑"。推理层的性能指标,是产品架构师必须能读懂的语言。


4.1 训练 vs 推理:两件完全不同的事

在第3章我们讲了"怎么造模型"。很多人会直觉地认为:训练是"难"的部分,推理只是"跑一下"。

错。它们面对的是完全不同的工程挑战。

【图4-1:训练vs推理核心差异对比】

维度 训练 推理
频率 做一次(或偶尔微调) 7×24小时持续运行
批量 超大batch(数千样本/批) 小batch(1-几十个请求)
延迟要求 不在乎(慢就等着) 极在乎(用户在等)
核心指标 loss能不能降下去 TTFT、TPS、QPS
瓶颈 计算量(算力受限) 显存带宽(IO受限)
硬件选择 最强算力(H100) 性价比优先(可以用L40S/A10)
故障影响 重启续训就行 用户直接感知服务中断
资源模式 突发性(训完就释放) 持续性(必须always-on)

一个关键洞察:训练的瓶颈是算力(计算密集),推理的瓶颈往往是显存带宽(访存密集)。

这意味着:训练时GPU的计算核心在满负荷工作,但推理时GPU的计算核心可能只在"等数据从显存搬过来"——这就是为什么推理优化的很多技术都在解决"怎么更高效地访问显存"这个问题。

这个区别对产品架构师的实际影响是:评估推理系统时,光看GPU型号不够——还要看显存带宽。 一块新型号GPU的算力可能是老型号的2倍,但如果显存带宽没有相应提升,推理速度的实际提升可能只有30%。这也解释了为什么训练和推理可以用不同类型的GPU——H100是训练王者,但A10在推理性价比上可能更合适。


4.2 推理的不可能三角:延迟、吞吐、成本

做推理优化时,你会很快撞上一个根本性的约束——三个指标不可能同时最优:

【图4-2:推理不可能三角】

延迟(Latency)——用户体验的命门

两个关键指标:

用户的直觉是:

吞吐(Throughput)——系统容量的天花板

这直接决定了"你需要多少台GPU服务器"。

成本(Cost)——商业模式的底线

不可能三角的取舍

你的选择 延迟 吞吐 成本 适合场景
大模型 + 多副本 ✅快 ✅高 ❌贵 高端AI产品(不差钱)
大模型 + 少副本 ❌慢 ❌低 ✅省 离线/批量处理
小模型 + 量化 ✅快 ✅高 ✅省 简单任务(分类/提取)
大模型 + 量化 ✅较快 ✅中 ✅较省 大多数生产场景的折中

产品架构师的核心判断:你的场景对哪个指标最敏感?

先想清楚优先级,再选技术方案——而不是反过来。


4.3 推理加速:五项关键技术

过去两年,推理优化是AI工程领域进展最快的方向之一。你不需要能实现这些技术,但需要理解每项技术"解决什么问题""有什么代价"——这是和算法/Infra团队沟通的基础语言。

技术一:KV Cache——不要重复算已经算过的

问题:在对话中,模型每生成一个新token时,需要回看整段上文。如果每次都重新计算所有上文的Attention,计算量会极其浪费。

解决方案:把之前计算过的Key和Value矩阵缓存起来,下一步直接复用。

类比:考试时可以翻前面的草稿纸。你在前面步骤算出了中间结果,不用每次重新算——直接翻出来看一眼就行。

第1个token生成时:计算全部上文的K,V → 缓存
第2个token生成时:复用缓存的K,V + 只计算新增的部分
第3个token生成时:同上
... 
→ 每步只做增量计算,而不是全量重算

代价:KV Cache占显存。对话越长、并发越多,Cache越大。一个128K上下文的长对话,KV Cache可能吃掉几十GB显存——和模型本身一样大。

产品含义:长对话比短对话贵,不只是因为token多——还因为KV Cache吃显存,限制了并发能力。

这是我曾经踩过的一个真实的坑:我们做一个客服场景,发现随着对话轮数增加,系统的并发能力在下降——而不是保持稳定。排查了很久才发现,是KV Cache把显存越吃越多,导致同时能服务的用户数越来越少。解法是设置对话轮数上限,超过就自动总结+清空历史,但这个trade-off需要在产品层面决定——不是纯技术问题。

*【图4-3:KV Cache工作原理示意】**


技术二:量化(Quantization)——给模型"瘦身"

问题:模型参数默认用FP16(半精度浮点数,每个参数2字节)存储。一个70B模型需要140GB显存——2块H100才装得下。

解决方案:用更少的位数来表示每个参数。FP16→INT8→INT4,精度递减但空间大幅缩小。

类比:高清照片压缩成JPEG。文件变小了,画质会有一点点损失,但日常使用看不出区别。只有极端情况(放大看细节)才能发现差异。

【图4-4:量化精度对比】

精度 每参数字节 70B模型显存 推理速度 效果损失 适用场景
FP16 2字节 140GB 基准 训练/高精度推理
INT8 1字节 70GB ~1.5-2x 极小(<1%) 生产推理首选
INT4 0.5字节 35GB ~2-3x 小(1-3%) 成本敏感场景

产品决策


技术三:连续批处理(Continuous Batching)——拼车思维

问题:如果每个用户请求都独占GPU直到完成,GPU利用率极低——因为不同请求的生成长度不同,短的请求完了GPU就空着。

解决方案:不等一批请求全部完成再接新的,而是动态地"来一个接一个"。完成的请求离开batch,新的请求随时加入。

类比:传统batch = 旅游大巴(必须凑满一车才走)。连续batch = 顺风车/拼车(有人上有人下,车一直在跑)。

效果:GPU利用率从30-40%提升到70-80%,相当于同样的硬件能服务2倍以上的用户。

踩坑提醒:连续批处理虽然大幅提升了GPU利用率,但它有一个副作用——延迟方差变大了。以前每个请求独立处理,延迟稳定;连续batch之后,你的请求可能和一个"超长回答"被批在一起,你的TTFT因此被拉长。对P99延迟(最慢的1%请求)特别敏感的场景,需要额外做请求优先级设计,避免短请求被长请求拖累。


技术四:投机解码(Speculative Decoding)——让小模型打草稿

问题:大模型生成每个token都要跑一遍完整的前向传播(几百亿参数的矩阵运算),逐token生成天然就慢。

解决方案

  1. 用一个小模型(如7B)快速"猜"接下来5-10个token
  2. 大模型一次性验证这些猜测
  3. 如果猜对了→直接用(白赚了几步)
  4. 猜错了→从错误点重新让大模型生成

类比:助手替老板写邮件草稿。助手写得快但不一定完全符合老板意思。老板扫一眼——大部分OK就直接发了,有问题的地方改一下。比老板自己从头写快得多。

效果:在不影响输出质量的前提下(和纯大模型输出完全一致),速度提升30-80%。


技术五:PagedAttention——像操作系统一样管理显存

问题:传统的KV Cache分配是"预先给每个请求分配最大可能的显存"。但大部分请求实际用不了那么多——这导致大量显存碎片和浪费。

解决方案:借鉴操作系统的虚拟内存+分页机制。KV Cache按"页"动态分配——需要多少给多少,不需要了就回收。

类比:租仓库。以前是"按最大可能需求"整租一个大仓库(大部分空间闲置)。现在是"按实际用量"动态租小格子,用多少租多少。

效果:显存利用率提升2-4倍,意味着同一块GPU能同时处理的并发请求翻几倍。这是vLLM能高效服务的核心原因。


推理引擎选型


【图4-5:推理引擎选型对比】

引擎 开发方 核心优势 适用场景 局限
vLLM UC Berkeley/开源社区 PagedAttention、生态好、迭代快 通用场景首选 NVIDIA以外硬件支持有限
TensorRT-LLM NVIDIA 性能极致、深度优化 追求极致性能 学习曲线陡、绑定NVIDIA
TGI HuggingFace 易用、快速部署 快速原型/中小规模 大规模性能不如前两者
SGLang Stanford/开源 前端调度优化、RadixAttention 复杂Prompt场景 相对较新

产品架构师的选型建议:大多数场景从vLLM开始——生态最好、社区最活跃、性能够用。只有当性能差那5-10%对你的产品至关重要时,才考虑TensorRT-LLM。


4.4 推理服务化:从模型文件到生产级服务

一个模型文件(通常是一堆几十GB的参数文件)变成一个"能7×24稳定服务的API",中间需要一整套工程:

【图4-6:推理服务化核心组件架构图】

模型加载

一个70B FP16模型:

这意味着:GPU实例不能像普通服务一样"秒级启动"。弹性扩容时需要预热池——提前加载好模型等着用。

流式输出(Streaming)

上一章讲过:AI的回答是逐token生成的。流式传输(SSE/WebSocket)让用户"边看边等":

弹性扩缩容

AI流量的特点:白天是晚上的5-10倍,工作日是周末的2-3倍。

多模型路由

一个集群可能同时跑多个模型(不同大小、不同版本):

这就需要一个"路由层"来做流量分配——这正是AI网关的核心工作之一。

故障处理

GPU不是100%可靠的:

产品架构师关注点:故障时用户体验怎么设计?是返回错误、降级到小模型、还是排队等待?这是产品决策,不是纯技术决策。


4.5 AI网关与MaaS:模型服务的"控制面"

如果推理引擎解决的是"模型能不能跑起来"——AI网关解决的是"这个服务怎么管好、用好、卖好"。

这是我工作中最直接参与的层。做AI网关产品这件事,让我对"什么叫做真正的AI基础设施"有了新的认识——它不是简单的"API透传",而是一套完整的治理体系。当你接入了十几个模型、服务着几百个业务方、每天处理几千万次调用的时候,没有一个靠谱的网关层,整个体系就是裸奔。

【图4-7:AI网关核心能力矩阵】

能力域 具体能力 解决什么问题
接入管理 统一API、多模型封装、协议适配 开发者不用关心底层差异
流量治理 鉴权、计费、限流、配额、灰度 防滥用、控成本、安全发布
智能路由 按模型/场景/成本/延迟路由 自动选最优后端
语义缓存 相似问题命中缓存直接返回 节省30-70%推理成本
Prompt管理 System Prompt版本化、AB测试 效果可迭代、可回滚
可观测性 日志、监控、告警、Token统计 知道发生了什么、花了多少
安全合规 输入输出过滤、脱敏、审计 合规底线

为什么推理引擎上面还要再加一层

推理引擎(vLLM等)专注做一件事:把token快速生成出来。它不管:

这些"管理层"的事,就是AI网关的工作。

类比:推理引擎 = 厨师(只负责做菜),AI网关 = 前厅经理(负责接客、点单、收银、质检、投诉处理)。

语义缓存:最容易被低估的降本手段

传统缓存是精确匹配——问题一模一样才命中。但用户不会用完全相同的话问同一个问题。

语义缓存的做法:把问题转为向量,计算语义相似度。如果相似度超过阈值(如0.95),就直接返回之前的答案而不调模型。

效果:

产品决策:命中阈值设多少?太高→不命中白花钱;太低→给错答案影响体验。这是一个需要调参和监控的trade-off。

MaaS:云厂商的核心商业模式

Model as a Service——把模型能力封装成标准API,按调用量付费。

【图4-8:MaaS模式价值链】

底层(L1-L3):算力+训练+推理 → 中间(L4):AI网关/MaaS平台 → 上层:开发者/企业用户
价值链标注:云厂商在中间层把复杂性封装掉,对外暴露简单API

类比:你不需要有发电厂就能用电,不需要有水处理厂就能喝水。MaaS让你不需要有GPU集群就能用大模型。

竞争格局:

产品架构师的判断:选MaaS平台不只看模型能力——还要看计费模型、SLA、合规、数据驻留、多模型灵活度。


4.6 产品架构师的"推理成本语感"

这是本章最实用的部分。我要帮你建立对推理成本的直觉——不需要精确计算,但要能快速估算"这个方案大概花多少钱"。

Token计费的直觉

模型级别 输入价格($/M tokens) 输出价格($/M tokens) 1000次对话(平均)约花
GPT-4o $2.5 $10 ~$10-30
Claude 3.5 Sonnet $3 $15 ~$15-40
DeepSeek-V3 ¥1 ¥2 ~¥3-8
7B开源模型(自部署) ~$0.1 ~$0.1 ~$0.2-0.5

降本手段优先级


【图4-9:降本手段清单(按ROI排序)】

优先级 手段 预期降本 实施难度 有无效果损失
1 Prompt精简(去冗余指令) 10-30%
2 输出长度限制(max_tokens) 10-20% 可能截断
3 语义缓存 30-70% 极小
4 模型降级路由(简单任务→小模型) 40-60% 需评估
5 INT8量化 ~50% 极小(<1%)
6 非实时任务走离线batch 20-40% 延迟增加
7 协商阶梯计费/预留实例 10-30%

黄金法则:从上到下依次尝试,每一步都是"投入产出比最高"的顺序。 很多团队直接跳到第5步搞量化优化,其实前4步就能解决80%的成本问题。

私有化 vs API调用的成本分界线

粗略估算:

所以:

大部分公司(日调用量百万级以下)用API远比私有化划算。 只有日调用量千万级以上、或有强合规需求的场景,才值得认真考虑私有化。

还有一个容易被忽视的时间成本:私有化部署从立项到生产上线,通常需要3-6个月(采购、机房、部署、测试、调优)。而调API可以在一天内跑通第一个Prototype。对于大部分AI功能来说,快速验证场景假设的价值,远超过用私有化节省的成本。等你用API验证了方向是对的、用量真的到了临界点,再切私有化不迟。


下一章,我们从"怎么跑"回到"选什么跑"——面对眼花缭乱的GPT、Claude、Gemini、DeepSeek、各家国产模型,产品架构师怎么建立一套系统的选型判断力?答案不是看排行榜,而是一套我在实际项目里反复用到的四步评估框架。


本章小结

  1. 训练和推理是两套完全不同的体系——训练重计算、做一次、不在乎延迟;推理重IO、7×24持续、极度在乎延迟和成本。

  2. 推理的不可能三角:延迟×吞吐×成本——你的场景对哪个最敏感?先定优先级再选方案。

  3. 五大推理加速技术——KV Cache(不重复算)、量化(模型瘦身)、连续批处理(拼车)、投机解码(小模型打草稿)、PagedAttention(按需分配显存)。

  4. 推理服务化不只是"把模型跑起来"——还需要弹性扩缩容、多模型路由、故障恢复、流式输出等工程能力。

  5. AI网关是产品架构师的直接战场——统一API、鉴权计费、智能路由、语义缓存、内容安全、可观测性。

  6. 降本的正确顺序:Prompt精简→缓存→模型路由→量化→批量化。先做ROI最高的。


延伸阅读