見出し画像

text-generation-webui で RinnaのLoRAファインチューニングを試す

「text-generation-webui」で「Rinna」のLoRAファインチューニングを試したので、まとめました。

前回

LoRAファインチューニングを試す

LoRAファインチューニングの手順は、次のとおりです。

(1) 前々回と同じ手順で、Rinnaと会話できるように設定。
今回は、Rinnaのベースモデル (rinna/japanese-gpt-neox-3.6b) を使いました。

(2) 「Modelタブ」で「load-in-8bit」をチェックして、Rinnaモデルを再読み込み。

(3) 「あかねと〜くデータセット」(dataset_plain.txt) をダウンロードして「training/datasets」フォルダに配置。
今回は、EOSのないプレーンの方を使いました。

(4) 「Training タブ」で「Name」にLoRAモデル名を指定し、「Override Existing Files」をチェック。
今回は、LoRAモデル名を「akane」としました。「Override Existing Files」は学習時にLoRAモデルを上書き保存します。

(5) 「Training タブ」の下端にある「Raw text file タブ」を選択し、「Text file」に「dataset_plain」(先程配置したデータセット)、「Hard Cut String」に「\n」を指定し、「Start LoRA Training」ボタンを押す。

・Text file : 学習する生のテキストファイル
・Hard Cut String : ハードカットする文字列 (デフォルト:\n\n\n)
・Overlap Length : チャンクをどの程度オーバーラップするか
・Prefer Newline Cut Length : チャンクカットを改行方向にシフトする最大文字数

ボタン下にプログレスバーが表示されます。完了時には「loras」フォルダにLoRAモデルが出力されます。11分で完了しました。

◎ エラー対応
コンソールに以下のエラーがでた場合、

Traceback (most recent call last):
     :
  File "C:\oobabooga_windows\text-generation-webui\modules\training.py", line 462, in threaded_run
    trainer.train()
     :
RuntimeError: unscale_() has already been called on this optimizer since the last update().

以下の transformers をインストールすることで解決します (情報源)。

pip install git+https://github.com/huggingface/transformers@de9255de27abfcae4a1f816b904915f0b1e23cd9

(6) 「Model タブ」で、「LoRA (s) 」にLoRAモデル「akane」を追加し、「Apply LoRAs」ボタンを押す。
Rinna (japanese-gpt-neox-3.6b) にAkaneのLoRAモデルがアタッチされます。

◎ エラー対応
コンソールに以下のエラーがでた場合、

Traceback (most recent call last):
    :
  File "C:\oobabooga_windows\text-generation-webui\modules\LoRA.py", line 81, in add_lora_to_model
    shared.model = PeftModel.from_pretrained(shared.model, Path(f"{shared.args.lora_dir}/{lora_names[0]}"), adapter_name=lora_names[0], **params)
    :
TypeError: PeftConfig.__init__() got an unexpected keyword argument 'dtype'

modules/LoRA.py の 80行目 にparams = {} を追加して、dtypeをパラメータを消すことで、ひとまず動くようになりました。

(7) 「Chat settings タブ」でキャラクターアイコンと名前を設定。
必須のものではないですが、雰囲気作りです。

(8) 「Text generation タブ」で「Mode」に「chat-instruct」を選択し、「Input」でメッセージを入力。

次回



この記事が気に入ったらサポートをしてみませんか?