Skip to main content
PromptQuorumPromptQuorum
Home/Local LLMs/Fine-Tuning LoRA para LLMs Locales 2026: Tutorial de Unsloth en 8 GB de VRAM con Llama 3.1
Advanced Techniques

Fine-Tuning LoRA para LLMs Locales 2026: Tutorial de Unsloth en 8 GB de VRAM con Llama 3.1

·13 min de lectura·Por Hans Kuepper · Fundador de PromptQuorum, herramienta de despacho multi-modelo · PromptQuorum

El fine-tuning adapta un modelo preentrenado a tu dominio usando LoRA (Low-Rank Adaptation) — agrega capas adaptadoras pequeñas (0,4 % del total de pesos) en lugar de reentrenar el modelo completo. Un fine-tune de Llama 3.1 8B requiere 8 GB de VRAM y 1–2 horas en hardware de consumo con Unsloth (4× más rápido que el entrenamiento estándar).

El fine-tuning adapta un modelo preentrenado a tu dominio usando LoRA (Low-Rank Adaptation) — agrega capas adaptadoras pequeñas (0,4 % del total de pesos) en lugar de reentrenar el modelo completo. Un fine-tune de Llama 3.1 8B requiere 8 GB de VRAM y 1–2 horas en hardware de consumo con Unsloth (4× más rápido que el entrenamiento estándar). En abril de 2026, LoRA y QLoRA (LoRA cuantizado en 4 bits) están listos para producción en Ollama, LM Studio y vLLM.

Slide Deck: Fine-Tuning LoRA para LLMs Locales 2026: Tutorial de Unsloth en 8 GB de VRAM con Llama 3.1

La presentación cubre: cómo LoRA reduce los parámetros entrenables al 0,4 % del modelo completo, la cuantización QLoRA de 4 bits para fine-tuning en 8 GB de VRAM, una matriz de decisión LoRA vs RAG, la configuración de entrenamiento en 6 pasos con Unsloth, los hiperparámetros clave (rank, alpha, dropout) y los 5 errores más comunes en fine-tuning. Descarga el PDF como tarjeta de referencia de fine-tuning con LoRA.

Browse the slides below or download as PDF for offline reference. Download Reference Card (PDF)

Key Takeaways

  • LoRA = agregar capas entrenables pequeñas a un modelo preentrenado. Solo el 1–5 % de los pesos del modelo son entrenables, lo que reduce drásticamente el VRAM y el tiempo.
  • Requisitos del fine-tuning: 500–1000 ejemplos de alta calidad, 8–16 GB de VRAM, 1–4 horas de entrenamiento.
  • Mejores herramientas: unsloth (la más rápida), Hugging Face TRL, Axolotl (la más flexible).
  • Rank de LoRA (r): Más bajo (r=8) es más pequeño y rápido; más alto (r=64) es más expresivo. Por defecto: r=16–32.
  • En abril de 2026, LoRA está listo para producción y cuenta con amplio soporte en motores de inferencia.

¿Cómo funciona LoRA?

LoRA agrega pequeñas matrices "adaptadoras" junto a los pesos originales del modelo. Durante el entrenamiento, solo se actualizan los adaptadores. Los pesos originales permanecen congelados.

Ejemplo: un modelo de 13B tiene 13 mil millones de pesos. LoRA agrega solo 50 millones de parámetros entrenables (~0,4 % del original). El entrenamiento es 100× más rápido.

En la inferencia, la salida del adaptador se combina con la salida del modelo principal mediante multiplicación de matrices. La penalización de velocidad es mínima (~5 %).

Resultado: un modelo específico del dominio que rinde mejor en tus tareas usando solo 8 GB de VRAM en lugar de 26 GB.

LoRA agrega pequeñas matrices adaptadoras entrenables junto a los pesos congelados del modelo base. Solo el 0,4 % de los parámetros del modelo Llama 13B se actualiza durante el entrenamiento, reduciendo el VRAM y el tiempo en 100×.
LoRA agrega pequeñas matrices adaptadoras entrenables junto a los pesos congelados del modelo base. Solo el 0,4 % de los parámetros del modelo Llama 13B se actualiza durante el entrenamiento, reduciendo el VRAM y el tiempo en 100×.

