Definir qué representa cada ejemplo
Empieza con una frase de decisión: reconocer la categoría de un nuevo ticket, extraer tres campos de un documento o responder a una pregunta con sus archivos adjuntos. Describe la entrada disponible en el momento de la predicción, la salida esperada y los casos fuera de alcance. Una información añadida después de la resolución del ticket no debe aparecer en una entrada que se supone que representa su llegada.
Distingue después fila y unidad independiente. Cinco mensajes de una conversación comparten un contexto; diez páginas de un expediente comparten su origen. Si tu objetivo se refiere a nuevos expedientes, mantén cada expediente en una sola partición. Una separación por usuario, documento, equipo o periodo responde a preguntas diferentes: elige la que se parezca al uso futuro y luego deja constancia de su justificación en el manifiesto.
Fuentes técnicas: scikit-learn 1.9 — validación con grupos y dependencias temporales
Asignar un rol a cada conjunto
El conjunto de aprendizaje sirve para los ajustes del modelo. El conjunto de validación guía las decisiones de desarrollo: prompt, umbral, hiperparámetros o elección de una variante. El test final responde a una pregunta ya fijada. Consultarlo para retener el mejor ajuste transforma progresivamente ese test en herramienta de desarrollo, aunque no se calcule ningún gradiente sobre él.
Separa también los datos utilizados para aprender una transformación. Una normalización, una selección de variables o una imputación ajustada sobre todo el corpus puede transmitir información al modelo. Aprende estas transformaciones sobre la partición autorizada y luego aplica la transformación conservada a los demás conjuntos. Un pipeline facilita este control; por sí solo no corrige grupos mal separados.
| Conjunto | Uso autorizado | Decisión que hay que evitar |
|---|---|---|
| Aprendizaje | Ajustar los parámetros y las transformaciones aprendidas | Importar en él las respuestas del test final |
| Validación | Elegir ajustes, prompts y umbrales | Presentar la mejor puntuación exploratoria como resultado final independiente |
| Test final | Evaluar la configuración retenida según la regla fijada | Modificar los ajustes tras la lectura y luego reutilizar la misma puntuación como confirmación |
| Calibración eventual | Preparar un método de cuantificación que la necesite | Usar el test final para fabricar la variante evaluada |
Fuentes técnicas: scikit-learn 1.9 — fuga de datos y transformaciones
Tratar los duplicados sin borrar los casos difíciles
Conserva el corpus bruto y luego construye un inventario de trabajo con identificador, origen y grupo. Una huella del contenido detecta las copias exactas según la representación elegida. Documenta esa representación: quitar toda la puntuación o poner un texto en minúsculas puede fusionar entradas cuya diferencia importa para la tarea. Mantén la correspondencia entre la copia descartada y el ejemplar conservado.
Los cuasi duplicados exigen una revisión adicional: export modificado, respuesta reformulada, fragmento común o documento reeditado. Una similitud alta es una señal que hay que examinar, no una prueba de que dos anotaciones sean intercambiables. Agrupa las variantes relacionadas antes de repartir los datos. Si dos copias llevan referencias contradictorias, abre una cuestión de anotación; no elijas automáticamente la que el modelo predice mejor.
Ejemplo desarrollado: 1 200 líneas no son 1 200 observaciones independientes
Este ejemplo es íntegramente ilustrativo: no se ha medido ningún corpus ni modelo. Supongamos 240 conversaciones, cada una exportada en cinco líneas. Una línea es una copia exacta en cada conversación; las otras cuatro son distintas. Quitar esas 240 copias deja 960 ejemplos, todavía organizados en 240 grupos. La siguiente elección pedagógica reserva el 70 % de los grupos para el aprendizaje, el 15 % para la validación y el 15 % para el test.
Se obtienen 168, 36 y 36 conversaciones, es decir, 672, 144 y 144 ejemplos. La igualdad de proporciones en líneas y en grupos viene aquí de los cuatro ejemplos por conversación. En un corpus real de tamaños variables, no sería automática. Estas proporciones no son una regla universal: deben dejar suficientes grupos y casos importantes en cada conjunto.
| Partición | Conversaciones enteras | Ejemplos | Rol |
|---|---|---|---|
| Aprendizaje | 168 | 672 | Ajustar |
| Validación | 36 | 144 | Elegir |
| Test final | 36 | 144 | Confirmar en un conjunto apartado |
Fuentes técnicas: scikit-learn 1.9 — GroupShuffleSplit cuenta los grupos
Verificar clases, longitudes y cronología
Tras la partición, cuenta las clases y los grupos que las portan. Una clase presente en muchas líneas pero en una sola conversación no ofrece muchos casos independientes. Examina también longitudes, idiomas realmente cubiertos, documentos incompletos y categorías importantes para la decisión. Una media tranquilizadora puede ocultar una partición sin ningún ejemplo de un caso crítico.
Una estratificación con grupos busca preservar las proporciones de clases sin dispersar los grupos. No garantiza un equilibrio perfecto cuando los grupos son pocos o muy desiguales. Si la tarea consiste en prever observaciones futuras, una separación cronológica puede ser más pertinente que un mezclado aleatorio. Verifica también que las variables estuvieran disponibles en la fecha de la predicción.
Fuentes técnicas: scikit-learn 1.9 — StratifiedGroupKFold y sus límites · scikit-learn 1.9 — validación de datos temporales
Hacer la referencia lo bastante precisa para juzgar una salida
Escribe una consigna de anotación con ejemplos y casos límite. Para una extracción, precisa el significado de un campo ausente, el formato de las fechas, la divisa y las equivalencias aceptadas. Para una clasificación, describe las fronteras entre categorías. Una respuesta distinta de la referencia no siempre es un error del modelo: la referencia puede ser ambigua o incorrecta.
Haz revisar una selección variada, en particular los desacuerdos y los casos importantes, y luego consigna el arbitraje. Conserva las correcciones en una nueva versión del conjunto. Si una corrección cambia el resultado de una comparación, recalcula todas las variantes afectadas sobre la misma referencia; no corrijas solo la línea desfavorable a tu modelo preferido.
Producir el paquete de evaluación antes de la campaña de GPU
El entregable de esta preparación es un conjunto identificable, acompañado de sus reglas. Permite reproducir la selección de los datos sin depender de un recuerdo de notebook. Preparar este paquete antes del alquiler evita consumir el periodo de cálculo resolviendo diferencias de archivos o de criterios.
- Fija los identificadores, los grupos, las particiones y su justificación; conserva el script o la lista que los produce.
- Verifica las intersecciones de identificadores, grupos y huellas entre particiones. Toda intersección inesperada debe explicarse o corregirse.
- Exporta los recuentos por partición, clase y subgrupo útil, así como la lista de exclusiones y su motivo.
- Fija la referencia, las reglas de normalización, la métrica principal y los umbrales antes de la comparación.
- Conserva la revisión, las huellas, los derechos de uso y la ubicación de los datos. Una huella asegura una identificación, no un anonimato.
- Reserva el acceso al test final hasta la decisión prevista; mantén un registro de las consultas y de los cambios de protocolo.
Saber qué demuestra el control
La preparación es aceptable cuando los recuentos cuadran con el inventario, los solapamientos están controlados y cada salida puede juzgarse según una regla explícita. No prueba que el modelo vaya a funcionar, ni que todos los usos futuros estén representados. Un conjunto pequeño puede describir un problema preciso y seguir siendo insuficiente para concluir sobre una clase rara.
Si utilizas los errores del test final para mejorar el sistema, conserva ese test como histórico y prepara una nueva confirmación independiente. Para un modelo preentrenado cuyos datos de origen se desconocen, tu partición no puede certificar la ausencia de exposición previa. Documenta esta limitación en lugar de calificar el conjunto como totalmente virgen.
Preguntas prácticas
¿Hay que reservar siempre el 20 % de los datos para el test?
No. La parte útil depende del número de unidades independientes y de los casos que haya que cubrir. Verifica los grupos, las categorías importantes y la precisión de la conclusión esperada; un porcentaje por sí solo no garantiza un test informativo.
¿Basta con un identificador distinto para excluir los duplicados?
No. Dos exportaciones pueden tener identificadores diferentes y contener el mismo texto o variantes del mismo caso. Controla el contenido y la procedencia, y luego mantén los ejemplos vinculados en la partición correspondiente a tu regla de agrupación.
¿Puedo reutilizar mi test después de haber corregido el modelo gracias a sus errores?
Puedes conservarlo para seguir el histórico, pero ha participado en el desarrollo. Para confirmar una mejora sobre datos reservados, utiliza un nuevo conjunto independiente y anuncia con claridad el papel de cada uno.