dskjal
広告
広告

画像生成 AI の学習の実例

カテゴリ:deeplearning

目次

PixArt-α

論文

学習に 28,400 ドル(2025年のドル円レートで、およそ 400 万円)しかかかっていない安価なモデル。学習にかかった時間は 64 台の V100 で 26 日。ちなみに Stable Diffusion 1.5 の学習コストは 320,000 ドル。

出典:PixArt-α: Fast Training of Diffusion Transformer for Photorealistic Text-to-Image Synthesis. Junsong Chen et al. Table 4. https://arxiv.org/abs/2310.00426

出典:PixArt-α: Fast Training of Diffusion Transformer for Photorealistic Text-to-Image Synthesis. Junsong Chen et al. Table 4. https://arxiv.org/abs/2310.00426

V100 は 14 TFLOPS、RTX5090 は 105 TFLOPS なので、RTX5090 1台だと学習に 160 日かかる。400 万円で RTX5090 を 10 台買えば 16 日でできる(契約アンペアを 60A 以上にする必要がある)。

オプティマイザーは AdamW。

Stable Diffusion 3

論文

データセットは conceptual-12mImageNet

バッチサイズは 1,024 でオプティマイザーは AdamW、lr = 1e-4 で、1,000 ステップの線形ウォームアップ。

Lumina-Image 2.0

論文

32 台の A100(FP32 は 19.5 TFLOPS) を使用。3段階の訓練でそれぞれ、191, 176, 224 GPU*Days。191 + 176 + 224 = 591GPU*Days、32 台で割ると学習日数は 18.5 日。オプティマイザーは AdamW。

出典:Lumina-Image 2.0: A Unified and Efficient Image Generative Framework. Qi Qin et al. Table 3. https://arxiv.org/abs/2503.21758

出典:Lumina-Image 2.0: A Unified and Efficient Image Generative Framework. Qi Qin et al. Table 3. https://arxiv.org/abs/2503.21758

HiDream-I1

論文

事前学習

256 x 256 を 600,000 ステップ。24 バッチ/GPU。

512 x 512 を 200,000 ステップ。8 バッチ/GPU。

1,024 x 1,024 を 200,000 ステップ。 2 バッチ/GPU。

AdamW, lr=1e-4, 1,000 ステップの線形ウォームアップ。mixed-precision と gradignt checkpointing を使用。

ファインチューニング

手動でキャプションを付けたハイクオリティな画像で 20,000 ステップ, lr=1e-5, グローバルバッチサイズ 64。

SANA

論文

Pytorch DistributedDataParallel を使用し、64 台の A100 で、かかった時間は非公開。512 x 512 の解像度で 1e-4 の学習率で 200K ステップ以上事前学習を行い、1024 から 4096 へ解像度を増やしながら、2e-5 の学習率で最大 10K ステップの教師ありファインチューニングを行う。オプティマイザーは 8bit CAME。1.6B のモデルで、CAME 8bit は AdamW 8bit よりわずかに性能がよく、メモリ使用量は若干少ない(43GB vs 45GB)。

1/3 のレイヤーだけを使って事前学習させた後、乱数で初期化した残りの 2/3 のレイヤーを追加して学習させる。

DiT-Air

論文

目的関数フローマッチング、オプティマイザーは AdaFactor、1e-4 の固定学習率。ハードウェアは TPU v5p。

Nitro-T

論文

学習期間は 32 AMD Instinct MI300X GPU で1日。

512px を 100k ステップ、1,024px を 20k ステップ。詳細は GitHub を参照。

REPA(DINO v2)はマスクしてないトークンにのみ適用。

データセット。()は使用枚数。

AI 生成画像を使いすぎると、画風がカートゥーン化する。JourneyDB は品質がよいので、ファインチューニングには DiffusionDB ではなく JourneyDB を使う。

Qwen-Image

論文

Stage 1 事前学習:256x256 でアスペクト比は 1:1, 2:3, 3:2, 3:4, 4:3, 9:16, 16:9, 1:3, 3:1。

Stage 2 ファインチューニング:以下の画像を除外する。

Stage 3 T2I Alignment:スクレイピングした画像を LLM・VLM でキャプションをつける

Stage 4 テキストレンダリング:データセットを、英語・中国語・その他の言語・画像内に文字なし、に分けて偏らないようにする。テキストが小さすぎる画像は除外。以下のような画像でデータを水増し。

Stage 5 高解像度:解像度 640 で訓練。Aesthetic フィルターを使い低品質な画像を除外。QR コードやサインなどがある画像も除外

Stage 6 カテゴリバランスの調整:カテゴリごとにテストして、能力の低い部分を追加学習

Stage 7 高解像度2:640~1,328 解像度で訓練

Z-Image

論文

データインフラ

正しいステージで正しいデータを取得できるようにするために以下のツールを開発した。データセットは質が重要で多様な概念を含みかつ意味的に重複のないデータが必要だ。

Edit モデルのためのデータ生成

キャプショナー

キャプショナーは Chain-of-Thought の要領で徐々に詳細なキャプションを生成する。

t2i の画像をキャプショナーに入れると、順に、タグ・短いキャプション・詳細なキャプションの3つを出力する。短いキャプションはユーザー入力を再現している。

i2i の画像ペアをキャプショナーに入れると、順に、2つの画像それぞれのキャプション・分析(入力された2つの画像の差異を出力)・修正指示の3つを出力する。

VLM には OCR で読み取ったテキスト情報も入れる。

学習戦略

  1. 低解像度事前学習。2562 の固定解像度で事前学習
  2. Omni-Pre-Training。可変解像度で t2i・i2i 学習

までは共通。

