マルチモーダル大規模拡散言語モデル(MMaDA)
テキスト拡散 - 新しいパラダイム
GoogleがGoogle I/OでGemini Diffusionを導入して以来、私たちはテキストのための拡散モデルの使用について考えずにはいられません。文脈として、大規模言語モデル(LLM)は従来、自己回帰的であり、単語を1つずつ逐次的に生成し、各未来のトークンは過去のものに基づいて予測されます。しかし、テキスト拡散モデルは、出力を生成する際に「ノイズ」を洗練させることによって出力を生成します。これは、望ましい出力が得られるまで初期解の迅速な反復を意味します。テキスト拡散モデルの美しさは、自己回帰モデルと同等の品質のテキスト出力を生成しながら、低遅延であることです。さらに、テキスト拡散モデルは、逐次トークン生成の計算コストを考えると、よりコスト効果の高い解決策である可能性があります。
注目すべき論文「大規模言語拡散モデル」は、言語における拡散モデルの使用について貴重な洞察を提供しています。この論文では、テキストベースの拡散モデルであるLLaDA(マスキングを伴う大規模言語拡散)が紹介されています。以下の図はLLaDAの論文からのもので、推論プロセスの視覚的表現を示しています。暗い色は後のサンプリング段階で生成されたトークンを表し、明るい色は初期の予測を表します。
LLaDAについて読んだ後、私たちはテキスト拡散を利用し、画像処理能力を持つマルチモーダルモデルについて興味を持ちました。結局のところ、視覚的入力を扱うことができるモデルは、単にテキストベースのモデルよりも遥かに有用であることは明らかです。
この記事では、テキスト推論、マルチモーダル理解、テキストから画像生成のための新しいクラスのモデルであるマルチモーダル大拡散言語モデル(MMaDA)について見ていきます。
HuggingFaceスペースで探求するためのデモも利用可能です!ぜひチェックしてみてください。また、DigitalOceanのGPUドロップレットでMMaDAを実行する方法をお見せし、このモデルの性能に関する私たちの考えを議論します。
前提条件
このチュートリアルには2つの主要なコンポーネントがあります - 概要と実装です。概要のセクションでは、Large Language Models(LLMs)、トークン化、拡散モデル、マルチモダリティなどのトピックに対する理解が前提となっています。この背景がないと、読者は内容を把握するのが難しいかもしれません。実装セクションは非常に簡単です。GPUドロップレットをセットアップし、コマンドラインでコードを実行する方法をお見せします。ご自身に必要のないセクションはスキップしても構いません。
MMaDA
マルチモーダル大規模言語モデル(MLLM)は、通常、テキスト用の自動回帰モデルと画像用の拡散モデルを組み合わせます。しかし、マルチモーダル大規模拡散言語モデル(MMaDA)は、テキスト推論、マルチモーダル理解、テキストから画像生成のためのモダリティに依存しないアプローチを提供します。研究者たちは、異なるデータタイプに特定のコンポーネントを必要とせずに適応可能であるように設計された、統一された拡散アーキテクチャと共有確率フレームワークを組み合わせることによってMMaDAを開発しました。この設計により、さまざまな形式の情報をスムーズに統合し処理することが可能になります。彼らはまた、異なるモダリティ間でCoT形式を標準化する「混合ロング思考の連鎖」(CoT) ファインチューニングアプローチを採用しています。 テキストと視覚データの両方で推論プロセスを結びつけることで、この戦略はモデルが強化学習タスクのトレーニングを開始するのを助け、最初から複雑な問題を扱う能力を向上させます。さらに、研究者たちは拡散基盤モデル専用に作成されたポリシー勾配に基づく強化学習アルゴリズム、UniGRPOを紹介します。多様な報酬モデルリングを通じて、UniGRPOは推論と生成タスクの両方のためのポストトレーニングを統合し、パフォーマンスの一貫した向上をもたらします。
トレーニングの段階に応じて、ダウンロード可能な異なるMMaDAチェックポイントがあります:
| モデル | トレーニングチェックポイント | 能力 | ステータス |
|---|---|---|---|
| MMaDA-8B-ベース | 事前学習と指示調整 | 基本的なテキスト生成、画像生成、画像キャプション、思考能力 | 利用可能です |
| MMaDA-8B-MixCoT | 混合長チェーン・オブ・ソート(CoT)微調整 | 複雑なテキスト、マルチモーダルおよび画像生成推論 | 利用可能です |
| MMaDA-8B-Max | UniGRPO強化学習 | 複雑な推論と視覚生成に優れています | 近日公開 |
トレーニング
Pre-Training
トークン化は、テキストと画像のモダリティの両方に対して離散的です。
MMaDAは、LLaDA-8B-Instructの事前学習済み重みをテキスト用に初期化した点でLLaDAの上に構築されています。画像にはShow-oからの事前学習済み画像トークナイザーが使用されています。
MMaDAは、入力トークンからすべてのマスクトークンを同時に予測するマスクトークン予測器として定式化されています。このモデルは、マスクされた画像/テキストトークンのみから計算された統一交差エントロピー損失を使用してトレーニングされています。
以下は、MMaDAモデルの事前トレーニングに使用される統一クロスエントロピー損失関数を示す図です:
主要な要素:
θ: 最適化されているモデルパラメータ
x₀: 実際の真実(元のクリーンデータ)
t: [0,1] から均等にサンプリングされた時間ステップ - どれだけのノイズが追加されたかを示します
xₜ: 時間ステップtにおける、前方拡散プロセスによって生成されたx₀のノイズ版
[MASK]: 予測すべき位置を示す特別なトークン
𝟙[xᵢᵗ=[MASK]]: i 位置がマスクされている場合に 1 となり、そうでない場合は 0 となる指標関数
簡単に言うと、この数式は元の(マスクされていない)トークンを正しく予測するための負の対数尤度を計算しますが、それはノイジーな入力xₜでマスクされたトークンのみに適用されます。タイムステップとすべてのマスクされたトークンにわたって平均が取られます。この目的は、MMaDAモデルを画像トークンとテキストトークンの両方のマスクトークン予測器として訓練し、すべてのマスクトークンを同時に予測できるようにします。
以下にモデルの訓練に使用されたデータセットをリストしました。
トレーニングデータセット
| データセットカテゴリ | データセット名 | 目的 |
|---|---|---|
| 基礎言語と多モーダルデータ | ||
| RefinedWeb | 基本的なテキスト生成機能 | |
| ImageNet | マルチモーダル理解 | |
| コンセプチュアル12M | 画像テキストの事前学習 | |
| セグメント・アニシング(SAM) | マルチモーダル理解 | |
| LAION-美学-1200万 | 画像テキストデータセット | |
| ジャーニーDB | 生成的画像理解 | |
| 指示調整データ | ||
| LLaVA-1.5 | 視覚的指示調整 | |
| スタンフォード・アルパカ | テキスト指示 | |
| インストラクトBLIP | 視覚言語指導の調整 | |
| Qwen-VL | 視覚言語モデル | |
| mPLUG-Owl2 | マルチモーダル指示調整 | |
| LLaVA-Phi | 効率的なマルチモーダルアシスタント | |
| 推論データ | ||
| GeoQA | 幾何学的な質問応答 | |
| CLEVR | 構成的言語と視覚的推論 | |
| ReasonFlux | 階層的LLM推論 | |
| リモ | 数学的および論理的推論 | |
| s1k | シンプルなテスト時間スケーリング | |
| OpenThoughts | 数学的および論理的推論 | |
| AceMath-Instruct | ポストトレーニングによる数学的推論 | |
| LMM-R1 | 強力な推論を持つ3D LMM | |
| 強化学習データ | ||
| GeoQA | UniGRPO トレーニング | |
| クレバー | UniGRPO トレーニング | |
| GSM8K | UniGRPO トレーニング |
実装
ステップ1:GPUドロップレットを設定する
最初にDigitalOceanのGPUドロップレットをセットアップし、AI/MLを選択し、NVIDIA H100オプションを選んでください。
ステップ2:ウェブコンソール
GPU Dropletのロードが完了すると、Webコンソールを開くことができるようになります。
ステップ3:依存関係をインストールする
ウェブコンソールで、次のコードスニペットをコピーして貼り付けてください:
apt install python3-pip python3.10
ステップ4:リポジトリをクローンする
git clone https://github.com/Gen-Verse/MMaDA
cd MMaDA
ステップ5:依存関係をインストールする
要件ファイルをインストールすることで、環境に `app.py` を実行するために必要なすべてのツールが揃っていることが保証されます。
pip install -r requirements.txt
python3 app.py
出力は、VS Code内でアクセスできるGradioリンクになります。
ステップ6: VS Codeを開く
VS Codeのスタートメニューで「接続...」をクリックします。
「ホストに接続…」を選択してください。
ステップ7: GPUドロップレットに接続する
「新しいSSHホストを追加…」をクリックし、ドロップレットに接続するためのSSHコマンドを入力します。このコマンドは通常、ssh root@[your_droplet_ip_address]の形式です。Enterを押して確認すると、新しいVS Codeのウィンドウが開き、ドロップレットに接続されます。
GPUドロップレットページで、あなたのドロップレットのIPアドレスを見つけることができます。
ステップ8:Gradioにアクセスする
新しいVS Codeウィンドウで自分のドロップレットに接続したら、>simと入力し、「Simple Browser: Show」を選択します。
ウェブコンソールからGradioのURLを貼り付けてください。
マルチモーダルおよびテキストから画像生成を行うには、wandbアカウントが必要です。学生やポスドク研究者は無料でアクセスできますが、それ以外の方はサブスクリプションが必要です。もしwandbアカウントをお持ちでない場合でも、HuggingFaceでMMaDAを試すことができることを忘れないでください。
wandb login
マルチモーダル理解のために
python3 inference_mmu.py config=configs/mmada_demo.yaml mmu_image_root=./mmu_validation question='Please describe this image in detail.'
テキストから画像への生成のために
python3 inference_t2i.py config=configs/mmada_demo.yaml batch_size=1 validation_prompts_file=validation_prompts/text2image_prompts.txt guidance_scale=3.5 generation_timesteps=15
mode='t2i'
パフォーマンス
マルチモーダル理解
モデルは距離-時間グラフの線を直線として誤って分類し、その線を誤解釈しています。高校物理はモデルの得意分野ではないようです。おお。
モデルは私たちがアップロードしたアイスクリームの画像の味を正しく識別できることが分かりました。素晴らしいです。
テキストから画像への生成
私たちは画像生成の速さに感銘を受けましたが、MMaDAのテキストから画像への変換機能のプロンプト遵守にはまだ改善の余地があると感じました。さまざまなパラメーターを試してみて、以下のコメントであなたの考えを教えてください。
最後の考え
この分野がどれほど速く進んでいるかは本当に驚くべきことです。マルチモーダル大規模拡散言語モデル(MMaDA)の導入は、テキスト推論、マルチモーダル理解、およびテキストから画像への生成に対する独自のアプローチを表しています。モダリティ非依存の拡散フレームワークを活用し、LLaDAのような革新を基に構築することで、MMaDAは、特に待機時間と計算コストに関して、従来の自己回帰モデルに対する潜在的な代替手段を提供します。
モデルは画像生成においてかなりの速度を示し、マルチモーダル入力(アイスクリームのフレーバーを特定するなど)を処理する能力を持っていますが、テキストから画像生成におけるプロンプトの遵守や複雑な推論タスク(物理グラフの例に見られるように)など、改善が必要な分野もあります。これらの現在の制限にもかかわらず、言語における基盤となる拡散手法や、マルチモーダルコンテキストへのその拡張は非常に興味深いです。この分野が進化し続ける中で、MMaDAや類似のマルチモーダル拡散モデルの精度と堅牢性を高めるさらなる洗練が期待されており、さまざまなアプリケーションに対して、より強力なツールとなるでしょう。
とは言え、大規模な拡散モデルのトレーニングは非常に計算コストが高いようです。これにより、大規模なマルチモーダル拡散モデルのトレーニングコストが、モデルの効率的かつコスト効果の高い提供に見合うかどうかという問題が生じます。もちろん、これは大規模なパフォーマンスと生産における価値に依存します。














