Un objetivo que RAG o prompting no resuelvan y un dataset separado de la evaluación.
Fine-tuning con LoRA y Unsloth en local: datos, entrenamiento y evaluación
Una guía para adaptar un modelo sin reentrenar todos sus pesos: cuándo utilizar LoRA, cómo preparar un dataset, calcular memoria, entrenar, evaluar, exportar y decidir el hardware.
Qué necesitas antes y cómo sabrás que has terminado
Ejecuta la guía sobre un entorno de prueba. No avances a producción hasta obtener la salida verificable y documentar la reversión.
Entrenar un adaptador LoRA, compararlo con el modelo base y documentar su publicación o reversión.
Continúa con la etapa relacionada y conserva comandos, versiones, métricas y responsables.
Abrir el siguiente paso →Cuándo hacer fine-tuning y cuándo basta con prompt o RAG
Tres formas de enseñar a la IA, de menor a mayor esfuerzo: darle instrucciones (prompt) es explicarle la tarea; darle documentos (RAG) es dejarle consultar tus manuales; el fine-tuning es enviarla a un curso para que interiorice tu estilo. La mayoría de empresas resuelve con las dos primeras; el curso se reserva para jerga y formatos muy repetitivos.
LoRA adapta el comportamiento de un modelo entrenando matrices de bajo rango añadidas a determinadas capas. Reduce parámetros entrenables y memoria frente a un ajuste completo. No introduce por sí sola una base de conocimiento actualizable ni garantiza que el modelo cite fuentes.
| Necesidad | Técnica preferente | Motivo |
|---|---|---|
| Cambiar tono o formato | Prompt primero; LoRA si no es estable | Evita entrenamiento innecesario |
| Responder con documentos que cambian | RAG | Actualiza fuentes sin reentrenar |
| Aprender una estructura de salida repetitiva | LoRA / SFT | Refuerza patrones y seguimiento |
| Especializar vocabulario y tarea | LoRA con dataset de calidad | Adapta comportamiento del modelo |
| Corregir una regla de negocio | Aplicación determinista | Una regla no debe depender de probabilidad |
| Dar acceso a sistemas | Herramientas con permisos | Fine-tuning no aporta autorización |
Antes de entrenar, crea una línea base con el modelo original. Si un prompt o una recuperación bien diseñada resuelven la tarea, conservarás un sistema más fácil de actualizar y auditar.
LoRA, QLoRA, SFT, adaptador y fusión
Un adaptador no es autónomo: registra el identificador exacto del modelo base, tokenizer, plantilla, configuración y licencia. Cargarlo sobre otra variante puede producir errores o un comportamiento impredecible.
Elegir una familia que ya esté cerca del resultado deseado
Fine-tuning no convierte un modelo pequeño en uno de capacidad ilimitada. Selecciona primero una familia que siga instrucciones, entienda castellano y soporte el contexto, visión o herramientas que necesitas. Evalúa Qwen, Llama, Gemma, DeepSeek-R1 o gpt-oss según tarea y licencia, y registra la variante concreta.
- Prueba en cero ejemplos. Ejecuta el banco de evaluación con el modelo base.
- Prueba prompting. Añade instrucciones y pocos ejemplos representativos.
- Comprueba la licencia. Uso, adaptación, redistribución y modelo derivado.
- Verifica formato. Tokenizer, plantilla de chat y soporte de la biblioteca de entrenamiento.
- Estima memoria. Pesos, cuantización, activaciones, gradientes, optimizador y longitud de secuencia.
- Conserva una alternativa. Una familia menor o mayor permite saber si el límite es adaptación o capacidad.
La guía modelos de IA local explica cómo comparar familias y cuantizaciones antes del entrenamiento.
Construir ejemplos que representen producción y no enseñen errores
La calidad del dataset domina el resultado. Un conjunto grande de respuestas inconsistentes puede empeorar el modelo. Define una política de redacción, revisa cada ejemplo y separa datos de entrenamiento, validación y prueba por origen para evitar filtraciones.
| Campo | Requisito | Fallo frecuente |
|---|---|---|
| Instrucción | Objetivo claro y suficiente contexto | Preguntas ambiguas con una única respuesta asumida |
| Respuesta | Correcta, completa y con el formato final | Texto generado sin revisión |
| Negativos | Casos de abstención y fuera de alcance | Enseñar que siempre debe responder |
| Diversidad | Variaciones reales de idioma y longitud | Plantillas casi duplicadas |
| Metadatos | Fuente, autor, licencia y versión | No poder retirar un ejemplo |
| Separación | Test no visto y sin duplicados semánticos | Medir memoria del dataset |
Formato conversacional
{"messages": [
{"role": "system", "content": "Política de la tarea"},
{"role": "user", "content": "Entrada representativa"},
{"role": "assistant", "content": "Respuesta aprobada"}
]}
Utiliza la plantilla oficial de la variante. No concatentes manualmente tokens especiales sin comprobar el tokenizer. Filtra secuencias demasiado largas y registra cuántos ejemplos se truncarían.
Datos personales y confidenciales
Minimiza, anonimiza cuando sea posible y limita acceso al dataset. Un modelo puede memorizar fragmentos. No introduzcas secretos, credenciales, correos completos o documentos sin una finalidad, base y evaluación claras.
Instalar Unsloth en un entorno reproducible
Unsloth optimiza el ajuste de modelos compatibles y ofrece cuadernos y ejemplos que cambian con rapidez. Utiliza un entorno virtual o contenedor, comprueba compatibilidad entre GPU, controlador, CUDA, PyTorch, bitsandbytes y la biblioteca. Fija versiones una vez que el entrenamiento funciona.
python -m venv .venv source .venv/bin/activate python -m pip install --upgrade pip # Instala PyTorch para tu plataforma y después la pila de entrenamiento. pip install unsloth datasets trl peft
El comando es orientativo. Revisa las instrucciones vigentes para tu plataforma antes de instalar. En DGX Spark o cualquier sistema ARM64, confirma que cada dependencia y kernel dispone de soporte para la arquitectura.
- GPU visible desde PyTorch
- Precisión BF16 o FP16 compatible
- Espacio para modelo, dataset y checkpoints
- Directorio de salida fuera del entorno efímero
- Semilla, configuración y commit registrados
- Sin acceso de red no necesario durante el trabajo
Elegir secuencia, lote, rango y módulos mediante una prueba pequeña
Empieza con un subconjunto y una ejecución corta. Comprueba que la pérdida baja, los checkpoints se guardan y la evaluación funciona. Solo después aumenta pasos o dataset.
| Parámetro | Efecto | Cómo decidir |
|---|---|---|
| Longitud máxima | Activaciones y memoria | Distribución real de tokens; evita fijar el máximo teórico |
| Microbatch | Memoria por paso | El mayor que cabe con margen |
| Acumulación | Lote efectivo sin cargar todo a la vez | Equilibra estabilidad y tiempo |
| Learning rate | Tamaño de las actualizaciones | Curvas de entrenamiento y validación |
| Rango LoRA | Capacidad del adaptador | Compara pequeño y medio; vigila sobreajuste |
| Target modules | Capas adaptadas | Receta de la arquitectura y ablation |
| Épocas o pasos | Exposición a los ejemplos | Parada por validación, no por una cifra fija |
| Checkpoint | Recuperación y comparación | Guarda por intervalos y limita retención |
La precisión mixta reduce memoria y puede acelerar entrenamiento. QLoRA reduce la memoria del modelo base, pero activaciones y longitud siguen siendo determinantes. Gradient checkpointing intercambia cálculo por menor memoria.
Entrenar con controles de pérdida, validación y recuperación
- Carga modelo y tokenizer. Registra el identificador y la revisión.
- Aplica la plantilla. Convierte cada conversación exactamente como se usará en inferencia.
- Filtra y tokeniza. Informa de ejemplos vacíos, truncados y distribución de longitud.
- Crea el adaptador. Define rango, alpha, dropout y módulos objetivo.
- Ejecuta una prueba corta. Confirma memoria, velocidad y guardado.
- Entrena con validación. Observa pérdida de entrenamiento y validación; detén si se separan.
- Guarda adaptador y configuración. Incluye tokenizer, plantilla y métricas.
- Evalúa el checkpoint. No selecciones solo el último; compara en el banco de pruebas.
Artefactos mínimos - modelo base y revisión - tokenizer y chat template - configuración LoRA - configuración de entrenamiento - dataset y división versionados - métricas y logs - adaptador por checkpoint - informe de evaluación
Una pérdida baja no demuestra utilidad. El modelo puede memorizar el dataset, alterar capacidades generales o empeorar seguridad. La evaluación externa decide.
Comparar base y adaptado con casos que el entrenamiento no ha visto
| Dimensión | Prueba | Fallo bloqueante |
|---|---|---|
| Tarea objetivo | Exactitud y formato | No mejora o inventa campos |
| Generalización | Variantes nuevas | Solo funciona con plantillas del dataset |
| Abstención | Entradas fuera de alcance | Responde con seguridad aparente |
| Conocimiento general | Casos del modelo base | Regresión relevante |
| Seguridad | Inyección y solicitudes prohibidas | El adaptador debilita límites |
| Privacidad | Intentos de extraer ejemplos | Reproduce datos sensibles |
| Operación | Latencia y memoria | No cabe en el entorno de destino |
Ejecuta varias semillas o checkpoints cuando el coste lo permita. Revisa muestras humanas con una rúbrica. Conserva la línea base para demostrar qué aporta el ajuste y qué empeora.
Prueba de memorización
Busca fragmentos únicos del dataset mediante prompts directos e indirectos. La ausencia de reproducción en una prueba no garantiza privacidad, pero la presencia es una señal de retirada o rediseño.
Servir el adaptador, fusionar o cuantizar sin perder la trazabilidad
Puedes mantener modelo base y adaptador separados, fusionar una copia o exportar a un formato de inferencia. Cada opción cambia almacenamiento, flexibilidad y riesgo.
| Opción | Ventaja | Precaución |
|---|---|---|
| Adaptador separado | Pequeño y fácil de cambiar | Requiere exactamente el modelo base compatible |
| Modelo fusionado | Despliegue más sencillo en algunos motores | Crea otro artefacto grande y debe evaluarse de nuevo |
| Cuantización posterior | Reduce memoria de inferencia | Puede degradar el comportamiento aprendido |
| Registro de modelos | Versiones, aprobaciones y retirada | Debe incluir licencia y procedencia |
- Exporta a una carpeta nueva; no sobrescribas el checkpoint aprobado.
- Calcula hashes y registra configuración.
- Carga en el runtime de destino.
- Repite el banco de pruebas después de merge o cuantización.
- Mide memoria, contexto y velocidad.
- Publica con un identificador inmutable y plan de reversión.
Para Ollama, crea un Modelfile o importa un formato compatible según la ruta de exportación. El modelo servido debe conservar la plantilla usada durante entrenamiento.
Resolver falta de memoria, pérdida inestable y modelo que no aprende
| Síntoma | Causa probable | Orden de actuación |
|---|---|---|
| OOM al iniciar | Modelo, secuencia o batch excesivos | Confirma cuantización, reduce microbatch y longitud, activa checkpointing |
| OOM durante evaluación | Generación o lote de eval diferente | Reduce lote y longitud; libera cachés entre fases |
| Pérdida no baja | Formato, máscaras o learning rate | Inspecciona ejemplos tokenizados y una muestra pequeña |
| Validación empeora | Sobreajuste o datos inconsistentes | Detén antes, limpia dataset y reduce capacidad |
| Respuestas con formato extraño | Chat template incorrecta | Alinea entrenamiento e inferencia |
| Adaptador no carga | Modelo base o módulos distintos | Comprueba identificador, revisión y configuración |
| Entrenamiento muy lento | Descarga, kernels o CPU de datos | Perfila GPU, precisión, dataloader y almacenamiento |
Dimensionar entrenamiento, no inferencia
La memoria de entrenamiento incluye más componentes que los pesos cuantizados de inferencia. Longitud y microbatch pueden dominar. Una GPU discreta es más rápida cuando el trabajo cabe. DGX Spark aporta 128 GB coherentes y puede permitir adaptaciones que no caben en VRAM convencional, aunque debes validar compatibilidad ARM64 y velocidad. RTX PRO 6000 ofrece 96 GB de VRAM y gran ancho de banda. DGX Station amplía de forma sustancial la memoria para modelos, lotes y usuarios mayores.
GPU existente
Valida dataset, plantilla y evaluación con una variante contenida.
RTX PRO 6000
Encaja cuando 96 GB permiten mantener entrenamiento en GPU y el tiempo importa.
Ver RTX PRO 6000 →DGX Spark o Station
Spark abre 128 GB en formato compacto; Station cubre una escala superior de memoria y servicio.
Analizar DGX Spark →Para recomendar hardware necesitamos modelo base, cuantización, longitud, microbatch, acumulación, módulos LoRA, dataset, tiempo objetivo y si el equipo también servirá inferencia.
Publicar un modelo adaptado con evidencia y reversión
- Finalidad y razón para entrenar documentadas
- Modelo base, licencia y revisión registradas
- Dataset con procedencia, permisos y retirada posible
- Divisiones sin duplicados ni filtración
- Configuración y entorno reproducibles
- Evaluación frente al modelo base
- Pruebas de seguridad, privacidad y abstención
- Artefacto, hashes y plantilla versionados
- Monitorización de calidad y regresiones
- Plan para volver al modelo anterior
Conectar el entrenamiento con conocimiento, gobierno y servicio
Conocimiento cambiante
Comprueba si RAG resuelve la necesidad antes de introducir datos en un entrenamiento.
Diseñar el RAG →Datos y cumplimiento
Documenta procedencia, minimización, retirada, acceso y riesgo de memorización.
Aplicar controles →Escala de hardware
Compara VRAM rápida, memoria coherente y una estación compartida con la configuración real.
Analizar DGX Station →Entrena solo después de demostrar el límite del modelo base
Una muestra limpia, una línea base y un banco de evaluación evitan invertir hardware en corregir un problema de prompt, datos o RAG.
Consultar compra y disponibilidadMide esta carga y elige el equipo con datos
Ejecuta una prueba representativa, registra memoria y tiempo, y utiliza el recomendador para comparar una GPU rápida con una plataforma de memoria coherente.
- 01
Define la carga
Concreta tarea, familia de modelo, contexto, lote y usuarios simultáneos.
Aclarar el caso de uso → - 02
Dimensiona memoria
Compara VRAM, memoria coherente, velocidad y margen de crecimiento.
Usar el recomendador de hardware → - 03
Compra en la tienda
Abre la ficha comercial para consultar configuración, precio cerrado, disponibilidad y condiciones vigentes.
Contacto y disponibilidad →
RTX PRO 6000 · 96 GB
Prioriza una GPU profesional para inferencia, imagen, vídeo o serving cuando el modelo y el contexto caben en sus 96 GB de VRAM.
Ver ficha profesional →NVIDIA DGX Spark · 128 GB
Considera memoria unificada para desarrollo CUDA y cargas que superan la VRAM de una GPU, aceptando que capacidad no equivale siempre a más velocidad.
Ver ficha y comprar →Recomendador de hardware
Responde cinco preguntas y compara el equipo actual, una GPU NVIDIA, la RTX PRO 6000 y sistemas GB10 como DGX Spark, ASUS Ascent GX10 o Lenovo ThinkStation PGX.
Comparar opciones →aisupercomputers.es aporta guías y herramientas de decisión. La compra, el precio cerrado en la ficha y el soporte comercial desde España se gestionan en las tiendas del grupo Ietres.
Respuestas directas
¿Qué diferencia hay entre LoRA y RAG?
LoRA adapta el comportamiento del modelo mediante entrenamiento. RAG recupera documentos en el momento de la consulta. Para conocimiento actualizable y citas, RAG suele ser la primera opción.
¿QLoRA significa que el adaptador también está cuantizado?
QLoRA carga el modelo base cuantizado para reducir memoria y entrena adaptadores con una precisión adecuada. El detalle depende de la implementación y debe registrarse.
¿Cuántos ejemplos necesito?
No existe una cifra universal. Un conjunto pequeño y coherente puede superar a uno grande con errores. Empieza con ejemplos representativos, mide y amplía donde la evaluación muestre carencias.
¿Puedo entrenar con correos y documentos internos?
Solo tras revisar finalidad, permisos, minimización, licencia, confidencialidad y riesgo de memorización. RAG puede ser más adecuado si el conocimiento cambia o debe citarse.
¿Una GPU que ejecuta el modelo puede entrenarlo?
No necesariamente con la misma configuración. El entrenamiento añade activaciones, gradientes y optimizador. LoRA y QLoRA reducen memoria, pero debes medir longitud, batch y módulos.
¿DGX Spark es más rápido que una RTX PRO para LoRA?
No por definición. Una GPU discreta suele ser más rápida cuando el entrenamiento cabe en VRAM. Spark aporta capacidad coherente cuando la memoria se convierte en el límite.