プログレッシブ蒸留(プログレッシブジョウリュウ)
拡散モデルのサンプリングステップ数を段階的に半減させる蒸留手法。各段階で2ステップの推論を1ステップに圧縮することを繰り返し、最終的に数ステップで高品質な画像生成を実現する。
プログレッシブ蒸留とは
プログレッシブ蒸留(Progressive Distillation)は、Google Research の Tim Salimans と Jonathan Ho が2022年に提案した拡散モデル(Diffusion Model)の高速化手法である。拡散モデルは高品質な画像生成が可能だが、推論時に数百〜数千ステップのサンプリングが必要という計算コストの問題があった。プログレッシブ蒸留はこれを段階的に解消する。
拡散モデルの推論コスト問題
| モデル | 通常の推論ステップ数 | 1画像あたりの時間 |
|---|---|---|
| DDPM | 1,000 | 数十秒〜数分 |
| DDIM | 50〜100 | 5〜15秒 |
| Stable Diffusion(標準) | 20〜50 | 2〜8秒 |
| プログレッシブ蒸留後 | 2〜8 | 0.1〜1秒 |
蒸留の仕組み
Step 1: 教師モデルの準備
十分に訓練された拡散モデル(例: 1,024ステップ)を教師として使用する。
Step 2: 段階的なステップ半減
教師の2ステップ(例: t=100→t=50→t=0 の2段階)を、生徒モデルの1ステップ(t=100→t=0)で再現するように学習する。具体的には、教師が2ステップで到達するノイズ除去結果を、生徒が1ステップで直接予測できるようにパラメータを更新する。
Step 3: 反復
蒸留済みモデルを新たな教師として再利用し、さらにステップ数を半減する。1,024→512→256→128→64→32→16→8→4→2 と繰り返すことで、最終的に2〜4ステップで高品質な生成が可能になる。
Consistency Distillation との比較
| 項目 | プログレッシブ蒸留 | Consistency Distillation |
|---|---|---|
| 提案 | Salimans & Ho (2022) | Song et al. (2023) |
| アプローチ | 段階的に2倍ずつ圧縮 | 一気に任意ステップ→1ステップ |
| 学習安定性 | 高い(段階的で安定) | やや不安定(大幅な圧縮) |
| 最終ステップ数 | 2〜8ステップが実用的 | 1〜2ステップも可能 |
| 品質劣化 | 4ステップで顕著に低下開始 | 1ステップでも一定品質を維持 |
実際の応用
Stable Diffusion の高速化
Stable Diffusion に対するプログレッシブ蒸留の適用により、50ステップ→4ステップの推論でFIDスコア(画質指標)の劣化を10%以内に抑えることに成功している。リアルタイム画像生成やインタラクティブ編集への道を開いた。
Imagen の推論加速
Google の Imagen にプログレッシブ蒸留を適用し、256ステップ→8ステップで同等品質の画像生成を達成した。計算コストは約30分の1に削減された。
動画生成モデルへの拡張
動画生成の拡散モデル(Video Diffusion Models)にも適用が進んでおり、時間方向と空間方向の両方でステップ削減が試みられている。
メリットと制約
メリット
- 段階的な圧縮のため学習が安定しやすい
- 各段階で品質を確認しながら進められる
- 既存の拡散モデルに後から適用可能(アーキテクチャ変更不要)
制約
- 蒸留の各段階ごとに学習が必要で、トータルの蒸留コストが高い
- ステップ数を2以下にすると品質が急激に劣化する傾向がある
- 生成の多様性がステップ削減に伴い低下する場合がある
FAQ
Q1: プログレッシブ蒸留で1ステップ生成は可能ですか?
理論的には可能だが、品質が大幅に劣化する。実用的には4〜8ステップが品質と速度のバランス点とされている。1ステップ生成には Consistency Distillation の方が適している。
Q2: 蒸留にはどの程度の計算リソースが必要ですか?
1段階の蒸留に元の学習の10〜20%程度の計算量が必要で、10段階(1,024→2ステップ)では元の学習コストと同程度になる。ただし一度蒸留すれば推論時に恒久的なコスト削減が得られる。
Q3: テキスト生成の LLM にも適用できますか?
拡散モデル特有の「ステップ数削減」という問題設定のため、自己回帰型 LLM には直接適用できない。ただし拡散ベースの言語モデル(Diffusion-LM)に対しては適用可能である。