Ajuste eficiente com LoRA

Ajuste Fino com Llama 3

Francesca Donadoni

Curriculum Manager, DataCamp

O que acontece ao treinar um modelo?

 

  • Tokens são dados de entrada que formam um vetor
  • Multiplicação de matrizes (modelo)
  • Gera vetores de saída
  • Erros atualizam os pesos do modelo
  • Tamanho do modelo define a dificuldade do treino

Matrizes de entrada e do modelo representadas visualmente

Ajuste Fino com Llama 3

O que é LoRA

 

  • Decomposição de baixa ordem
  • Reduz parâmetros de treino
  • Mantém desempenho
  • Efeito de regularização

Uma matriz azul sendo dividida em duas matrizes decompostas que, ao serem multiplicadas, reconstroem a matriz original.

Ajuste Fino com Llama 3

Como implementar LoRA com 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']
)
Ajuste Fino com Llama 3

Integrando a configuração LoRA no treino

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()
Ajuste Fino com Llama 3

LoRA vs. fine-tuning tradicional

 

  • TinyLlama/TinyLlama-1.1B-Chat-v1.0
  • 1,1 bilhão de parâmetros
  • 11k amostras
  • ~30 min

 

  • nvidia/Llama3-ChatQA-1.5-8B
  • 8 bilhões de parâmetros
  • 11k amostras
  • ~30 min
Ajuste Fino com Llama 3

Vamos praticar!

Ajuste Fino com Llama 3

Preparing Video For Download...