大模型核心原理 / 推理优化与部署
CHAPTER 02 · TOPIC 06

推理优化与部署

训练完大模型只是第一步——如何高效地将模型部署到生产环境,以合理的成本提供快速、稳定的推理服务,是同样重要的工程挑战。本章全面覆盖从量化到端侧部署的完整推理优化技术栈。

一句话理解

训练完大模型只是第一步——如何高效地将模型部署到生产环境,以合理的成本提供快速、稳定的推理服务,是同样重要的工程挑战。本章全面覆盖从量化到端侧部署的完整推理优化技术栈。

阅读前置

建议先阅读第 01 章

本文关注

推理的基本流程、量化(Quantization)、推理引擎

所在知识层

技术地基 · 大模型核心原理

文章导航
主教学视觉推理优化与部署 · 知识结构

点击图中节点可定位到对应正文。

核心主题关系与流向

引言

训练完大模型只是第一步——如何高效地将模型部署到生产环境,以合理的成本提供快速、稳定的推理服务,是同样重要的工程挑战。本章全面覆盖从量化到端侧部署的完整推理优化技术栈。


1. 推理的基本流程

1.1 Prefill 与 Decode 两个阶段

大模型推理分为两个截然不同的阶段:

语义 SVG 重绘推理优化与部署 · 结构 1

根据原图的箭头、并列、分层与循环关系选择对应图形;可展开核对原文结构。

查看原文结构
Prefill 阶段(处理输入):
  用户输入 "解释什么是AI" → 一次性并行处理所有 token
  → 生成第一层到最后一层的所有隐藏状态
  → 填充 KV Cache
  → 计算密集,GPU 利用率高
语义 SVG 重绘推理优化与部署 · 结构 2

根据原图的箭头、并列、分层与循环关系选择对应图形;可展开核对原文结构。

查看原文结构
Decode 阶段(生成输出):
  逐 token 生成:"人工" → "智能" → "是" → "..."
  每一步只处理一个新 token
  → 从 KV Cache 读取之前的 K 和 V
  → 内存带宽密集,GPU 利用率低
维度PrefillDecode
处理方式并行处理所有输入 token逐个 token 串行生成
瓶颈计算能力(compute-bound)内存带宽(memory-bound)
GPU 利用率低(通常 < 30%)
延迟特征首 token 延迟(TTFT)每 token 延迟(TPOT)

1.2 关键性能指标

指标全称含义
TTFTTime To First Token用户发出请求到收到第一个 token 的时间
TPOTTime Per Output Token每个输出 token 的生成时间
Throughput吞吐量每秒处理的 token 数
Latency延迟端到端的响应时间

2. 量化(Quantization)

2.1 核心思想

将模型参数从高精度(FP16/BF16)转换为低精度(INT8/INT4),减少内存占用和计算量:

语义 SVG 重绘推理优化与部署

根据原图的箭头、并列、分层与循环关系选择对应图形;可展开核对原文结构。

