CogVideo/finetune/README_ja.md
OleehyO 249fadfb76 docs: add hardware requirements for model training
Add a table in README files showing hardware requirements for training
different CogVideoX models, including:
- Memory requirements for each model variant
- Supported training types (LoRA)
- Training resolutions
- Mixed precision settings

Updated in all language versions (EN/ZH/JA).
2025-01-08 01:39:37 +00:00

100 lines
6.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# CogVideoX Diffusers ファインチューニングガイド
[中文阅读](./README_zh.md)
[Read in English](./README.md)
SATバージョンのファインチューニング手順については、[こちら](../sat/README_zh.md)をご確認ください。このバージョンのデータセットフォーマットは、こちらのバージョンとは異なります。
## ハードウェア要件
| モデル | トレーニングタイプ | 混合精度学習 | トレーニング解像度(フレーム数x高さx幅) | ハードウェア要件 |
|----------------------|-----------------|------------|----------------------------------|----------------|
| cogvideox-t2v-2b | lora (rank128) | fp16 | 49x480x720 | 16GB VRAM (NVIDIA 4080) |
| cogvideox-t2v-5b | lora (rank128) | bf16 | 49x480x720 | 24GB VRAM (NVIDIA 4090) |
| cogvideox-i2v-5b | lora (rank128) | bf16 | 49x480x720 | 24GB VRAM (NVIDIA 4090) |
| cogvideox1.5-t2v-5b | lora (rank128) | bf16 | 81x768x1360 | 35GB VRAM (NVIDIA A100) |
| cogvideox1.5-i2v-5b | lora (rank128) | bf16 | 81x768x1360 | 35GB VRAM (NVIDIA A100) |
## 依存関係のインストール
関連するコードがまだ `diffusers` の公式リリースに統合されていないため、`diffusers` ブランチを基にファインチューニングを行う必要があります。以下の手順に従って依存関係をインストールしてください:
```shell
git clone https://github.com/huggingface/diffusers.git
cd diffusers # 現在は Main ブランチ
pip install -e .
```
## データセットの準備
まず、データセットを準備する必要があります。タスクの種類T2V または I2Vによって、データセットのフォーマットが少し異なります
```
.
├── prompts.txt
├── videos
├── videos.txt
├── images # (オプション) I2Vの場合。提供されない場合、動画の最初のフレームが参照画像として使用されます
└── images.txt # (オプション) I2Vの場合。提供されない場合、動画の最初のフレームが参照画像として使用されます
```
各ファイルの役割は以下の通りです:
- `prompts.txt`: プロンプトを格納
- `videos/`: .mp4 動画ファイルを格納
- `videos.txt`: `videos/` フォルダ内の動画ファイルリストを格納
- `images/`: (オプション) .png 形式の参照画像ファイル
- `images.txt`: (オプション) 参照画像ファイルリスト
トレーニング中に検証データセットを使用する場合は、トレーニングデータセットと同じフォーマットで検証データセットを提供する必要があります。
## スクリプトを実行してファインチューニングを開始
トレーニングを開始する前に、以下の解像度設定に関する要件に注意してください:
1. フレーム数は8の倍数 **+1** (つまり8N+1)でなければなりません。例えば49、81など。
2. 推奨される動画の解像度は次の通りです:
- CogVideoX: 480x720高さ x 幅)
- CogVideoX1.5: 768x1360高さ x 幅)
3. 解像度が要求される基準に合わないサンプル(動画や画像)については、コード内で自動的にリサイズされます。この処理により、アスペクト比が歪む可能性があり、トレーニング結果に影響を与える可能性があります。解像度については、トレーニング前にサンプルを前処理(例えば、アスペクト比を維持するためにクロップとリサイズを使用)しておくことをお勧めします。
> **重要な注意**:トレーニング効率を向上させるために、動画はトレーニング前に自動的にエンコードされ、結果がディスクにキャッシュされます。トレーニング後にデータを変更した場合は、`videos/` フォルダ内の `latent` フォルダを削除して、最新のデータが使用されるようにしてください。
### テキストから動画生成T2Vのファインチューニング
```bash
# accelerate_train_t2v.sh の設定パラメータを変更します
# 主に変更が必要なパラメータ:
# --output_dir: 出力先ディレクトリ
# --data_root: データセットのルートディレクトリ
# --caption_column: プロンプトファイルのパス
# --video_column: 動画リストファイルのパス
# --train_resolution: トレーニング解像度(フレーム数 x 高さ x 幅)
# その他の重要なパラメータについては、起動スクリプトを参照してください
bash accelerate_train_t2v.sh
```
### 画像から動画生成I2Vのファインチューニング
```bash
# accelerate_train_i2v.sh の設定パラメータを変更します
# T2Vと同様に変更が必要なパラメータに加えて、以下のパラメータも設定する必要があります
# --image_column: 参照画像リストファイルのパス(オプション)
# その他の重要なパラメータについては、起動スクリプトを参照してください
bash accelerate_train_i2v.sh
```
## ファインチューニングしたモデルの読み込み
+ ファインチューニングしたモデルを読み込む方法については、[cli_demo.py](../inference/cli_demo.py)を参照してください。
## ベストプラクティス
+ 解像度が `200 x 480 x 720`(フレーム数 x 高さ x 幅の70本のトレーニング動画を使用しました。データ前処理でフレームスキップを行い、49フレームおよび16フレームの2つの小さなデータセットを作成して実験速度を向上させました。CogVideoXチームの推奨最大フレーム数制限は49フレームです。これらの70本の動画は、10、25、50本の3つのグループに分け、概念的に類似した性質のものです。
+ 25本以上の動画を使用することで、新しい概念やスタイルのトレーニングが最適です。
+ `--id_token` で指定できる識別子トークンを使用すると、トレーニング効果がより良くなります。これはDreamboothトレーニングに似ていますが、このトークンを使用しない通常のファインチューニングでも問題なく動作します。
+ 元のリポジトリでは `lora_alpha` が1に設定されていますが、この値は多くの実行で効果が悪かったため、モデルのバックエンドやトレーニング設定の違いが影響している可能性があります。私たちの推奨は、`lora_alpha` を rank と同じか、`rank // 2` に設定することです。
+ rank は64以上に設定することをお勧めします。