トピックハブ

生成モデル

生成モデルの5つの系統がどのように分布を学習しサンプリングするか、それぞれが何を犠牲にしているか、そして画像・音声・分子・テキストが必要なときにどれを選ぶべきかを解説します。

更新 2026年11月13日 · 拡散モデル、フローマッチング、VAE、GAN、自己回帰、潜在拡散、classifier-free guidance、サンプリング

概要

識別モデルは境界を学習します。生成モデルはデータの分布全体を学習し、そこから新しいサンプルを生成できます。この一点の違いが、生成モデルが学習しにくく、評価しにくく、それでいてはるかに有用である理由を説明しています。キャプションから画像を生成するのと同じ仕組みで、インペインティング、超解像、ノイズ除去、音声生成、タンパク質構造の提案、欠損したセンサー値の補完ができるのです。

このハブは、論文ではなく系統を選ぶ必要のあるエンジニアのためのページです。本稿執筆時点では、変分オートエンコーダ、敵対的生成ネットワーク、拡散モデル、フローマッチングモデル、自己回帰モデルの5つの系統で、プロダクションにあるほぼすべてをカバーできます。大規模言語モデル(LLM)はテキストの自己回帰生成モデルであり、/topics/transformers-and-llms/に専用のハブがあります。このページではそれ以外の系統と、各系統に共通する考え方を扱います。

重要な考え方

どの系統も、ひとつの問いに対する別々の答え

その問いとは、ノイズをどうやってデータに変えるかです。変分オートエンコーダ(VAE、Kingma and Welling, 2013)は、データを小さな潜在ベクトルに写像するエンコーダと、それを元に戻すデコーダを学習します。損失には潜在空間をガウス分布に近づける項が含まれます。サンプリングはデコーダの1回の順伝播なので高速ですが、再構成項が可能性を平均してしまうため、サンプルはぼやけます。敵対的生成ネットワーク(GAN、Goodfellow et al., 2014)は、偽物を見破ろうとする識別器に対抗して生成器を学習させます。サンプルは鮮明でサンプリングも1回の順伝播ですが、学習は2プレイヤーのゲームであり、振動したり少数のモードに崩壊したりすることがあり、監視できる尤度もありません。自己回帰モデルは同時分布を条件付き分布の積に分解し、トークン、ピクセル、音声サンプルを1つずつ予測します。厳密な尤度が得られ、スケールもしやすいのですが、サンプリングには要素1つにつき1回の順伝播が必要です。

拡散モデルはノイズを元に戻すことを学ぶ

拡散モデル(Ho et al., 2020)は逆の道を取ります。順過程は固定で、データに少量のガウスノイズをTステップにわたって加え、最後にはノイズだけが残るようにします。モデルが学習するのは逆過程、つまりノイズの乗った入力とステップ番号を見て、加えられたノイズを予測するネットワークです。学習はそのノイズ予測に対するごく普通の教師あり回帰なので、GANの学習が不安定なのに対して拡散モデルの学習は安定しています。サンプリングでは、学習したデノイザーを純粋なノイズから逆向きに走らせます。最近のソルバーなら通常20から50ステップです。潜在拡散(Rombach et al., 2022)は、ピクセル空間ではなく事前学習済みVAEの潜在空間で全過程を実行するもので、これによってStable Diffusionが1枚のGPUで手の届くものになりました。

順過程q(固定): ガウスノイズを加えるx0元データx1少しノイズxtほぼノイズxTノイズのみ…逆過程p(学習): ネットワークがノイズを予測し、ソルバーが逆向きに進むdenoisereps(xt, t, cond)U-Net or DiT毎ステップ同じネットワークフローマッチング: 直線に沿った速度場v(x, t)を学習datanoisex(t) = (1 - t) data + t noise, target velocity = noise - data経路が直線なので、サンプリング時のステップは少なく大きい
拡散モデル: 固定の順過程がノイズを段階的に加え、学習した逆過程がそれを取り除く。フローマッチングは曲がったノイズスケジュールを、ノイズとデータを結ぶ直線経路に置き換える。

フローマッチングは経路をまっすぐにする

