EN

大模型推理加速实战:Prefill/Decode 优化、投机解码与国产芯片适配

从底层原理到前沿方案,系统降低大模型部署成本

返回教程列表
高级25 分钟

大模型推理加速实战:Prefill/Decode 优化、投机解码与国产芯片适配

从底层原理到前沿方案,系统降低大模型部署成本

本文从大模型推理的底层原理出发,深入剖析 Prefill 与 Decode 两阶段的计算与带宽瓶颈,系统介绍 KV 缓存优化、量化压缩等经典手段。重点解读投机解码技术的最新进展,包括动态推测解码、冻结多 Token 预测 (MTP) 以及 Domino 等创新方案,并探讨国产芯片适配与 Token 优化工厂等降本路径。最后提供 FAQ 解答常见问题,帮助开发者全面掌握推理加速与部署优化的核心方法。

大模型推理加速实战:Prefill/Decode 优化、投机解码与国产芯片适配

大语言模型(LLM)的推理效率直接决定了服务成本和用户体验。随着模型参数规模持续增长,如何在不牺牲生成质量的前提下,降低首 token 延迟(TTFT)、提升 token 生成速度(ITL),成为部署落地中的核心挑战。本文将从推理底层原理出发,系统介绍 Prefill/Decode 优化、投机解码、KV 缓存压缩、量化以及国产芯片适配等关键技术,帮助开发者构建经济高效的推理服务。

一、推理底层原理:Prefill 与 Decode 两阶段

大模型生成文本时,GPU 会依次执行两个截然不同的计算阶段:预填充(Prefill)解码(Decode)。理解两者的差异是优化推理的第一步。

1.1 预填充阶段(Prefill):计算密集型

