首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >显卡突围 “量化魔法”,由数值精度到量化策略介绍

显卡突围 “量化魔法”,由数值精度到量化策略介绍

作者头像
AI老马
发布2026-01-13 15:02:30
发布2026-01-13 15:02:30
400
举报
文章被收录于专栏:AI前沿技术AI前沿技术

对于训练后的模型,由于显卡类型和支持位宽等因素的限制,需要将模型原始权重转化为更合适部署的数值精度,比如由FP8到INT8的转化,可以适配更多的GPU显卡,进而解锁显卡限制。量化方案主要有几种,又如何进行量化,围绕以上问题,本节主要介绍:

1)常见数值精度表示方式,一个十进制数如何使用FP16精度表示 2)常见的量化方案介绍,比如W8A8,W4A16等 3)使用AWQ和GPTQ的量化技术将deepseek-R1模型权重由FP8转换到INT8

1,常见的数值表示方式

浮点数通用结构(IEEE 754 标准),所有浮点数均由 符号位(S)、指数位(E)、尾数位(M) 组成。公式: 数值偏置项

  • 符号位(S):0 表示正数,1 表示负数。
  • 指数位(E):决定数值的大小范围,通过 “偏置值” 转换为有符号指数。
  • 尾数位(M):决定数值的精度,以小数形式表示(隐含整数部分为 1,除非是零或非规格化数)。

类型

总位数

符号位

指数位长度

尾数位长度

指数偏置值

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:转换为二进制

  • • 整数部分22 → 二进制:10110,通过除2取余法实现
  • • 小数部分(0.125) → 二进制:通过乘2取整法实现 即:0.125×2=0.25 → 取整 0,0.25×2=0.5 → 取整 0,0.5×2=1.0 → 取整 1,得0.001
  • 合并:−22.12510=−10110.001

步骤 2:规范化二进制数

将二进制数转换为 的形式:

  • • 指数:4,即小数部分左移四位
  • • 尾数:去掉整数位 1 后,得到 0110001,补零至 10 位:0110001000

步骤 3:计算指数位(含偏置值)

FP16 的偏置值为 15,因此:指数位数值=实际指数+偏置值=4+15=19,转换为二进制:10011

步骤 4:组合符号位、指数位、尾数位

符号位:负数 1,指数位:10011尾数位:0110001000

组合后得到 FP16 的二进制表示:

代码语言:javascript
复制
 1   10011   0110001000
└─┘ └─────┘ └──────────┘
 S  指数位(19) 尾数位(0.0110001)

步骤 5:验证公式

根据 IEEE 754 公式(1),带入数值:S=1,M=0.0110001=0.38085937510,E=19,偏置值 = 15,实际指数 =19−15=4,带入公式计算: ,与原始数值一致!

小结:

  • 指数位越长:数值范围越大(如 TP16 的 8 位指数使范围接近 FP32)。
  • 尾数位越长:精度越高(如 FP64 的 52 位尾数提供 15 位以上有效数字)。
  • FP8/FP6/FP4:遵循 IEEE 754 标准简化结构(符号位 + 指数位 + 尾数位),多用于理论研究或特定硬件优化。

2,量化方案介绍

对于英伟达的芯片,一般其计算位宽每降低一个数量级(32位->16位->8位),底层硬件的算力将成倍的增长,简而言之,当计算位宽减半时,在同等硬件资源条件下可实现两倍理论算力的提升。在大模型量化领域,W8A16、W8A8和W4A16是三种主流的混合精度量化方案,分别通过不同精度的权重(Weight)和激活值(Activation)组合,在模型压缩、推理速度和精度之间进行权衡。

2.1,混合精度计算的过程

三种量化方案的权重和激活值分别属于不同的精度,在进行推理时需要进行混合精度计算。以W8A16量化方案为例,并以一个线性层的推理过程进行说明。

输入: 激活值 A (BF16,上一层的输出,暂存在内存中),权重:W(int8,从磁盘加载到内存)。

计算步骤:

  • • 从内存读取int8权重 W 和量化参数。
  • • 动态反量化:(临时生成BF16权重,计算后释放)。
  • • 计算矩阵乘: (BF16输出,存储到内存供下一层使用)。
  • • 无持久化存储:反量化后的 和中间结果不保留。

2.2,混合精度量化方案介绍

混合精度的设计目标是通过权重量化存储和激活值高精度计算,在节省内存带宽的同时保持数值稳定性。下面主要分析不同混合精度量化方案的核心含义、优势及缺点:

  • W8A16 (Weight 8-bit, Activation 16-bit)

含义:权重使用8位整数量化(INT8),激活值保留16位浮点精度(FP16/BF16)。

优势:精度损失极小(通常<1%),激活值保留高精度,适合对输出敏感的任务(如对话生成、复杂推理)。硬件兼容性好,直接支持GPU/NPU的混合精度计算单元,无需额外优化。显存节省,权重压缩至INT8,模型体积减少50%,适合中等显存设备(如单卡A100)。

缺点:计算加速有限,激活值仍为FP16,无法完全利用INT8计算单元的性能。内存压缩不彻底,激活值占用的显存未优化,长序列场景下仍是瓶颈。

  • W8A8 (Weight 8-bit, Activation 8-bit)

含义:权重和激活值均使用8位整数量化 (INT8)。

优势:显著提升计算效率,权重和激活全INT8,支持硬件加速的INT8矩阵乘,吞吐量提升10%-50%。全面显存压缩,权重和激活均压缩至8位,显存占用降至FP16的1/2~1/3,适合大规模模型部署。