フローマッチング(Lipman et al., 2022)と整流フロー(rectified flow、Liu et al., 2022)は、拡散モデルの学習レシピを保ったまま目標を変えます。多数の小さなステップで曲がって進むノイズスケジュールの代わりに、ノイズサンプルとデータサンプルの間の直線補間の速度を学習するのです。直線経路はより少ないステップで積分でき、目的関数は速度に対する単純な回帰になります。Stable Diffusion 3(Esser et al., 2024)とFLUX.1ファミリーがこの定式化を使っています。FLUX.1 [dev](12 Bパラメータ、テキストから画像、FLUX.1 [dev] Non-Commercial Licence、2024年8月)は、多くの人が最初に出会うオープンウェイトの例です。学習データは非公開です。

条件付けとガイダンスが出力を決める

ランダムなサンプルしか生成しない生成モデルは、珍しいだけの存在です。テキスト、クラスラベル、スケッチ、低解像度の入力で条件付けして、初めてツールになります。拡散モデルとフローモデルの標準的な技法はclassifier-free guidance(Ho and Salimans, 2022)です。学習時に条件をランダムに落とし、サンプリング時には予測を無条件の予測から離す方向にガイダンススケール分だけ押し出します。スケールを上げるほどプロンプトに忠実になる代わりに多様性が失われ、ある点を超えると色が飽和してアーティファクトが出ます。テキストエンコーダはデノイザーと同じくらい重要で、最近のモデルが条件付け器として大規模言語モデルを組み合わせているのはそのためです。

どこから始めるか

まず/learn/beginner/04-training-loop-and-loss/を読んでください。ここで扱う系統はどれも、変わった損失をもつ学習ループだからです。次にネットワーク側として/learn/beginner/07-your-first-neural-network/を、VAEと潜在拡散が依拠する潜在空間の直感として/learn/beginner/08-embeddings-and-similarity/を読んでください。/projects/mnist-cnn-pytorch/プロジェクトは、同じデータで小さなVAEへ拡張するのによい土台です。/topics/deep-learning/ハブはU-Netとトランスフォーマーのバックボーンを、/topics/computer-vision/と/topics/speech-and-audio/はこれらのモデルが最もよく使われる分野を扱っています。

ツールとプラットフォーム

ツール 用途 ライセンス プラットフォーム
Diffusers 拡散モデルとフローモデルのパイプライン、スケジューラ、学習スクリプト Apache-2.0 /platforms/huggingface/
PyTorch 5つの系統のどれでもゼロから書く BSD-3 /platforms/pytorch/
Stable Diffusionの重み(SD 1.5、SDXL、SD3) オープンウェイトの画像モデル。ライセンスはリリースごとに異なる CreativeML OpenRAIL-M(1.5、SDXL)、Stability Community Licence(SD3) /platforms/opensource/
FLUX.1 [dev] フローマッチングの画像モデル、12 Bパラメータ FLUX.1 [dev] Non-Commercial /platforms/opensource/
OpenAI Images API ホスト型の画像生成と編集、クローズドウェイト プロプライエタリ、従量課金 /platforms/openai/
Google ImagenとVeo Vertex AI経由のホスト型画像・動画生成、クローズドウェイト プロプライエタリ、従量課金 /platforms/google/
MLX Apple Silicon上で拡散モデルとフローモデルを実行 MIT /platforms/apple/

よくある間違い

  • 選りすぐった数枚のサンプルでモデルを判断する。固定のプロンプトセットでFIDやCLIPスコアを使い、それらでさえ時間とともにずれる理由を/topics/evaluation-and-benchmarks/で読んでください。
  • 最初の生成モデルとしてGANを学習させる。損失の低下が意味をもつVAEや小さな拡散モデルから始めてください。
  • ガイダンススケールを習慣で決める。適切な値はモデルとソルバーに依存し、パイプラインのデフォルトは他人のプロンプト向けに調整されたものです。
  • 間違ったVAEで潜在拡散を動かす。デコーダとデノイザーは一緒に学習されており、片方を差し替えると全サンプルが気づかないうちに劣化します。
  • 重みのライセンスを無視する。オープンな画像モデルの多くは利用制限付きのオープンウェイトであり、オープンソースではありません。/topics/open-source-ml/を参照してください。
  • サンプラーがハイパーパラメータであることを忘れる。最近のODEソルバーの20ステップは元の祖先サンプラーの1,000ステップに勝り、その選択は出力を変えます。

さらに深く