Lecture 6: Quantization (Part Ⅱ) [TinyML]

>100 Views

May 09, 25

スライド概要

MIT 6.5940(https://hanlab.mit.edu/courses/2024-fall-65940)について勉強したときのスライド

profile-image

AI-Driven graduate student

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

TinyML - MIT 6 .5940 Lecture 06 Quantizat ion (Part Ⅱ ) Ryota Murai TinyML - MIT 6.5940 1

2.

Linear Quantization:Review ストレージは節約できる 推論コストは節約できない TinyML - MIT 6.5940 ストレージも 推論コストも節約 2

3.

Linear Quantization:Review アフィン変換によって量子化を行う TinyML - MIT 6.5940 3

4.

Linear Quantization:Review Zero Pointは、整数空間で「0」がどの実数に対応するかを指定 (値域が非対称な分布(たとえば ReLU 出力)を持つ場合、単純なスケーリングだけでは表現できない) TinyML - MIT 6.5940 4

5.

Post -Train in g Quant ization 線形量 子化パラメ ータ𝑠, 𝑍はどの ように決め るべきか 量子化 の粒度 TinyML - MIT 6.5940 5

6.

Post-Tra ining Quantization:量子 化の粒度 量子化も複数の粒度が検討できる テンソルごと チャンネルごと グループ(ベクトルごとなど) TinyML - MIT 6.5940 6

7.

量子化 の粒度:テン ソルごと 𝑟 𝑚𝑎𝑥 = 𝑊 𝑚𝑎𝑥 として、単一のスケーリング係数を適用する 小規模なモデルで性能劣化しやすい 範囲差が大きいと 適切にスケーリングされない →チャンネルごとに行えばいいのでは? Data-Free Quantization Through Weight Equalization and Bias Correction [Markus etal., ICCV 2019] Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference [Jacob etal., CVPR 2018] TinyML - MIT 6.5940 7

8.

量子化 の粒度:チャ ンネルごと 2Bit量子化の例 チャンネルごと TinyML - MIT 6.5940 テンソルごと 8

9.

量子化 の粒度:チャ ンネルごと 2Bit量子化の例 チャンネルごと テンソルごと • 量子化誤差が減少 • Sを複数保持する必要 TinyML - MIT 6.5940 9

10.

量子化 の粒度:グル ープ量子化 (VS-Quant) 階層的なスケーリング係数 • 𝛾: テンソルごとのスケーリング係数 • 精度の高い浮動小数点だが、テンソル 全体で1つにしてコストを抑える。 • 𝑆𝑞 : ベクトルごとの整数スケーリング係数 • 安価な整数演算で済む • 各ベクトルごとに4bit必要で、若干の メモリオーバヘッドあり VS-Quant: Per-Vector Scaled Quantization for Accurate Low-Precision Neural Network Inference [Steve Dai, et al.] TinyML - MIT 6.5940 10

11.

量子化 の粒度:グル ープ量子化 : Multi-level scaling 複数レベルのスケーリング係数 TinyML - MIT 6.5940 11

12.

量子化 の粒度:グル ープ量子化 : Multi-level scaling TinyML - MIT 6.5940 12

13.

量子化 の粒度:グル ープ量子化 : Multi-level scaling TinyML - MIT 6.5940 13

14.

量子化 の粒度:グル ープ量子化 : Multi-level scaling 複数レベルのスケーリング係数 E8M0: 8bitの指数部,0bitの仮数部 TinyML - MIT 6.5940 14

15.

Post -Train in g Quant ization 線形量 子化パラメ ータ𝑠, 𝑍はどの ように決め るべきか Dy n am ic R ang e C li pp i ng TinyML - MIT 6.5940 15

16.

Dynamic Range Clipping スケールSは値域 𝑟𝑚𝑖𝑛 , 𝑟𝑚𝑎𝑥 によって決定されていた ReLU等の活性化関数の出力は大きな外れ値を持つことがある。 → 範囲が広がりすぎるために表現分解能が低下する。 → 外れ値を無視して、実用上重要な値域だけを使う • 入力Xと再構成値Q(X)の平均二乗誤差を最小化する範囲で クリッピング • 入力分布がラプラス分布に従うとき、クリッピング範囲は 数値的に解ける(bは推定可能) 青分布:実際の値分布(X) 黄色:量子化後に再構成された近似値(Q(X)) Post-Training 4-Bit Quantization of Convolution Networks for Rapid-Deployment [Banner etal., NeurIPS 2019] TinyML - MIT 6.5940 16

17.

Dynamic Range Clipping ラプラス分布に従うのは稀:KLダイバージェンスを使用する KLダイバージェンスが小さいほど、 「量子化後の表現が元の分布をよく近似できている」 → 量子化による劣化が少ない VS-Quant: Per-Vector Scaled Quantization for Accurate Low-Precision Neural Network Inference [Steve Dai, et al.] TinyML - MIT 6.5940 17

18.

Dynamic Range Clipping 範囲が狭すぎる:情報が欠落しKL増加 範囲が広すぎる:分解能が下がりKL増加 TinyML - MIT 6.5940 18

19.

Dynamic Range Clipping TinyML - MIT 6.5940 19

20.

Dynamic Range Clipping クリッピングによって分解能が上がる(量子化間隔が狭くなる)ことがわかる TinyML - MIT 6.5940 20

21.

Post -Train in g Quant ization 線形量 子化パラメ ータ𝑠, 𝑍はどの ように決め るべきか R ou nd i ng TinyML - MIT 6.5940 21

22.

適応的 な丸め 量子化において最も近い整数に丸めるのは、重みの相対的な配置や相関関係を無 視している。 → 層全体の再構成誤差が小さくなるような丸め方を学習によって得る TinyML - MIT 6.5940 22

23.

適応的 な丸め AdaRound 丸め候補 𝑤 , 𝑤 を用意 (切り捨てと切り上げ) を発見するために学習を行う δをバイナリ(0 or 1)に寄せるために使 う (正則化項) シグモイドのように[0,1]にマップ 四捨五入は微分不能だが、このようにすることで微分可能=学習可能になった Up or Down? Adaptive Rounding for Post-Training Quantization [Nagel et al. 2020 ] TinyML - MIT 6.5940 23

24.

Quantizat ion -Aware Train in g 量 子化 モデ ルの パフ ォー マン スを 向 上さ せる には TinyML - MIT 6.5940 24

25.

Quantization-Aware Training • 量子化後の損失を最小限にするため、量子化されたパラメータで再学習する • 一般的に学習済みのFloatモデルをファインチューニングすることでスクラッ チ学習よりも精度は高くなる TinyML - MIT 6.5940 25

26.

Quantizat ion -Aware Train in g ただ、線形量子化の場合、量子化後の重みは 離散的な整数値 TinyML - MIT 6.5940 26

27.

Quantizat ion -Aware Train in g 線形量子化の場合、量子化後の重みは 離散的な整数値で、逆伝播が機能しない → 順伝播では量子化版を使い、逆伝播ではフル精度を使用する (Straight-Through Estimator(STE)) TinyML - MIT 6.5940 27

28.

Quantizat ion -Aware Train in g 線形量子化の場合、量子化後の重みは 離散的な整数値で、逆伝播が機能しない → 順伝播では量子化版を使い、逆伝播ではフル精度を使用する (Straight-Through Estimator(STE)) TinyML - MIT 6.5940 28

29.

Quantizat ion -Aware Train in g STE(Straight-Through Estimator) 順伝播では量子化版を使い、逆伝播ではフル精度を使用する 非連続で微分困難 TinyML - MIT 6.5940 29

30.

Binary/Ternary Quantizat ion 量 子化 精度 を 1 b it に でき るか ? TinyML - MIT 6.5940 30

31.

B inary Quant ization 重みを、1,-1の二値で表す 1bitで表現できるようになる+乗算が不要になる TinyML - MIT 6.5940 31

32.

B inary Quant ization 決定論的量子化 ある閾値(通常0)を基準に、単純に正負で分ける 確率的量子化(Stochastic Binarization) Rの値に応じて確率的に選択する Hard Sigmoid TinyML - MIT 6.5940 32

33.

B inary Quant ization スケーリング係数αをかけることで精度変化を抑えられる L1ノルム TinyML - MIT 6.5940 33

34.

B inary Quant ization 活性化も二値化すると?:XNORでいいはずだが、計算結果が異なる TinyML - MIT 6.5940 34

35.

B inary Quant ization 工夫によって結果を揃える Popcountとも呼ぶ N=4なのは、活性化の要素数が4だから TinyML - MIT 6.5940 35

36.

B inary Quant ization 精度低下は避けられないが、大きくコストを下げられる TinyML - MIT 6.5940 36

37.

Tarn ary Quantizat ion: TTQ 二値ではなく𝑤𝑝 , 0, 𝑤𝑛 で量子化する。(-1,0,1では表現力が足りない) WとΔは学習可能 Wも学習し調整される TinyML - MIT 6.5940 37

38.

Mixed-Precision Quant iz at ion 混 合精 度量 子化 TinyML - MIT 6.5940 38

39.

混 合精 度量 子化 複数のビット幅を用いる 一部の層はもっと低精度でも問題ない・高精度でないと精度が大きく落ちる といった事実を活かす TinyML - MIT 6.5940 39

40.

混 合精 度量 子化 選択できるビット幅が多いほど探索回数が増え、総当たりで最適なビット幅を見 つけることが困難になる TinyML - MIT 6.5940 40

41.

混 合精 度量 子化 HAQ: 強化学習ベースの探索手法 精度・レイテンシ・消費エネルギーなどハードウェア制約を報酬とする TinyML - MIT 6.5940 41

42.

混 合精 度量 子化 HAQ: 強化学習ベースの探索手法 精度・レイテンシ・消費エネルギー(ハードウェア制約)を報酬とする TinyML - MIT 6.5940 42

43.

混 合精 度量 子化 HAQ: 強化学習ベースの探索手法 精度・レイテンシ・消費エネルギー(ハードウェア制約)を報酬とする TinyML - MIT 6.5940 43

44.

混 合精 度量 子化 各環境に適した量子化が可能 エッジ:サイズ/省電力重視 クラウド:精度重視 TinyML - MIT 6.5940 44

45.

ま とめ • Linear Quantization の復習 • Post-Training Quantization(PTQ)の導入 • クリッピング・適応的丸め等 • Quantization-Aware Training(QAT)の導入 • 学習中から量子化を模擬して精度劣化を抑える方法 • Binary / Ternary Quantization の紹介 • Mixed-Precision Quantization の紹介 • 各レイヤーごとに異なるビット幅を割り当てることで、精度と効率を両立 TinyML - MIT 6.5940 45