Efektywne dostrajanie z LoRA

Fine-Tuning z Llama 3

Francesca Donadoni

Curriculum Manager, DataCamp

Co dzieje się podczas trenowania modelu?

 

  • Tokeny to dane wejściowe tworzące wektor
  • Mnożenie macierzy (modelu)
  • Wynikiem są wektory wyjściowe
  • Błędy służą do aktualizacji wag modelu
  • Rozmiar modelu wpływa na trudność trenowania

Macierze wejściowa i modelu przedstawione wizualnie

Fine-Tuning z Llama 3

Czym jest LoRA

 

  • Dekompozycja niskiego rzędu
  • Zmniejsza liczbę trenowanych parametrów
  • Zachowuje wydajność
  • Efekt regularyzacji

Niebieska macierz rozkładana na dwie macierze, których iloczyn odtwarza macierz oryginalną.

Fine-Tuning z Llama 3

Jak wdrożyć LoRA za pomocą 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 z Llama 3

Integracja konfiguracji LoRA w trenowaniu

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

LoRA vs standardowe dostrajanie

 

  • TinyLlama/TinyLlama-1.1B-Chat-v1.0
  • 1,1 miliarda parametrów
  • 11 tys. próbek
  • ~30 minut

 

  • nvidia/Llama3-ChatQA-1.5-8B
  • 8 miliardów parametrów
  • 11 tys. próbek
  • ~30 minut
Fine-Tuning z Llama 3

Czas na ćwiczenia!

Fine-Tuning z Llama 3

Preparing Video For Download...