量化QAT QLoRA GPTQ

模型量化的思路可以分为PTQ(Post-Training Quantization,训练后量化)和QAT(Quantization Aware Training,在量化过程中进行梯度反传更新权重,例如QLoRA),GPTQ是一种PTQ的思路。

QAT(Quantization Aware Training)

BN需要先融合掉:

伪量化节点是根据融合图来决定的

量化过程中不可导的部分是Round函数,Hinton论文中把他的导数置为1,这就解决了量化框架中梯度反向传播的问题,图片截取自https://www.bilibili.com/video/BV13s4y1D73L/:

AdaRound和AdaQuant这些论文都是一层层训练的,QAT需要把某些层切成子图,对子图量化即可。

QLoRA

几个关键点:

  • 4bit NormalFloat 量化
  • 双重量化
  • Page Optimizer:Page Optimizer机制使得在GPU显存吃紧的时候可以把optimizer转移到内存上,在需要更新optimizer状态时再加载回来,据说可以有效减少GPU显存的峰值占用,文章称想要达到在24gb上训练33B 参数模型这个机制是必须的

QLoRA实现中用了bitsandbytes这个库

GPT

例如TensorRT的后量化,paddlepaddle的后量化,推理框架最清楚网络做哪些图融合,但是GPT不会训练,不会梯度反传。PPQ是商汤出的量化框架

GPTQ

GPTQ并不是完全凭空头脑风暴出来的想法,而是经过OBD(Optimal Brain Damage)->OBS(Optimal Brain Surgeon,Second Order Derivatives for Network Pruning)-> OBQ(Optimal Brain Quantization)->GPTQ逐渐演化过来的。这一类思路基本的出发点在于先考虑一个单层的网络W,如何找到一个量化后的网络Wq,使得W和Wq之间的差别最小?OBD方法是Lecun在1989年就在搞的方法,主要思路用W和Wq之间的误差进行泰勒展开,展开后舍弃一些项,得到利用海森矩阵进行迭代更新;OBS方法发现OBD方法在进行权重剪切的过程中并不完全合理,所以新增了权重删除补偿的策略(参考https://readpaper.feishu.cn/docx/HaM7d7uGhoQ2VPxxZBacpduDny7);OBS在执行中是直接把权重展开计算对应的海森矩阵,然后按照顺序进行量化,OBQ对量化的顺序进行了调整,将权重分行进行计算,利用贪心算法每次找到量化误伤最小的行进行量化,量化复杂度显著降低;GPTQ在OBQ基础上进行顺序量化+组内联合,进一步降低了量化的复杂度(参考https://readpaper.feishu.cn/docx/OPP2dTuXAoaO0oxWhQAcC05Wnpc)

GPTQ在实现中用Cholesky分解来稳定了数值计算

相关推荐
视觉语言导航1 小时前
RAL-2025 | 清华大学数字孪生驱动的机器人视觉导航!VR-Robo:面向视觉机器人导航与运动的现实-模拟-现实框架
人工智能·深度学习·机器人·具身智能
BFT白芙堂2 小时前
睿尔曼系列机器人——以创新驱动未来,重塑智能协作新生态(上)
人工智能·机器学习·机器人·协作机器人·复合机器人·睿尔曼机器人
羊小猪~~2 小时前
【NLP入门系列五】中文文本分类案例
人工智能·深度学习·考研·机器学习·自然语言处理·分类·数据挖掘
李师兄说大模型2 小时前
KDD 2025 | 地理定位中的群体智能:一个多智能体大型视觉语言模型协同框架
人工智能·深度学习·机器学习·语言模型·自然语言处理·大模型·deepseek
锅挤3 小时前
深度学习5(深层神经网络 + 参数和超参数)
人工智能·深度学习·神经网络
网安INF3 小时前
深层神经网络:原理与传播机制详解
人工智能·深度学习·神经网络·机器学习
喜欢吃豆3 小时前
目前最火的agent方向-A2A快速实战构建(二): AutoGen模型集成指南:从OpenAI到本地部署的全场景LLM解决方案
后端·python·深度学习·flask·大模型
喜欢吃豆4 小时前
快速手搓一个MCP服务指南(九): FastMCP 服务器组合技术:构建模块化AI应用的终极方案
服务器·人工智能·python·深度学习·大模型·github·fastmcp
超龄超能程序猿5 小时前
(1)机器学习小白入门 YOLOv:从概念到实践
人工智能·机器学习