EN

LLM Notes

LLM 与强化学习学习笔记 - Transformer、RLHF、PPO、DPO 等技术深度解析

Transformer 学习笔记(七):部署优化

2025-12-20 · Qi Lu · Views:

本文是 Transformer 系列的第七篇,全面解析大语言模型的 部署优化 技术,包括模型量化和推理加速。这些技术是将千亿参数模型高效部署到实际应用的关键。

1. 模型量化

模型量化是将神经网络中的浮点数表示转换为低精度表示的技术,是大语言模型高效部署的核心技术之一。

1.1 为什么需要量化

现代 LLM 的参数规模带来严峻的部署挑战:

不同精度的存储特性

精度 位宽 相对内存 典型用途
FP32 32 训练梯度累积
FP16/BF16 16 0.5× 标准训练与推理
FP8 8 0.25× 高效训练(Hopper+)
INT8 8 0.25× 量化推理
INT4 4 0.125× 激进量化推理

1.2 量化的数学定义

均匀量化(Uniform Quantization)是最常用的量化方式。给定浮点数 $x$,量化过程为:

\[Q(x) = \text{clamp}\left( \left\lfloor \frac{x}{s} \right\rceil + z, 0, 2^b - 1 \right)\]

其中 $s$ 是缩放因子(scale),$z$ 是零点(zero-point),$b$ 是目标位宽。

反量化恢复近似值:

\[\hat{x} = s \cdot (Q(x) - z)\]

对称量化 vs 非对称量化

1.3 量化粒度

量化参数 $s, z$ 的计算粒度影响精度与开销的权衡:

Group Quantization 示例:设 group size 为 128,在 INT4 量化时有效位宽约为 $4 + 32/128 = 4.25$ 位。

1.4 训练后量化 (PTQ)

训练后量化在模型训练完成后进行,无需重新训练,是 LLM 量化的主流方法。

基本 PTQ 流程

  1. 校准:使用少量代表性数据统计激活值分布
  2. 确定量化参数:根据统计信息计算 $s, z$
  3. 量化权重:将浮点权重转换为低精度表示
  4. (可选)校正:通过额外优化减少量化误差

校准策略

1.5 LLM 量化的挑战:激活值离群值

LLM 的一个关键特性是激活值中存在 离群值(outliers):极少数通道包含数值远大于其他通道的激活值。这些离群值:

标准量化方法被迫扩大量化范围以覆盖离群值,导致正常值的量化精度严重下降。

1.6 SmoothQuant

SmoothQuant 是解决激活离群值问题的突破性方法,实现了 LLM 的 W8A8 量化。

核心思想:将量化难度从激活”迁移”到权重:

\[Y = (X \cdot \text{diag}(s)^{-1}) \cdot (\text{diag}(s) \cdot W) = \hat{X} \hat{W}\]

其中 $s$ 是迁移因子。$\hat{X}$ 的分布更均匀,更易量化;$\hat{W}$ 吸收了部分难度,但权重本身分布良好,影响有限。

迁移因子选择

\[s_j = \frac{\max(|X_j|)^\alpha}{\max(|W_j|)^{1-\alpha}}\]

其中 $\alpha = 0.5$ 对大多数模型效果良好。

1.7 GPTQ

GPTQ 是基于二阶信息的权重量化方法,可将 LLM 压缩至 4 位精度。

问题形式化:逐层优化,最小化量化后的输出误差:

\[\arg\min_{\hat{W}} \| WX - \hat{W}X \|_2^2\]

性能

1.8 AWQ

AWQ(Activation-aware Weight Quantization)基于一个关键观察:不同权重通道的重要性差异巨大。

核心观察:如果激活值 $X$ 的某些通道数值较大,则对应权重通道的量化误差影响更大。

方法:通过 per-channel 缩放放大重要通道,量化后再恢复。在 4 位量化下,AWQ 的困惑度通常优于 GPTQ。

1.9 GGUF 格式

GGUF 是 llama.cpp 项目定义的模型存储格式,广泛用于本地 LLM 部署。

格式 有效位宽 精度损失
Q8_0 8.5 bits 极小
Q5_K_M 5.5 bits
Q4_K_M 4.8 bits 中等
Q4_0 4.5 bits 较大
Q2_K 3.4 bits

“K” 表示使用 k-quant 方法,对重要层使用更高精度。

1.10 FP8 量化

FP8 是一种 8 位浮点格式,相比 INT8 保留了动态范围。

