前回までの実験で、とりあえずローカルでLLMが動いたものの……なんやらトンチカンな回答を返す妙なブラックボックスがプロセスに居座っているだけになっていました。
こいつを目的用に改造するには、ファインチューニングなるモンが必要なようです。
実際のところ
データセットの取得
今回目的としている高度人工無能に使えそうなのは
巷には、日本語会話のコーパスを集めてる人がいるようです。
フランクな会話をできるやつを、この中から探す感じでしょうか。
masahiro-mi.github.io/dialogue_corpus.md at master · masahiro-mi/masahiro-mi.github.io · GitHub
更に通な方は自分でデータセットを作るというような事もされるのだとか。
……大昔に学内誌の編集やったり、最近でも議事録起こしやったりした身には……。
トレーニング部分
from transformers import Trainer, TrainingArguments training_args = TrainingArguments( output_dir="./output", num_train_epochs=3, per_device_train_batch_size=8, warmup_steps=500, weight_decay=0.01, logging_dir="./logs", ) trainer = Trainer( model=model, args=training_args, train_dataset=train_dataset, # トレーニングデータセット eval_dataset=val_dataset, # バリデーションデータセット ) # ファインチューニングを実施(とても時間がかかる trainer.train()
参考もと
日本語最大規模のTransformer対話モデルを無償公開 | トピックス | NTT
cyberagent/open-calmをファインチューニングする方法について(+cyberagent/open-calmに関しての解説) #Python - Qiita
OpenCALM-7Bにファインチューニングを実施してポジネガ分析に関して賢くなるかを確認してみた | DOORS
OpenCALM-7BをLoRAでinstruction tuningするための実装解説 / QLoRAの実装も紹介 #自然言語処理 - Qiita
日本語LLMまとめ | awesome-japanese-llm