SHRINK IT, SPEED IT UP

巨大な脳を、ポケット

データセンターの巨大モデルと、スマホでサクサク動くAI——同じ技術の親子です。 数を粗くして軽くする量子化、計算を使い回すKVキャッシュ、先生の知識を写し取る蒸留。 巨大モデルがポケットで動くまでの圧縮の技を、5つのステップで体感します。

はじめる ↓
SCROLL
STEP 01

モデルの重さの正体PARAMS × PRECISION

モデルの本体は、学習編で調整した数十億個の重み(パラメータ)の集まり。 その重さは掛け算ひとつで決まります——パラメータ数 × 1個あたりのバイト数。 モデルの大きさと数の精度を切り替えて、どのデバイスに乗るか確かめてください。 式の答えがそのまま、AIが動く場所を決めます。

MEMORY CALCULATOR — モデルはどこに乗る?

STEP 02

数を、粗くするQUANTIZATION

量子化の発想は、画像の減色と同じです。 1677万色の写真を256色にしても、案外きれいに見える—— 連続的な値を少ない段階に丸めても、全体の形は保たれるから。 スライダーでビット数を減らして、画像と重みが同時に粗くなっていく様子を見てください。

BIT SLIDER — 画像の色も、モデルの重みも、同じこと

1チャンネルあたり 8bit
元の画像(8bit)

WEIGHTS — 同じスライダーでモデルの重みを丸める

STEP 03

どこまで削れるか、実物で試すLIVE QUANTIZATION

ここにあるのは、学習編と同じ作りの本物のミニニューラルネット(37パラメータ、学習済み)。 いまこのブラウザで、重みを本当に量子化して曲線を描き直します。 INT8、INT4…と削っていくと、ある段階までは平気で、あるところから急に壊れる—— その崖を自分の目で見つけてください。

QUANTIZE A REAL NET — 37個の重みを丸めて描き直す

STEP 04

覚えておけば、計算しないKV CACHE

軽くする話の次は、速くする話。テキスト生成は1トークンずつの繰り返しで、 アテンションには全トークンのK(キー)とV(バリュー)(Transformer深掘り編!)が毎回必要です。 素朴にやると同じK・Vを何度も計算し直すことになる—— ▶で、キャッシュあり/なしの計算量の差を見てください。

RECOMPUTE VS CACHE — 10トークン生成するときのK/V計算

STEP 05

先生の勘まで、写し取るDISTILLATION

仕上げは蒸留——大きな先生モデルの出力を、小さな生徒モデルの教材にする技です。 ポイントは、正解の単語だけでなく先生の確率分布ごと教えること。 「2位以下にどれくらい可能性を残すか」という先生の勘(暗黙の知識)まで写るから、 ただ正解を暗記するより賢い小型モデルが育ちます。

HARD LABEL VS SOFT LABEL — 生徒は何を教わるか

FULL COURSE — 巨大モデルがスマホに乗るまで

🏢教師 70B FP16 / 140GB
→ 蒸留
🎓生徒 7B FP16 / 14GB
→ 量子化
🗜生徒 7B INT4 / 3.5GB
→ KVキャッシュ
+ 最適化
📱スマホで動く 毎秒 数十トークン
RECAP

5つのステップ、ふりかえり

STEP 01モデルの重さパラメータ数×バイト数。式が動く場所を決める。
STEP 02量子化減色と同じ。値を少ない段階に丸めて軽くする。
STEP 03精度の限界INT8は平気、INT2で崩壊。崖のふちを攻める。
STEP 04KVキャッシュK・Vを使い回して計算を線形に。代償はメモリ。
STEP 05蒸留先生の確率分布ごと写し、小さくても賢い生徒に。
SERIES

この章は学習編(重み)と Transformer深掘り編(K・V)の上に建っています。

シリーズ一覧へ →