Ajustare eficientă cu LoRA

Fine-Tuning cu Llama 3

Francesca Donadoni

Curriculum Manager, DataCamp

Ce se întâmplă când antrenăm un model?

 

  • Tokenii sunt date de intrare formate ca vectori
  • Înmulțire matriceală (model)
  • Rezultă vectori de ieșire
  • Erorile actualizează ponderile modelului
  • Dimensiunea modelului determină dificultatea antrenării

Matricele de intrare și ale modelului reprezentate vizual

Fine-Tuning cu Llama 3

Ce este LoRA

 

  • Descompunere de rang scăzut
  • Reduce parametrii de antrenare
  • Menține performanța
  • Efect de regularizare

O matrice albastră descompusă în două matrice care, înmulțite, reconstituie matricea originală.

Fine-Tuning cu Llama 3

Cum se implementează LoRA cu PEFT

from peft import LoraConfig

lora_config = LoraConfig(
r=12,
lora_alpha=32,
lora_dropout=0.05,
bias="none",
task_type="CAUSAL_LM", target_modules=['q_proj', 'v_proj']
)
Fine-Tuning cu Llama 3

Integrarea configurației LoRA în antrenare

trainer = SFTTrainer(
    model=model,

train_dataset=ds,
max_seq_length=250, dataset_text_field='conversation',
tokenizer=tokenizer, args=training_arguments
peft_config=lora_config,
)
trainer.train()
Fine-Tuning cu Llama 3

LoRA vs. ajustare clasică

 

  • TinyLlama/TinyLlama-1.1B-Chat-v1.0
  • 1,1 miliarde de parametri
  • 11k exemple
  • ~30 de minute

 

  • nvidia/Llama3-ChatQA-1.5-8B
  • 8 miliarde de parametri
  • 11k exemple
  • ~30 de minute
Fine-Tuning cu Llama 3

Să exersăm!

Fine-Tuning cu Llama 3

Preparing Video For Download...