2014年のある夜、モントリオールのとあるバー。28歳の博士課程の学生が友人とビールを飲みながらアイデアを口にした — 「二つのニューラルネットワークに、互いを騙し合い見破り合うゲームをさせたらどうだろう?」友人は鼻で笑った。その夜、彼は家に帰ってコードを書いて走らせた。最初の試みでそれは動いた。
アイデアはたった一行 — 「Generator(生成者) vs Discriminator(判別者)の敵対的ゲーム」。Generatorは偽物の画像を作り、Discriminatorは本物と偽物を見分ける。両者が同時に学習すると、Generatorはますます本物らしい画像を、Discriminatorはますます精密な判別を学んでいく。ゲームが均衡に達すると — Generatorが作った画像は本物と区別がつかなくなる。
彼が作ったモデルの名は GAN (Generative Adversarial Network)。最初はぼやけた28×28の手書き数字を生成した。しかし4年のうちに — StyleGANが偽物の人間の顔を1024×1024の解像度で作り出し、誰も本物と区別できなかった。
「バーにいたとき、ふと思いついたんだ。友人たちは絶対に無理だと言った。家に帰ってワインを一杯飲んでコードを書いた。最初の試みで動いた。それがGANだ。」
— Ian Goodfellow, 2019 インタビューGANは6年間(2014-2020)、画像生成の王だった。StyleGAN, BigGAN, CycleGAN など華々しい後継が次々と現れた。しかし学界はすでに気づいていた — GANには二つの持病がある。
2020年6月。UC Berkeleyのとある博士課程の学生が、一本の論文をNeurIPSに提出する。タイトルは "Denoising Diffusion Probabilistic Models"。略して DDPM。
アイデアは逆向きだ。画像に少しずつノイズを加えていき、完全な雑音にする (forward)。その過程をニューラルネットワークに学習させる。そして 逆に、雑音から少しずつノイズを取り除いていくと — 元の画像のようなものが現れる (reverse)。1000回の小さなステップに分ければ、安定して学習できる。
最初はGANよりずっと遅かった。1枚生成するのに数分。しかし 品質・多様性・安定性が圧倒的だった。モード崩壊なし。学習が壊れない。そして スケールを大きくすればそのまま良くなる。
2022年4月 — OpenAI DALL-E 2 公開。5月 — Google Imagen。どちらもDiffusionベース。どちらも非公開 (APIのみ)。
そして2022年8月22日 — あるドイツの会社がすべてを変えた。
Latent Diffusion論文(CVPR 2022)を作った二人が、Stability AIと協業して Stable Diffusionを公開した — モデルのweights、コード、学習データまですべてオープンソース。誰でも自分のGPUで動かせるようになった。その日からわずか数日のうちに 数万個のfine-tuningモデル、数百個の応用ツールが登場した。
2024年2月15日。OpenAIが Soraを発表する。60秒の動画をテキストだけで生成。自然なカメラの動き、一貫したキャラクター、現実のような物理。技術的な核心は — Diffusion Transformer (DiT): U-NetベースのDiffusionではなく、Transformerベースに変えた。動画の時間軸をattentionで処理する。
そして同じ年。2024年6月にRunway Gen-3、同じ時期に中国のKuaishou Klingが動画生成に加わった。2024年12月にはGoogle Veo 2の発表で、Soraに匹敵するかそれ以上の動画品質を見せ始めた。Hollywood VFXスタジオの一部が早くからこれらのツールを導入し始めた。
EP04で私たちは、ChatGPTが 言語を征服したと述べた。EP05では — Diffusionが 視覚を征服した。イラスト、写真、デザイン、VFX、動画広告。これらすべての産業が 2年のあいだに前世代のツールを失った。
そして意外な場所でも — Diffusionは 半導体工場の欠陥データの合成(Intel GFA)に、医療画像の補強に、薬物分子の設計(AlphaFoldの次世代)に使われている。雑音から意味のあるパターンへと向かうメカニズムは — 画像を超えてあらゆるデータに適用できることが明らかになった。
次回(EP06)では これらすべてのモデルを動かす本当の基盤 — NVIDIAのGPUを取り上げる。1999年のGeForce 256から2024年のBlackwellまで。CUDAがどのようにして全学界の標準になったのか、そしてGoogleがなぜ独自チップ(TPU)を作ったのかを。