当用户输入 prompt 后,模型会并行处理所有输入 token。这一阶段的核心操作是:

  • 将 token 序列通过嵌入层转换为向量,并加上位置编码(如 RoPE)。
  • 经过多层 Transformer,每层执行多头自注意力(QKV 投影、注意力计算)和前馈网络(FFN)。
  • 一次性生成所有 token 的隐藏状态,并构建 KV 缓存(将每层的 K、V 张量保存下来供后续复用)。
  • Prefill 阶段属于计算密集型任务,GPU 算力利用率高,主要瓶颈在矩阵乘法运算。衡量指标是首 token 延迟(TTFT),即从输入到输出第一个 token 的时间。

    1.2 解码阶段(Decode):内存带宽密集型

    生成首个 token 后,模型进入自回归循环:每次只处理最新生成的单个 token,计算其 QKV,然后与缓存的完整 KV 矩阵做注意力运算。

  • 单步计算量很小,但每步都需要从显存读取全部模型权重和 KV 缓存。
  • 显存带宽成为瓶颈,GPU 算力利用率常低至 30% 以下。
  • 衡量指标是token 间隔延迟(ITL),即相邻输出 token 的间隔时间。更低的 ITL 带来更流畅的流式输出。

    1.3 完整推理流程

  • 分词:BPE 等算法将文本转为整数 token ID。
  • 嵌入与位置编码:查表得到语义向量,RoPE 注入位置信息。
  • Prefill:并行处理所有输入 token,计算密集型,生成 KV 缓存,输出第一个 token。
  • Decode 循环:逐 token 迭代,复用 KV 缓存,内存带宽受限。
  • 反分词:将 token ID 还原为文本,流式返回。
  • 二、KV 缓存优化:显存瓶颈与解决方案

    KV 缓存是推理性能的关键,但其显存占用随序列长度线性增长,成为限制并发和长上下文的主要因素。

    2.1 缓存的作用与开销

  • 若无缓存,每生成一个 token 都要对完整序列重新计算注意力,复杂度为 O(n²)。KV 缓存将复杂度降至 O(n),长文本场景下速度可提升 5 倍以上。
  • 以 13B 模型为例,每个 token 约占用 1MB 显存(BF16),4096 长度上下文仅缓存就消耗 4GB。
  • 2.2 主流优化方案

    方案原理效果

    KV 缓存量化将缓存压缩至 INT8/INT4显存占用减半或更多,精度损失小 滑动窗口注意力丢弃窗口外的历史 token限制缓存长度,适合局部依赖场景 分组查询注意力(GQA)多头共享 KV 张量减少缓存存储量,已广泛采用 分页注意力(PagedAttention)类似虚拟内存管理缓存消除显存碎片,提升并发上限(vLLM 核心) 架构级压缩(如 DeepSeek-V4)从模型结构压缩 KV 条目百万上下文下缓存占用仅为前代 10%

    关于分页注意力的深入实现,可参考 vLLM 与模型部署

    三、量化压缩:低成本显存优化

    量化通过降低权重位宽,线性缩减显存占用,是性价比最高的优化手段之一。

  • FP32:7B 模型 28GB → FP16/BF16:14GB → INT8:7GB → INT4:3.5GB
  • 主流方案如 GPTQ、AWQ 在 INT4 下精度损失仅 1%~2%,消费级显卡可流畅运行 7B 模型。
  • INT8 几乎无精度损耗,推理延迟直接减半。
  • 四、投机解码:突破自回归速度瓶颈

    投机解码(Speculative Decoding)是近年最受关注的推理加速技术,核心思想是:先用轻量草稿模型快速生成多个候选 token,再由大模型一次性并行校验,从而将多轮串行解码合并为单次并行校验。

    4.1 经典推测解码原理

  • 草稿生成:轻量模型(如 128M 参数)快速输出一段候选序列(如 3 个 token)。
  • 并行校验:主模型一次性校验全部候选,匹配则直接输出,否则截断至首个不匹配位置重新生成。
  • 理想情况下,加速比可达 2~3 倍。但传统方案依赖独立草稿模型,存在内存争抢、上下文割裂等问题。

    4.2 动态投机解码:DSpark 与 LightSpec

    DeepSeek 提出的 DSpark 框架,引入了动态 MTP(多 Token 预测) 概念:根据当前推理状态动态决定验证预算,避免低收益 token 占用 GPU 批量容量。然而 DSpark 高度绑定特定模型且需要额外训练。

    LightSpec 是首个开源通用动态 MTP 系统,采用两阶段 Training-free 设计:

  • 验证预算优化:结合历史统计,动态决定送入主模型验证的 token 数量。
  • 草稿预算优化:进一步动态调整草稿步数,减少不必要的草稿计算。
  • LightSpec 的运行时规划器不依赖额外训练,而是利用 CUDA Graph 构建过程中自动统计的耗时信息,以及指数移动平均(EMA)接受率,实现无需训练的在线调度。实验表明,在 Qwen3-14B、H200 上,相比固定 MTP 步数,吞吐提升可达 64%。

    4.3 冻结 MTP:谷歌 Pixel 端侧方案

    谷歌在 Pixel 9/10 上部署的 冻结 MTP 方案,针对移动端资源受限场景做了特别设计:

  • 冻结主干模型权重,仅训练轻量 MTP 头,保证模型能力不变。
  • 零拷贝架构:MTP 头直接复用主模型 KV 缓存,单任务节省 130MB 内存,消除预填充延迟。
  • 依托主干深层语义,草稿预测准确率大幅提升,智能回复场景 token 通过率最高提升 55%。
  • 这种集成式方案避免了独立草稿模型的上下文割裂和额外内存开销,适合端侧部署。

    4.4 Domino:解耦因果建模与并行草稿

    上海交通大学等机构提出的 Domino,针对并行草稿模型中的“后缀衰减”问题:并行 drafter 速度快,但各位置独立预测,后缀 token 容易偏离前缀。

    Domino 的核心设计:

  • 并行草稿主干:一次 forward 生成整个 block 的 hidden states,保持高吞吐。
  • Domino Head:用轻量 GRU causal encoder 汇总已生成 token,再通过 low-rank correction 修正 logits,重新引入 token 间依赖。
  • 在 Qwen3-4B/8B 上,Domino 实现平均 5.5x 端到端加速,最高 7.92x(GSM8K)。该方案被 DeepSeek 和阶跃星辰引用,可视为 DSpark 中 draft-model 侧的核心思想原型。

    更多关于投机解码的实践,可参考 AI Agent 与多智能体 中的推理优化章节。

    五、国产芯片适配:降本新路径

    随着国产芯片生态成熟,如何在非 NVIDIA 硬件上高效运行大模型成为关键。

    5.1 AMD 芯片适配案例

    推理优化公司 Wafer 在 AMD MI355X 上部署 GLM 5.2,实现单节点吞吐 2626 tok/s,单流吞吐 213 tok/s,成本仅为英伟达 B200 的一半。关键步骤:

  • 量化:使用 AMD Quark 工具将权重压缩至 MXFP4,精度损失极小。
  • 引擎选择:在 vLLM、ATOM、sglang 中选用 sglang,因其能保持量化效果。
  • 投机解码适配:修复 MTP 头权重命名冲突和 CUDA 头文件依赖,使单流吞吐提升近 3 倍。
  • 并行策略:将 TP8 换为 TP4×DP2,提升聚合吞吐。
  • Wafer 的成功表明,国产芯片的软件生态正在从“每次重新造轮子”走向“官方工具链基本可用,只需填补细节坑”。

    5.2 国产 Token 优化工厂:拓元(Vectron)

    是石科技发布的拓元平台,定位为“国产 Token 优化工厂”,兼容昇腾、昆仑芯、天数智芯等 10 余种国产芯片,每日 Token 吞吐量达千亿级别。核心技术包括:

  • 结果感知 KV Cache 压缩:动态压缩缓存,降低长文本显存压力。
  • 全模态 Token 压缩:针对文本、视频、语音等模态自适应筛选关键 token。
  • 长上下文优化:混合位置索引合成训练,支持百万级上下文。
  • 异构集群调度:统一纳管多芯片算力,盘活闲置资源。
  • 对于希望降低推理成本的企业,可参考 API 集成与部署 中的异构方案。

    六、现代推理引擎的核心优化

    主流推理框架(vLLM、TensorRT-LLM、TGI、sglang)整合了多项系统级优化:

  • 连续批处理:交错调度不同请求的 token 计算,填满 GPU 空闲算力。
  • 分页注意力:消除显存碎片,提升并发上限。
  • 推测解码:集成动态 MTP 等算法,加速生成。
  • 量化与稀疏化:降低权重和缓存位宽。
  • 七、落地实践与性能排查

  • 长输入拉高 TTFT:瓶颈在 Prefill 算力,可优化批量大小或使用更快的矩阵库。
  • 长输出拉高 ITL:瓶颈在显存带宽,优先压缩 KV 缓存或提升内存带宽。
  • 解码阶段 GPU 利用率低:检查是否受带宽限制,而非算力不足。
  • 标准排查流程:先判断是首 token 慢还是流式卡顿,再针对性调优。
  • 八、未来趋势

  • 动态 MTP 系统化:从单一调度策略扩展为覆盖草稿深度、宽度、树扩展等多维度的系统能力。
  • 端侧推理加速:冻结 MTP、零拷贝架构等方案将推动手机、IoT 设备上的本地 AI 普及。
  • 国产芯片生态成熟:软件工具链的完善将大幅降低适配成本,推动算力效率竞赛。
  • FAQ

    Q1: 什么是 Prefill 和 Decode 阶段?为什么优化策略不同? Prefill 是处理输入 prompt 的阶段,所有 token 并行计算,属于计算密集型,瓶颈在 GPU 算力;Decode 是逐 token 生成阶段,每次只处理一个 token,但需读取全部 KV 缓存,属于内存带宽密集型。因此 Prefill 优化重在提升矩阵运算效率,Decode 优化重在压缩缓存和提升带宽。

    Q2: 动态投机解码相比固定 MTP 步数有什么优势? 固定 MTP 步数难以适应不同任务和系统状态:步数小则加速有限,步数大则引入过多低收益候选 token,导致接受率下降。动态方案通过运行时统计(如 EMA 接受率)联合调整草稿预算和验证预算,在不同负载下持续寻找最优配置,可显著提升吞吐和接受率。

    Q3: 国产芯片适配大模型的主要挑战是什么?如何解决? 主要挑战包括:软件生态不成熟(如 kernel 库未针对特定模型优化)、工具链兼容性问题(如量化工具与推理引擎的命名冲突)、缺乏统一的异构调度平台。解决方案包括:使用官方量化工具(如 AMD Quark)、选择兼容性好的推理引擎(如 sglang)、修复编译和运行时错误,以及采用像拓元这样的统一优化平台。

    Q4: 量化对模型精度有多大影响?如何选择量化方案? INT8 量化几乎无精度损失,适合绝大多数部署场景。INT4 量化(如 GPTQ、AWQ)精度损失约 1%~2%,但显存减半,适合消费级显卡。选择时需结合任务敏感度:对精度要求极高的场景(如医疗、金融)可优先 INT8,资源受限场景可选用 INT4 并验证下游任务效果。

    Q5: 在国产芯片上部署大模型,如何评估成本效益? 需要综合硬件采购成本、电力成本、推理吞吐和延迟。以 AMD MI355X 为例,其单卡 TCO 低于英伟达 B200,但需考虑适配投入。建议先在小规模验证吞吐和精度,再根据实际负载(如并发数、上下文长度)计算每百万 token 成本,与云端方案对比。