Fine-tuning Llama ด้วย LoRA สำหรับงานบริการลูกค้า
คุณได้รับมอบหมายให้ fine-tune โมเดลภาษาเพื่อตอบคำถามด้านบริการลูกค้า
โมเดล Llama มีความสามารถในการตอบคำถามได้ดี และเหมาะสำหรับงานบริการลูกค้านี้ อย่างไรก็ตาม ทรัพยากรการประมวลผลที่มีอยู่ไม่เพียงพอสำหรับการ fine-tuning แบบปกติ จึงต้องใช้เทคนิค LoRA fine-tuning กับชุดข้อมูล bitext แทน
โมเดลที่ต้องการฝึกคือ Maykeye/TinyLLama-v0 โดยสคริปต์การฝึกเตรียมไว้ให้เกือบสมบูรณ์แล้ว ยกเว้นพารามิเตอร์การตั้งค่า LoRA ที่ยังต้องกำหนดเพิ่มเติม
โมเดล, tokenizer, ชุดข้อมูล และอาร์กิวเมนต์การฝึกที่เกี่ยวข้องถูกโหลดไว้ให้แล้วในตัวแปร model, tokenizer, dataset และ training_arguments
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Fine-Tuning กับ Llama 3
คำแนะนำการฝึกหัด
- เพิ่มอาร์กิวเมนต์เพื่อกำหนด rank ของ LoRA adapter เป็น 2
- กำหนด scaling factor ให้มีค่าเป็น 2 เท่าของ rank
- กำหนด task type ที่ใช้กับโมเดลแบบ 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()