メインコンテンツへスキップ
見出し画像

Axolotl で 一問一答の対話データセットによるLoRAファインチューニングを試す

    「Axolotl」で一問一答の対話データセットによる「Axolotl」のLoRAファインチューニングを試したのでまとめました。

    【注意】Google Colab Pro/Pro+ のA100で動作確認しています。

    前回

    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"

    <s> ### Instruction: 日本の首都は? ### Response: Tokyoでござる。
    Tokyo (東京) は、中央省庁があり経済・政治の中心となっていますでござる。</s>

    「ござる」になっているので学習成功です。

    次回



     
     

    npaka

     
     
    プログラマー。iPhone / Android / Unity / ROS / AI / AR / VR / RasPi / ロボット / ガジェット。年2冊ペースで技術書を執筆。アニソン / カラオケ / ギター / 猫 twitter : @npaka123

    あなたへのおすすめ