¿Qué es QLoRA (LoRA cuantizado en 4 bits)?

QLoRA combina LoRA con cuantización de 4 bits — el modelo base se carga en 4 bits (QLoRA) mientras que solo el adaptador se entrena en 16 bits. Esto reduce a la mitad los requisitos de VRAM:

En abril de 2026, QLoRA es el estándar para hardware de consumo. El flag `load_in_4bit=True` de Unsloth en el ejemplo de código anterior activa QLoRA automáticamente. La diferencia de calidad del 2 % respecto a LoRA completo es insignificante para la mayoría de las tareas de adaptación de dominio.

Cuándo usar LoRA (16 bits) en lugar de QLoRA (4 bits):

• Tareas que requieren máxima precisión (análisis médico, análisis de contratos legales)

• Tienes 16+ GB de VRAM disponibles

• Fine-tuning de modelos de 3B o más pequeños (los ahorros de QLoRA son mínimos en tamaños pequeños)

MétodoVRAM Modelo 7BVRAM Modelo 13BCalidad vs Completo
Fine-tuning completo28 GB52 GB100 % (referencia)
LoRA (base 16 bits)16 GB30 GB~97 %
QLoRA (base 4 bits)8 GB14 GB~95 %
Requisitos de VRAM por método de fine-tuning en modelos de 7B, 13B y 70B. El fine-tuning completo requiere 28+ GB para 7B; QLoRA lo reduce a 8 GB. Para empresas, QLoRA permite el fine-tuning de modelos de 70B en dual RTX 4090s (~40 GB en total).
Requisitos de VRAM por método de fine-tuning en modelos de 7B, 13B y 70B. El fine-tuning completo requiere 28+ GB para 7B; QLoRA lo reduce a 8 GB. Para empresas, QLoRA permite el fine-tuning de modelos de 70B en dual RTX 4090s (~40 GB en total).

¿Deberías hacer fine-tuning o usar RAG?

Matriz de decisión:

Antes de invertir en fine-tuning con LoRA, verifica que un mejor prompting no pueda resolver el problema primero — la ingeniería de prompts es más rápida, reversible e independiente del modelo. Para el marco de decisión completo, consulta ingeniería de prompts vs fine-tuning: cómo decidir.

El fine-tuning es una forma de mantener un flujo de trabajo de codificación productivo sin conexión. Para la configuración offline más completa — modelo, IDE, caché de paquetes, espejo de documentación — consulta LLM de codificación local sin Internet.

CriterioFine-TuningRAG
Frecuencia de cambio de documentosAnual o menosSemanal o más
Requisitos de conocimientoEl modelo necesita comprensión profundaLa recuperación es suficiente
Datos de entrenamiento disponiblesSe necesitan 500+ ejemplos de calidadCualquier documento funciona
Costo (largo plazo)Único ($50–200)Embeddings continuos
LatenciaMás rápido (sin recuperación)Más lento (recuperación + LLM)
Ideal paraCódigo, escritura creativa, estilo del dominioBases de conocimiento, preguntas y respuestas

¿Cómo preparas los datos de entrenamiento?

La calidad de los datos de entrenamiento determina el éxito del fine-tuning. Datos malos = modelo malo.

Mínimo: 500 ejemplos. Cada ejemplo = entrada + salida esperada.

Óptimo: 1000–5000 ejemplos. Más datos = mayor precisión.

Formato: JSON o JSONL. Cada línea = un ejemplo de entrenamiento.

json
[
  {"instruction": "Translate to French", "input": "Hello world", "output": "Bonjour le monde"},
  {"instruction": "Summarize", "input": "Long text...", "output": "Summary..."},
  {"instruction": "Code review", "input": "Python code...", "output": "Review comments..."}
]

# OR instruction-only format:
[
  {"text": "<|user|>Translate to French\nHello<|assistant|>Bonjour"},
  {"text": "<|user|>Summarize\nText<|assistant|>Summary"}
]
Flujo de trabajo de preparación de datos de entrenamiento: recopila 500+ pares instrucción/salida específicos del dominio, formatea en JSONL (uno por línea) y cárgalos en SFTTrainer. La calidad importa más que la cantidad — 100 ejemplos de alta calidad superan a 1000 de baja calidad.
Flujo de trabajo de preparación de datos de entrenamiento: recopila 500+ pares instrucción/salida específicos del dominio, formatea en JSONL (uno por línea) y cárgalos en SFTTrainer. La calidad importa más que la cantidad — 100 ejemplos de alta calidad superan a 1000 de baja calidad.

