. はじめに
1 目的と概要
- MacBook M4Pro の強化された GPU 機能を活用して、LoRA を用いた機械学習を実施します
2 使用するツール・技術
- LoRA の CLI ツールを使って学習を行います。LoRA には Web ツールもありますが、Apple Silicon では fp16 に関連する制約があるため CLI ツールを利用します
- 前提条件
必要な環境
- ハードウェア: MacBookPro M4Pro, メモリ 24GB
- 注: M4 や M3 系ではパフォーマンス不足の可能性あり
- ソフトウェア: Python 3.10, LoRA, accelerate
3. セットアップ手順
mkdir ~/kohya_lora && cd ~/kohya_lora
git clone https://github.com/bmaltais/kohya_ss.git
cd kohya_ss
python3.10 -m venv venv
source venv/bin/activate
pip install --upgrade pip setuptools wheel
pip install -r requirements.txt --extra-index-url https://download.pytorch.org/whl/cpu
pip install accelerate toml diffusers torch torchvision opencv-python transformers einops
4. コマンド解説
- accelerate launch:
Hugging Face 提供の分散トレーニング支援ツール - train_network.py:
LoRA の CLI ツールとして機能します
5. パラメータ詳細
- --train_data_dir: 学習データディレクトリの指定。パス構成に注意
/モデルインストールパス/学習ステップ数_モデル名 のようにフォルダ構成を作る必要があり、コマンドに指定するのは/モデルインストールパス/の部分 - --output_dir: 出力ディレクトリ。書き込み権限が必要
- --optimizer_type=AdamW: 8 ビット系パラメータは非対応
- --mixed_precision=no, --no_half: Apple Silicon での 16 ビット浮動小数点計算を無効化
6. 実行手順
コマンド実行例
accelerate launch ./sd-scripts/train_network.py \
--pretrained_model_name_or_path=runwayml/stable-diffusion-v1-5 \
--train_data_dir=/Users/<ユーザ名>/LoRA/kohya_ss/dataset/images \
--output_dir=/Users/<ユーザ名>/LoRA/kohya_ss/dataset/outputs \
--resolution=512 \
--network_module=networks.lora \
--network_dim=8 \
--network_alpha=8 \
--train_batch_size=1 \
--gradient_accumulation_steps=4 \
--learning_rate=1e-4 \
--max_train_steps=2000 \
--mixed_precision=no \
--no_half \
--cache_latents \
--optimizer_type=AdamW \
--save_model_as=safetensors
7.期待される出力
学習結果は /Users/<ユーザ名>/LoRA/kohya_ss/dataset/outputs に保存され、Stable Diffusion などで使用可能です。
8. おまけ
学習中のアクティビティモニタのスクリーンショットも併せてご紹介します。
意外とメモリには余裕がありそう、LoRaを動かすには24Gあれば十分