Ефективне донавчання з LoRA

Тонке налаштування з Llama 3

Francesca Donadoni

Curriculum Manager, DataCamp

Що відбувається, коли ми навчаємо модель?

 

  • Токени — це вхідні дані, що утворюють вектор
  • Множення матриць (моделі)
  • Дає вихідні вектори
  • Помилки використовують для оновлення ваг моделі
  • Розмір моделі визначає складність навчання

Візуальне подання вхідних і модельних матриць

Тонке налаштування з Llama 3

Що таке LoRA

 

  • Розклад низького рангу
  • Менше тренувальних параметрів
  • Зберігає продуктивність
  • Ефект регуляризації

Синю матрицю розбито на дві, які при множенні відновлюють початкову матрицю.

Тонке налаштування з Llama 3

Як реалізувати LoRA за допомогою 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']
)
Тонке налаштування з Llama 3

Інтеграція конфігурації LoRA в навчання

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()
Тонке налаштування з Llama 3

LoRA vs звичайне донавчання

 

  • TinyLlama/TinyLlama-1.1B-Chat-v1.0
  • 1,1 мільярда параметрів
  • 11 тис. зразків
  • ~30 хвилин

 

  • nvidia/Llama3-ChatQA-1.5-8B
  • 8 мільярдів параметрів
  • 11 тис. зразків
  • ~30 хвилин
Тонке налаштування з Llama 3

Давайте потренуємось!

Тонке налаштування з Llama 3

Preparing Video For Download...