Эффективная дообучение с 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 против обычного дообучения

 

  • 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...