Diffusion Language Models
拡散言語モデルが反復的なデノイズによってテキストを生成・編集する仕組みを学びます。Transformer、用途、メリット、制限についても解説します。
拡散言語モデルは、各トークンを厳密に左から右へ生成するのではなく、反復的なデノイジングによってテキストを生成または編集する生成モデルです。まず、マスク、置換、不確定なトークンなどを含むことが多い破損シーケンスから開始し、テキストが意味を成すまで複数の位置を繰り返し改善します。このアプローチは、言語モデリングと拡散モデルの考え方を組み合わせたもので、従来の次トークン生成に代わる手法を提供します。
拡散言語モデルの仕組み#
まず、テキストをトークン化によって、単語、サブワード、文字、その他の離散単位に分割します。学習中は、前方向の破損プロセスによってトークンシーケンスから情報を徐々に除去します。実装によっては、トークンをマスク記号、サンプリングされた代替トークン、または埋め込みと呼ばれるノイズを含む連続表現に置き換えます。
モデルは、破損したシーケンスをよりクリーンなバージョンに戻す逆プロセスを学習します。推論時には、強くマスクされた、またはノイズを含むブロックから開始し、複数の改善ステップを実行します。初期ステップでは大まかな意味と構造を確立し、後続のステップでは語彙、文法、書式、局所的な一貫性を修正します。
多くの拡散言語モデルは、シーケンスの処理にTransformerを使用します。Transformerは、アテンション機構によって各トークンと周囲のコンテキストを関連付けられるため、このタスクに適しています。PyTorch Transformerのドキュメントでは、この基盤となるアーキテクチャについて有用な概要が説明されています。
固定的な穴埋めシステムとは異なり、拡散生成では予測を繰り返し再検討できます。あるステップで選択されたトークンが必ずしも確定するわけではなく、シーケンスの残りの部分からより良いコンテキストが得られた場合、後続の反復で修正されることがあります。Google DeepMindのテキスト拡散の概要では、このブロック単位の反復的な生成パターンが説明されています。
拡散モデルと関連概念の比較#
密接に関連するいくつかの用語は、異なる目的やアーキテクチャを指します。
- **自己回帰型大規模言語モデル**は、先行する出力を条件として、トークンを順番に生成します。この因果的なプロセスは、TensorFlowの自己回帰型テキスト生成チュートリアルで示されています。一方、拡散モデルでは、各改善ステップで多数の位置を更新できます。
- マスク言語モデルは、両側のコンテキストを使用して、意図的に隠されたトークンを予測します。Kerasのマスク言語モデリングの例では、この学習目的が示されています。拡散言語モデルは、この考え方を複数の破損レベルとデノイジング反復を伴う完全な生成プロセスへと拡張します。
- **Stable Diffusion**は画像生成システムであり、大規模言語モデルではありません。Stability AIのStable Diffusion画像サービスは視覚コンテンツを生成・編集しますが、拡散言語モデルはテキストトークンまたはその表現を処理します。
- **Diffusion Transformers**は、拡散システム内でTransformerを使用することを指し、一般的には画像や動画の生成に用いられます。拡散言語モデルは、ニューラルネットワークのアーキテクチャだけでなく、テキスト生成の目的によって定義されます。
実世界での利用例#
具体的な用途の1つが、ドキュメントとコードの編集です。カーソルの後ろにテキストを追加する代わりに、拡散言語モデルはドラフト全体または選択した範囲を改善できます。たとえば、ブロック全体の変数名、インポート、コメントを修正しながら、欠落した関数を再構成できます。前後両方のコンテキストを利用できるため、ある場所の修正が別の場所に影響する場合に有用です。
2つ目の用途は、マルチモーダル分析です。ビジョンシステムで画像から事実情報を抽出した後、拡散言語モデルがその観察結果に基づいて、レポート、キャプション、または応答を反復的に構成できます。たとえば、物体検出によって交通状況の画像内の車両や人物を特定してから、言語コンポーネントがインシデント概要を作成できます。
次のワークフローでは、下流の言語生成に使用する構造化された視覚的コンテキストを作成するために、Ultralytics YOLO26を使用します。
from ultralytics import YOLO
# Run object detection on a sample image
model = YOLO("yolo26n.pt")
results = model("https://ultralytics.com/images/bus.jpg")
result = results[0]
# Convert detections into compact language-model context
detections = result.summary()
object_names = sorted({item["name"] for item in detections})
visual_context = ", ".join(object_names)
print(visual_context)YOLO予測ワークフローは構造化された出力を返し、Results.summary()メソッドは検出結果を言語パイプラインに渡しやすい辞書に変換します。この分離により、ビジョンモデルが根拠に基づく観察結果を提供し、言語モデルが反復的な構成を処理できます。
メリット、制限事項、実践的なガイダンス#
拡散言語モデルは、複数のトークンを並列に提案し、以前の選択を修正するとともに、インフィリングや制約付き編集を自然にサポートできます。ただし、並列予測によってエンドツーエンドのレイテンシーが必ず低下するわけではありません。生成には依然として複数のデノイジングステップが必要であり、速度はシーケンス長、モデルサイズ、ハードウェア、サンプリング戦略によって異なります。
テキストは離散的でもあるため、段階的な破損は連続的な画像ピクセルへのノイズ付加ほど自然ではありません。設定が不適切なシステムでは、繰り返しを生成したり、必要な詳細を省略したり、正しいテキストを不必要に変更したり、出力長の決定に苦労したりする可能性があります。
チームは、代表的なプロンプトを用いて、タスクの精度、事実性、編集の安定性、レイテンシー、リソース使用量を評価する必要があります。生成AI評価に関するGoogle Cloudのガイダンスでは、言語品質はコンテキストに依存するため、自動メトリクスと人による評価を組み合わせることが推奨されています。影響の大きいデプロイメントでは、NIST AIリスクマネジメントフレームワークのような体系的なプロセスにも従う必要があります。
ビジュアルアプリケーションでは、Ultralytics Platformがデータセットのアノテーション、モデルのトレーニング、デプロイメント、モニタリングをサポートし、下流の拡散ベースの言語ワークフローの基盤となる知覚コンポーネントの構築を支援します。






