Training Transformers with 4-bit Integers

Xi H., Li C., Chen J. and Zhu J. Training transformers with 4-bit integers. NeurIPS, 2023.

本文针对 4-bit 中训练中一些特点 (针对 transformers) 提出了一系列解决方法.

符号说明

  • 本文主要考虑 transformer 的 4-bit 量化训练, 其中主要涉及如下的矩阵乘法操作:

    Z=XWT,ZRN×C,XRN×D,WRC×D.

4-bit FQT

Learned Step Size Quantization

  • 首先, 作者采用 learned step size quantizer (LSQ):

    intsX(X):=clamp(X/sX,QN,QP),

    其中 sX 是可学习的参数, 旨在保证将输入的范围放缩到 [QN,QP]. 量化后的值属于: {QN,QN+1,,QP}, 对于 4-bit 量化, QN=QP=7.

  • 反量化过程为:

    float(intsX(X))=sXintsX(X)X.

  • 给定 LSQ, 量化后的矩阵乘法可以用如下方式近似:

    Y=XWTsXsWintsX(X)intsW(W)T.

Hadamard Quantization

  • 但是, 单纯使用 LSQ 会产生很大的误差, 主要原因是, 数据的分布如上图 (a) 所示极不均匀, 所以提出用 Hadamard matrix 来进行一个 smooth.

  • Hadamard matrix 是一个 2k×2k 大小的正交矩阵:

    H0=[1],Hk=12[Hk1Hk1Hk1Hk1].

    容易证明 HkT=Hk,HkHk=I. 如 (b) 所示, 明显分布更加均匀了.

  • 而且, 这种方式下的量化矩阵乘法的计算也是方便的:

    Y=XWTsXsWintsX(XH)HH=IintsW(HWT).

Bit Splitting and Leverage Score Sampling

  • 在 Backpropagation 过程中, 作者发现, transformers (但是卷积网络不行) 的梯度呈现出明显的结构稀疏性, 经常一整行为 0. 作者选择抛弃对很小的梯度的量化, 用省下的空间去建模那些较大的值. 这些操作通过 bit splitting 和 leverage score sampling 实现. 感兴趣的请回看原文.

代码

[official-code]

posted @   馒头and花卷  阅读(38)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
历史上的今天:
2020-01-08 Conditional Generative Adversarial Nets
点击右上角即可分享
微信分享提示