LLM大模型经典PTQ量化方法总结

本文综合LLM.int8()、SmoothQuant、AWQ、GPTQ、FP8等主流PTQ量化方法的论文结论,总结如下:

「PS:以上这些方法在实践中验证是有效的,以下结论基于这些方法的相关研究,可用于分析模型效果和评估结论的大致指导,但是,量化误差的影响因素是多元的,不一定所有模型、所有数据都普适」

  • • 权重易量化,激活难量化;
  • • 激活中,不同Tokens的数据分布表现出一致的趋势,异常值出现在固定的一些通道,不同Tokens的相同通道值方差**较小;
  • • 4bit及以下权重量化,权重中有0.1%~1%的权重对量化误差影响很大,对应激活中的异常通道
  • • 模型超过6.7B,RTN w8a8精度下降明显;
  • • FP8由于数据点的分布不同于Int的均匀分布,量化效果较好,但需要结合实际的数据分布来看;
  • • 这些方法的实操,通过Transformers/TensorRT-LLM/AutoGPTQ**/AutoAWQ/AutoFP8等开源库都可方便的生成量化模型,不是很复杂;推理上,各个方法基本都是获取scale、zeropoint、max、min、group等参数,通过对应的高效kernel来实现,vLLM/TensorRT-LLM中也有对应的实现;
  • • 有效PTQ量化方法的三个典型解决方案:
    • • 实验观察(激活比权重难量化):RTN->LLM.int8()->SmoothQuant->AWQ
    • • 最优化方法:GPTQ
    • • 数据分布与数值表示:FP8
  • • GPTQ量化过程理解起来比较复杂,其他算法相对简单。

在这里插入图片描述

基本概念

量化

以较低的推理精度损失,将高精度(通常为float32或者大量可能的离散值)的浮点型参数近似为有限个离散值(通常为int8)的过程。

量化目标

在不明显损失效果的前提下,降低显存占用,提高推理速度

量化方式

  • • QAT(Quantization-Aware-Training):通过近似微分rounding operation 操作,进行retrain或finetune,资源消耗大,LLM很少用
  • • PTQ(Post-Training Quantization):直接量化pre-trained model,需要少量数据校正,LLM的主流量化方法都是PTQ

量化粒度

  • • per-tensor
  • • per-token/per-channel
  • • group-wise

在这里插入图片描述

量化对象

  • • Weights
  • • Activations
  • • KV Cache

其他常见概念

  • • 静态量化:通过校准数据离线获取量化参数
  • • 动态量化:在线推理时动态计算量化参数
  • • 对称量化:量化公式中的量化参数zero-point固定为0的量化
  • • 非对称量化:量化公式中的量化参数zero-point不固定为0的量化
  • • 仅权重量化:比如AWQ & GPTQ
  • • 权重激活同时量化:比如SmoothQuant

经典算法

RTN

直接通过公式 q = Clip(Round(r/s) + z, qmin, qmax) 量化模型,通常作为baseline,对于大模型(一般超过6.7B),精度损失较大。

在这里插入图片描述

LLM.int8()

  • • 核心思想

激活中存在离群值(Emergent Features),这些离群值对量化精度取决定性作用。分解权重和激活矩阵,对绝大部分权重和激活用8bit量化,对离群特征的几个维度保留16bit,对其做高精度的矩阵乘法。主要操作概括为:矩阵分解、量化矩阵乘&高精度矩阵乘、矩阵相加,下图解释的非常清楚:

在这里插入图片描述

  • • 优点

能保持与FP16相当的精度,同时,有效降低显存占用

  • • 缺点

计算比FP16还慢

在这里插入图片描述

SmoothQuant

  • • 核心思想

weights容易量化,activations不易量化,通过一个数学等价的转换形式,迁移激活的outliers到weights,均衡一下,使得weights和activations都相对好量化。

在这里插入图片描述

观察数据得到的规律

  • 权重易量化:之前的工作LLM.int8()表明,使用 INT8 甚至 INT4 量化 LLM 的权重不会降低准确性;
  • 异常值使激活难量化:激活异常值比大多数激活值大约 100 倍。如果我们使用 INT8 量化,大多数值将被清零;
  • 异常值持续存在于固定的通道(channel)中:固定通道存在异常值,并且异常值通道值较大。

在这里插入图片描述

  • • 优点

权重和激活均8bit量化,W8A8,相比FP16量化损失较小,加速1.4倍左右,显存减少1半

  • • 缺点

不适合更低bit的量化

AWQ

  • • 核心思想

所有权重不是同等重要的,只有0.1%~1%显著重要的权重,保护这些权重,可以有效降低量化误差;重要的权重就是对应大激活值的权重,它们关联着更重要的特征,增大其值可以减少量化误差。

在这里插入图片描述

  • • 优点

不会过拟合校准数据,相比GPTQ;利用重要channels上value的均值,grid search最优系数;

使用更少的校准数据,相比GPTQ;

  • • 缺点

Sorry,i don’t know,but it must have.

GPTQ

