リード
Appleは2024年、Apple Intelligence実装に向けた研究論文をいくつか公開した。その中でも「LLM in a flash」と呼ばれる研究は、なぜM4チップ搭載のMacBookで数十億パラメータのモデルが動くのかを説明する鍵だ。
🟢 問題: モデルはメモリに収まらない
現代の大規模言語モデル(LLM)は、7B(70億)パラメータでも重みデータが約14GB(FP16)になる。M4 MacBook Airの最小メモリは16GB。これではOSやアプリを含めると全く収まらない。
従来の解決策は「大きいメモリを積む」だったが、Appleは別アプローチをとった。
フラッシュストレージ(SSD)から必要な部分だけをオンデマンドロードすることだ。
🔵 「LLM in a flash」の核心
論文(2023年12月公開)の核心は、LLMの推論において常にすべての重みが必要なわけではないという観察だ。
Feedforward Networkのスパース性
Transformerの中核コンポーネントの一つ、Feedforward Network(FFN)では、各入力トークンに対して全ニューロンの約95%が「ゼロ出力」になる。
つまり:
- 100個のニューロンがあっても、実際に計算が必要なのは5個程度
- 残り95個はフラッシュから読み込む必要がない
Windowingとスライディング
どのニューロンが必要かは前のレイヤーの出力から予測できる。「次に必要になりそうな重みを先読みする」Window管理を実装することで、SSDからのロードレイテンシを隠蔽する。
転送効率化
SSDは「小さいデータを大量に読む」より「大きいデータを少なく読む」方が効率的だ。論文ではモデルの重みを行優先ではなく列優先でSSDに配置し、一回の読み込みで複数トークンの推論に使い回せるようにした。
🔵 量子化: もう一つの柱
上記とは独立した最適化として、**量子化(Quantization)**がある。
FP16(16ビット浮動小数点)で保存している重みを、INT4(4ビット整数)に圧縮する。
| 形式 | 1パラメータあたり | 7Bモデルの総サイズ |
|---|---|---|
| FP32 | 4バイト | 28GB |
| FP16 | 2バイト | 14GB |
| INT8 | 1バイト | 7GB |
| INT4 | 0.5バイト | 3.5GB |
精度の損失を最小化しながら圧縮するために、グループ量子化(小グループ単位で独立したスケールファクターを持つ)などの技術が使われる。
Appleのオンデバイスモデルは3B〜7Bパラメータ程度とされており、INT4量子化を使えば2〜4GB程度に収まる計算だ。
🟣 Apple Intelligence の実装へ
これらの研究がどう製品につながっているか。
Apple Intelligenceのオンデバイスモデルは「約3Bパラメータ」とAppleの研究者が論文で示唆している。INT4量子化で約1.5GB。M4の38 TOPS Neural Engineで推論すると、十分なスループットが得られる。
Private Cloud Computeで使われるサーバーサイドモデルは別途あり、こちらはより大きなモデルを使うとされている。
技術の成熟度
「LLM in a flash」はまだ完全に解決された問題ではない。SSDからの読み込みはRAMからより数十〜百倍遅い。将来的により大きなRAMや、より高速なSSDがあれば同じ技術でより大きなモデルが動く。
Appleがメモリ8GBモデルを現時点ではApple Intelligence対応外としているのは、こうした制約の反映だ。
まとめ
Appleのオンデバイスしあいは「モデルを小さくする」「必要な部分だけ読む」「低精度で圧縮する」の三位一体だ。Neural Engineのハードウェア投資と、MLR論文に見えるソフトウェア研究の両輪で実現されている。