What is LoRA?
Una técnica de fine-tuning eficiente en parámetros que inyecta pequeñas matrices entrenables de bajo rango en un modelo preentrenado congelado, reduciendo drásticamente la memoria y el cómputo necesarios para adaptar modelos de lenguaje grandes.
Definition
LoRA (Low-Rank Adaptation of Large Language Models) es un método de fine-tuning introducido por Hu et al. en 2021 que evita modificar los pesos originales del modelo por completo. En su lugar, congela las matrices de pesos preentrenadas e inyecta pares de pequeñas matrices de descomposición de bajo rango entrenables (típicamente llamadas A y B) en las proyecciones de atención de cada capa transformer. Durante el pase forward, la salida de una capa se convierte en la suma de los pesos originales congelados multiplicados por la entrada más la contribución del adaptador de bajo rango. Debido a que el rango (r) de estas matrices de adaptador es mucho menor que las dimensiones originales, el número de parámetros entrenables cae por órdenes de magnitud — a menudo de miles de millones a solo unos pocos millones.
Este enfoque tiene dos beneficios prácticos profundos. Primero, hace el fine-tuning accesible en GPUs de consumo y gama media: un modelo de 7B parámetros que requeriría 28 GB de VRAM para fine-tuning completo puede ajustarse con LoRA con tan solo 6 GB cuando se combina con cuantización de 4 bits (QLoRA). Segundo, los pesos del adaptador son diminutos — típicamente de 10 a 100 MB — lo que significa que una organización puede mantener docenas de adaptadores específicos de tarea para un solo modelo base sin multiplicar los costos de almacenamiento.
LoRA se ha convertido en la estrategia de fine-tuning dominante en el ecosistema open-source de LLM. Es soportado por Hugging Face PEFT, Axolotl, LLaMA-Factory y prácticamente todos los principales frameworks de entrenamiento. Variantes como QLoRA (pesos base cuantizados), DoRA (actualizaciones de pesos descompuestas) y rsLoRA (escalado estabilizado por rango) continúan empujando la frontera de eficiencia y calidad.
Why It Matters
Antes de LoRA, ajustar un modelo de lenguaje grande significaba actualizar cada parámetro — un proceso que demandaba múltiples GPUs de gama alta y producía una copia de tamaño completo del modelo para cada tarea. Esto era económica y operativamente prohibitivo para la mayoría de las organizaciones. LoRA democratizó el fine-tuning al reducir los requisitos de hardware de 4 a 10 veces y los requisitos de almacenamiento en 100 veces o más. También introdujo el concepto de adaptadores intercambiables: un solo modelo base puede servir múltiples casos de uso cargando diferentes adaptadores LoRA en tiempo de inferencia, habilitando despliegues multi-tenant donde cada cliente obtiene un modelo personalizado sin duplicar los pesos completos.
How It Works
Para una matriz de pesos W dada de dimensiones d x k en el modelo original, LoRA introduce dos matrices: A de dimensiones d x r y B de dimensiones r x k, donde r (el rango) es mucho menor que tanto d como k — comúnmente 8, 16 o 64. Durante el entrenamiento, W se congela y solo A y B se actualizan. El pase forward modificado calcula: output = W·x + (A·B)·x · (α/r), donde α es un factor de escala que controla la influencia del adaptador. En tiempo de inferencia, la contribución del adaptador A·B puede fusionarse en W, añadiendo cero latencia. Los objetivos de entrenamiento son típicamente las matrices de proyección de consulta y valor (q_proj, v_proj) en cada capa de atención, aunque expandir a módulos adicionales (k_proj, o_proj, proyecciones gate, up, down) puede mejorar la calidad con un costo mínimo.
from peft import LoraConfig, get_peft_model
from transformers import AutoModelForCausalLM
# Load base model
model = AutoModelForCausalLM.from_pretrained(
"mistralai/Mistral-7B-v0.3",
load_in_4bit=True, # QLoRA: 4-bit quantized base
)
# Configure LoRA adapter
lora_config = LoraConfig(
r=16, # Rank of the low-rank matrices
lora_alpha=32, # Scaling factor (alpha / r)
target_modules=[
"q_proj", "v_proj", # Attention projections
"k_proj", "o_proj", # Optional: more modules = better quality
],
lora_dropout=0.05, # Dropout for regularization
bias="none",
task_type="CAUSAL_LM",
)
# Apply LoRA — only adapter params are trainable
model = get_peft_model(model, lora_config)
model.print_trainable_parameters()
# Output: trainable params: 13,631,488 || all params: 7,248,023,552 || 0.19%Example Use Case
Una empresa de tecnología legal necesita modelos especializados para tres tareas: extracción de cláusulas de contratos, preguntas y respuestas de cumplimiento regulatorio, y resumen de jurisprudencia. En lugar de ajustar y alojar tres modelos separados de 13B parámetros (requiriendo ~78 GB de almacenamiento y tres asignaciones de GPU), ajustan tres adaptadores LoRA de 50 MB cada uno sobre un solo Llama 2 13B base. En tiempo de inferencia, el adaptador apropiado se carga según el tipo de tarea de la solicitud entrante. Almacenamiento adicional total: 150 MB. Asignación total de GPU: una instancia sirviendo las tres tareas.
Key Takeaways
- LoRA congela el modelo original y entrena pequeñas matrices de adaptador de bajo rango, reduciendo los parámetros entrenables en más del 99%.
- Combinado con cuantización (QLoRA), permite ajustar modelos de 7B o más en una sola GPU de consumo.
- Los pesos de los adaptadores típicamente son de 10-100 MB, permitiendo múltiples adaptadores específicos de tarea por modelo base.
- Los adaptadores pueden fusionarse en los pesos base en tiempo de inferencia sin latencia adicional.
- LoRA es soportado por todos los principales frameworks de fine-tuning y se ha convertido en el enfoque estándar de la industria.
How Ertas Helps
LoRA es el método de fine-tuning predeterminado en Ertas Studio. Cuando un usuario configura un trabajo de entrenamiento, Studio automáticamente establece LoRA (o QLoRA para modelos más grandes) con valores predeterminados sensatos para rango, alfa y módulos objetivo — mientras expone estos parámetros para usuarios avanzados que desean control completo. Los pesos de adaptador resultantes se almacenan eficientemente en Ertas Hub, donde pueden versionarse, compartirse y apilarse. En tiempo de despliegue, Ertas Cloud carga el modelo base una vez e intercambia adaptadores LoRA por solicitud en caliente, habilitando inferencia multi-tenant sin duplicar los pesos del modelo.
Related Resources
Adapter
Base Model
Epoch
Fine-Tuning
GGUF
Inference
JSONL
Learning Rate
Model Distillation
Overfitting
QLoRA
Introducing Ertas Studio: A Visual Canvas for Fine-Tuning AI Models
Getting Started with Ertas: Fine-Tune and Deploy Custom AI Models
How to Fine-Tune an LLM: The Complete 2026 Guide
Fine-Tuning Llama 3: A Practical Guide for Your Use Case
Fine-Tune AI Models Without Writing Code
Fine-Tuning vs RAG: When to Use Each (and When to Combine Them)
Model Distillation with LoRA: Training Smaller Models from Frontier Outputs
Fine-Tuning Llama 3.3 and Qwen 2.5 with QLoRA: Benchmark Comparison
Hugging Face
llama.cpp
Ollama
Text Generation Web UI
Unsloth
Ertas for Healthcare
Ertas for SaaS Product Teams
Ertas for Customer Support
Ertas for Legal
Ertas for Finance
Ertas for Code Generation
Ertas for ML Engineers & Fine-Tuning Practitioners
Ship AI that runs on your users' devices.
Early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.