MIT-TinyML学习笔记【5】Quantization2

本文详细介绍了深度学习中的量化技术,包括训练后量化(Post-Training Quantization)的权重、激活、偏差量化方法,如Per-Channel Weight Quantization、Weight Equalization、Adaptive Rounding。此外,还讨论了量化感知训练(Quantization-Aware Training)中的Straight-Through Estimator(STE)和Binary/Ternary Quantization。内容涵盖不同位宽量化、混合精度量化以及量化对模型精度的影响。
摘要由CSDN通过智能技术生成

1 Lecture Plan

image.png

  • 训练后量化 PTQ
  • 量化感知训练 QAT
  • 二元、三元量化
  • 自动混合精度量化

2 Post-Training Quantization

How should we get the optimal linear quantization parameters (S, Z)
Topic1: Weight Quantization
Topic2: Activation Quantization
Topic3: Bias Quantization

2.1 Weight Quantization

[[Reference_Data-Free Quantization Through Weight Equalization and Bias Correction]]
[[Reference_Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference]]
image.png

  • 对权重进行量化时,实数的最大值=权重最大值
  • 每个output channel的权重范围差别很大(more than 100x),所以如果使用一个scale作为整个权重的参数(Per-Tensor Quantization,上篇笔记中oldpan大佬的博客有介绍过 权重没法per-tensor 通常都是per-channel)就会出现问题
    • 对大模型而言,比较work,对小模型而言,accuracy损失非常大
    • outlier weight values会导致其它所有权重量化精度降低
  • Solution:使用Per-Channel Quantization

2.1.1 Per-Channel Weight Quantization

首先看一个Per-Tensor Quantization的例子
重建后的权重矩阵跟原始矩阵差别较大
image.png
再看Per-Channel的计算方法
-1.03在这里被量化成-1,而Per-Tenosr时被量化为0
round(1.03/2.12) = round(0.48) = 0
round(1.03/1.92) = round(0.53) = 1

image.png

Per-Channel精度更高但同时也要存储更多的scale参数;
我们能不能让权重范围的差异更小呢?
image.png

2.1.2 Weight Equalization

对不同输出通道的权重范围进行调节(static,without training
image.png

  • 第 i 层权重的output channel 2 乘上一个系数或除以一个系数,在第 i+1 层对应除以一个系数或乘上一个系数,当该运算是线性时,计算的结果是等价的
  • 定义缩放因子 S 如下(per-charnnel)
    s j = 1 r i c = j i + 1 r o c = j i r i c = j i + 1 s_{j}=\frac{1}{r_{ic=j}^{i+1}}\sqrt{r_{oc=j}^{i}r_{ic=j}^{i+1}} sj=ric=ji+11roc=jiric=ji+1
    其中 r o c = j i r_{oc=j}^{i} roc=ji 是第 i 层,第 j 个通道的权重范围
    对第 i 层和第 i+1 层的权重范围进行计算,得到的结果都是,因此减少了不同通道间权重范围的差异
    r o c = j i r i c = j i +
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值