Saltar al contenido principal

Capítulo 1: ¿Qué es QLoRA?

Adaptación de Bajo Rango Cuantizada​

QLoRA combina cuantización de 4 bits con LoRA para reducir drásticamente los requisitos de memoria mientras mantiene la calidad.


La innovación de QLoRA​

Comparación de memoria​

ModeloFT completoLoRAQLoRA
7B~80GB~14GB~6GB
13B~160GB~26GB~10GB
70B~600GB~140GB~48GB

¿Cómo funciona QLoRA?​

  1. Cargar el modelo base en 4 bits (formato NF4)
  2. Agregar adaptadores LoRA en mayor precisión (bf16/fp16)
  3. Entrenar solo los parámetros de LoRA
  4. Los gradientes fluyen a través de los pesos des-cuantizados
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 clave​

NF4 (NormalFloat de 4 bits)​

Formato de cuantización diseñado para pesos con distribución normal:

  • Igual número de valores en cada segmento
  • Mejor para pesos de redes neuronales que la cuantización uniforme

Doble cuantización​

Cuantiza las constantes de cuantización:

  • Ahorra aproximadamente ~0.4 bits adicionales por parámetro
  • ~11% más ahorro de memoria

Optimizadores paginados​

Gestiona picos de memoria durante el entrenamiento:

  • Pagina los estados del optimizador a la CPU cuando es necesario
  • Previene errores de falta de memoria (OOM)

Compromiso entre calidad y memoria​

MétodoMemoriaCalidad (relativa)
FT completo100%100%
LoRA18%99%
QLoRA8%98%

QLoRA logra aproximadamente el 98% de la calidad del fine-tuning completo con aproximadamente el 8% de la memoria.


Cuándo usar QLoRA​

✅ Use QLoRA cuando:

  • La GPU tiene < 24GB de VRAM
  • Entrenando modelos de 7B+ en hardware de consumo
  • El costo es una preocupación principal
  • Se requiere experimentar e iterar rápidamente

❌ Considere LoRA/FT completo cuando:

  • La máxima calidad es crítica
  • Se dispone de abundante memoria GPU
  • Se va a desplegar el modelo fusionado (sobrecarga de fusión)

Puntos clave​

✅ QLoRA = cuantización de 4 bits + LoRA
✅ Reduce la memoria en ~60% comparado con LoRA
✅ Pérdida de calidad mínima (~1-2%)
✅ Permite entrenar modelos de 70B en 48GB
✅ Utiliza formato NF4 y doble cuantización


Continuar al Capítulo 2: Cuantización de 4 bits →