1、量化(Quantization)
1.1. 权重-激活联合量化:SmoothQuant
核心思想
- 问题背景:LLM的激活中存在离群值(outliers),直接量化会导致精度大幅下降。
- 解决方案:通过迁移量化难度,将激活的量化难度部分转移到权重上,使两者均易于量化。

- 数学公式:
- 迁移强度 :控制激活和权重量化难度的平衡(默认 )。

实现步骤
- 校准阶段:计算每通道的最大激活值()和权重值()。
- 平滑阶段:调整激活和权重的数值分布,使其更易于量化。
- 推理阶段:使用平滑后的激活和权重进行低比特量化(如W8A8)。

优势与效果
- 精度保留:在OPT-175B、BLOOM-176B等模型上,量化后精度损失<0.5%。
- 效率提升:内存占用减少50%,推理速度提升2倍(如MT-NLG 530B可在单节点部署)。
2. 仅权重量化:AWQ(Activation-aware Weight Quantization)
核心思想
- 关键观察:权重的重要性与激活分布相关,保留1%的关键权重通道可显著减少量化误差。

- 方法:
- 混合精度量化:对关键权重通道保留高精度(FP16),其余通道量化至低比特(如INT4)。
- 缩放优化:基于激活幅度动态调整权重量化缩放因子,最小化量化误差。
实现步骤
- 校准:通过少量样本(如128条)分析激活分布,识别关键权重通道。
- 缩放与量化:对权重进行分组量化(group-wise),每组独立计算缩放因子。
- 硬件优化:通过寄存器级并行化(如UINT4转UINT8)加速反量化过程。
优势与效果
- 精度保留:在LLaMA-7B、VILA多模态模型等任务中,INT4量化后精度损失<1%。
- 硬件加速:TinyChat引擎在Jetson Orin上实现3倍速度提升,支持边缘设备部署。
3. 实践扩展:QServe(W4A8KV4)
设计目标
- 云边协同:结合W4A16(边缘)和W8A8(云端)的优势,实现高效内存带宽利用与计算强度平衡。
- 系统优化:
- 核融合:减少反量化操作在CUDA核中的开销,避免部分和(partial sum)的反量化。
- 注意力平滑:将KV缓存的量化难度迁移至查询矩阵(Q),支持低比特KV缓存(如KV4)。
效果
- 精度与效率:在Llama-2-70B上,W4A8KV4量化后困惑度(PPL)为4.18,优于Atom-W4A4(4.58)。
- 吞吐量:在A100 GPU上,端到端吞吐量提升2.4-3.5倍。
二、剪枝与稀疏化(Pruning & Sparsity)
1. 权重稀疏化:Wanda
核心思想
- 动态重要性评估:权重的重要性由权重值与激活幅度的乘积(\(|W_{ij}| \cdot \mathbb{E}[|X_j|]\))决定。
- 剪枝策略:保留高重要性权重,剪枝低重要性权重(如50%稀疏度)。
效果
- 在LLaMA-70B上,50%稀疏度下困惑度仅下降0.3%,显著优于传统幅度剪枝(下降4.8%)。
2. 上下文稀疏化:DejaVu与MoE
DejaVu
- 动态稀疏预测:通过异步预测头(async predictor)识别输入相关的冗余注意力头和特征。
- 优势:在保持精度的前提下,减少50%计算量。
混合专家(MoE)
- 稀疏激活:每个Token仅激活部分专家(如2/8个专家),提升模型容量而不增加计算开销。
- 路由机制:
- 容量因子(Capacity Factor):控制每个专家处理的Token数量(如1.5倍缓冲)。
- 硬件挑战:专家跨设备通信开销需优化。
3. 注意力稀疏化:SpAtten与H2O
SpAtten
- 级联剪枝:逐步剪枝不重要Token和注意力头,结合渐进量化(低精度优先)。
- 效果:在长序列任务中减少50%注意力计算。
H2O(Heavy-Hitter Oracle)
- KV缓存优化:仅保留局部Token和关键Token(Heavy Hitters),减少内存占用。
- 效果:在4096长度序列中,内存减少40%且精度无损。
三、LLM服务系统(LLM Serving Systems)
1. 核心指标
- TTFT(Time To First Token):用户请求到首Token生成的时间,依赖提示处理效率。
- TPOT(Time Per Output Token):单Token生成时间,影响用户体验(目标<100ms/Token)。
- 吞吐量(Throughput):系统每秒处理的Token总数,受批处理策略影响。
2. 关键技术
Paged Attention(vLLM)
- 分页KV缓存:借鉴操作系统虚拟内存管理,将KV缓存划分为非连续物理块,减少内存碎片。
- 优势:支持动态批处理与长上下文(如4096长度),内存利用率提升3倍。
FlashAttention
- 核融合与内存优化:通过分块计算(tiling)避免生成\(N \times N\)注意力矩阵,减少HBM访问。
- 效果:在NVIDIA H100上,训练速度提升2倍。
推测解码(Speculative Decoding)
- 草稿-验证机制:小模型(7B)生成候选Token序列,大模型(175B)并行验证,加速生成。
- 效果:2-3倍速度提升,输出与原始模型完全一致。
批处理策略
- 动态批处理:等待批次填满或超时后处理,平衡吞吐与延迟。
- 连续批处理(In-Flight Batching):Token级批处理,最大化GPU利用率(适合变长输出)。
四、总结
- 量化是LLM部署的核心:SmoothQuant和AWQ通过迁移量化难度与混合精度,显著降低内存与计算开销。
- 稀疏化提升效率:Wanda和MoE分别从权重与结构层面减少冗余计算,支持大规模模型部署。
- 系统优化是关键:vLLM和FlashAttention通过内存管理与核融合,解决长上下文与高吞吐需求。
- 边缘与云端协同:TinyChat和QServe针对不同场景优化,实现低延迟与高能效。
下节课预告:MCUNet——面向微控制器的算法-系统协同设计框架。
参考文献:详见课程PPT引用论文(SmoothQuant、AWQ、vLLM、FlashAttention等)。