Efficiƫnt finetunen met LoRA

Fijn-afstemmen met Llama 3

Francesca Donadoni

Curriculum Manager, DataCamp

Wat gebeurt er als we een model trainen?

 

  • Tokens zijn invoerdata die een vector vormen
  • Matrixvermenigvuldiging (model)
  • Levert uitvoervectoren op
  • Fouten updaten modelgewichten
  • Modelgrootte bepaalt trainingsmoeilijkheid

Invoer- en modelmatrices visueel weergegeven

Fijn-afstemmen met Llama 3

Wat is LoRA

 

  • Low-rank-decompositie
  • Minder te trainen parameters
  • Behoud van performance
  • Regularisatie-effect

Een blauwe matrix die wordt gesplitst in twee gedecomponeerde matrices die, wanneer vermenigvuldigd, de oorspronkelijke matrix reconstrueren.

Fijn-afstemmen met Llama 3

LoRA implementeren met 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']
)
Fijn-afstemmen met Llama 3

LoRA-configuratie integreren in 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()
Fijn-afstemmen met Llama 3

LoRA vs. regulier finetunen

 

  • TinyLlama/TinyLlama-1.1B-Chat-v1.0
  • 1,1 miljard parameters
  • 11k samples
  • ~30 minuten

 

  • nvidia/Llama3-ChatQA-1.5-8B
  • 8 miljard parameters
  • 11k samples
  • ~30 minuten
Fijn-afstemmen met Llama 3

Laten we oefenen!

Fijn-afstemmen met Llama 3

Preparing Video For Download...