大模型量化技术

📅 2026/8/9 23:17:26
大模型量化技术
一、什么是量化量化Quantization把模型权重、激活值从高精度浮点数FP16/BF16映射到低比特整数不改变模型网络结构换取显存降低、推理提速代价是少量精度损失。通俗比喻高清图片转压缩图片体积大幅缩小轻微损失细节原图结构不变。数学公式仿射均匀量化x原始浮点权重s缩放因子 scalez零点 zero‑pointQ量化后整数\(\hat x\)反量化还原浮点数校准 (Calibration)用少量无标签样本算出每层的 scale、zero‑point是量化精度关键步骤。位宽对比7B 模型参考表格精度单参数字节模型大小精度损失FP16/BF162B~14GB原始无损FP81B~7GB几乎无损新 GPU 硬件加速INT81B~7GB2%生产常用INT40.5B~3.5GB1‑5%性价比最高位数越低显存越小但更容易出现精度悬崖小模型不适合激进 4bit 及以下量化。二、两大技术路线PTQ vs QAT1. PTQ 训练后量化工业界主流模型训练完成之后直接做量化不需要重新训练只需要少量校准数据集。优点速度快、算力开销小开源大模型几乎全部用 PTQ缺点极低比特≤4bit精度损失更大代表算法GPTQ、AWQ、SmoothQuant、BitsAndBytes2. QAT 量化感知训练训练过程中插入伪量化节点让模型提前适应量化噪声前向模拟量化反向依然用浮点算梯度。优点精度更高同等比特下效果优于 PTQ缺点需要训练算力大模型成本极高LLM 很少用 QATCV 领域用得多表格对比项PTQ 训练后量化QAT 量化感知训练是否重训❌不需要✅需要微调 / 训练算力开销很小大适用 LLM✅绝大多数开源大模型极少用4bit 精度中等更高三、主流 LLM 量化算法GPTQ逐层 PTQ量化一层把量化误差补偿到下一层权重支持 INT4/INT3/INT2 极低比特GPU 推理性能好需要校准数据集。AWQActivation‑aware Weight Quantization激活感知权重量化识别出对输出影响最大的少量权重通道对其保护不降比特INT4 精度目前最优不需要校准集GPU 部署首选。SmoothQuant解决 Transformer 激活值存在极端异常值导致 W8A8 量化崩坏问题把激活的数值平滑迁移到权重让权重、激活都适合 INT8 量化适合 W8A8 全量 INT8 推理。BitsAndBytesHuggingFace 生态运行时动态量化不需要离线生成量化模型文件4bit 用 NF4 归一化浮点数常用于QLoRA 微调推理速度弱于 GPTQ/AWQ。GGUF原 GGMLllama.cpp 生态格式混合量化不同层不同比特CPU、边缘设备首选推荐档位 Q4_K_M平衡体积与效果适合本地 CPU 跑模型。FP8英伟达 H100/H200 原生硬件支持8 位浮点数损失极小接近 BF16云端大并发推理越来越多采用 FP8 权重 FP8 KV‑Cache。QLoRA 不是量化算法是4bit 量化基座模型 LoRA 微调的一套微调方案依赖 BitsAndBytes 4bit 量化。四、权重 / 激活 / KV‑Cache 量化概念W权重A激活值W4A16只量化权重为 4bit激活保持 FP16最通用AWQ/GPTQ 默认方案。W8A8权重、激活全部 INT8理论速度更快但对激活异常值敏感一般搭配 SmoothQuant。KV‑Cache 量化对话长上下文场景KV Cache 占显存巨大可以单独对 KV 做 INT4/FP8 量化大幅降低长对话显存开销会轻微影响长文本质量。五、选型建议GPU 推理服务vLLM/TensorRT‑LLM追求最高质量AWQ‑INT4硬件支持 FP8优先 FP8精度要求极高INT8CPU 本地部署llama.cpp优先 GGUF Q4_K_M小模型尽量不要 Q2_K 等极端低比特。做微调QLoRA用 BitsAndBytes NF4 4bit。精度敏感业务法律、医疗优先 INT8谨慎使用 INT4输出层、LayerNorm 层一般保留 FP16不做量化。六、量化常见坑层敏感度不同输出 lm_head、layernorm 对量化很敏感工程上常保留 FP16不参与量化。误差累积长文本生成量化误差逐 token 累积短问答影响小长篇推理影响更大。模型尺寸效应7B 及更小模型INT4 损失明显70B 大模型 INT4 表现好很多。不是比特越低越好2‑3bit 经常出现 “精度悬崖”模型逻辑崩坏。七、和其他模型压缩技术区分量化降低数值比特不改网络结构剪枝删除部分权重蒸馏用大模型教小模型改变参数量量化可以和蒸馏、剪枝组合使用。