Configuración de fine-tuning con Unsloth

Unsloth es el framework LoRA más rápido (4× de velocidad respecto al entrenamiento estándar):

python
# Install unsloth
pip install unsloth[colab-new] xformers bitsandbytes

from unsloth import FastLanguageModel
from datasets import load_dataset

# Load base model with LoRA
model, tokenizer = FastLanguageModel.from_pretrained(
  model_name="unsloth/llama-3.1-8b-bnb-4bit",
  max_seq_length=2048,
  load_in_4bit=True,
  lora_r=16, lora_alpha=32,
  lora_dropout=0.05
)

# Load training data
dataset = load_dataset("json", data_files="training.jsonl")

# Configure trainer
from trl import SFTTrainer
trainer = SFTTrainer(
  model=model,
  tokenizer=tokenizer,
  train_dataset=dataset["train"],
  dataset_text_field="text",
  max_seq_length=2048,
  args=TrainingArguments(
    per_device_train_batch_size=4,
    num_train_epochs=3,
    learning_rate=2e-4,
    output_dir="output"
  )
)

# Train
trainer.train()

Hiperparámetros clave para el fine-tuning con LoRA

HiperparámetroValor recomendadoRango típicoEfecto
learning_rate2e-41e-5 a 1e-3Más bajo = estable, convergencia más lenta
lora_r (rank)164 a 64Más alto = más expresivo, más lento
lora_alpha328 a 256Más alto = efecto LoRA más fuerte
num_train_epochs31 a 10Más épocas = riesgo de sobreajuste
batch_size41 a 32Mayor = entrenamiento más rápido, más VRAM
warmup_steps1000 a 1000Aumento gradual del LR, estabiliza el entrenamiento

¿Cómo evalúas los modelos con fine-tuning?

Pérdida de entrenamiento: debe disminuir a lo largo de las épocas. Si se mantiene plana, la tasa de aprendizaje puede ser demasiado baja.

Pérdida de validación: debe disminuir pero mantenerse por encima de la pérdida de entrenamiento (normal). Si aumenta, hay sobreajuste.

Pruebas manuales: ejecuta el modelo con fine-tuning en ejemplos de prueba y compara las salidas con los resultados esperados.

Tareas de benchmark: usa benchmarks estándar (MMLU, HumanEval) para medir la mejora.

¿Cuáles son los errores más comunes en el fine-tuning?

  • Demasiado pocos ejemplos de entrenamiento. Menos de 200 ejemplos suele provocar sobreajuste. Recopila al menos 500.
  • Entrenar durante demasiadas épocas. El modelo memoriza datos en lugar de aprender patrones generalizables. Máximo 3–5 épocas.
  • No validar con datos no vistos. Siempre divide los datos en entrenamiento/validación (80/20). Valida con frecuencia para detectar sobreajuste.
  • Usar los mismos datos para fine-tuning y evaluación. La precisión reportada no tiene sentido si se evalúa sobre datos de entrenamiento.
  • No guardar checkpoints. El entrenamiento puede durar horas. Guarda cada época para poder recuperarte de fallos.

Preguntas frecuentes sobre el fine-tuning con LoRA

¿Cuántos datos de entrenamiento se necesitan?

Mínimo 500 ejemplos, óptimo 1000–5000. La calidad importa más que la cantidad. 100 ejemplos de alta calidad > 1000 de baja calidad.

¿Puedo hacer fine-tuning en una laptop?

Sí. Usa cuantización de 4 bits y LoRA. Un modelo de 7B requiere 8 GB de VRAM; el entrenamiento tarda 1–2 horas en CPU (lento) o 10–15 min en GPU.

¿Cómo fusiono los adaptadores LoRA en el modelo base?

Usa unsloth o HF transformers: `model.merge_and_unload()`. Crea un único archivo de modelo (~3–4 GB para 7B), listo para inferencia.

