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」ボタンを押す。
ボタン下にプログレスバーが表示されます。完了時には「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」でメッセージを入力。
次回
この記事が気に入ったらサポートをしてみませんか?