FP16: 16 bit70B 模型需要 140 GB 显存INT8: 8 bit70B 模型需要 70 GB 显存(质…INT4: 4 bit70B 模型需要 35 GB 显存(质…
查看原文结构
FP16: 16 bit  → 70B 模型需要 140 GB 显存
INT8:  8 bit  → 70B 模型需要  70 GB 显存(质量损失 < 1%)
INT4:  4 bit  → 70B 模型需要  35 GB 显存(质量损失 1-5%)
INT3:  3 bit  → 70B 模型需要  26 GB 显存(质量损失 5-15%)

2.2 主要量化方法

训练后量化(PTQ, Post-Training Quantization)

不需要重新训练,直接对已有模型进行量化:

方法位数特点
GPTQINT4/INT3基于近似二阶信息,逐层量化
AWQ (Activation-aware)INT4保护重要权重通道,效果更好
GGUF (llama.cpp)2-8 bitCPU 友好,支持混合量化
bitsandbytesINT8/INT4HuggingFace 生态集成好

量化感知训练(QAT, Quantization-Aware Training)

在训练过程中模拟量化误差,让模型学会适应低精度:

  • 效果优于 PTQ,但需要额外的训练成本
  • 通常在 PTQ 效果不满足要求时使用

2.3 量化的质量影响

语义 SVG 重绘推理优化与部署

根据原图的箭头、并列、分层与循环关系选择对应图形;可展开核对原文结构。

FP16INT8:几乎无损,大多数应用场景可接…INT4:轻微损失,复杂推理任务可能受…INT3:明显损失,需要仔细评估INT2:严重损失,仅适用于特定场景
查看原文结构
FP16 → INT8:几乎无损,大多数应用场景可接受
FP16 → INT4:轻微损失,复杂推理任务可能受影响
FP16 → INT3:明显损失,需要仔细评估
FP16 → INT2:严重损失,仅适用于特定场景

3. 推理引擎

3.1 主流推理引擎对比

引擎开发者特点适用场景
vLLMUC BerkeleyPagedAttention,高吞吐服务端高并发推理
TGIHuggingFace生态集成好HuggingFace 生态
TensorRT-LLMNVIDIA极致 GPU 优化NVIDIA GPU 专用部署
llama.cpp社区CPU/Apple Silicon 友好本地部署、端侧推理
Ollama社区易用性极佳个人本地使用
LMDeploy上海 AI Lab支持多种模型国产模型部署
SGLangStanford结构化生成优化需要结构化输出的场景

3.2 PagedAttention(vLLM 的核心技术)

问题: 传统 KV Cache需要预分配连续内存,导致大量内存浪费(平均浪费 60-80%)。

解决方案: 借鉴操作系统的虚拟内存分页思想:

语义 SVG 重绘推理优化与部署 · 结构 1

根据原图的箭头、并列、分层与循环关系选择对应图形;可展开核对原文结构。

传统 KV Cache:预分配一大块连续内存大量内部碎片和外部碎
查看原文结构
传统 KV Cache:
  预分配一大块连续内存 → 大量内部碎片和外部碎片
语义 SVG 重绘推理优化与部署 · 结构 2

根据原图的箭头、并列、分层与循环关系选择对应图形;可展开核对原文结构。

输入与上下文PagedAttention:系统核心将 KV Cache 分成固定大小的"页"(blo…按需分配页,不需要连续内存利用率接近 100%工具、结果与反馈支持批处理(batching)时共享 KV Cac…吞吐量提升 2-4 倍
查看原文结构
PagedAttention:
  将 KV Cache 分成固定大小的"页"(block)
  按需分配页,不需要连续
  → 内存利用率接近 100%
  → 支持批处理(batching)时共享 KV Cache 页
  → 吞吐量提升 2-4 倍

3.3 连续批处理(Continuous Batching)

语义 SVG 重绘推理优化与部署 · 结构 1

根据原图的箭头、并列、分层与循环关系选择对应图形;可展开核对原文结构。

静态批处理:等一个批次中所有请求都完成后,才开始下…短请求等待长请求,GPU 空闲浪费
查看原文结构
静态批处理:
  等一个批次中所有请求都完成后,才开始下一个批次
  → 短请求等待长请求,GPU 空闲浪费
语义 SVG 重绘推理优化与部署 · 结构 2

根据原图的箭头、并列、分层与循环关系选择对应图形;可展开核对原文结构。

连续批处理:一个请求完成后立即插入新请求GPU 始终保持忙碌状态吞吐量大幅提升
查看原文结构
连续批处理:
  一个请求完成后立即插入新请求
  → GPU 始终保持忙碌状态
  → 吞吐量大幅提升

4. 投机解码(Speculative Decoding)

4.1 核心思想

用一个小模型(draft model)快速生成多个候选 token,然后用大模型一次性验证:

语义 SVG 重绘推理优化与部署

根据原图的箭头、并列、分层与循环关系选择对应图形;可展开核对原文结构。

步骤 1: 小模型快速生成 5 个 t…步骤 2: 大模型并行验证这 5 个 …"今天" ✓ (概率高)"天气" ✓ (概率高)"真" ✓ (概率高)"好" ✗ (大模型认为应该是 "不错…
查看原文结构
步骤 1: 小模型快速生成 5 个 token: "今天 天气 真 好 啊"
步骤 2: 大模型并行验证这 5 个 token
  - "今天" ✓ (概率高)
  - "天气" ✓ (概率高)
  - "真" ✓ (概率高)
  - "好" ✗ (大模型认为应该是 "不错") → 从这里开始重新生成
步骤 3: 接受前 3 个 token,从第 4 个开始重新投机

4.2 效果

  • 不改变生成质量(数学上证明输出分布与原模型完全一致)
  • 速度提升 2-3 倍(取决于小模型的预测准确率)
  • 特别适合有明确模式的任务(代码生成、翻译)

5. 模型蒸馏与剪枝

5.1 知识蒸馏

用大模型(教师)的输出来训练小模型(学生):

语义 SVG 重绘推理优化与部署

根据原图的箭头、并列、分层与循环关系选择对应图形;可展开核对原文结构。

教师模型(如 GPT-4)生成大量高质量数据学生模型(如 7B 模型)用这些数据训练
查看原文结构
教师模型(如 GPT-4)→ 生成大量高质量数据
学生模型(如 7B 模型)→ 用这些数据训练

5.2 剪枝

移除模型中不重要的参数:

语义 SVG 重绘推理优化与部署 · 结构 1

根据原图的箭头、并列、分层与循环关系选择对应图形;可展开核对原文结构。

非结构化剪枝:将个别权重设为 0高稀疏度但难以利用(需要特殊硬件支持)
查看原文结构
非结构化剪枝:将个别权重设为 0
  → 高稀疏度但难以利用(需要特殊硬件支持)
语义 SVG 重绘推理优化与部署 · 结构 2

根据原图的箭头、并列、分层与循环关系选择对应图形;可展开核对原文结构。

输入与上下文结构化剪枝:移除整个注意力头或 FFN 层系统核心可以直接减小模型尺寸如 LLM-Pruner 方法工具、结果与反馈
查看原文结构
结构化剪枝:移除整个注意力头或 FFN 层
  → 可以直接减小模型尺寸
  → 如 LLM-Pruner 方法

6. 端侧部署

6.1 端侧推理的挑战

挑战说明
内存限制手机通常 8-16GB,PC 16-64GB
计算能力移动 GPU 远弱于数据中心 GPU
能耗推理过程消耗大量电池
延迟用户对实时响应的期望

6.2 端侧可用的模型

模型参数量量化后大小适用设备
Phi-3 Mini3.8B~2GB (INT4)手机、PC
Qwen 2.5 3B3B~1.5GB (INT4)手机
Gemma 2 2B2B~1GB (INT4)手机
LLaMA 3.2 1B1B~0.5GB (INT4)嵌入式
SmolLM 1.7B1.7B~1GB (INT4)手机、浏览器

6.3 端侧推理框架

框架平台特点
llama.cpp全平台C/C++ 实现,CPU/GPU 混合推理
MLXApple SiliconApple 专用,充分利用统一内存
ONNX Runtime全平台Microsoft 生态
MediaPipeAndroid/iOSGoogle 移动端优化
WebLLM浏览器在浏览器中通过 WebGPU 运行

6.4 Ollama:最易用的本地部署方案

BASH
# 安装后一行命令即可运行
ollama run llama3.2        # 运行 LLaMA 3.2
ollama run qwen2.5:7b      # 运行 Qwen 2.5 7B
ollama run deepseek-r1:7b  # 运行 DeepSeek R1 7B

# Ollama 自动处理:
# - 模型下载和管理
# - 量化(默认 GGUF 4-bit)
# - 内存和 GPU 分配
# - 提供兼容 OpenAI 的 API 接口

7. 服务端部署架构

7.1 典型的服务端部署架构

语义 SVG 重绘推理优化与部署

根据原图的箭头、并列、分层与循环关系选择对应图形;可展开核对原文结构。

输入与上下文用户请求系统核心负载均衡器路由到最空闲的推理实例API 网关工具、结果与反馈认证、限流、计费推理服务 (vLLM / TGI)
查看原文结构
用户请求
  ↓
[负载均衡器] → 路由到最空闲的推理实例
  ↓
[API 网关] → 认证、限流、计费
  ↓
[推理服务] (vLLM / TGI)
  ├── 模型加载(GPU 显存)
  ├── KV Cache 管理(PagedAttention)
  ├── 连续批处理
  └── 流式输出(SSE)
  ↓
[监控系统] → GPU 利用率、延迟、吞吐量

7.2 多 GPU 推理

语义 SVG 重绘推理优化与部署 · 结构 1

根据原图的箭头、并列、分层与循环关系选择对应图形;可展开核对原文结构。

张量并行推理(单请求跨多 GPU):70B 模型2 张 A100 (80GB) 或 4…每张 GPU 持有模型的一部分通信开销:GPU 间需要同步中间结果
查看原文结构
张量并行推理(单请求跨多 GPU):
  70B 模型 → 2 张 A100 (80GB) 或 4 张 A100 (40GB)
  每张 GPU 持有模型的一部分
  通信开销:GPU 间需要同步中间结果
语义 SVG 重绘推理优化与部署 · 结构 2

根据原图的箭头、并列、分层与循环关系选择对应图形;可展开核对原文结构。

数据并行推理(多请求并行):每张 GPU 持有完整模型副本不同 GPU 处理不同请求提高吞吐量但不降低单请求延迟
查看原文结构
数据并行推理(多请求并行):
  每张 GPU 持有完整模型副本
  不同 GPU 处理不同请求
  → 提高吞吐量但不降低单请求延迟

7.3 成本估算

语义 SVG 重绘推理优化与部署

根据原图的箭头、并列、分层与循环关系选择对应图形;可展开核对原文结构。

查看原文结构
优化方案:
- INT4 量化:只需 1 张 A100 → 成本减半
- 自动扩缩容:低负载时减少实例 → 成本再降 30-50%
- Spot 实例:使用竞价实例 → 成本再降 50-70%

8. 本章小结

技术解决的问题效果
量化减少内存和计算需求INT4 下性能损失 < 5%
PagedAttentionKV Cache 内存浪费吞吐量提升 2-4x
连续批处理GPU 空闲浪费吞吐量大幅提升
投机解码Decode 阶段速度慢速度提升 2-3x
蒸馏模型太大小模型接近大模型效果
端侧部署隐私/离线/低延迟需求INT4 + 3B 模型可在手机运行

相关章节


延伸阅读

  • Kwon, W. et al. (2023). "Efficient Memory Management for Large Language Model Serving with PagedAttention". SOSP
  • Frantar, E. et al. (2022). "GPTQ: Accurate Post-Training Quantization for Generative Pre-trained Transformers". ICLR
  • Lin, J. et al. (2023). "AWQ: Activation-aware Weight Quantization for LLM Compression and Acceleration". ICLR
  • Leviathan, Y. et al. (2023). "Fast Inference from Transformers via Speculative Decoding". ICML