Back to blog
    Ajusta un modelo con los datos de tu app: guía para desarrolladores independientes
    indie-devfine-tuningtutorialbeginnersegment:vibecoder

    Ajusta un modelo con los datos de tu app: guía para desarrolladores independientes

    Una guía paso a paso para desarrolladores sin experiencia en ML que quieren ajustar un modelo de IA con los datos reales de uso de su app — desde recolectar ejemplos de entrenamiento hasta desplegar el modelo.

    EErtas Team·

    Construiste una app. Usa una API de IA — quizás OpenAI, quizás Anthropic — y funciona. Pero los costos de API están subiendo, la latencia es impredecible, y estás empezando a darte cuenta de que el 90% de lo que el modelo hace para tu app es la misma tarea estrecha repetida miles de veces. No necesitas un generalista genio. Necesitas un especialista.

    Ajustar un modelo más pequeño con los datos reales de tu app es cómo obtienes ese especialista. Y a pesar de lo que el discurso de ML en Twitter pueda sugerir, no necesitas un doctorado ni un clúster de H100s para hacerlo. Esta guía recorre todo el proceso, paso a paso, para desarrolladores que nunca han tocado el entrenamiento de modelos.

    Por qué importa ajustar con TUS datos

    Los modelos frontera genéricos son generalistas notables. Pueden escribir poesía, depurar código, resumir documentos legales y generar SQL — todo en la misma conversación. Pero esa generalidad tiene un costo: no están optimizados para ninguna tarea individual.

    Tu app probablemente necesita que el modelo haga una cosa bien. Quizás clasifica tickets de soporte. Quizás extrae datos estructurados de facturas. Quizás genera descripciones de productos en un tono específico. Para tareas como estas, un modelo de 3B parámetros ajustado con tus datos superará consistentemente a un modelo general de 70B — a una fracción del costo y la latencia.

    Fine-tuning no se trata de hacer un modelo más inteligente. Se trata de hacerlo enfocado.

    Paso 1: Cómo lucen los datos de entrenamiento

    Los datos de entrenamiento para fine-tuning son simplemente una colección de pares entrada-salida que demuestran la tarea que quieres que el modelo realice. Si tu app envía un prompt a una API y recibe una respuesta, ya tienes la materia prima.

    El formato estándar es JSONL — un objeto JSON por línea:

    {"input": "Classify this ticket: My order hasn't arrived in 2 weeks", "output": "shipping_delay"}
    {"input": "Classify this ticket: The app crashes when I upload photos", "output": "bug_report"}
    {"input": "Classify this ticket: Can I change my subscription plan?", "output": "account_inquiry"}
    

    Los detalles del formato dependen de tus herramientas, pero el concepto es universal: muéstrale al modelo qué entra y qué debería salir.

    Empieza registrando tus llamadas a la API. Cada solicitud que tu app envía a la API de IA y cada respuesta que recibe es un ejemplo potencial de entrenamiento. Agrega una capa de logging si aún no tienes una, y déjala acumular durante unas semanas.

    Paso 2: Cuántos datos necesitas

    La pregunta más común — y la respuesta es menos de lo que piensas.

    Para tareas estrechas y bien definidas (clasificación, extracción, reformateo), 1,000 a 3,000 ejemplos de alta calidad típicamente es suficiente para ver mejoras significativas sobre el modelo base. Algunas tareas convergen con tan pocos como 500 ejemplos.

    La calidad importa mucho más que la cantidad. Mil ejemplos cuidadosamente curados superarán a diez mil ruidosos. Enfócate en:

    • Diversidad: Cubre el rango completo de entradas que tu app maneja, incluyendo casos extremos
    • Corrección: Cada salida en tu conjunto de entrenamiento debería ser exactamente lo que quieres que el modelo produzca
    • Consistencia: Entradas similares deberían tener salidas con formato consistente

    Si tienes 50,000 logs de API pero la mitad contiene errores o formato inconsistente, filtra despiadadamente. Un dataset limpio de 2,000 ejemplos supera a uno desordenado de 20,000.

    Paso 3: Elegir un modelo base

    Para fine-tuning específico de apps, los modelos más pequeños son casi siempre la elección correcta. Aquí está el razonamiento:

    • 3B parámetros: Inferencia rápida, corre en hardware de consumo, excelente para tareas de clasificación y extracción
    • 7B parámetros: El punto óptimo para la mayoría de las aplicaciones, maneja bien tareas de generación, sigue corriendo en una sola GPU
    • 13B+ parámetros: Solo necesario para tareas complejas de generación donde la calidad de salida es primordial

    Empieza con el modelo más pequeño que pueda plausiblemente manejar tu tarea. Ajustar un modelo de 3B toma minutos. Ajustar uno de 13B toma horas. Si el modelo de 3B te lleva al 90% del camino, despliégalo y sigue adelante.

    Para selección de modelo base, mira los leaderboards de Hugging Face filtrados por tamaño. Modelos como Llama 3, Mistral, Phi y Qwen todos tienen variantes pequeñas fuertes que se ajustan bien.

    Paso 4: El proceso de fine-tuning

    No necesitas entender las matemáticas detrás del fine-tuning para usarlo efectivamente. Esto es lo que importa a nivel práctico:

    LoRA (Low-Rank Adaptation) es la técnica que usarás. En lugar de modificar todos los miles de millones de parámetros en un modelo, LoRA agrega pequeñas matrices entrenables a capas específicas. Esto significa:

    • El entrenamiento es rápido — minutos a horas en lugar de días
    • Los requisitos de memoria son bajos — un modelo de 7B puede ajustarse en una sola GPU de consumo con 16GB de VRAM
    • La salida es un archivo de adaptador pequeño (50-150MB) en lugar de una copia completa del modelo

    El ciclo de entrenamiento en sí es directo: el modelo ve tus pares entrada-salida, ajusta los pesos LoRA para predecir mejor las salidas esperadas, y repite por unas pasadas (épocas) sobre tu dataset. Dos a cuatro épocas es típico para la mayoría de las tareas.

    Paso 5: Evaluar tu modelo

    Antes de desplegar, necesitas saber si el modelo ajustado realmente funciona mejor que tu configuración actual. Reserva el 10-20% de tus datos como conjunto de prueba — ejemplos que el modelo nunca vio durante el entrenamiento.

    Ejecuta tanto tu solución actual basada en API como el modelo ajustado en el conjunto de prueba. Compara:

    • Precisión: ¿El modelo ajustado produce salidas correctas con la misma frecuencia o más?
    • Cumplimiento de formato: ¿Sigue tu estructura de salida esperada consistentemente?
    • Casos extremos: ¿Cómo maneja las entradas inusuales que fallan en el modelo genérico?

    Problemas comunes de calidad en esta etapa:

    • Sobreajuste: El modelo memoriza ejemplos de entrenamiento en lugar de aprender el patrón. Corrige agregando datos más diversos o reduciendo épocas de entrenamiento.
    • Deriva de formato: El modelo produce respuestas correctas en formatos inconsistentes. Corrige asegurando que tus datos de entrenamiento tengan formato perfectamente consistente.
    • Alucinación en entradas desconocidas: El modelo produce con confianza salidas incorrectas para tipos de entrada no bien representados en el entrenamiento. Corrige expandiendo tus datos de entrenamiento para cubrir esos casos.

    Paso 6: Desplegar tu modelo

    Una vez que tu modelo pasa la evaluación, el despliegue es la parte fácil.

    Exporta a formato GGUF. GGUF es el formato estándar para ejecutar modelos localmente con herramientas como Ollama y llama.cpp. Tu adaptador ajustado se fusiona con el modelo base en un solo archivo portable.

    Ejecuta con Ollama. Instala Ollama, carga tu archivo GGUF, y tienes un endpoint de API local que es un reemplazo directo de la API en la nube que tu app usa actualmente. Cambia la URL del endpoint en la configuración de tu app, y estás en producción.

    Lo que ganas: Cero costos por token, latencia predecible, privacidad total de datos, y sin límites de tasa. Para un desarrollador independiente ejecutando un producto SaaS, cambiar de llamadas API a un modelo ajustado autoalojado puede reducir los costos de IA en un 95% o más.

    Errores comunes a evitar

    Muy poca diversidad de datos. Si tus datos de entrenamiento solo cubren entradas del camino feliz, el modelo fallará en cualquier cosa inusual. Incluye deliberadamente casos extremos y escenarios de error.

    Tamaño de modelo base incorrecto. Empezar con un modelo de 70B porque "más grande es mejor" desperdicia tiempo y dinero. Empieza pequeño, evalúa, y solo escala si el modelo más pequeño genuinamente no puede manejar la tarea.

    Saltarse la evaluación. Desplegar sin un conjunto de prueba adecuado es volar a ciegas. No sabrás si tu modelo ajustado es mejor hasta que lo midas contra una línea base.

    Ship AI that runs on your users' devices.

    Ertas early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.

    Cómo Ertas hace esto accesible

    Ertas está construido para desarrolladores que quieren los beneficios del fine-tuning sin la carga de infraestructura de ML. Sube tus datos de entrenamiento, selecciona un modelo base, y lanza una corrida de entrenamiento — sin scripts de Python, sin depuración de CUDA, sin archivos de configuración YAML.

    La plataforma maneja validación de datos, orquestación de entrenamiento, métricas de evaluación, y exportación GGUF. Pasas de logs de API a un modelo desplegable sin salir del navegador.

    Para desarrolladores independientes y equipos pequeños, esta es la diferencia entre "debería ajustar algún día" y realmente enviar un modelo ajustado esta semana.

    Lectura adicional

    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.

    Keep reading