两种格式

DeepSeek-V3 展示了 FP8 训练的工业应用:

1.11 KV Cache 量化

长上下文推理的内存瓶颈主要来自 KV Cache 而非模型权重。

KV Cache 大小:以 LLaMA-70B(80 层、64 头、128 维)为例:

KIVI 方法

2. 推理优化

LLM 推理面临独特的挑战:模型参数量巨大、自回归生成逐 token 进行、KV Cache 随序列长度增长。

2.1 两阶段推理

Prefill 阶段:处理输入 prompt 的所有 token

Decode 阶段:逐个生成后续 token

特性 Prefill Decode
Token 数 N(输入长度) 1
计算模式 并行 串行
瓶颈 计算 内存带宽
GPU 利用率

2.2 Continuous Batching

传统静态批处理的问题:请求长度不一,短请求需等待长请求完成,填充浪费计算资源。

Continuous Batching 动态管理请求:

2.3 PagedAttention 与 vLLM

vLLM 引入 PagedAttention,借鉴操作系统虚拟内存的思想管理 KV Cache。

传统 KV Cache 的问题

PagedAttention 原理

vLLM 性能

2.4 Prefix Caching 与 SGLang

许多应用场景存在共享前缀(System Prompt、Few-shot 示例等)。

RadixAttention:SGLang 使用基数树(Radix Tree)管理 KV Cache:

SGLang 特性

2.5 投机解码

投机解码(Speculative Decoding)是加速自回归生成的重要技术,核心思想是”先用小模型快速猜测,再用大模型批量验收”。

工作流程

  1. Draft 阶段:用小模型自回归生成 K 个候选 token
  2. Verify 阶段:将 K 个 token 并行输入大模型验证
  3. Accept/Reject:连续一致的 token 直接接受;分歧点由大模型给出正确 token

关键保证:即使 draft 全部猜错,也能从大模型获得至少 1 个正确 token。

采样场景下的验证机制

设 Draft 模型在位置 $t$ 生成 token $x$ 的分布为 $q(x)$,Target 模型的分布为 $p(x)$。接受概率为:

\[a(x) = \min\left(1, \frac{p(x)}{q(x)}\right)\]

拒绝时从残差分布重采样:

\[p'(x) = \frac{\max(0, p(x) - q(x))}{\sum_{x'} \max(0, p(x') - q(x'))}\]

这保证了最终输出分布严格等于 $p(x)$(无偏性)。

EAGLE 系列

方法 额外模型 训练需求 加速比
独立 Draft 2-3×
EAGLE-1 训练 Head 2.5-3×
EAGLE-2 训练 Head 3-4×
EAGLE-3 训练 Head 4-5×

EAGLE 的核心创新是利用 Target 模型的隐状态来指导 Draft 生成,显著提高猜测准确率。

2.6 KV Cache 压缩

KV Cache 量化

KV Cache 稀疏化

2.7 推理引擎对比

引擎 核心技术 Prefix Cache 投机解码 特点
vLLM PagedAttention 支持 支持 最广泛使用
SGLang RadixAttention 原生 EAGLE 等 结构化输出快
TensorRT-LLM 深度优化 支持 多种 NVIDIA 官方
llama.cpp CPU 优化 有限 支持 本地部署

3. 最佳实践

3.1 量化策略选择

场景 推荐方案
内存充足 FP16/BF16,无精度损失
一般部署 INT8 或 FP8,精度损失极小
边缘设备 INT4(GPTQ/AWQ),精度损失可接受
极限压缩 2-3 bit,需仔细评估任务影响

3.2 推理优化策略

延迟优先场景

吞吐优先场景

长上下文场景

4. 总结

本文全面解析了大模型部署优化的两大核心技术:

领域 关键技术 效果
模型量化 GPTQ/AWQ(4-bit) 模型大小减少 4 倍
模型量化 SmoothQuant(W8A8) 推理速度提升 1.5 倍
KV Cache KIVI(2-bit) 显存减少 8 倍
批处理 PagedAttention 吞吐提升 24 倍
解码加速 EAGLE-3 加速 4-5 倍
Prefix Cache RadixAttention 吞吐提升 5-6 倍

这些技术使得千亿参数模型能够在有限硬件资源上高效运行,是大模型落地的关键基础设施。

下一篇也是本系列的最后一篇,我们将讨论 前沿应用,包括多模态和推理增强技术。

← Back to Home

Comments