今回の論文
今回取り上げるのは、William PeeblesとSaining Xieによる「Scalable Diffusion Models with Transformers」です。2022年12月19日にarXivで初版が公開され、ICCV 2023で発表されました。研究分野は、拡散モデルによる画像生成とモデル構造のスケーリングです。論文の書誌情報と著者のプロジェクトページで公開情報を確認できます。
この論文を選んだ理由は、画像生成の品質を改善するときに「大きなモデルを選ぶ」以外の設計軸を示しているためです。画像を何個のトークンに分けるか、条件をどう伝えるか、計算資源をどこに配るかという考え方は、生成モデルを作る場合にも、既存モデルを比較する場合にも役立ちます。以下ではarXiv v2をもとに解説します。
どんな技術か
DiT(Diffusion Transformer)は、拡散モデルの中でノイズを予測するネットワークをTransformerにした技術です。拡散モデルは、ランダムなノイズを少しずつ整えて画像を作ります。DiTでは、その各段階で画像の特徴を小さな区画に分け、区画同士の関係をAttentionで計算します。
言語モデルのように単語を順番に生成するわけではありません。ノイズ付きの画像表現全体をまとめて処理し、その時点で取り除くノイズを予測します。「拡散による生成の手順」と「その手順で使うニューラルネットワーク」を分けて考えると、DiTの位置付けが理解しやすくなります。
課題
従来の画像拡散モデルでは、画像を縮小・拡大しながら特徴を扱うU-Netが広く使われていました。畳み込みを中心とするU-Netは画像処理に適していますが、解像度ごとの層や接続があり、規模を増やすときに変更する箇所が多くなります。
画像生成を改善するには、モデルを深くする、特徴の幅を増やす、入力を細かく処理するといった選択肢があります。ところが、パラメータ数だけでは、そのモデルが画像1枚にどれだけ計算を使うかはわかりません。同じ重みを多数の区画に適用すれば、重みの数がほぼ同じでも処理量は増えるためです。
この違いは、高解像度の素材を生成するサービスや、候補画像を大量に作るシステムで問題になります。保存するモデルの容量だけを見て選ぶと、GPUメモリ、待ち時間、生成単価の見積もりを誤る可能性があります。DiTは、構造を比較的単純にそろえたうえで、規模と入力の細かさを別々に調べるための基盤になります。
用語解説
- 拡散モデル
- データに加えたノイズを予測するように学習し、生成時はノイズを段階的に減らすモデルです。DiTはこの生成原理を保ち、ノイズ予測を担う部分の構造を変えます。
- 潜在表現とVAE
- VAEは画像を小さな特徴の配列に圧縮し、その配列から画像を復元するモデルです。DiTは圧縮後の潜在表現で拡散を行うため、大きな画素配列をそのまま処理する場合より入力を小さくできます。
- パッチと自己Attention
- パッチは画像や潜在表現を区切った小領域です。各パッチをトークンに変換し、自己Attentionで他のトークンとの関係を計算します。区切りを細かくするほどトークンが増え、計算量も変わります。
- adaLN(Adaptive Layer Normalization)
- 特徴を正規化した後の尺度とずらし量を、外部条件に応じて変える仕組みです。DiTでは、ノイズの段階と生成するクラスを各ブロックの処理に伝えるために使います。
- Classifier-Free Guidance(CFG)
- 条件あり・条件なしのノイズ予測の差を使い、指定条件に沿う方向へ生成を強める手法です。DiTの代表的なFID値はCFGを使った結果なので、モデル構造だけの効果と区別する必要があります。
技術の仕組み
画像を圧縮してからトークンにする
処理の入り口はVAEです。論文の256×256画像では、画像を32×32×4の潜在表現に圧縮します。学習時にはこの潜在表現にノイズを加え、パッチごとにベクトルへ変換してTransformerへ渡します。位置の情報も加えることで、各トークンが元の配列のどこにあったかを伝えます。
ここでいうパッチサイズは、元画像ではなく潜在表現上のサイズです。32×32の配列なら、2×2パッチで256トークン、4×4で64トークン、8×8で16トークンになります。計算式は トークン数 = (潜在表現の一辺 ÷ パッチの一辺)² です。
この関係から、パッチの一辺を半分にするとトークン数は4倍になります。自己Attentionのトークン間比較はトークン数の二乗で増えるため、その部分の演算量は16倍になります。ただし、ブロック内にはトークン数に比例する処理もあり、モデル全体の計算量が必ず16倍になるわけではありません。入力の細かさと重みの数を分けて考えるのがポイントです。著者による構造・スケーリングの解説
adaLN-Zeroで条件を各層へ伝える
ノイズを除くには、「今どれくらいノイズが強いか」と「何を生成するか」をネットワークに知らせる必要があります。DiTで採用されたadaLN-Zeroは、時刻とクラスの埋め込みから、正規化後の特徴を調節する値と、残差分岐の出力を調節する値を作ります。
残差接続は、入力に処理結果を加えて次の層へ渡す仕組みです。adaLN-Zeroでは、この追加分の係数を初期状態でゼロにします。そのため、学習開始時のブロックは入力をそのまま通し、学習が進むにつれて必要な変換を加えられます。深いネットワークに最初から大きな変換を重ねない設計です。著者のadaLN-Zero解説
学習ではノイズを当て、生成では反復して除く
学習では、画像の潜在表現、ランダムなノイズ、ノイズを加える時刻を用意します。DiTが予測したノイズと、実際に加えたノイズの差を小さくすることが中心的な目的です。出力には逆過程の分散を表す情報も含まれ、ノイズ予測とは別の損失で学習します。VAEは固定して使います。
生成時はランダムな潜在ノイズから始め、DiTの予測とサンプリング手順を使って潜在表現を更新します。これを繰り返し、最後にVAEで画像へ復元します。CFGを使う場合は条件あり・条件なしの予測を組み合わせます。Transformerに変更しても、拡散の反復そのものがなくなるわけではありません。論文の拡散過程と学習方法
実験と結果
条件付き画像生成の品質
実験はImageNetのクラス条件付き生成を対象とし、256×256と512×512の画像で評価しました。主要指標のFIDは、生成画像と実画像の特徴分布の差で、小さいほど近いことを示します。標準的な比較では5万枚を生成し、250ステップのDDPMサンプリングを使います。
代表的なDiT-XL/2は、256×256で700万学習ステップ、CFG尺度1.5の条件でFID 2.27でした。論文内のLDM-4のCFG尺度1.5における3.60を改善しています。512×512では300万学習ステップ、CFG尺度1.5で3.04となり、比較対象のADM系の3.85を改善しました。ただし512×512ではStyleGAN-XLの2.41がより低く、すべての生成方式を上回ったわけではありません。論文の比較表
これらはクラス指定の実験です。文章の指示への忠実度や日本語プロンプトの理解を測った結果として読むことはできません。
品質を左右するのは重みの数だけではない
著者はS・B・L・XLの4規模と3種類のパッチサイズを組み合わせ、12モデルを調べています。モデルを大きくする場合だけでなく、同じ規模でパッチを細かくする場合にもFIDが改善しました。また、条件の注入方法を比べるとadaLN-Zeroが有効でした。著者による実験の整理
この結果は、モデル選定で「パラメータ数」と「入力トークン数」の両方を見る理由になります。一方、1回の順伝播の演算量であるGFLOPsは、画像1枚を完成させる総コストとは異なります。反復回数、CFGによる追加予測、VAEの復元、実際のGPU上の効率も必要です。
実装を変えたときの再現性
論文の学習はJAXとTPUで行われていますが、著者はPyTorch実装と事前学習済み重みも公開しています。256×256、40万学習ステップ、250サンプリングステップ、CFGなしのXL/2では、JAXのFID 19.5に対してPyTorchで18.1を報告しています。これは長期学習とCFGを使った2.27とは条件が異なります。公式実装の再現性評価
導入時には、数値だけを比較せず、学習期間、デコーダー、サンプリング手順、計算精度まで記録すると、差の原因を追いやすくなります。
何に使える?
ここからは、論文の構造と実験から考えられる応用です。以下の業務用途を論文が直接検証したわけではありません。
種類を指定した素材の候補生成
ゲーム素材や画像編集ツールで、決まった種類の画像を複数生成する用途が考えられます。クラス条件付き生成はDiTの実験に近い出発点です。ただし、公開モデルのクラスはImageNetの分類に依存します。自社の素材カテゴリに対応させるには、データを用意して条件付けと学習を設計し直す必要があります。
生成モデルの計算予算を比較する基盤
社内で画像生成モデルを比較するとき、同じ構造系列でモデル規模とパッチサイズを変えられることが役立ちます。「細部を処理するトークンを増やす」「ネットワークを深くする」のどちらに予算を使うかを、業務データで比較できます。品質だけでなく、生成時間やメモリの測定を組み合わせる用途です。
条件付き生成の研究開発
クラスの埋め込みを処理へ注入する考え方は、属性や連続値を指定する生成器を設計するヒントになります。例えば素材の種類と形状パラメータを扱う研究用プロトタイプが考えられます。ただし、複雑な文章や位置指定を同じ仕組みで十分に処理できるとは限らず、条件に適した追加構造と評価が必要です。
開発や事業へのヒント
モデル比較表に入力の粒度を入れる
生成AIの選定表には、モデル容量に加えて、画像解像度、潜在表現のサイズ、パッチサイズ、反復回数を記録するとよいでしょう。同程度の容量でも処理量が違う理由を説明でき、利用料金や処理時間の設計につなげられます。
小規模なプロダクトなら、公開重みを使う推論から始め、画像サイズやサンプリング回数を変えて品質と遅延を測るのが現実的です。公開重みのパッチサイズを変更するだけで、論文の別モデルの性能を再現できるわけではありません。パッチサイズの比較は、それぞれの設定で学習したモデルを使う必要があります。
条件の渡し方も改善対象にする
生成した画像が指定に合わない場合、モデルを大きくする前に、条件をどこにどう伝えているかを見直す余地があります。DiTの比較は、条件を入力トークンとして加える方法と、各層の特徴を調節する方法で学習結果が変わることを示しています。
ここから得られる設計上のヒントは、条件付けを単なる入力形式として扱わず、モデル構造の一部として評価することです。条件への一致度を測る独自評価を加えれば、FIDだけでは見えない業務上の改善を判断できます。
品質指標とユーザーの成功条件を分ける
FIDがよくても、文字が正しい、指定した物体数が合う、商品形状を守る、といった要件を満たすとは限りません。例えば商品画像の生成支援なら、形状の一致や修正が必要な割合も測る必要があります。DiTの分布品質の評価を出発点に、用途に合った合格条件を加えることが重要です。
限界
DiTの品質改善には計算資源が必要です。パッチを細かくすると自己Attentionの負担が増え、高解像度化にも同じ問題があります。また、反復生成とCFGによる予測があるため、Transformerを使ったことだけでリアルタイム生成が実現するわけではありません。
データ面では、中心的な実験がImageNetのクラス条件付き生成に限られます。文章からの生成、画像内の文字、専門領域の図、動画などの性能は、この結果から保証できません。データ量が少ない自社ドメインで、同じスケーリング傾向が得られるかも別途検証が必要です。
固定VAEを使うため、圧縮・復元で失われる細部も確認が必要です。最終画像の文字や細い線に問題がある場合、ノイズ除去側の規模だけで解決できるとは限りません。
再現性と実装にも注意が必要です。公式実装では浮動小数点精度などによる数値の差が説明されており、リポジトリは2025年8月6日にアーカイブされています。実装を利用する際は、依存関係と評価条件を固定し、自分の実行環境で動作を確認する必要があります。公式実装
よくある質問
Q. DiTはLLMのように画像トークンを順番に生成しますか?
A. この論文のDiTは、ノイズ付き潜在表現のトークンをまとめて処理します。次のトークンを順に生成する自己回帰モデルとは異なり、拡散の各段階で潜在表現全体を更新します。
Q. 公開モデルに文章を渡して画像を作れますか?
A. 論文の公開重みはImageNetのクラス条件付きモデルです。そのまま自由文の生成器として使うことはできません。文章を扱うにはテキスト側の表現、条件の注入方法、画像と文章の学習データなどを追加で設計する必要があります。
Q. パッチを細かくするほどよいのでしょうか?
A. 論文で調べた範囲では品質改善が見られますが、トークン数と計算負担も増えます。例えば32×32の潜在表現では、4×4から2×2にすると64トークンが256トークンになります。生成時間とGPUメモリを含めて判断する必要があります。
Q. 小さなモデルで生成ステップを増やせば大きなモデルの代わりになりますか?
A. 同等の品質になるとは限りません。1回のノイズ予測の能力と、それを繰り返す回数は別の設計軸です。自分の用途では、候補モデルと反復回数の組み合わせごとに、品質と実測時間を比較するのが確実です。
Q. 少ない計算資源でも学べることはありますか?
A. あります。事前学習済み重みで、画像サイズ、CFG尺度、反復回数を変え、どこで品質と遅延が変わるかを調べられます。大規模な再学習をしなくても、生成APIの設定や品質評価の設計に活かせます。
今日の学び
この論文は、画像拡散モデルの構造をどう拡張し、品質へつなげるかを扱いました。潜在表現をパッチに分け、条件をadaLN-Zeroで伝えるTransformerを使い、モデル規模とトークン数を設計軸にしています。
開発へのヒントは、モデル容量だけで生成性能を判断しないことです。入力の細かさ、条件の伝え方、反復回数を分けて考えると、品質と計算予算の選択肢が見えてきます。