写在前面
WeThinkIn最新福利放送:大家只需关注WeThinkIn公众号,后台回复“简历资源”,即可获取包含Rocky独家简历模版在内的60套精选的简历模板资源,希望能给大家在AIGC时代带来帮助。
AIGC时代的《三年面试五年模拟》算法工程师求职面试秘籍(持续更新)独家资源:https://github.com/WeThinkIn/Interview-for-Algorithm-Engineer/tree/main
Rocky最新发布Stable Diffusion 3和FLUX.1系列模型的深入浅出全维度解析文章(持续更新),点击链接直达干货知识:https://zhuanlan.zhihu.com/p/684068402
WeThinkIn导读
EfficientQAT 可以在 41 小时内在单个 A100-80GB GPU 上完成对 2-bit Llama-2-70B 模型的量化感知训练。与全精度模型相比,精度仅下降了不到 3%(69.48 vs. 72.41)。
简介
此文章介绍一种新型量化量化方式,EfficientQAT。大语言模型的4-bit量化相对来说已经较为成熟,掉点少。近期,众多工作聚焦于推进2-bit量化。考虑到均匀(INT)量化的显著性能损失,近期领域内主要关注vector量化,例如用于2-bit精确量化的 AQLM [1] 和 QUIP# [2]。但他们[1,2]或是引入额外不可忽略的计算开销,或是数据格式难以实现实际加速,给部署带来了诸多挑战。
在EfficentQAT中,我们致力于突破INT量化的局限性。如下图1所示,我们在保持INT量化容易落地部署的特性下,成功地使INT量化达到与vector量化相当的性能。特别是,EfficientQAT 可以在 41 小时内在单个 A100-80GB GPU 上完成对 2-bit Llama-2-70B 模型的量化感知训练。与全精度模型相比,精度仅下降了不到 3%(69.48 vs. 72.41)。值得注意的是,该 INT2 量化的70B 模型比 Llama-2-13B 模型获得了 1.67 的精度增益(69.48 vs. 67.81),同时需要更少的内存(19.2GB vs. 24.2GB)。
相关资源如下:
文章:https://arxiv.org/abs/2407.11062 代码:https://github.com/OpenGVLab/EfficientQAT
同时,我们也在huggingface上提供了量化后的模型,以及将量化模型repack成更多不同的格式,例如GPTQ格式以及BitBLAS格式:
EfficientQAT量化后的模型: https://huggingface.co/collections/ChenMnZ/efficientqat-6685279958b83aeb6bcfc679 转化为GPTQ格式:https://huggingface.co/collections/ChenMnZ/efficientqatgptq-format-669e050e0060107f091edc95 转化为BitBLAS格式: https://huggingface.co/collections/ChenMnZ/efficientqat-bitblas-format-669e0559fe9496b3c6fca59c
注意,由于原本的AutoGPTQ对asymmetric quantization存在一个数据溢出的bug (详见 Lin Zhang:分析AutoGPTQ中存在的一个Bug(https://zhuanlan.zhihu.com/p/680047456),所以我们选择的是AutoGPTQ的官方bug修订版 GPTQModel(https://github.com/ModelCloud/GPTQModel) 进行repack。
背景
为了更好得理解量化操作是如何加速大语言模型(Large Language Models, LLMs)的,我们首先介绍模型推理过程中的计算瓶颈。
如图1所示,一个操作的计算时间可以分为两大块的和,分别是数据处理时间以及计算执行时间。为了更好的理解计算瓶颈是在数据搬运还是在计算执行上,我们引入一个经典的roofline性能分析模型。如图2所示,x轴是计算密度,即每秒计算次数和每秒数据搬运次数的比值;y轴即每秒可以完成的计算次数 (Operation Per Seconds, OPS)。从图2我们可以看出,当计算密度低时,操作就是内存密集型 (memory-bound), 通过减少数据搬运开销,增大计算密度,可以显著增加OPS,实现推理加速的目的。
值得注意的是,LLMs的推理可以分为两个阶段,Prefilling阶段和Decoding阶段。我们主要关注占据大部分时间的Decoding阶段,此时LLMs执行的是逐token的自回归推理。计算每个token所需要的计算量低,但是却需要搬运整个模型的权重,导致计算密度低,即模型属于memory-bound。因此,一种直接的加速手段,也即本文的研究对象,就是weight-only quantization:通过降低weight的bit数,以同时实现推理时的显存减少和推理速度提升。
方法
如前文所述,INT2 量化会带来显著的性能损失。一种可能的解决方案是Quantization-Aware Training (QAT):
如图3所示,QAT需要同时端到端的训练整个网络的所有权重以及量化参数,导致内存开销大,以及对数据质量的要求高。近期的工作BitNet b1.58 [4]证明了3值QAT也能达到和FP模型类似的精度。但是,由于QAT的巨大训练开销,导致BitNet b1.58也仅在3B模型以及100B训练tokens上进行了验证。总的来说,QAT是提升量化模型的有效手段,但巨大的训练开销阻碍了其应用。
为了解决QAT的高训练开销问题,我们提出平替版,EfficientQAT:
如图4所示,EfficientQAT的主要思路有两点:
将整体的End-to-End Training解耦成同时包含Block-wise Training 和 End-to-End Training的两阶段训练方式。 将weight的更新限制在Block-wise Training阶段。
具体而言,引入Block-wise Training的思路主要follow此前的工作BRECQ [5] 和OmniQuant [4], 旨在通过此细粒度的Block-wise MSE重建监督降低对数据量的需求。同时,我们发现,在Block-wise Training阶段,简单的直接优化权重和相关量化参数即可获得最优性能。无需像此前的PTQ方法一样设计rounding parameters [6,7] 或者clipping parameters [4]以约束解空间防过拟合。由于此Block-wise Training 阶段所有参数被同时训练,我们将其称为:Block-wise Training with All Parameters (Block-AP)。
进一步的,我们希望对网络进行端到端训练以实现进一步降低量化损失的能力,以及实现支持模型adapt到任意数据集的能力。基于此,我们提出End-to-End Training with Quantization Parameters (E2E-QP)。我们首先对Block-AP量化后的低bit模型进行pack,使得其可以用更少的内存读取,降低训练内存开销。其次,我们发现,在小数据的End-to-End training上,单独训练量化参数 step size (s), zero point (z) 或者两者同时训都能达到类似的性能,但是训练z需要将其从低bit的表现形式转化回fp16,引入了额外的存储开销。基于此,在E2E-QP阶段,我们选择只训练量化参数s。
实验结果
训练数据 Block-AP阶段采用来自RedPajama数据集的4096个长度为2048的片段,E2E-QP阶段采用来自RedPajama数据集的4096个长度为4096的片段。
如表1和表2所示,EfficientQAT 在低bit 场景相较于此前的uniform量化方案性能优势明显,同时产生于vector量化方案comparable的结果。需要注意的是,表中加粗并不表示最优,因为大多数情况下,性能最优方案是vector量化,但需要注意的是他们是以难以部署为代价,如此前的图1所示。同时,值得注意的是,Llama-3的量化难度或者量化敏感性显著高于Llama-2,和此前的文献[3]观察类似。
表3给出了EfficientQAT和此前的一些LLM QAT方案的对比。
通过修改E2E-QP阶段的数据集,EfficientQAT也可以实现和此前Q-LoRA [9]系列工作, 即量化版parameter-efficient fine-tuning。但值得注意的是EfficientQAT不需要引入额外的LoRA模块,其本身训练的量化参数即可视为Adapter。如表4所示,可以发现EfficientQAT显著优于此前的方案,我们将性能优势其归因为Block-AP阶段量化的初始化。
表5和表6分别呈现了EfficientQAT的量化开销以及推理加速。更多实验以及分析可以参见原文。
总结
在本研究中,我们引入了EfficientQAT,它在内存使用和训练时间上均提高了量化感知训练(QAT)的效率。经过全面测试,EfficientQAT在多样性和性能方面超越了现有的后训练量化(PTQ)、量化感知训练(QAT)以及量化参数高效微调(Q-PEFT)方法,适用于不同模型和量化级别。此外,EfficientQAT利用标准均匀量化,这简化了使用现有工具箱进行部署的过程。
Reference
[1] Extreme Compression of Large Language Models via Additive Quantization
[2] QuIP#: Even Better LLM Quantization with Hadamard Incoherence and Lattice Codebooks
[3] LLM Inference Unveiled: Survey and Roofline Model Insights
[4] The Era of 1-bit LLMs: All Large Language Models are in 1.58 Bits
[4] OmniQuant: Omnidirectionally Calibrated Quantization for Large Language Models
[5] BRECQ: Pushing the Limit of Post-Training Quantization by Block Reconstruction
[6] Up or down? adaptive rounding for post-training quantization.
[7] Optimize weight rounding via signed gradient descent for the quantization of llms
[8] How Good Are Low-bit Quantized LLAMA3 Models? An Empirical Study
[9] QLORA: Efficient Finetuning of Quantized LLMs
推荐阅读
1、加入AIGCmagic社区知识星球
AIGCmagic社区知识星球不同于市面上其他的AI知识星球,AIGCmagic社区知识星球是国内首个以AIGC全栈技术与商业变现为主线的学习交流平台,涉及AI绘画、AI视频、大模型、AI多模态、数字人、全行业AIGC赋能等50+应用方向,内部包含海量学习资源、专业问答、前沿资讯、内推招聘、AI课程、AIGC模型、AIGC数据集和源码等。
那该如何加入星球呢?很简单,我们只需要扫下方的二维码即可。知识星球原价:299元/年,前200名限量活动价,终身优惠只需199元/年。大家只需要扫描下面的星球优惠卷即可享受初始居民的最大优惠:
2、《三年面试五年模拟》算法工程师面试秘籍
《三年面试五年模拟》面试秘籍旨在整理&挖掘AI算法工程师在实习/校招/社招时所需的干货知识点与面试方法,力求让读者在获得心仪offer的同时,增强技术基本面。
Rocky已经将《三年面试五年模拟》面试秘籍的完整版构建在Github上:https://github.com/WeThinkIn/Interview-for-Algorithm-Engineer/tree/main,欢迎大家star!
想要一起进行项目共建的朋友,欢迎点击链接加入项目团队:《三年面试五年模拟》版本更新白皮书,迎接AIGC时代
3、Sora等AI视频大模型的核心原理,核心基础知识,网络结构,经典应用场景,从0到1搭建使用AI视频大模型,从0到1训练自己的AI视频大模型,AI视频大模型性能测评,AI视频领域未来发展等全维度解析文章正式发布!
码字不易,欢迎大家多多点赞:
Sora等AI视频大模型文章地址:https://zhuanlan.zhihu.com/p/706722494
4、Stable Diffusion 3和FLUX.1核心原理,核心基础知识,网络结构,从0到1搭建使用Stable Diffusion 3和FLUX.1进行AI绘画,从0到1上手使用Stable Diffusion 3和FLUX.1训练自己的AI绘画模型,Stable Diffusion 3和FLUX.1性能优化等全维度解析文章正式发布!
码字不易,欢迎大家多多点赞:
Stable Diffusion 3和FLUX.1文章地址:https://zhuanlan.zhihu.com/p/684068402
5、Stable Diffusion XL核心基础知识,网络结构,从0到1搭建使用Stable Diffusion XL进行AI绘画,从0到1上手使用Stable Diffusion XL训练自己的AI绘画模型,AI绘画领域的未来发展等全维度解析文章正式发布!
码字不易,欢迎大家多多点赞:
Stable Diffusion XL文章地址:https://zhuanlan.zhihu.com/p/643420260
6、Stable Diffusion 1.x-2.x核心原理,核心基础知识,网络结构,经典应用场景,从0到1搭建使用Stable Diffusion进行AI绘画,从0到1上手使用Stable Diffusion训练自己的AI绘画模型,Stable Diffusion性能优化等全维度解析文章正式发布!
码字不易,欢迎大家多多点赞:
Stable Diffusion文章地址:https://zhuanlan.zhihu.com/p/632809634
7、ControlNet核心基础知识,核心网络结构,从0到1使用ControlNet进行AI绘画,从0到1训练自己的ControlNet模型,从0到1上手构建ControlNet商业变现应用等全维度解析文章正式发布!
码字不易,欢迎大家多多点赞:
ControlNet文章地址:https://zhuanlan.zhihu.com/p/660924126
8、LoRA系列模型核心原理,核心基础知识,从0到1使用LoRA模型进行AI绘画,从0到1上手训练自己的LoRA模型,LoRA变体模型介绍,优质LoRA推荐等全维度解析文章正式发布!
码字不易,欢迎大家多多点赞:
LoRA文章地址:https://zhuanlan.zhihu.com/p/639229126
9、Transformer核心基础知识,核心网络结构,AIGC时代的Transformer新内涵,各AI领域Transformer的应用落地,Transformer未来发展趋势等全维度解析文章正式发布!
码字不易,欢迎大家多多点赞:
Transformer文章地址:https://zhuanlan.zhihu.com/p/709874399
10、最全面的AIGC面经《手把手教你成为AIGC算法工程师,斩获AIGC算法offer!(2024年版)》文章正式发布!
码字不易,欢迎大家多多点赞:
AIGC面经文章地址:https://zhuanlan.zhihu.com/p/651076114
11、50万字大汇总《“三年面试五年模拟”之算法工程师的求职面试“独孤九剑”秘籍》文章正式发布!
码字不易,欢迎大家多多点赞:
算法工程师三年面试五年模拟文章地址:https://zhuanlan.zhihu.com/p/545374303
《三年面试五年模拟》github项目地址(希望大家能多多star):https://github.com/WeThinkIn/Interview-for-Algorithm-Engineer
12、Stable Diffusion WebUI、ComfyUI、Fooocus三大主流AI绘画框架核心知识,从0到1搭建AI绘画框架,从0到1使用AI绘画框架的保姆级教程,深入浅出介绍AI绘画框架的各模块功能,深入浅出介绍AI绘画框架的高阶用法等全维度解析文章正式发布!
码字不易,欢迎大家多多点赞:
AI绘画框架文章地址:https://zhuanlan.zhihu.com/p/673439761
13、GAN网络核心基础知识,网络架构,GAN经典变体模型,经典应用场景,GAN在AIGC时代的商业应用等全维度解析文章正式发布!
码字不易,欢迎大家多多点赞:
GAN网络文章地址:https://zhuanlan.zhihu.com/p/663157306
14、其他
Rocky将YOLOv1-v7全系列大解析文章也制作成相应的pdf版本,大家可以关注公众号WeThinkIn,并在后台 【精华干货】菜单或者回复关键词“YOLO” 进行取用。