政府が無償で配る国産NPU、本当に使えるのか? — 非対応モデル移植の実験記
本番でGPUサービングしていたペルソナ逸脱判定モデル(mmBERTベースの分類器)を国産NPU(Rebellions ATOM+)へ移すまで — 問題認識からアダプタ作成、実機コンパイル、ベンチマークまでの道のり。
本番でGPUサービングしていたペルソナ逸脱判定モデル(mmBERTベースの分類器)を国産NPU(Rebellions ATOM+)へ移すまで — 問題認識からアダプタ作成、実機コンパイル、ベンチマークまでの道のり。
「モデルをコンパイルする」とは正確にどういう意味なのでしょうか? eager実行との違いから、グラフキャプチャ・演算融合・カーネルlowering・静的shape・メモリプランニングまで、図とインタラクティブなデモで一つずつ解きほぐしていきます。
PTQは大きなモデルには効きますが、小さなモデル・低ビットでは崩壊します(2ビットで13.6%まで)。解決策は学習そのものに量子化を組み込むQATです。forwardにfake quantizationを差し込み、roundの勾配が0という問題をSTE(Straight-Through Estimator)で突破します。roundは微分が0なのに、なぜ学習できるのか? — MNIST MLPで直接測定したplotとともに。
FP4が表現できる値はたった15個。それなのに最新GPUはどうやって4ビットで推論を回すのでしょうか?低ビット量子化を崩壊させる犯人はアウトライアです。アウトライア1個が層を丸ごと消す実験から、グループ量子化(MXFP4)・KLクリッピング・AdaRound・Hadamard回転という4つの処方箋まで — 2ビットで53%まで崩れた精度が97%に戻る実験とともに、コードで1つずつ検証します。
1989年、LeCunのOptimal Brain Damageから始まる、重みを刈り込んで(pruning)モデルを小さくする物語。何を・どうやって・どれだけ削るのか、再学習すれば95%削ってもびくともしない圧縮の驚き、そしてハードウェア(NVIDIA 2:4)が支えて初めて実利益が出るところまで — MNIST MLPで実測したplotとともに。
学習済みの32ビットニューラルネットワークの重みを、K-Means(非均等)とLinear(均等・整数演算)の2つの方式で2〜8ビットまで削ってみます。アフィン写像 r=S(q−Z) から圧縮率・精度のトレードオフまで、MNIST MLPで実際にコードを回して測定したplotとともに。
INT8、FP16、BF16、FP8(E4M3/E5M2)、FP4 — ディープラーニングのモデルカードにあふれるデータ型が実際に何を意味するのか、ビットがどのように数値へ解釈されるのかを一つずつ紐解きます。ビットを直接クリックすると計算式と値がリアルタイムに変わるウィジェットとともに。
Warpspace ブログのご紹介 - Caveduck.io を作る旅をお伝えします