Effizientes Finetuning mit LoRA

Feinabstimmung mit Llama 3

Francesca Donadoni

Curriculum Manager, DataCamp

Was passiert beim Trainieren eines Modells?

 

  • Tokens sind Eingabedaten als Vektor
  • Matrix-(Modell-)Multiplikation
  • Liefert Ausgabevektoren
  • Fehler aktualisieren Modellgewichte
  • Modellgröße bestimmt Trainingsaufwand

Eingabe- und Modellmatrizen visuell dargestellt

Feinabstimmung mit Llama 3

Was ist LoRA

 

  • Niedrigrang-Zerlegung
  • Weniger zu trainierende Parameter
  • Leistung bleibt erhalten
  • Regularisierungseffekt

Eine blaue Matrix wird in zwei zerlegte Matrizen aufgeteilt, die multipliziert die Originalmatrix rekonstruieren.

Feinabstimmung mit Llama 3

LoRA mit PEFT implementieren

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']
)
Feinabstimmung mit Llama 3

LoRA-Konfiguration ins Training integrieren

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()
Feinabstimmung mit Llama 3

LoRA vs. reguläres Finetuning

 

  • TinyLlama/TinyLlama-1.1B-Chat-v1.0
  • 1,1 Mrd. Parameter
  • 11k Samples
  • ~30 Minuten

 

  • nvidia/Llama3-ChatQA-1.5-8B
  • 8 Mrd. Parameter
  • 11k Samples
  • ~30 Minuten
Feinabstimmung mit Llama 3

Lass uns üben!

Feinabstimmung mit Llama 3

Preparing Video For Download...