news 2026/2/6 8:50:10

大模型量化技术原理-ZeroQuant系列(一)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
大模型量化技术原理-ZeroQuant系列(一)

简单的看第一篇,这个系列目前有四篇左右,感兴趣可以去搜搜

  • ZeroQuant: Efficient and Affordable Post-Training Quantization for Large-Scale Transformers
  • ZeroQuant-V2: Exploring Post-training Quantization in LLMs from Comprehensive Study to Low Rank Compensation
  • ZeroQuant-FP: A Leap Forward in LLMs Post-Training W4A8 Quantization Using Floating-Point Formats
  • ZeroQuant-HERO: Hardware-Enhanced Robust Optimized Post-Training Quantization Framework for W8A8 Transformers

推荐一个整理很详细的链接

大模型量化技术原理-ZeroQuant系列 - 知乎


端到端的量化和推理流程,主要有三个组成:

(1)对于权重和激活的精细的硬件友好的量化计划

(2)一个全新的可以应用的层次知识蒸馏算法,这种算法甚至不需要使用原始的训练数据

(3)一个高度优化的量化系统后端支持,可以消除量化、反量化开销

QAT是传统的量化方法,PTQ是近期的量化方法,以下是他们的核心差异:

QAT

PTQ

定义和流程

在模型训练过程中就引入量化操作,模拟推理时的量化行为,让模型在训练阶段就“适应”量化带来的信息损失。

在模型训练完成后直接对权重和激活值进行量化,不重新训练或仅做极少量校准

是否需要重新训练

需要在原始训练流程中插入伪量化节点,并微调模型

直接量化已训练好的模型,通常只需用少量数据(如 100~1000 张图像)做校准以确定量化参数(如 min/max)

精度

高(接近 FP32)

中等(可能下降明显)

实现复杂度

  • 实现较复杂,需修改训练代码。
  • 训练时间长,计算资源消耗大。
  • 但最终模型鲁棒性强。
  • 实现简单,多数框架(TensorFlow Lite、PyTorch、ONNX Runtime)都提供一键量化工具。
  • 几乎零训练成本。
  • 但可能因量化误差导致性能下降。

PTQ的常见策略是将训练数据喂入网络进行校准,并得到缩放因子。但是这种方法有个问题:量化不能完全捕捉在权重矩阵和激活token中的不同行的不同数据范围。解决方法有两个:对于权重的分组量化,对于激活值的分token量化。

对于权重的分组量化:权重矩阵被分成g个组,每个组分别被量化。

对于激活值的分token量化:使用更细颗粒度的分token量化,并动态计算每个token最小/最大范围,从而减少来自激活值的量化误差。但是直接应用这个方法会导致相当大的量化和反量化成本因为这种量化方法会产生额外的操作,导致在GPU计算单元和内存之间的昂贵的数据移动消耗。为了解决这个问题,建造了一个高度优化的推理后端。比如说,zeroquant采用了核融合(kernel fusion)技术将量化算子和前面的算子融合,再将反量化算子和后面的算子融合,从而降低成本。

从KD到LKD

知识蒸馏(KD)的局限性:

  1. KD同时需要一个教师模型和一个学生模型,这样显著的增加了内存和计算成本。
  2. KD一般要求对学生模型进行完全的训练,因此几个权重参数副本就需要存储在内存中了。
  3. KD一般要求原始训练数据,这个有时候由于保密性原因无法得到。

逐层知识蒸馏(LKD):一层一层的量化网络,并且将未量化的原模型作为教师模型。比如说,如果LK要被量化了,那么使用LK-1作为输入,然后测量量化LK和不量化LK的区别。

LKD的优点:

  1. LKD不需要一个额外的教师模型
  2. 内存占用显著降低了,因为只优化LK
  3. 训练不依赖标签了(只需要知道教师模型的输出,不需要知道对应的标签),并且不依赖原始训练数据(输入可以是合成的,随机生成的,而非原始训练集中的样本)。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/4 2:33:23

二叉搜索树详解:从原理到实战

文章目录一、什么是二叉搜索树(BST)?二、BST 的基本操作1. 节点定义2. 查找操作3. 插入操作4. 删除操作三、经典例题分析例题 1:验证二叉搜索树(LeetCode 98)例题 2:二叉搜索树的最近公共祖先&a…

作者头像 李华
网站建设 2026/2/3 0:36:22

后端学习第二周

IO流 IO流: 存储和读取数据的解决方案用于读写文件中的数据(可以读写文件,或网络中的数据…)输入流读取本地文件中的数据,输出本地文件中的数据 字节(符)输入流负责读取数据,字节&am…

作者头像 李华
网站建设 2026/2/7 5:40:58

10-2 phase:run_test UVM测试平台层次结构与Phase执行顺序解析

10-1 phase:basic UVM测试平台层次结构与Phase执行顺序解析 这个案例和上一篇10-1基本类似,可以跳过,区别是这个案例少了上篇很奇怪的AA类的中间层 文章目录 ✅ 区别总结:代码1 与 代码2 的核心差异 UVM Phase执行顺序的准确解析:组件层次结构对执行顺序的影响 一、核心问…

作者头像 李华
网站建设 2026/2/7 4:04:19

python用openpyxl操作excel-合并格式相同的excel文件

python用openpyxl操作excel-合并指定路径下格式相同的excel文件,参见如下实列代码import logging import com.pro001.log.pro_log_config as pro_log_config #参见另一篇博文 from openpyxl import Workbook, load_workbook from openpyxl.styles import Font, Ali…

作者头像 李华
网站建设 2026/2/2 23:31:29

基于Spring Boot的在线教育平台(源码+lw+部署文档+讲解等)

课题介绍本课题聚焦传统线下教育场景受限、优质教育资源分配不均的痛点,开展基于Spring Boot的在线教育平台的设计与实现工作。系统以Java作为核心开发语言,依托Spring Boot框架搭建轻量高效的后端服务架构,负责处理用户认证、课程管理、在线…

作者头像 李华