当前位置: 首页 > news >正文

GPTQ 和 AWQ:LLM 量化方法的比较

大语言模型(LLM)在自然语言处理(NLP)任务中取得了显著的进展。然而,LLM 通常具有非常大的模型大小和计算复杂度,这限制了它们在实际应用中的部署。

量化是将浮点数权重转换为低精度整数的过程,可以显著减少模型的大小和计算复杂度。近年来,LLM 量化的研究取得了很大进展,出现了许多新的量化方法。

GPTQ 和 AWQ 是目前最优的 LLM 量化方法之一。GPTQ 是 Google AI 提出的一种基于 group 量化和 OBQ 方法的量化方法。AWQ 是 Facebook AI 提出的一种基于 activation-aware 方法的量化方法。

GPTQ

GPTQ 的工作原理如下:

  1. 首先,GPTQ 使用 group 量化将权重分组为多个子矩阵。
  2. 然后,GPTQ 使用 OBQ 方法来量化每个子矩阵。
  3. 最后,GPTQ 使用动态反量化来恢复权重的原始值。

GPTQ 的改进主要体现在以下几个方面:

  • 分组量化:GPTQ 使用分组量化来将权重分组为多个子矩阵,这可以降低量化精度损失。
  • OBQ 方法:GPTQ 使用 OBQ 方法来量化权重,该方法可以实现高精度的量化。
  • 动态反量化:GPTQ 使用动态反量化来恢复权重的原始值,这可以提高量化的性能。

GPTQ 在各种 LLM 上进行了实验,结果表明,GPTQ 可以实现 3/4 位量化,在相同精度下,GPTQ 的模型大小比原始模型小 1/4。

AWQ

AWQ 的工作原理如下:

  1. 首先,AWQ 使用 group 量化将权重分组为多个子矩阵。
  2. 然后,AWQ 使用 activation-aware 的方法来量化每个子矩阵。
  3. 最后,AWQ 使用无重新排序的在线反量化来提高量化性能。

AWQ 的 activation-aware 方法可以提高量化精度,这是因为激活值在量化后的影响可以通过量化系数进行补偿。具体来说,AWQ 首先计算每个子矩阵的激活分布,然后使用该分布来生成量化系数。

AWQ 的无重新排序的在线反量化可以提高量化性能,这是因为它不需要对权重进行重新排序,可以直接在量化后的权重上进行反量化。

AWQ 在各种 LLM 上进行了实验,结果表明,AWQ 可以实现 3/4 位量化,在相同精度下,AWQ 的模型大小比原始模型小 1/4,推理速度比 GPTQ 快 1.45 倍。

特征AWQGPTQ
量化精度优秀良好
模型大小最小较小
计算速度最快较快
实现难度较易较难
量化成本较高较低

AWQ 在量化精度、模型大小和计算速度方面都优于 GPTQ,但在量化成本方面略高。

结论

GPTQ 和 AWQ 都是 LLM 量化领域的优秀方法。GPTQ 具有良好的量化精度和易于实现的特点,适合于大多数 LLM 任务。AWQ 具有优异的量化性能,但量化成本略高,适合于对推理速度要求较高的 LLM 任务。

http://www.lryc.cn/news/192987.html

相关文章:

  • JVM:虚拟机类加载机制
  • PHP筆記
  • IDEA启动报错Failed to create JVM. JVM path的解决办法
  • 源码解析FlinkKafkaConsumer支持周期性水位线发送
  • Nginx:动静分离(示意图+配置讲解)
  • 通讯网关软件024——利用CommGate X2Access实现Modbus TCP数据转储Access
  • vim工具的使用
  • Docker学习_存储篇
  • 微信小程序获取当前日期时间
  • Unity关键词语音识别
  • SpringBoot的配置文件——.yml和.properties
  • Retrieve Anything To Augment Large Language Models
  • 什么是面向对象编程
  • c++视觉处理----固定阈值操作:Threshold()函数,实时处理:二值化,反二值化,截断,设为零,反向设为零
  • KWin、libdrm、DRM从上到下全过程 —— drmModeAddFBxxx(8)
  • 【问题解决】Ubuntu 安装 SeisSol 依赖 easi 报错解决: undefined reference to `H5free_memory‘
  • 循环小数(Repeating Decimals, ACM/ICPC World Finals 1990, UVa202)rust解法
  • [GAMES101]透视投影变换矩阵中为什么需要改变z值
  • sklearn处理离散变量的问题——以决策树为例
  • QT 数据库表格----QSqlTableModel
  • Vue_Bug Failed to fetch extension, trying 4 more times
  • 缩短从需求到上线的距离:集成多种工程实践的稳定框架 | 开源日报 No.55
  • 基于秃鹰优化的BP神经网络(分类应用) - 附代码
  • C++笔记之std::future的用法
  • openssl学习——消息认证码原理
  • Netty使用SslHandler实现加密通信-单向认证篇
  • Jetpack:007-Kotlin中的Button
  • opencv图形绘制2
  • “华为杯”研究生数学建模竞赛2019年-【华为杯】A题:无线智能传播模型(附优秀论文及Pyhton代码实现)(续)
  • 爬虫 | 正则、Xpath、BeautifulSoup示例学习