顧客対応向けにLlamaをLoRAでファインチューニングする
あなたはカスタマーサポートの質問に答える言語モデルをファインチューニングする担当になりました。
Llamaモデルは質問応答が得意で、この顧客対応タスクでもうまく機能するはずです。ですが、通常のファインチューニングを行う計算資源がないため、bitext データセットを使ってLoRAによるファインチューニングを行う必要があります。
Maykeye/TinyLLama-v0 を学習できるようにしたいと考えています。学習スクリプトはほぼ完成しており、LoRAの設定パラメータ以外の学習コードはすでに用意されています。
該当するモデル、トークナイザー、データセット、学習用引数は、それぞれ model、tokenizer、dataset、training_arguments に読み込まれています。
この演習はコースの一部です
Llama 3 のファインチューニング
演習の手順
- LoRAアダプタのランクを2に設定する引数を追加します。
- スケーリング係数はランクの2倍に設定します。
- Llama系モデルで使われるタスクタイプを、Lora設定で指定します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
from peft import LoraConfig, get_peft_model
peft_config = LoraConfig(
# Set rank parameter
____=____,
# Set scaling factor
____=____,
# Set the type of task
____=____,
lora_dropout=0.05,
bias="none",
target_modules=['q_proj', 'v_proj']
)
trainer = SFTTrainer(
model=model,
train_dataset=dataset,
max_seq_length=250,
dataset_text_field='conversation',
tokenizer=tokenizer,
args=training_arguments,
peft_config=peft_config,
)
trainer.train()