使用 LoRA 微調 Llama 以處理客服
你被指派微調一個語言模型,讓它能回答客服問題。
Llama 系列在問答任務上表現不錯,應該也適用於這個客服情境。不過,你沒有足夠的運算資源進行一般的微調,所以必須使用 LoRA 微調技術,並採用 bitext 資料集。
你想要能訓練 Maykeye/TinyLLama-v0。訓練腳本已經幾乎完成,你也已拿到訓練程式碼,唯一期待你補上的部分是 LoRA 的組態參數。
相關的模型、分詞器、資料集與訓練參數已預先載入為 model、tokenizer、dataset 和 training_arguments。
本練習屬於課程
使用 Llama 3 進行微調
練習說明
- 新增引數,將 LoRA adapter 的 rank 設為 2。
- 將縮放係數設為 rank 的 2 倍。
- 在 Lora 組態中設定與 Llama 類型模型相符的 task type。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
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()