GPTQ 并不是凭空出现的,它的原理来自于另一个量化方法OBQ(Optimal Brain Quantization),而OBQ 实际上是对 OBS(Optimal Brain Surgeon,一种比较经典的剪枝方法)的魔改, 而OBS则来自于OBD(Optimal Brain Damage,由 Yann LeCun** 在1990年提出的剪枝方法)。

  • • 核心思想

按行迭代进行权重量化,部分权重量化后,利用近似二阶导数信息,更新未量化的权重,从而弥补已量化权重带来的精度损失。

  • • 优点

小批量推理加速明显,4bit量化精度损失可忽略,可扩展至2bit,甚至三元量化

  • • 缺点

可能会过拟合于校准数据

  • • 原理

目标优化函数

在这里插入图片描述

优化过程示意图(省去Hessian逆&Cholesky,便于理解)

在这里插入图片描述

在这里插入图片描述

伪代码(耐心看下,就能懂)

在这里插入图片描述

FP8

  • • 计算公式

Q = Clip(Round(X/Xmax*Qmax), Qmin, Qmax)

与Int8对比
  • • Int8更适合权重,更适合符合均匀分布的数据
  • • FP8更适合激活,更适合高斯分布、t分布等的数据
  • • Int8量化激活的不足在于,量化分布的范围太大(异常值所致),导致大多数量化 bins 为空,小的量化值被量化为零或者较小值的几个bins,基本上消除了信息
  • • 下图为FP8 E4M3的数据格式表示的数据点,“中间密两头稀” ,E[X]M[Y],其中X,Y的不同,以及指数表示中bias的不同,都会对分布产生影响。

在这里插入图片描述

开源工具

AutoAWQ

https://github.com/casper-hansen/AutoAWQ

AutoGPTQ

https://github.com/AutoGPTQ/AutoGPTQ

Auto-FP8

https://github.com/neuralmagic/AutoFP8

TensorRT-LLM

https://github.com/NVIDIA/TensorRT-LLM/blob/main/examples/quantization/quantize.py

Nvidia Benchmark 参考数据

在这里插入图片描述

在这里插入图片描述

Performance & Accuracy Tradeoff

在这里插入图片描述

如何系统的去学习大模型LLM ?

大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业?”“谁的饭碗又将不保了?”等问题热议不断。

事实上,抢你饭碗的不是AI,而是会利用AI的人。

科大讯飞、阿里、华为等巨头公司发布AI产品后,很多中小企业也陆续进场!超高年薪,挖掘AI大模型人才! 如今大厂老板们,也更倾向于会AI的人,普通程序员,还有应对的机会吗?

与其焦虑……

不如成为「掌握AI工具的技术人」,毕竟AI时代,谁先尝试,谁就能占得先机!

但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高。

针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份 LLM大模型资料 分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓

👉CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)👈

一、LLM大模型经典书籍

AI大模型已经成为了当今科技领域的一大热点,那以下这些大模型书籍就是非常不错的学习资源。

在这里插入图片描述

二、640套LLM大模型报告合集

这套包含640份报告的合集,涵盖了大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。(几乎涵盖所有行业)

在这里插入图片描述

三、LLM大模型系列视频教程

在这里插入图片描述

四、LLM大模型开源教程(LLaLA/Meta/chatglm/chatgpt)

在这里插入图片描述

LLM大模型学习路线

阶段1:AI大模型时代的基础理解

  • 目标:了解AI大模型的基本概念、发展历程和核心原理。

  • 内容

    • L1.1 人工智能简述与大模型起源
    • L1.2 大模型与通用人工智能
    • L1.3 GPT模型的发展历程
    • L1.4 模型工程
    • L1.4.1 知识大模型
    • L1.4.2 生产大模型
    • L1.4.3 模型工程方法论
    • L1.4.4 模型工程实践
    • L1.5 GPT应用案例

阶段2:AI大模型API应用开发工程

  • 目标:掌握AI大模型API的使用和开发,以及相关的编程技能。

  • 内容

    • L2.1 API接口
    • L2.1.1 OpenAI API接口
    • L2.1.2 Python接口接入
    • L2.1.3 BOT工具类框架
    • L2.1.4 代码示例
    • L2.2 Prompt框架
    • L2.3 流水线工程
    • L2.4 总结与展望

阶段3:AI大模型应用架构实践

  • 目标:深入理解AI大模型的应用架构,并能够进行私有化部署。

  • 内容

    • L3.1 Agent模型框架
    • L3.2 MetaGPT
    • L3.3 ChatGLM
    • L3.4 LLAMA
    • L3.5 其他大模型介绍

阶段4:AI大模型私有化部署

  • 目标:掌握多种AI大模型的私有化部署,包括多模态和特定领域模型。

  • 内容

    • L4.1 模型私有化部署概述
    • L4.2 模型私有化部署的关键技术
    • L4.3 模型私有化部署的实施步骤
    • L4.4 模型私有化部署的应用场景

这份 LLM大模型资料 包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓

👉CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)👈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值