glaive-7b-training / LOCAL_SETUP.md
Hajime MATSUMOTO
Add local setup guide for RTX 3090
9706c88

ローカル実行ガイド (RTX 3090)

Qwen2.5-7B + glaive-function-calling-v2 QLoRA学習をローカルで実行する手順

必要環境

  • GPU: RTX 3090 (24GB) 以上
  • Python: 3.10+
  • CUDA: 12.x
  • ストレージ: 50GB以上の空き

セットアップ

# 1. リポジトリをクローン
git clone https://huggingface.co/spaces/hajimemat/glaive-7b-training
cd glaive-7b-training

# 2. 仮想環境作成(推奨)
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate

# 3. 依存パッケージインストール
pip install -r requirements.txt

# 4. HuggingFaceにログイン(モデルアップロード用)
huggingface-cli login

学習実行

python train.py

学習中の出力例

[14:30:15] Step 100/7000 (1.4%) | Loss: 1.2345 | LR: 9.85e-05 | Elapsed: 00:15:30 | ETA: 02:45:00
[14:30:45] Step 110/7000 (1.6%) | Loss: 1.1890 | LR: 9.80e-05 | Elapsed: 00:16:00 | ETA: 02:44:30

チェックポイント

  • 500ステップごとに ./checkpoints/ に自動保存
  • 中断しても再実行で自動再開

学習完了後

1. LoRAマージ + AWQ量子化

python merge_and_quantize.py

出力:

  • ./merged_model/ - マージ済みモデル(約15GB)
  • ./quantized_model/ - AWQ量子化済み(約5GB)
  • HFに自動アップロード: hajimemat/qwen2.5-7b-glaive-fc-awq

2. vLLMでテスト(オプション)

# 量子化モデルをローカルでテスト
pip install vllm
python -m vllm.entrypoints.openai.api_server \
  --model ./quantized_model \
  --port 8000

トラブルシューティング

CUDA Out of Memory

バッチサイズを下げる(train.py内):

per_device_train_batch_size=1,  # 2→1に変更
gradient_accumulation_steps=32,  # 16→32に変更

学習が遅い

gradient_checkpointingを確認(メモリと速度のトレードオフ)

HFアップロード失敗

手動でアップロード:

huggingface-cli upload hajimemat/qwen2.5-7b-glaive-fc-lora ./output/final

推定時間

GPU 時間
RTX 3090 5-7時間
RTX 4090 3-5時間
A100 2-3時間

ファイル構成

glaive-7b-training/
├── train.py              # 学習スクリプト
├── merge_and_quantize.py # マージ・量子化スクリプト
├── requirements.txt      # 依存パッケージ
├── checkpoints/          # チェックポイント(自動生成)
├── output/final/         # 最終LoRA(自動生成)
├── merged_model/         # マージ済み(自動生成)
└── quantized_model/      # AWQ量子化済み(自動生成)