Saltar al contenido principal

LoRA & PEFT

El Fine-Tuning Eficiente en Parámetros te permite entrenar modelos grandes con menos memoria.

¿Qué es LoRA?

LoRA (Low-Rank Adaptation) añade pequeñas matrices entrenables al modelo mientras mantiene los pesos base congelados. Esto reduce drásticamente el uso de memoria y el tiempo de entrenamiento.

Inicio Rápido

Python API

Parámetros

Rango (lora_r)

Rango mayor = más parámetros = más capacidad:

Alpha

La razón alpha/rango afecta el aprendizaje:

Módulos Objetivo

Por defecto, LoRA apunta a todas las capas lineales (all-linear). Puedes personalizar:

Con Cuantización

Combina LoRA con cuantización para máximo ahorro de memoria:

Comparación de Memoria

Fusionando Adaptadores

Por defecto, los adaptadores LoRA se fusionan automáticamente en el modelo base después del entrenamiento. Esto simplifica la inferencia - obtienes un único archivo de modelo listo para usar.

Comportamiento Por Defecto (Fusionado)

Guardar Solo Adaptadores

Para guardar solo los archivos de adaptador (más pequeños, pero requiere modelo base para inferencia):

Fusionar Manualmente Después

Debes especificar --output-folder para guardar localmente o --push-to-hub para subir a Hugging Face Hub.

Parámetros de la Herramienta de Fusión

O en Python:

Convertir a Formato Kohya

Convierte adaptadores LoRA a formato .safetensors compatible con Kohya:

Cargando Adaptadores

Usa adaptadores sin fusionar:

Mejores Prácticas

Entrenamiento

  • Usa tasa de aprendizaje mayor (2e-4 a 1e-3)
  • LoRA se beneficia de entrenamiento más largo
  • Considera apuntar a todas las capas lineales para tareas complejas

Memoria

  • Comienza con lora_r=16
  • Añade cuantización si es necesario
  • Usa gradient checkpointing (activado por defecto)

Calidad

  • Rango mayor generalmente = mejor calidad
  • Prueba en tu tarea específica
  • Compara con fine-tuning completo si la memoria lo permite

Próximos Pasos

Quantization

Reducción adicional de memoria

DPO Training

Optimización de preferencias