Pular para o conteúdo principal

Capítulo 1: O que é QLoRA?

Adaptação Quantizada de Baixa Ordem​

QLoRA combina quantização de 4 bits com LoRA para reduzir drasticamente os requisitos de memória enquanto mantém a qualidade.


A Inovação do QLoRA​

Comparação de Memória​

ModeloFull FTLoRAQLoRA
7B~80GB~14GB~6GB
13B~160GB~26GB~10GB
70B~600GB~140GB~48GB

Como o QLoRA Funciona​

  1. Carrega o modelo base em 4 bits (formato NF4)
  2. Adiciona adaptadores LoRA em maior precisão (bf16/fp16)
  3. Treina apenas os parâmetros LoRA
  4. Gradientes fluem através dos pesos desquantizados
from transformers import BitsAndBytesConfig, AutoModelForCausalLM
from peft import LoraConfig, get_peft_model

# 4-bit configuration
bnb_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_quant_type="nf4",
bnb_4bit_compute_dtype=torch.bfloat16,
bnb_4bit_use_double_quant=True,
)

# Load quantized model
model = AutoModelForCausalLM.from_pretrained(
"meta-llama/Llama-3.1-8B",
quantization_config=bnb_config,
device_map="auto",
)

# Add LoRA on top
lora_config = LoraConfig(r=16, lora_alpha=32, ...)
model = get_peft_model(model, lora_config)

Componentes Principais​

NF4 (NormalFloat de 4 bits)​

Formato de quantização projetado para pesos com distribuição normal:

  • Número igual de valores em cada intervalo
  • Melhor para pesos de redes neurais do que quantização uniforme

Double Quantization​

Quantiza as constantes de quantização:

  • Economiza cerca de ~0,4 bits adicionais por parâmetro
  • ~11% a mais de economia de memória

Paged Optimizers​

Gerencia picos de uso de memória durante o treinamento:

  • Pagina os estados do otimizador para a CPU quando necessário
  • Evita erros de falta de memória (OOM)

Compromisso entre Qualidade e Memória​

MétodoMemóriaQualidade (relativa)
Full FT100%100%
LoRA18%99%
QLoRA8%98%

QLoRA atinge cerca de 98% da qualidade do fine-tuning completo usando apenas cerca de 8% da memória.


Quando Usar QLoRA​

✅ Use QLoRA quando:

  • A GPU tem < 24GB de VRAM
  • Treinando modelos 7B+ em hardware de consumidor
  • O custo é uma preocupação principal
  • Para experimentar e iterar rapidamente

❌ Considere LoRA/Full FT quando:

  • Qualidade máxima é crítica
  • Há memória de GPU abundante
  • Ao fazer deploy de modelo mesclado (overhead de mesclagem)

Principais Pontos​

✅ QLoRA = quantização de 4 bits + LoRA
✅ Reduz a memória em ~60% comparado ao LoRA
✅ Perda de qualidade mínima (~1-2%)
✅ Permite treinar modelos de 70B em 48GB
✅ Utiliza formato NF4 e double quantization


Continue para o Capítulo 2: Quantização de 4 bits →