เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

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()
แก้ไขและรันโค้ด