
Limpieza y Curación de Datasets para Fine-Tuning Sin un Equipo de Data Science
Guía paso a paso para limpiar, validar y curar datasets de fine-tuning usando herramientas no-code — cubriendo deduplicación, validación de etiquetas, verificación de formato y análisis de distribución para equipos no técnicos.
La mayoría de los fallos de fine-tuning no ocurren durante el entrenamiento. Ocurren antes del entrenamiento — en el dataset. Un modelo entrenado con datos sucios produce salidas sucias. Un modelo entrenado con datos etiquetados inconsistentemente produce clasificaciones inconsistentes. Un modelo entrenado con datos que no coinciden con las entradas de producción rinde mal en las entradas de producción.
El problema es que la limpieza de datos es tradicionalmente una tarea de data science. Implica escribir scripts de Python para deduplicación, construir análisis estadísticos para verificaciones de distribución y crear pipelines de validación personalizados. Si eres una agencia de IA, un líder de producto o un desarrollador independiente sin formación en ingeniería de datos, esto puede parecer un muro.
No tiene que serlo. El proceso de 6 pasos a continuación usa herramientas no-code, técnicas de hojas de cálculo y validación asistida por LLM para producir datasets de fine-tuning limpios y listos para producción. Hemos visto agencias limpiar datasets de 1,000 ejemplos en 2-4 horas usando este enfoque — sin pandas, sin Python, sin título en data science.
Por Qué la Limpieza de Datos Importa Tanto
Aquí hay tres escenarios que vemos regularmente:
Escenario 1: Una agencia recolecta 2,000 ejemplos de soporte al cliente de su cliente. Hacen fine-tune inmediatamente. El modelo obtiene 78% de precisión en su conjunto de prueba. Pasan dos semanas probando diferentes hiperparámetros, tasas de aprendizaje y épocas de entrenamiento. Nada mueve el número significativamente.
Escenario 2: Una agencia diferente recolecta 800 ejemplos del mismo tipo de cliente. Pasan medio día limpiando los datos. Hacen fine-tune. El modelo obtiene 91% de precisión en un conjunto de prueba comparable.
La diferencia no es el modelo, los hiperparámetros o el enfoque de entrenamiento. Son los datos.
Los datos sucios introducen señales contradictorias durante el entrenamiento. Si el ejemplo #142 dice que la entrada X es categoría A y el ejemplo #891 dice que una entrada casi idéntica es categoría B, el modelo no puede aprender ninguna de las dos de manera confiable. Estas contradicciones son invisibles durante la recolección pero devastadoras durante el entrenamiento.
La regla general: Cada hora dedicada a limpiar datos ahorra 3-5 horas de depuración de rendimiento del modelo después.
El Proceso de Limpieza en 6 Pasos
Paso 1: Validación de Formato (15-30 minutos)
Antes que nada, verifica que cada ejemplo en tu dataset sea estructuralmente correcto. Esto captura los problemas obvios que de otro modo causarían fallos de entrenamiento o corrupción silenciosa de datos.
Qué verificar:
- Cada ejemplo tiene todos los campos requeridos (entrada, salida y cualquier campo de metadata que tu pipeline de entrenamiento espera)
- Sin valores vacíos o nulos en campos requeridos
- Los valores de salida coinciden con los tipos esperados (ej., las etiquetas de categoría son de tu conjunto predefinido, no variaciones de texto libre)
- Los campos de texto no contienen artefactos de codificación, etiquetas HTML o caracteres invisibles
Cómo hacerlo sin código:
Abre tu dataset en una hoja de cálculo (Google Sheets o Excel). Usa estas técnicas:
- Valores faltantes: Ordena cada columna. Las celdas vacías se agruparán arriba o abajo. Márcalas e investiga.
- Etiquetas inválidas: Crea una lista de validación desplegable para tu columna de categoría. Cualquier celda que no coincida con una categoría válida mostrará un error de validación. En Google Sheets: Datos → Validación de datos → Lista de elementos.
- Verificaciones de longitud: Agrega una columna con
=LEN(A2)para verificar longitudes de entrada y salida. Ordena por longitud. Entradas inusualmente cortas (menos de 10 caracteres) son a menudo errores de ingreso de datos. Salidas inusualmente largas pueden contener artefactos de copiar y pegar. - Problemas de caracteres: Usa
=CLEAN(A2)para eliminar caracteres no imprimibles. SiA2 <> CLEAN(A2), la celda tiene caracteres invisibles que pueden corromper el entrenamiento.
Con Ertas Vault: Sube tu dataset y Vault ejecuta la validación de formato automáticamente. Marca campos faltantes, valores de etiqueta inválidos, problemas de codificación y anomalías de longitud. Revisas y corriges los elementos marcados en vez de buscarlos.
Resultado típico: 3-8% de los ejemplos tienen problemas de formato. Corregirlos es generalmente directo — completar campos faltantes, corregir errores tipográficos en etiquetas de categoría, eliminar artefactos de codificación.
Paso 2: Deduplicación (15-30 minutos)
Los ejemplos duplicados y casi-duplicados desperdician capacidad de entrenamiento y pueden causar que el modelo memorice ejemplos específicos en lugar de aprender patrones generales.
Los duplicados exactos son fáciles: ordena tu hoja de cálculo por la columna de entrada y busca filas idénticas. En Google Sheets, usa formato condicional para resaltar duplicados: Formato → Formato condicional → Fórmula personalizada: =COUNTIF(A:A, A2)>1.
Los casi-duplicados son más difíciles pero más importantes. Estas son entradas formuladas ligeramente diferente pero que transmiten la misma información. Por ejemplo:
- "¿Cómo cancelo mi suscripción?"
- "¿Cómo puedo cancelar mi suscripción?"
- "Quiero cancelar mi suscripción"
Estos tres ejemplos enseñan al modelo esencialmente lo mismo. Tener los tres en tu dataset no es dañino en pequeñas cantidades, pero si el 15% de tu dataset son casi-duplicados, tu tamaño efectivo de dataset es 15% menor de lo que piensas.
Sin código: Ordena por texto de entrada y escanea visualmente. La mayoría de los casi-duplicados se agruparán alfabéticamente. Marca filas donde la entrada es muy similar a la fila de arriba o abajo.
Con asistencia de LLM: Pega lotes de 50-100 entradas en Claude o GPT-4o con este prompt:
Review these inputs and identify groups that are near-duplicates
(same meaning, different phrasing). List each group with the
row numbers. Only flag true semantic duplicates, not inputs
that happen to discuss the same topic.
[paste inputs with row numbers]
Con Ertas Vault: Vault calcula la similitud de embeddings entre todos los pares de entrada y marca automáticamente los pares por encima de un umbral de similitud configurable (predeterminado: 0.92 similitud coseno). Revisas los pares marcados y decides cuál mantener.
Resultado típico: 5-15% de los ejemplos son casi-duplicados en datasets recolectados manualmente. En datasets sintéticos, esto puede ser 15-25%. Elimina todos menos un ejemplo de cada grupo de duplicados — manteniendo la versión de mayor calidad.
Paso 3: Verificación de Consistencia de Etiquetas (1-2 horas)
Este es el paso de mayor impacto. Las etiquetas inconsistentes son la fuente número uno de degradación del entrenamiento, y son invisibles a menos que las busques.
El problema: Diferentes anotadores (o el mismo anotador en diferentes días) etiquetan entradas similares de manera diferente. Los límites entre categorías se interpretan inconsistentemente. Los casos extremos se asignan a diferentes categorías dependiendo de quién los etiquetó y cuándo.
Cómo verificar sin código:
Método 1: Revisión por categoría. Filtra tu hoja de cálculo por cada categoría. Lee 20-30 ejemplos de cada categoría. Pregúntate: "¿Todos estos claramente pertenecen a esta categoría?" Marca cualquiera que parezca limítrofe o mal colocado.
Método 2: Análisis de pares de confusión. Para cada par de categorías que podrían confundirse (ej., "error_facturación" vs "solicitud_reembolso"), filtra por ambas categorías y compara los ejemplos. ¿Los límites entre ellas son claros y consistentes?
Método 3: Revisión asistida por LLM. Este es el enfoque más rápido. Pega 50-100 ejemplos (entrada + etiqueta asignada) en un modelo de frontera:
Review these labeled examples for consistency. For each example,
confirm whether the assigned label is correct or suggest a
correction. Pay special attention to:
- Examples that could belong to multiple categories
- Labels that seem inconsistent with similar examples
- Edge cases where the labeling guideline may be ambiguous
Format: Row [number]: [CORRECT / INCORRECT → suggested label] — [brief reason]
[paste examples]
Ejecuta esto en lotes a través de todo tu dataset. Cualquier ejemplo que el LLM marque como incorrecto recibe una revisión humana.
Resultado típico: 5-12% de los ejemplos tienen inconsistencias de etiquetado. Corregirlas típicamente mejora la precisión del modelo en 3-8% — la actividad individual de mayor ROI en todo el pipeline de fine-tuning.
Paso 4: Análisis de Distribución (30-45 minutos)
La distribución de tus datos de entrenamiento debería aproximar la distribución de tus datos de producción. Si no lo hace, tu modelo estará mal calibrado — demasiado confiado en categorías raras y con bajo rendimiento en las comunes.
Qué verificar:
- Distribución de categorías. Cuenta ejemplos por categoría. Calcula el porcentaje de cada una. Compara con tu distribución de producción (o tu mejor estimación de ella).
- Distribución de longitud de entrada. ¿Tus entradas de entrenamiento son representativas de lo que el modelo verá? Si las entradas de producción van de 20 a 800 palabras pero tus datos de entrenamiento son todos de 100-200 palabras, el modelo tendrá problemas con entradas cortas y largas.
- Distribución temporal. Si tus datos fueron recolectados a lo largo del tiempo, verifica si la distribución cambió. Los datos de hace 6 meses pueden reflejar patrones diferentes al tráfico de producción actual.
Cómo hacerlo sin código:
En una hoja de cálculo:
- Conteo de categorías: Usa
=COUNTIF(B:B, "nombre_categoría")para cada categoría. Crea un gráfico de barras simple. - Distribución de longitud: Agrega una columna de conteo de palabras:
=LEN(TRIM(A2))-LEN(SUBSTITUTE(A2," ",""))+1. Crea un histograma (Insertar → Gráfico → Histograma). - Comparar con producción: Si tienes datos de producción, crea gráficos lado a lado. Visualmente, las formas deberían ser similares. Si una categoría es 5% de producción pero 25% de los datos de entrenamiento, tienes un desajuste de distribución.
Qué hacer con los desajustes:
- Categorías sobre-representadas: Elimina ejemplos excedentes, priorizando la eliminación de ejemplos de menor calidad o duplicados primero.
- Categorías sub-representadas: Genera más ejemplos para esa categoría (datos sintéticos funcionan bien aquí) o recolecta más ejemplos reales.
- Desajustes de longitud de entrada: Genera explícitamente ejemplos en longitudes sub-representadas.
Resultado típico: La mayoría de los datasets recolectados manualmente tienen 1-3 categorías que están significativamente sobre o sub-representadas. El rebalanceo típicamente mejora el rendimiento en las categorías sub-representadas en 10-20% con impacto mínimo en las sobre-representadas.
Paso 5: Eliminación de Outliers (30-45 minutos)
Los outliers en datos de entrenamiento son ejemplos dramáticamente diferentes del resto del dataset. No son necesariamente incorrectos — podrían ser casos extremos legítimos — pero pueden influir desproporcionadamente en el entrenamiento, especialmente en datasets pequeños.
Tipos de outliers a buscar:
- Entradas extremadamente largas o cortas. Si el 98% de las entradas tienen 50-300 palabras y dos ejemplos tienen 2,000 palabras, esos outliers pueden dominar las actualizaciones de gradiente durante el entrenamiento.
- Ejemplos fuera de tema. Entradas que de alguna manera terminaron en el dataset pero no pertenecen al dominio de la tarea.
- Ejemplos ambiguos. Entradas donde incluso un experto de dominio no puede asignar con confianza la etiqueta correcta. Estos son ruido de entrenamiento, no casos extremos útiles.
Cómo encontrarlos sin código:
- Ordena por longitud de entrada. Verifica el 2-3% superior e inferior en busca de anomalías.
- Ordena por longitud de salida. Misma verificación.
- Para cada categoría, ordena alfabéticamente y escanea los primeros y últimos ejemplos — los outliers en contenido a menudo se ordenan en los extremos.
Framework de decisión: Para cada outlier, pregunta: "¿Mi modelo encontrará entradas como esta en producción?" Si sí, consérvalo (y considera agregar ejemplos similares para reducir su aislamiento). Si no, elimínalo.
Resultado típico: 1-3% de los ejemplos son outliers que vale la pena eliminar. El impacto es pequeño individualmente pero se acumula con otros pasos de limpieza.
Paso 6: Revisión Humana Final (1-2 horas)
El último paso es una revisión humana dirigida de todo lo marcado en los pasos 1-5, más una muestra aleatoria final.
Revisa los elementos marcados: Revisa cada ejemplo que marcaste en los pasos anteriores. Toma una decisión final: corregir, mantener o eliminar.
Verificación de muestra aleatoria: Extrae 30-50 ejemplos aleatorios del dataset limpio. Lee cada uno. Si encuentras más de 1-2 problemas en 50 ejemplos (más del 4% de tasa de error), se necesita otra ronda de limpieza. Si 0-1 problemas, tu dataset está listo.
Documenta tus decisiones. Mantén un registro breve de las reglas de etiquetado que estableciste, los casos extremos que resolviste y las categorías que clarificaste. Esta documentación es invaluable cuando necesites expandir el dataset después — asegura consistencia entre el dataset original y las nuevas adiciones.
Problemas Comunes de Datos por Tipo de Tarea
Tareas de Clasificación
Problema más común: Ejemplos mal etiquetados, especialmente en los límites de categorías. Dos categorías que se superponen conceptualmente (ej., "queja" vs. "retroalimentación") tendrán etiquetado inconsistente. Solución: Escribe criterios de decisión explícitos para cada límite de categoría. Aplica los criterios a todos los ejemplos limítrofes.
Tareas de Generación de Texto
Problema más común: Estilo de salida inconsistente. Algunos ejemplos usan tono formal, otros casual. Algunos incluyen encabezados, otros no. El modelo aprende esta inconsistencia. Solución: Define una guía de estilo para las salidas. Reescribe los ejemplos que se desvíen. Incluso pequeñas diferencias de formato (punto vs. sin punto al final de las salidas) importan.
Tareas de Extracción
Problema más común: Campos faltantes. Algunos ejemplos extraen todos los campos objetivo, otros omiten los opcionales. El modelo aprende que los campos faltantes son aceptables.
Solución: Decide qué campos son requeridos vs. opcionales. Para campos requeridos, cada ejemplo debe incluirlos. Para campos opcionales, usa una representación consistente para "no encontrado" (ej., null vs. string vacío — elige uno).
Tareas de Conversación
Problema más común: Estructura de turnos inconsistente. Algunas conversaciones comienzan con un saludo, otras van directo a la tarea. Algunas incluyen mensajes del sistema, otras no. Solución: Estandariza la estructura de la conversación. Cada conversación debería seguir la misma plantilla para orden de turnos, etiquetas de rol y formato de mensaje del sistema.
Estimaciones de Tiempo
Esto es lo que el proceso completo de 6 pasos realmente toma, basado en nuestra experiencia con equipos de agencias:
| Tamaño del Dataset | Limpieza Manual | Con Vault + Asistencia LLM | Mejora de Calidad |
|---|---|---|---|
| 250 ejemplos | 1.5-2.5 horas | 30-45 minutos | +5-10% precisión |
| 500 ejemplos | 2-4 horas | 45-90 minutos | +5-12% precisión |
| 1,000 ejemplos | 3-6 horas | 1-2 horas | +5-15% precisión |
| 2,500 ejemplos | 6-12 horas | 2-4 horas | +5-15% precisión |
| 5,000 ejemplos | 12-20 horas | 4-8 horas | +5-15% precisión |
La columna de mejora de calidad muestra la ganancia típica en un conjunto de prueba reservado comparado con entrenar en el dataset sin limpiar. Esta es rendimiento adicional que obtienes solo de la limpieza — sin cambiar el modelo, hiperparámetros o enfoque de entrenamiento.
Cuándo Limpiar vs. Cuándo Generar Más
Limpia primero si:
- Tu auditoría aleatoria encontró más del 5% de problemas
- No has hecho ninguna pasada de limpieza aún
- Tu curva de aprendizaje es plana (más datos no están ayudando)
- Tienes desequilibrios de categoría mayores a 2x
Genera más datos si:
- Tus datos ya están limpios (más del 96% de precisión de etiquetas)
- Tu curva de aprendizaje aún está subiendo en tu tamaño actual de dataset
- Categorías específicas están sub-representadas y no puedes encontrar más ejemplos reales
- Necesitas cobertura de patrones de entrada no presentes en tus datos existentes
En la mayoría de los casos, el orden correcto es: limpiar primero, luego evaluar, luego generar más si es necesario. Los equipos que omiten la limpieza y van directo a la recolección de datos terminan dedicando 2-3x más tiempo en total porque están recolectando datos que agravan problemas de calidad existentes.
La Conclusión
No necesitas un equipo de data science para producir datos de fine-tuning limpios. Necesitas un proceso sistemático, 2-6 horas de esfuerzo enfocado y la disposición de leer tus propios ejemplos de entrenamiento cuidadosamente.
El proceso de 6 pasos anterior — validación de formato, deduplicación, consistencia de etiquetas, análisis de distribución, eliminación de outliers, revisión final — captura los problemas que causan el 80% de los problemas de calidad de fine-tuning. Funciona con hojas de cálculo. Funciona con revisión asistida por LLM. Funciona mejor con las herramientas de validación integradas de Ertas Vault.
El modelo solo puede ser tan bueno como los datos de los que aprende. Invierte el tiempo desde el principio.
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.
Lectura Relacionada
- Data Quality > Data Quantity: Why 250 Good Examples Beat 10,000 Bad Ones — la evidencia de por qué la calidad importa más que el volumen para fine-tuning
- Fine-Tune AI Without Code: The No-Code Guide — guía completa de fine-tuning para equipos no técnicos
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

How to Evaluate Your Fine-Tuned Model: A Non-Technical Guide
Practical framework for evaluating fine-tuned model quality without ML expertise — covering accuracy checks, output consistency, edge case testing, and production readiness for agencies and product teams.

From Prompt Engineering to Fine-Tuning: The Migration Playbook
A practical playbook for teams migrating from prompt engineering to fine-tuning — when to make the switch, how to convert prompts into training data, and the step-by-step migration process.

Model Distillation Explained: Run Sonnet-Quality Output on a $0 Inference Bill
A complete guide to model distillation — how to transfer capabilities from large frontier models like Claude Sonnet into small local models, achieving comparable quality at zero ongoing inference cost.