缺点:精度风险较高,激活值中的异常值(Outliers) 易导致量化误差,需依赖SmoothQuant等技术迁移量化难度。校准复杂度高,需精细调整per-token动态量化或per-channel静态量化参数。

  • W4A16 (Weight 4-bit, Activation 16-bit)

含义:权重使用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内核支持

适用场景

高精度任务

高并发在线任务

边缘设备/嵌入式系统

3,量化技术介绍

大模型量化技术主要分为预训练大模型压缩量化 (Quantization for Compressing Pre-trained LLMs)和参数高效微调量化(Quantization for Parameter-Efficient Fine-Tuning, QPEFT)两大方向,其中前者可进一步细分为量化感知训练(Quantization-Aware Training, QAT)和训练后量化(Post-Training Quantization, PTQ)。

3.1 预训练大模型压缩量化

对预训练大模型应用量化技术,使其成为轻量化的预训练模型,主要用于模型压缩和部署优化。 可以细分类型:

量化感知训练 QAT

定义:在模型的训练过程(或预训练模型的微调/再训练阶段)中引入量化机制,使模型从训练初期就适应低精度的量化操作(如权重和激活值的离散化)。

优势:精度保持更优,通过在训练中模拟量化误差,模型可学习补偿量化带来的信息损失,相比训练后量化更能保留模型性能灵活性高,可针对不同硬件和应用场景定制量化策略(如不同层采用不同位宽),平衡压缩率与精度。

训练后量化 PTQ

定义:在模型完成训练后无需重新训练或微调,直接对其权重和激活值进行量化,将高精度参数转换为低精度(如16位、8位或更低位宽)。

优势:操作简单高效,无需修改训练流程或重新训练模型,只需对已训练好的模型进行一次性量化处理,大幅降低部署成本。(使用AWQ和GPTQ的联合量化,将deepseek-R1的FP8权重转化为INT8类型。)

3.2 参数高效微调量化

定义: 在参数高效微调(PEFT)过程中引入量化技术,通过减少可训练参数的数量和精度,降低微调成本(如内存占用、计算量),同时保持模型性能。

具有如下优势:低成本微调,结合PEFT的轻量化微调框架(如LoRA、QLoRA),仅对少量适配器参数进行量化微调,而非整个模型,大幅减少计算资源消耗。 适配性强,可与多种PEFT方法结合,在保持模型泛化能力的同时,实现高效的领域自适应或指令微调。 部署友好,微调后的量化模型可直接用于推理,无需额外压缩步骤,适合需要快速迭代的应用场景。

表格总结如下:

分类

核心思想

主要优势

典型场景

QAT

训练中集成量化

高精度保持、定制化压缩

需重新训练的模型优化

PTQ

训练后直接量化

简单高效、无需重训

闭源模型部署、边缘设备

QPEFT

微调中量化参数高效适配

低成本微调、快速迭代

领域适配、指令微调

4,deepseek-R1精度FP8到INT8的转换

4.1,整体流程

输入:原生FP8模型权重。

具体过程:

  • • FP8 → BF16反量化:将FP8权重反量化为BF16,中间高精度过渡。
  • • BF16 → INT8量化:通过分块或通道量化策略,将BF16权重转换为INT8
  • • 激活值量化:在线动态量化(分块或逐token)。

输出:INT8量化模型(含权重、量化参数、激活值处理逻辑)。

4.2,使用AWQ和GPTQ混合量化策略

AWQ预处理(显著权重保护)

  • • 激活分析:通过前向推理采样输入数据,分析激活值的分布特性,识别对输出影响显著的权重通道 (如高频激活路径对应的权重)
  • • 动态缩放:对关键权重通道进行非均匀缩放(扩大其动态范围),增强其在量化过程中的鲁棒性,减少信息损失。

GPTQ二阶优化(全局误差补偿)

  • • 分组量化:将权重矩阵划分为组(如每128列为一组),与AWQ的缩放分组保持一致。
  • • Hessian修正:利用GPTQ的Hessian矩阵近似误差曲面,对每组权重量化参数(Scale/ZeroPoint) 进行迭代优化,最小化量化前后输出的均方误差(MSE)。
  • • INT8量化执行:在AWQ缩放后的权重基础上,应用GPTQ校准后的参数完成INT8量化。

混合策略部署

  • • 配置对齐:保持AWQ与GPTQ的分组方式、位宽(INT8) 一致,确保量化流程无缝兼容。
  • • 在线量化适配:在推理时复用AWQ的分组缩放策略,并集成GPTQ的反量化参数,实现动态精度补偿。

总结:

AWQ与GPTQ的混合策略通过动态权重保护与全局误差修正的协同,为DeepSeek模型提供了一种高精度、低损耗的INT8量化方案。既继承了AWQ对关键路径的精细化保护能力,又通过GPTQ的数学优化进一步补偿量化误差,实现在压缩率、推理速度和模型精度之间的最佳平衡,为边缘端和大规模部署场景提供高效支持。

更多精彩:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-06-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI老马啊 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1,常见的数值表示方式
  • 2,量化方案介绍
    • 2.1,混合精度计算的过程
    • 2.2,混合精度量化方案介绍
  • 3,量化技术介绍
    • 3.1 预训练大模型压缩量化
    • 3.2 参数高效微调量化
  • 4,deepseek-R1精度FP8到INT8的转换
    • 4.1,整体流程
    • 4.2,使用AWQ和GPTQ混合量化策略
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档