始める無料で始める

顧客対応向けにLlamaをLoRAでファインチューニングする

あなたはカスタマーサポートの質問に答える言語モデルをファインチューニングする担当になりました。 Llamaモデルは質問応答が得意で、この顧客対応タスクでもうまく機能するはずです。ですが、通常のファインチューニングを行う計算資源がないため、bitext データセットを使ってLoRAによるファインチューニングを行う必要があります。

Maykeye/TinyLLama-v0 を学習できるようにしたいと考えています。学習スクリプトはほぼ完成しており、LoRAの設定パラメータ以外の学習コードはすでに用意されています。

該当するモデル、トークナイザー、データセット、学習用引数は、それぞれ modeltokenizerdatasettraining_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()
コードを編集して実行