Axolotl で 一問一答の対話データセットによるLoRAファインチューニングを試す
「Axolotl」で一問一答の対話データセットによる「Axolotl」のLoRAファインチューニングを試したのでまとめました。
前回
1. 学習内容
今回は「Axolotl」の練習として、「Llama-2-7b」を「ござるデータセット」(databricks-dolly-15k-ja-gozarinnemon)でLoRAファインチューニングしてみます。
2. Colabでの実行手順
Colabでの実行手順は、次のとおりです。
(1) Colabのノートブックを開き、メニュー「編集 → ノートブックの設定」で「GPU」の「A100」を選択。
(2) Googleドライブのマウント。
学習データの永続化のため、Googleドライブにマウントしています。
# Googleドライブのマウント
from google.colab import drive
drive.mount("/content/drive")
(3) 作業フォルダへの移動。
# 作業フォルダへの移動
import os
os.makedirs("/content/drive/My Drive/work", exist_ok=True)
%cd '/content/drive/My Drive/work'
(4) パッケージのインストール。
# パッケージのインストール
!git clone https://github.com/OpenAccess-AI-Collective/axolotl
%cd axolotl
(5) 「axolotl」直下の「requirements.txt」のPyTorchの設定をコメントアウト。
Colabにインストール済みのPyTorchを利用します。
・requirements.txt
# --extra-index-url https://download.pytorch.org/whl/cu118
# --extra-index-url https://huggingface.github.io/autogptq-index/whl/cu118/
# torch==2.0.1
(6) パッケージのインストール。
!pip install packaging
!pip install -e '.[flash-attn,deepspeed]'
!pip install -U git+https://github.com/huggingface/peft.git
(7) 「examples/llama-2/lora.yml」の編集。
・データセットのパス
datasets:
- path: mhenrichsen/alpaca_2k_test
type: alpaca
↓
datasets:
- path: bbz662bbz/databricks-dolly-15k-ja-gozaru
type: alpaca
・バッチサイズとエポック数
gradient_accumulation_steps: 4
micro_batch_size: 2
num_epochs: 4
↓
gradient_accumulation_steps: 8
micro_batch_size: 1
num_epochs: 1
examplesには様々なLLMの様々な学習法の設定例が用意されています。
(8) 学習の実行。
!accelerate launch -m axolotl.cli.inference examples/llama-2/lora.yml \
--lora_model_dir="./lora-out"
「lora-out」に学習済みモデルが出力されます。2時間ほどかかりました。
3. 動作確認
(1) 推論の実行。
!echo "### Instruction: 日本の首都は? ### Response:" | python -m axolotl.cli.inference examples/llama-2/lora.yml \
--lora_model_dir="./lora-out"
「ござる」になっているので学習成功です。
次回
この記事が気に入ったらサポートをしてみませんか?