セットアップ¶
Docker または他のコンテナオーケストレーションプラットフォームを使用したいユーザーは、まずこのドキュメントを参照してください。
インストール¶
Windows 10 以降で操作しているユーザー向けに、Docker と WSL をベースにしたインストールガイドがこのドキュメントで利用可能です。
Pip インストール方法¶
SimpleTuner は pip を使用して簡単にインストールできます。これはほとんどのユーザーに推奨されます:
# CUDA 用
pip install 'simpletuner[cuda]'
# CUDA 13 / Blackwell 用 (NVIDIA Bシリーズ GPU)
pip install 'simpletuner[cuda13]' --extra-index-url https://download.pytorch.org/whl/cu130
# TransformerEngine FP8 サポート付き CUDA 13 用
pip install 'simpletuner[cuda13-transformerengine]' --extra-index-url https://download.pytorch.org/whl/cu130
# ROCm 用
pip install 'simpletuner[rocm]' --extra-index-url https://download.pytorch.org/whl/rocm7.1
# Apple Silicon 用
pip install 'simpletuner[apple]'
# CPU のみ(非推奨)
pip install 'simpletuner[cpu]'
# JPEG XL サポート用(オプション)
pip install 'simpletuner[jxl]'
# 開発要件(オプション、PR の提出やテストの実行にのみ必要)
pip install 'simpletuner[dev]'
Git リポジトリ方式¶
ローカル開発やテスト用に、SimpleTuner リポジトリをクローンして Python venv をセットアップできます:
git clone --branch=release https://github.com/bghira/SimpleTuner.git
cd SimpleTuner
# python --version が 3.11 または 3.12 を示す場合は 3.13 にアップグレードすることをお勧めします。
python3.13 -m venv .venv
source .venv/bin/activate
ℹ️
config/config.envファイルでexport VENV_PATH=/path/to/.venvを設定することで、独自のカスタム venv パスを使用できます。
注意: ここでは現在 release ブランチをインストールしています。main ブランチには、より良い結果や低メモリ使用量を持つ可能性のある実験的機能が含まれている場合があります。
自動プラットフォーム検出で SimpleTuner をインストール:
注意: setup.py は自動的にプラットフォーム(CUDA/ROCm/Apple)を検出し、適切な依存関係をインストールします。
NVIDIA Hopper / Blackwell フォローアップ手順¶
オプションとして、Hopper(または新しい)機器は、torch.compile を使用する際の推論およびトレーニングパフォーマンス向上のために FlashAttention3 を利用できます。
venv をアクティブにした状態で、SimpleTuner ディレクトリから次のコマンドシーケンスを実行する必要があります:
git clone https://github.com/Dao-AILab/flash-attention
pushd flash-attention
pushd hopper
python setup.py install
popd
popd
⚠️ SimpleTuner での flash_attn ビルドの管理は、現在十分にサポートされていません。これはアップデート時に壊れる可能性があり、このビルド手順を時々手動で再実行する必要があります。
AMD ROCm フォローアップ手順¶
AMD MI300X を使用可能にするには、以下を実行する必要があります:
apt install amd-smi-lib
pushd /opt/rocm/share/amd_smi
python3 -m pip install --upgrade pip
python3 -m pip install .
popd
ℹ️ ROCm アクセラレーションのデフォルト: SimpleTuner が HIP 対応の PyTorch ビルドを検出すると、自動的に
PYTORCH_TUNABLEOP_ENABLED=1をエクスポート(既に設定していない場合)し、TunableOp カーネルが利用可能になります。MI300/gfx94x デバイスでは、デフォルトでHIPBLASLT_ALLOW_TF32=1も設定され、手動での環境設定なしに hipBLASLt の TF32 パスが有効になります。
全プラットフォーム共通¶
- 2a. オプション1(推奨):
simpletuner configureを実行 - 2b. オプション2:
config/config.json.exampleをconfig/config.jsonにコピーして詳細を入力
⚠️ Hugging Face Hub に容易にアクセスできない国にいるユーザーは、使用している
$SHELLに応じて、~/.bashrcまたは~/.zshrcにHF_ENDPOINT=https://hf-mirror.comを追加する必要があります。
マルチ GPU トレーニング¶
SimpleTuner には、WebUI を通じた自動 GPU 検出と設定が含まれるようになりました。初回ロード時に、GPU を検出して Accelerate を自動的に設定するオンボーディング手順がガイドされます。
WebUI 自動検出(推奨)¶
WebUI を初めて起動するか、simpletuner configure を使用すると、「Accelerate GPU Defaults」オンボーディング手順が表示されます:
- 自動検出: システム上の利用可能な全 GPU を検出
- GPU 詳細の表示: 名前、メモリ、デバイス ID を含む
- 最適設定の推奨: マルチ GPU トレーニング用の最適設定を推奨
-
3つの設定モードを提供:
-
オートモード(推奨): 検出された全 GPU を最適なプロセス数で使用
- マニュアルモード: 特定の GPU を選択するか、カスタムプロセス数を設定
- 無効モード: シングル GPU トレーニングのみ
仕組み:
- システムは CUDA/ROCm 経由で GPU ハードウェアを検出
- 利用可能なデバイスに基づいて最適な --num_processes を計算
- 特定の GPU が選択されている場合、自動的に CUDA_VISIBLE_DEVICES を設定
- 将来のトレーニング実行のために設定を保存
手動設定¶
WebUI を使用しない場合、config.json で GPU の可視性を直接制御できます:
これにより、トレーニングは GPU 0、1、2 に制限され、3 つのプロセスが起動されます。
--report_to='wandb'(デフォルト)を使用している場合、以下は統計情報のレポートに役立ちます:
API キーを見つけて設定するために、表示される指示に従ってください。
完了すると、すべてのトレーニングセッションと検証データが Weights & Biases で利用可能になります。
ℹ️ Weights & Biases または Tensorboard のレポートを完全に無効にしたい場合は、
--report-to=noneを使用してください
- simpletuner でトレーニングを開始します。ログは
debug.logに書き込まれます
⚠️ この時点で、
simpletuner configureを使用した場合は完了です! そうでない場合 - これらのコマンドは動作しますが、さらなる設定が必要です。詳細についてはチュートリアルを参照してください。
ユニットテストの実行¶
インストールが正常に完了したことを確認するためにユニットテストを実行するには:
高度: 複数の設定環境¶
複数のモデルをトレーニングするユーザーや、異なるデータセットや設定を素早く切り替える必要があるユーザー向けに、起動時に 2 つの環境変数が検査されます。
使用方法:
envはデフォルトでdefaultになり、このガイドで設定した通常のSimpleTuner/config/ディレクトリを指しますsimpletuner train env=pixartを使用すると、SimpleTuner/config/pixartディレクトリを使用してconfig.envを見つけますconfig_backendはデフォルトでenvになり、このガイドで設定した通常のconfig.envファイルを使用します- サポートされるオプション:
env、json、toml、またはtrain.pyを手動で実行する場合はcmd simpletuner train config_backend=jsonを使用すると、config.envの代わりにSimpleTuner/config/config.jsonを検索します- 同様に、
config_backend=tomlはconfig.envを使用します
これらの値の一方または両方を含む config/config.env を作成できます:
これらは次回以降の実行時に記憶されます。これらは上記で説明したマルチ GPU オプションに加えて追加できることに注意してください。
トレーニングデータ¶
約 10,000 枚の画像とファイル名としてのキャプションを含む、SimpleTuner ですぐに使用できる公開データセットがHugging Face Hub で利用可能です。
画像は単一のフォルダにまとめることも、サブディレクトリに整理することもできます。
画像選択ガイドライン¶
品質要件: - JPEG アーティファクトやぼやけた画像は避ける - 最新のモデルはこれらを検出します - 粒状の CMOS センサーノイズを避ける(生成される全画像に現れます) - 透かし、バッジ、署名なし(これらは学習されます) - 映画のフレームは一般的に圧縮のため機能しません(代わりにプロダクションスチルを使用)
技術仕様: - 64 で割り切れる画像が最適(リサイズなしで再利用可能) - バランスの取れた機能のために、正方形と非正方形の画像を混在 - 最良の結果のために、多様で高品質なデータセットを使用
キャプショニング¶
SimpleTuner はファイルの一括名前変更のためのキャプショニングスクリプトを提供します。サポートされるキャプション形式:
- ファイル名をキャプションとして使用(デフォルト)
- --caption_strategy=textfile でテキストファイル
- JSONL、CSV、または高度なメタデータファイル
推奨キャプショニングツール: - InternVL2: 最高品質だが低速(小規模データセット向け) - BLIP3: 優れた指示追従性を持つ最良の軽量オプション - Florence2: 最速だが出力を好まない人もいる
トレーニングバッチサイズ¶
最大バッチサイズは VRAM と解像度に依存します:
主要原則: - VRAM の問題なしで可能な限り最大のバッチサイズを使用 - 高解像度 = より多くの VRAM = より低いバッチサイズ - 128x128 でバッチサイズ 1 が機能しない場合、ハードウェアが不十分
マルチ GPU データセット要件¶
複数の GPU でトレーニングする場合、データセットは有効バッチサイズに対して十分な大きさである必要があります:
例: 4 GPU で train_batch_size=4 の場合、アスペクトバケットごとに少なくとも 16 サンプルが必要です。
小規模データセット用のソリューション:
- --allow_dataset_oversubscription を使用して繰り返しを自動調整
- データローダー設定で手動で repeats を設定
- バッチサイズまたは GPU 数を削減
完全な詳細については DATALOADER.md を参照してください。
Hugging Face Hub への公開¶
完了時にモデルを Hub に自動的にプッシュするには、config/config.json に追加します:
トレーニング前にログイン:
デバッグ¶
config/config.env に追加して詳細なログを有効にします:
プロジェクトルートに全てのログエントリを含む debug.log ファイルが作成されます。