Fine-tuning efficiente con LoRA

Fine-tuning con Llama 3

Francesca Donadoni

Curriculum Manager, DataCamp

Cosa succede quando alleniamo un modello?

 

  • I token sono dati di input che formano un vettore
  • Moltiplicazione di matrici (modello)
  • Produce vettori di output
  • Gli errori aggiornano i pesi del modello
  • La dimensione del modello determina la difficoltà di training

Matrici di input e del modello rappresentate visivamente

Fine-tuning con Llama 3

Cos’è LoRA

 

  • Decomposizione a rango basso
  • Riduce i parametri da addestrare
  • Mantiene le prestazioni
  • Effetto di regolarizzazione

Una matrice blu viene scomposta in due matrici che, moltiplicate, ricostruiscono l’originale.

Fine-tuning con Llama 3

Come implementare LoRA con 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 con Llama 3

Integrare la configurazione LoRA nel training

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 con Llama 3

LoRA vs fine-tuning classico

 

  • TinyLlama/TinyLlama-1.1B-Chat-v1.0
  • 1,1 miliardi di parametri
  • 11k campioni
  • ~30 minuti

 

  • nvidia/Llama3-ChatQA-1.5-8B
  • 8 miliardi di parametri
  • 11k campioni
  • ~30 minuti
Fine-tuning con Llama 3

Passiamo alla pratica !

Fine-tuning con Llama 3

Preparing Video For Download...