用 LoRA 微调 Llama 以支持客服
您需要对一个语言模型进行微调,以回答客服问题。
Llama 系列在问答任务上表现不错,适合本次客服场景。不过,您的算力不足以进行常规微调,因此必须基于 bitext 数据集使用 LoRA 微调技术。
您希望能够训练 Maykeye/TinyLLama-v0。训练脚本几乎已经完成,并且训练代码已为您准备好,只有 LoRA 的配置参数尚未填写。
相关的模型、分词器、数据集和训练参数已分别预加载到 model、tokenizer、dataset 和 training_arguments 中。
本练习是课程的一部分
使用 Llama 3 进行微调
练习说明
- 添加参数,将 LoRA 适配器的秩(rank)设为 2。
- 将缩放因子设为秩的 2 倍。
- 在您的 LoRA 配置中,设置与 Llama 风格模型匹配的任务类型。
交互式实操练习
通过完成这段示例代码来试试这个练习。
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()