
- 教師のtop-100ロジットをキャッシュし、訓練中に教師をメモリへ保持しない
- KL損失をチャンク処理し、語彙×シーケンス長の巨大行列を生成しない
- GPT-OSS 20B蒸留でGPUノードを4から1に削減、ステップ時間は約5倍高速化
蒸留コストの課題
大規模言語モデルを小さいモデルに圧縮する知識蒸留は、推論コストを下げるための標準的な手法になっている。たとえば、最近登場したKimi-K3は2.8兆パラメータで、読み込むだけで約3TBのVRAMを必要とする。こうした巨大モデルの能力を損なわずに扱いやすくするため、蒸留によって小さいモデルを作り、元の性能を回復させるというアプローチが広く使われている。NvidiaのNemotron 3 Puzzle 75BやMultiverse ComputingのHypernova 60Bなど、圧縮モデルの公開も相次いでいる。
しかし、蒸留ステップ自体がパイプラインの中で最もコストのかかる部分になりがちだ。従来のオンライン蒸留では、教師と生徒の両方を同時にメモリに保持し、全語彙に対する確率分布をトークンごとに計算する必要がある。具体例として、gpt-oss-120bの語彙サイズ201,088トークン、シーケンス長32K、バッチサイズ4の場合、教師の確率テンソルだけで約50GBになり、訓練イテレーション全体のピーク時には約250GBのVRAMが必要になる。これはH200の141GBを超え、単一GPUでは実行できない。
2つのシステム変更
この問題に対して、Multiverse Computingの論文は2つのシステム変更を提案している。1つ目はオフライン蒸留で、教師モデルの出力を一度だけ計算し、各位置で尤度の高い上位100件のロジットをキャッシュする。訓練中は教師をメモリに保持する必要がなくなり、キャッシュを再利用して様々な実験を行える。
2つ目は、融合型チャンク化KL損失(fused chunked KL loss)と呼ばれる新しい損失計算だ。従来のKL損失は、語彙数×シーケンス長の巨大な行列を構築してから損失を計算するため、メモリを大量に消費する。提案手法では、シーケンスをチャンクに分割し、出力射影と損失計算を融合して、チャンクごとに処理して破棄する。バックワード時にはチャンクを再計算するため、ピークメモリが語彙数に依存しなくなる。
性能評価の結果
トイネットワークによるベンチマークでは、32Kトークンのコンテキストでもピークメモリが85.2GiBから5.45GiBまで低下し、15.6倍の削減を実現した。従来のdense KL損失は64Kトークン以降でメモリ不足になり実行不能になるが、提案手法は256Kトークンでも11.6GiBで動作し、次に良いチャンク化手法の134.2GiBと比べて約3.3倍高速だった。
実際のGPT-OSS 20Bモデルの蒸留では、32,768トークンのコンテキストで、必要だったGPUノードが4つから1つに減った。ステップ時間は57.0秒から12.23秒へと約5倍速くなり、GPUあたりのスループットも74.2TFLOP/sから345.7TFLOP/sに向上した。
蒸留された生徒モデル
この効率的なオフライン蒸留は、大規模な蒸留キャンペーンを手頃なコストで実行するための基盤になる。論文では、Llama 3.1 8B Instructを教師に、約3.2Bパラメータの生徒モデルを蒸留している。結果として、BoolQとHellaSwagでは教師にほぼ匹敵する精度を維持し、MMLUでは約9ポイント差に収まった。パラメータ数は半分以下である。
この研究はMultiverse Computingが進める蒸留と「ヒーリング」を実用規模で実行する研究の一部で、損失関数の選択やシーケンスのパッキングが回復品質に与える影響なども報告している。実装はオープンソースとして公開されており、誰でも既存の蒸留パイプラインに組み込める。
ただし、トップ100ロジットへの制限が常に十分かどうかは、タスクやモデルに依存する可能性がある。論文ではオンライン蒸留とほぼ同一の損失曲線が得られたと報告されているが、あくまで特定の条件下での結果である。また、オープンソースの実装は特定のフレームワーク向けに提供されており、既存のパイプラインへの統合には追加の作業が必要かもしれない。
The teacher never has to sit in memory during training and does not need to be run again once the cache exists, so the same cache can be reused across many ablations.
訓練中は教師をメモリに保持する必要がなく、キャッシュが存在すれば教師を再実行する必要もないため、同じキャッシュを多くのアブレーション実験で再利用できる。
日本の開発者・IT企業にとっての意味
日本のIT企業にとって、この手法は大規模モデルの蒸留に必要なGPUリソースを大幅に減らせる点で実務的な価値がある。単一GPUで長時間コンテキストの蒸留を試せるようになれば、小規模なチームでも自社データに合わせたモデル圧縮やドメイン適応を検討しやすくなる。また、オープンソースの実装が公開されているため、既存の学習スクリプトへの組み込みを試す敷居が低い。一方で、top-Kロジットのキャッシュは教師モデルの出力を固定するため、実験の反復は効率的になるが、教師モデルを変更した際にはキャッシュを作り直す必要がある点に注意が必要だ。
用語解説
- Knowledge Distillation
- 大規模な教師モデルの知識を小さな生徒モデルに転移する手法。
- KL loss
- 2つの確率分布の差を測る指標。蒸留では教師と生徒の出力分布の一致度を計算する。
- Logits
- モデルが最終的に出力する確率の前段階のスコア。softmaxをかける前の値。
- VRAM
- GPU上のメモリ。大規模モデルの学習や推論で大量に消費される。
出典
Making Knowledge Distillation Cheap Enough to Run at Scale
https://huggingface.co/blog/MultiverseComputingCAI/efficient-knowledge-distillation
AI導入も顧問も、お任せください
何から手をつけるか、どこまでAIに任せるか。自社の業務に合わせて整理し、導入から運用まで伴走します。相談だけでも構いません。
AI導入について相談する