对于训练后的模型,由于显卡类型和支持位宽等因素的限制,需要将模型原始权重转化为更合适部署的数值精度,比如由FP8到INT8的转化,可以适配更多的GPU显卡,进而解锁显卡限制。量化方案主要有几种,又如何进行量化,围绕以上问题,本节主要介绍:
1)常见数值精度表示方式,一个十进制数如何使用FP16精度表示 2)常见的量化方案介绍,比如W8A8,W4A16等 3)使用AWQ和GPTQ的量化技术将deepseek-R1模型权重由FP8转换到INT8
浮点数通用结构(IEEE 754 标准),所有浮点数均由 符号位(S)、指数位(E)、尾数位(M) 组成。公式: 数值偏置项
类型 | 总位数 | 符号位 | 指数位长度 | 尾数位长度 | 指数偏置值 |
|---|---|---|---|---|---|
FP64 | 64 | 1 | 11 | 52 | 1023 |
FP32 | 32 | 1 | 8 | 23 | 127 |
TF32 | 32 | 1 | 8 | 10 | 127 |
BF16 | 16 | 1 | 8 | 7 | 127 |
FP16 | 16 | 1 | 5 | 10 | 15 |
FP8 | 8 | 1 | 4 | 3 | 7 |
INT8 | 8 | 1* | - | - | - |
INT4 | 4 | 1* | - | - | - |
举例,将十进制数 -22.125 转换为FP16(半精度浮点数)的IEEE 754 格式。
步骤 1:转换为二进制
步骤 2:规范化二进制数
将二进制数转换为 的形式:
步骤 3:计算指数位(含偏置值)
FP16 的偏置值为 15,因此:指数位数值=实际指数+偏置值=4+15=19,转换为二进制:10011
步骤 4:组合符号位、指数位、尾数位
符号位:负数 1,指数位:10011尾数位:0110001000
组合后得到 FP16 的二进制表示:
1 10011 0110001000
└─┘ └─────┘ └──────────┘
S 指数位(19) 尾数位(0.0110001)步骤 5:验证公式
根据 IEEE 754 公式(1),带入数值:S=1,M=0.0110001=0.38085937510,E=19,偏置值 = 15,实际指数 =19−15=4,带入公式计算: ,与原始数值一致!
小结:
对于英伟达的芯片,一般其计算位宽每降低一个数量级(32位->16位->8位),底层硬件的算力将成倍的增长,简而言之,当计算位宽减半时,在同等硬件资源条件下可实现两倍理论算力的提升。在大模型量化领域,W8A16、W8A8和W4A16是三种主流的混合精度量化方案,分别通过不同精度的权重(Weight)和激活值(Activation)组合,在模型压缩、推理速度和精度之间进行权衡。
三种量化方案的权重和激活值分别属于不同的精度,在进行推理时需要进行混合精度计算。以W8A16量化方案为例,并以一个线性层的推理过程进行说明。
输入: 激活值 A (BF16,上一层的输出,暂存在内存中),权重:W(int8,从磁盘加载到内存)。
计算步骤:
混合精度的设计目标是通过权重量化存储和激活值高精度计算,在节省内存带宽的同时保持数值稳定性。下面主要分析不同混合精度量化方案的核心含义、优势及缺点:
含义:权重使用8位整数量化(INT8),激活值保留16位浮点精度(FP16/BF16)。
优势:精度损失极小(通常<1%),激活值保留高精度,适合对输出敏感的任务(如对话生成、复杂推理)。硬件兼容性好,直接支持GPU/NPU的混合精度计算单元,无需额外优化。显存节省,权重压缩至INT8,模型体积减少50%,适合中等显存设备(如单卡A100)。
缺点:计算加速有限,激活值仍为FP16,无法完全利用INT8计算单元的性能。内存压缩不彻底,激活值占用的显存未优化,长序列场景下仍是瓶颈。
含义:权重和激活值均使用8位整数量化 (INT8)。
优势:显著提升计算效率,权重和激活全INT8,支持硬件加速的INT8矩阵乘,吞吐量提升10%-50%。全面显存压缩,权重和激活均压缩至8位,显存占用降至FP16的1/2~1/3,适合大规模模型部署。
缺点:精度风险较高,激活值中的异常值(Outliers) 易导致量化误差,需依赖SmoothQuant等技术迁移量化难度。校准复杂度高,需精细调整per-token动态量化或per-channel静态量化参数。
含义:权重使用4位整数量化 (INT4),激活值保留FP16/BF16精度。
优势:极致显存压缩,权重压缩至4位,模型体积减少75%,支持百亿模型在消费级显卡(如RTX 4090)运行36。适合边缘设备,低比特权重降低能耗,适合手机、10T设备等资源受限场景610。
缺点:精度损失明显,权重信息丢失较多,需结合分组量化(AWQ per-group) 或稀疏训练补偿。计算加速受限,激活值仍为FP16,无法完全释放4位计算的潜力
下表从核心维度对比三种方案的关键特性:
特性 | W8A16 | W8A8 | W4A16 |
|---|---|---|---|
精度损失 | 最低,在1%以内 | 中等,在1%到5%之间 | 较高,在5%到10%之间 |
显存占用 | 降低约50% | 降低约60%到70% | 降低约75% |
推理速度 | 中等提升 | 显著提升 | 中等提升 |
硬件要求 | 支持通用GPU/NPU | 需要INT8计算单元的支持 | 需要4-bit内核支持 |
适用场景 | 高精度任务 | 高并发在线任务 | 边缘设备/嵌入式系统 |
大模型量化技术主要分为预训练大模型压缩量化 (Quantization for Compressing Pre-trained LLMs)和参数高效微调量化(Quantization for Parameter-Efficient Fine-Tuning, QPEFT)两大方向,其中前者可进一步细分为量化感知训练(Quantization-Aware Training, QAT)和训练后量化(Post-Training Quantization, PTQ)。
对预训练大模型应用量化技术,使其成为轻量化的预训练模型,主要用于模型压缩和部署优化。 可以细分类型:
量化感知训练 QAT
定义:在模型的训练过程(或预训练模型的微调/再训练阶段)中引入量化机制,使模型从训练初期就适应低精度的量化操作(如权重和激活值的离散化)。
优势:精度保持更优,通过在训练中模拟量化误差,模型可学习补偿量化带来的信息损失,相比训练后量化更能保留模型性能。灵活性高,可针对不同硬件和应用场景定制量化策略(如不同层采用不同位宽),平衡压缩率与精度。
训练后量化 PTQ
定义:在模型完成训练后无需重新训练或微调,直接对其权重和激活值进行量化,将高精度参数转换为低精度(如16位、8位或更低位宽)。
优势:操作简单高效,无需修改训练流程或重新训练模型,只需对已训练好的模型进行一次性量化处理,大幅降低部署成本。(使用AWQ和GPTQ的联合量化,将deepseek-R1的FP8权重转化为INT8类型。)
定义: 在参数高效微调(PEFT)过程中引入量化技术,通过减少可训练参数的数量和精度,降低微调成本(如内存占用、计算量),同时保持模型性能。
具有如下优势:低成本微调,结合PEFT的轻量化微调框架(如LoRA、QLoRA),仅对少量适配器参数进行量化微调,而非整个模型,大幅减少计算资源消耗。 适配性强,可与多种PEFT方法结合,在保持模型泛化能力的同时,实现高效的领域自适应或指令微调。 部署友好,微调后的量化模型可直接用于推理,无需额外压缩步骤,适合需要快速迭代的应用场景。
表格总结如下:
分类 | 核心思想 | 主要优势 | 典型场景 |
|---|---|---|---|
QAT | 训练中集成量化 | 高精度保持、定制化压缩 | 需重新训练的模型优化 |
PTQ | 训练后直接量化 | 简单高效、无需重训 | 闭源模型部署、边缘设备 |
QPEFT | 微调中量化参数高效适配 | 低成本微调、快速迭代 | 领域适配、指令微调 |
输入:原生FP8模型权重。
具体过程:
输出:INT8量化模型(含权重、量化参数、激活值处理逻辑)。
AWQ预处理(显著权重保护)
GPTQ二阶优化(全局误差补偿)
混合策略部署
总结:
AWQ与GPTQ的混合策略通过动态权重保护与全局误差修正的协同,为DeepSeek模型提供了一种高精度、低损耗的INT8量化方案。既继承了AWQ对关键路径的精细化保护能力,又通过GPTQ的数学优化进一步补偿量化误差,实现在压缩率、推理速度和模型精度之间的最佳平衡,为边缘端和大规模部署场景提供高效支持。
更多精彩: