自分の使ってるグラボが大分前に発売された GTX1660Ti VRAM6GB なのですが、このグラボだと有名wikiやブログで紹介されているようなLoRAの設定だと、トレーニングの実行はできるんですが、学習されていない、というような現象が発生したため、その解決方法をメモがてら残しときます
LoRAで学習を試したくてグラボも最新のものを持っている、というような人にこの記事は向いてないです
一度試してみて学習されない現象が発生したときに、もしかしたら解決の糸口になるかもしれない、という記事です
LoRA学習環境作る
インストール
derrian-distro/LoRA_Easy_Training_Scripts を使って環境作るのがとても楽です
これ一つで完結します
適当なディレクトリを切ってそこに以下から install_sd_scripts_v5.bat
をDLして設置
実行します
以上で環境構築は完了
学習元になる画像を用意する
この辺を参考に用意します
Windowsの場合、ページングファイルを大きくする
Windowsデフォルトだと自分の場合仮想メモリが足らなくなりました
以下を参考に、ページングファイルを100GB程度まで拡張しました(要再起動
学習の設定 (最重要&ハマりポイント)
run_command_line.bat
を使うと実行開始なのですが、
学習の設定はArgsList.py
にかきます
ベースモデルや画像フォルダなど設定します
が、、GTX1660Ti VRAM6GBというLoRA動作ギリギリのグラボ。それだけではダメでした
結論から言うとGTX1660Ti VRAM6GBでは
# self.mixed_precision: str = "fp16"
# ↓
self.mixed_precision: str = "no"
こうしないとトレーニングは成功するが、学習されませんでした
別の方法で環境を作った人も、mixed_precision
(名前はちょっと違う可能性あり)を設定する部分があると思うので、見直してみてください
同じ状況になった人は試してみてください
LoRA学習にかかる時間
- AdaFactor
- optimizer_args: Union[dict[str:str], None] = {"relative_step": True, "scale_parameter": True, "warmup_init": False}
- learning_rate:1e-3
- net_dim:32
- alpha:16
- batch_size:2
- xformers:true
- mem_eff_attn:false
で学習ステップ580(バッチ2なので実質1160)に2時間弱という感じです
AdamW8bitなら1時間ちょっとくらいでしょうか
これくらいで一旦どの程度学習できてるか確認するのがいい感じです