11月10日、Machine Learning Masteryが「What Are Diffusion Language Models, and Why Are They Different From GPT?」と題した記事を公開した。GPTが左から右へ1トークンずつ順番に生成するのに対し、拡散言語モデルはノイズまみれの全出力を「同時に」繰り返し精緻化していく——この根本的な発想の転換が、推論速度や双方向コンテキスト参照において従来モデルにはない可能性をもたらしている。GoogleのGemini DiffusionやDiffusionGemmaといった実装が相次いで登場した今、そのアーキテクチャの仕組みと現時点での課題を整理する。
「1トークンずつ生成」は本当に必要か
GPTに代表される自己回帰モデルは、直前までに生成したトークン列を条件として次のトークンを1つずつ予測する。訓練時は「teacher forcing」により並列処理できるが、推論時は前のトークンが確定するまで次のトークンを選べない。これが「直列依存問題(serial dependency problem)」だ。
拡散言語モデルはこの制約を根本から変える。出力全体をマスクされた状態から始め、複数位置を同時に予測・確定しながら反復的に精緻化する。以下の表が両者の違いを端的に示している:
| ラウンド | 自己回帰モデルの出力 | マスク拡散モデルの出力 |
|---|---|---|
| 1 | The | [MASK] [MASK] [MASK] [MASK] |
| 2 | The cat | The [MASK] sat [MASK] |
| 3 | The cat sat | The cat sat [MASK] |
| 4 | The cat sat down | The cat sat down |
どちらもTransformerアーキテクチャを使うが、目的関数と推論手順が根本的に異なる。自己回帰モデルが「列を延ばす」のに対し、拡散モデルは「列を磨く」。
この方式が注目を集めた背景には、2025年以降に相次いで登場した実装がある。LLaDA、Mercury、Gemini Diffusion、そしてDiffusionGemmaが公開され、並列トークン予測による推論高速化の可能性が実証されてきた。
仕組み:画像の拡散をテキストに適用する
順方向・逆方向の拡散
画像生成の拡散モデルは、クリーンな画像にノイズを加え続ける「順方向拡散」と、それを逆転してノイズから画像を復元する「逆方向拡散」の2段階で動く。クリーンなデータ $x_0$ にノイズレベル $t$ を加えた状態 $x_t$ は、スケジュール係数 $\bar{\alpha}_t$ とガウスノイズ $\epsilon$ を用いて表される。モデルはこの $x_t$ から $x_0$ を復元する能力を学習する。
テキストへの適用:連続値ではなく「マスク」で腐敗させる
画像のピクセル値は連続値なのでガウスノイズが使えるが、トークンIDは離散値のため、少しノイズを加えても「意味的に近い単語」にはならない。そこでテキスト拡散では、ノイズの代わりに[MASK]への置換を使う。
例えば:
Machine learning models can generate text.
がマスキングされると:
Machine
[MASK]models[MASK]generate[MASK].
腐敗レベル $t$(0〜1)を設定し、各トークンを確率 $t$ で独立にマスクする。$t=0$ でシーケンスはクリーン、$t=1$ で全てマスク。訓練では、様々なノイズレベルで元のトークンを復元する能力を学習する。
推論時のデノイジング
推論時のサンプラーは以下の手順を繰り返す:
- 全出力位置をマスク状態で初期化
- 未確定の全位置で語彙分布を予測
- 確信度などの指標に基づき、確定するトークンとマスクのままにするトークンを選択
- 全位置が確定するまで繰り返す
一部の実装では、文の形成状況に応じて確定済みトークンを再マスクする「revision(再マスク)」も行う。
また、双方向アテンション(bidirectional attention)を使う点も自己回帰モデルとの大きな違いだ。GPTは各位置が前の位置しか参照できないが、拡散モデルは文の前後両方のコンテキストを参照できる。たとえば「The scientist presented [MASK] at the conference」というマスク位置は、前後の文脈を両方使って予測できる。これは補完・編集・構造化生成に有利に働く。
残る課題
記事では、拡散言語モデルがいまだ抱える主要な課題を4点挙げている:
- トークン間の依存性:複数位置を並列サンプリングすると、各位置では妥当に見えても相互に矛盾した出力になりうる。デノイジングのラウンド数増加や結合サンプリングが必要になる。
- サンプリングの予算:ステップ数を減らすと速くなるが品質が落ちる。多くのパスを回すと速度優位が消える。
- 出力長の可変対応:固定長のマスクキャンバスは出力の長さを事前に知らない。ブロック単位のデコードなどで対処する手法がある。
- KVキャッシュ:双方向の精緻化はブロック全体の表現を変えうるため、従来のプレフィックスキャッシュが使いにくい。完了済みブロックを固定するブロックワイズデコードが一つの解だ。
推論速度についても、DiffusionGemma 26BとGemma 26Bの比較結果がモデルカードで公開されているが、推論・品質のトレードオフはベンチマークによって異なり、コーディングタスクでは自己回帰モデルが依然として優位なケースもある。
まとめ
拡散言語モデルは「GPT型の置き換え」ではなく、「生成時の計算をどう配分するか」という別のアプローチだ。双方向アテンションによる文脈参照や並列デノイジングは、補完・編集・構造化生成といった用途で固有の強みを持つ一方、トークン間依存性の扱いやKVキャッシュ非互換といった未解決の課題も残る。現時点では両アーキテクチャにそれぞれトレードオフがあり、プロダクション導入においてはハイブリッドな手法が現実的な選択肢になる可能性がある。さらに深く学びたい場合は、コードとモデルチェックポイントが公開されているオープンソース実装のDream 7Bや、実装手順を詳述したHow to Build a Diffusion Language Modelが出発点として挙げられている。自己回帰一辺倒だったテキスト生成の設計空間が、今まさに広がりつつある。
詳細はWhat Are Diffusion Language Models, and Why Are They Different From GPT?を参照していただきたい。