Z-Image は

  1. プロンプトエンハンサーを使用した SFT
  2. 新しい蒸留モデル作成技術
  3. 強化学習(RLHF)

Z-Image Edit は

  1. 画像編集のための事前学習
  2. 画像編集のための SFT

並列学習のために FSDP2 を使い、GPU 間に効率的にオプティマイザステートと勾配とを分配した。モデルのすべてのレイヤーに gradient checkpointing を実装し、メモリ量を削減した。計算量は増えるがバッチサイズを大きくすることでスループットを向上させた。

torch.compile 使用。

aspect ratio bucketing ではなく、画像解像度からシーケンス長を計算し、バッチ内ではシーケンス長が大体同じになるようにした。シーケンス長が大きく異なると短いシーケンスには大きいパディングが必要になり、学習が遅くなる。平均シーケンス長からバッチサイズを動的に制御し、OOM にならないようにしている。

事前学習

解像度 2562 のみの t2i 学習。

全体事前学習

この段階で 1k-1.5k の解像度に対応させる。

教師ありファインチューニング(SFT)

SFT ではサンプルの少ないロングテール概念を忘れる、破滅的忘却が起こりやすい。そこで SFT 段階でクラスバランシングを強制した。世界知識トポロジーグラフと BM25 ベースのモデルとでリアルタイムに学習素材のレア度を計算。特定のアーティストや概念が学習画像に含まれすぎないようにした。

マージチューニング

プロンプト忠実性優先や美的スコア優先など複数のファインチューンモデルを作成し、マージ比率を調整することでベストなモデルを作成した。

蒸留

最初は DMD を使って蒸留モデルを作成したが、周波数成分の高いディティールの消失やカラーシフトが発生した。そこで Decoupled DMD と DMDR とを開発した。

DMD には以下の2つのメカニズムが存在する

これらを個別に最適化することで DMD の性能を向上させた(Decoupled DMD)。

DMD に強化学習の損失を追加したのが DMDR。分布マッチングの正則化を効かせることで、強化学習の報酬ハッキングを抑制できる。

RLHF

DPO の後に GRPO を行う。

品質基準は以下の3つ

  1. プロンプト忠実性
  2. AI フィルタ通過
  3. 美的品質

プロンプト忠実性は以下の視点から評価する。人間の評価者は満たしていないと思う項目をクリックするだけ。

  1. 主題
  2. 属性
  3. 動作・インタラクション
  4. 空間位置
  5. スタイル・ライティング

テキストレンダリングや物体の個数計数タスクは VLM を使った RLVR を使う。

GRPO

評価基準は以下の3つ

  1. プロンプト忠実性
  2. フォトリアル
  3. 美的品質

Edit モデル

ベースモデルを作成した後、Edit モデルは Edit 用の事前学習を行う。Edit 用の事前学習では 5122 の編集タスクを数千ステップだけやり直したあと、10242 で事前学習を続ける。i2i データは作成が高コストなので、t2i データ4に対し、i2i データ1の割合で学習させる。

Edit モデルの教師ありファインチューニング

テキストレンダリングの割合は減らしてある。DTP ソフトを使えば 100% 正確な画像が手に入るし、ユーザーもそのような指示をする割合が低いので。

モデルサイズが限られているので、プロンプトエンハンサー(PE)で性能を底上げすることにした。プロンプトエンハンサーは VLM の推論モデル。プロンプトを PE に入れてプロンプトを水増しして教師ありファインチューニングを行う。

Illustrious

論文

バージョンステップ数バッチサイズデータ枚数プロンプトスタイルアノテーション手法解像度
0.1781,2501927.5Mタグベースオリジナルプロンプト + 手動フィルタリング/再構成1,024
1.0625,00012810Mタグベースオリジナルプロンプト + 手動フィルタリング/再構成1,536
1.193,75051212Mタグベースマルチレベルキャプション1,536
2.078,12551220Mタグベースマルチレベルキャプション1,536

Danbooru 画像とタグは以下の問題がある

キャプション構造

NovelAI のようなタグオーダーを採用している。

人数 ||| キャラ名 ||| レーティング ||| 一般タグ ||| アーティスト名 ||| パーセンタイルベースのレーティング ||| 年代

最初はパーセンタイルベースではなく、スコアレンジベースのレーティングだった。しかしスコアレンジは年代やカテゴリでばらつきが大きかったので、以下のようなパーセンタイルベースのレーティングを採用することにした。

レーティングタグパーセンテージ
worst quality~8%
bad quality~20%
average quality~60%
good quality~82%
best quality~92%
masterpiece~100%

解像度

v2.0 では 0.15MP(500px * 300px)から 2.25MiP(1536 px * 1536px / (1024*1024) = 2.25)。

訓練方法

訓練設定

バージョンデータ枚数バッチサイズ学習率
テキストエンコーダー学習率
エポック解像度プロンプトスタイルドロップアウトレジスタトークンマルチキャプション
0.17.5M1923.5e-54.5e-6201,024タグ
1.010M1281e-56e-681,536タグ
1.112M5123e-54e-641,536タグ+自然言語
2.020M5124e-53e-621,536タグ+自然言語

v0.1 が 150M ステップなので、1 step/s だとしても 1,736 日かかる。16 GPU で 109 日。少なくとも 10step/s ぐらいの速度が出ないと厳しい。

ファインチューニングの問題点

ユーザーの評価をフィードバックさせたファインチューニングは生成される画像の多様性がなくなる。流行の画風が高く評価され、AI が上手く書けない手や背景などを描かなくなる。

Illustrious がファインチューニング前のモデルを公開しているのはこれが理由だ。ファインチューニング版を LoRA 形式で配布する方法も考えられる。


広告
広告

カテゴリ