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

大模型量化算法之Smoothquant

SmoothQuant: Accurate and Efficient Post-Training Quantization for Large Language Models
发表于 ICML 2023

8-bit weight, 8-bit activation (W8A8) 训练后量化方法(PTQ)

在这里插入图片描述
量化的部分是 线性层 以及 矩阵乘法,LayerNorm 以及 Softmax 还是 以 更高精度 的 半精度浮点数 FP16 进行计算的

Insights:
在这里插入图片描述
大模型中因为 outliers 的存在,其 activation 比较难以量化,而 Weight 相对平坦则更加容易量化;
因此,作者提出将 Activation 的量化困难性部分迁移到 Weight 上,使得 Weight 和 Activation 二者变得都比较容易量化

具体做法也比较简单,
因为,outlier 是出现在 Activation 的 部分 channel 中。因此,作者首先对 Activation 除以一个 per-channel 的 缩放因子,同时将该因子的倒数乘到相应的 Weight 上,确保 “Smooth” 对于模型来说是一个恒等变换。
矩阵形式的公式如下所示:
Y = ( X diag(s) − 1 ) ⋅ ( diag(s) W ) = X ^ W ^ Y=(X\text{diag(s)}^{-1})\cdot(\text{diag(s)}W)=\hat X \hat W Y=(Xdiag(s)1)(diag(s)W)=X^W^

达到的效果如下图所示
在这里插入图片描述
缩放因子 s 是通过 预训练数据上取得 的 校准数据估计得到的
具体地,第 j 个 输入channel 的缩放因子 s j s_j sj 以如下的方式计算:
s j = max ( ∣ X j ∣ ) α / max ( ∣ W j ∣ ) 1 − α s_j=\text{max}(|X_j|)^\alpha/\text{max}(|W_j|)^{1-\alpha} sj=max(Xj)α/max(Wj)1α

实验结果

实验配置及 Baselines
在这里插入图片描述

  1. 精度
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  2. 推理速度以及显存占用
    在这里插入图片描述

  3. 消融实验
    α \alpha α 的 选取
    在这里插入图片描述


http://www.kler.cn/news/350715.html

相关文章:

  • 腾讯云DBA面试(一面)
  • python爬虫基础篇:http协议、请求头、响应头
  • 批量修改YOLO格式的标注类别
  • HTTP和HTTPS基本概念,主要区别,应用场景
  • mac nwjs程序签名公证(其他mac程序也一样适用)
  • AIGC智能提示词项目实践(1):深入MySQL高级语法,提升开发效率
  • GCC(GNU Compiler Collection)部分参数解释
  • 网站设计之网站设计总结
  • 深度学习:模型攻击(Model Attack)详解
  • 计算机网络——应用层(DNS域名系统、文件传输协议FTP、远程终端协议TELNET、万维网)
  • 数据库->库的操作
  • CCleaner Pro v6.29.11342 系统清理优化软件绿色便携版
  • 如何匿名浏览网站,保护在线隐私?
  • Canmv k230 C++案例1.2——image classify项目 C++代码分析(待完成)
  • 网络安全公司及其主要产品介绍
  • Django CORS跨域支持
  • 基于Python的博客系统
  • Android10 recent键相关总结
  • Spring Boot框架下大创项目流程自动化
  • 【论文阅读】03-Diffusion Models and Representation Learning: A Survey
  • C++ | Leetcode C++题解之第486题预测赢家
  • Android activity 启动流程
  • 指针——函数指针数组
  • 计算机网络 2024 11 10
  • windows上的git bash中会将~设为哪个目录?
  • vector的深入剖析与底层逻辑