¿Puedo combinar múltiples adaptadores LoRA?

Sí, con restricciones. Apila adaptadores para aplicación secuencial, o usa técnicas de composición de adaptadores (por ejemplo, DoRA).

¿La calidad del modelo con fine-tuning es mejor que RAG?

Para la mayoría de las tareas, sí. Los modelos con fine-tuning comprenden los conceptos del dominio en profundidad. RAG es mejor cuando los documentos son voluminosos y cambian con frecuencia.

¿Cuál es la diferencia entre LoRA y QLoRA?

LoRA carga el modelo base en 16 bits y entrena capas adaptadoras pequeñas. QLoRA carga el modelo base en 4 bits y entrena los adaptadores en 16 bits. QLoRA usa aproximadamente la mitad del VRAM: 8 GB para 7B vs 16 GB para LoRA. La diferencia de calidad es ~2 % — insignificante para la mayoría de las tareas. Unsloth activa QLoRA con `load_in_4bit=True`.

¿Cómo uso un modelo LoRA con fine-tuning en Ollama?

Después del entrenamiento, fusiona el adaptador en el modelo base: `model.merge_and_unload()`. Convierte a GGUF usando el script `convert.py` de llama.cpp. Crea un Modelfile de Ollama apuntando al archivo GGUF: `FROM ./my-finetuned-model.gguf` Luego: `ollama create my-model -f Modelfile` y `ollama run my-model`. El modelo con fine-tuning funciona de forma idéntica a cualquier modelo de Ollama.

¿Puedo hacer fine-tuning de Llama 3.3 70B con LoRA en hardware de consumo?

Sí, con QLoRA. Llama 3.3 70B en 4 bits requiere ~40 GB de VRAM — cabe en dual RTX 4090 (2×24 GB) o una A100 80GB individual. Tiempo de entrenamiento: 4–8 horas en 1000 ejemplos. Para la mayoría de los usuarios, hacer fine-tuning de modelos de 7B o 13B es más práctico y genera el 90 %+ de la ganancia de calidad del 70B para tareas de dominio.

Fuentes

  • Hu, E. et al. (2021). "LoRA: Low-Rank Adaptation of Large Language Models." https://arxiv.org/abs/2106.09685 — Artículo original de LoRA que demuestra que el 0,4 % de parámetros entrenables iguala la calidad del fine-tuning completo.
  • Dettmers, T. et al. (2023). "QLoRA: Efficient Finetuning of Quantized LLMs." https://arxiv.org/abs/2305.14314 — Artículo de QLoRA: modelo base cuantizado en 4 bits + adaptadores LoRA en 16 bits reducen los requisitos de VRAM a la mitad.
  • Unsloth. (2026). "Unsloth: 4× Faster LoRA Training." https://github.com/unslothai/unsloth — Framework LoRA más rápido, compatible con Llama 3.x, Qwen2.5, Mistral con 4× de aceleración del entrenamiento.
  • Hugging Face. (2025). "TRL: Transformer Reinforcement Learning." https://github.com/huggingface/trl — SFTTrainer para fine-tuning supervisado con soporte de adaptadores LoRA.
  • Test PE link content
  • El fine-tuning funciona mejor cuando los fundamentos son sólidos. Antes de invertir tiempo en LoRA, asegúrate de que tus prompts base estén optimizados: la guía de ingeniería de prompts cubre 80 técnicas que mejoran la calidad de las salidas en modelos sin ajustar.

A Note on Third-Party Facts

This article references third-party AI models, benchmarks, prices, and licenses. The AI landscape changes rapidly. Benchmark scores, license terms, model names, and API prices can shift between the time of writing and the time you read this. Before making deployment or compliance decisions based on this article, verify current figures on each provider's official source: Hugging Face model cards for licenses and benchmarks, provider websites for API pricing, and EUR-Lex for current GDPR and EU AI Act text. This article reflects publicly available information as of May 2026.

Compare your local LLM against 25+ cloud models simultaneously with PromptQuorum.

Join the PromptQuorum Waitlist →

← Back to Local LLMs

Fine-Tuning LoRA para LLMs Locales 2026: Unsloth en 8 GB VRAM