GPU para la investigación ML · Pago cripto sin KYC
IteraGPU
Método / Datos y evaluación

Mantén una evaluación que todavía pueda sorprenderte.

Un conjunto de evaluación útil representa el trabajo que el modelo deberá realizar sin haber servido para elegir sus ajustes. Define la unidad evaluada, agrupa los ejemplos relacionados, busca los duplicados y reserva un conjunto final aparte. Podrás entonces interpretar una diferencia de calidad. Una partición aleatoria de las filas no garantiza esa independencia, sobre todo cuando varias filas provienen del mismo documento o de la misma conversación.

01 /

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

02 /

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.

Roles que hay que nombrar antes de producir las primeras puntuaciones
ConjuntoUso autorizadoDecisión que hay que evitar
AprendizajeAjustar los parámetros y las transformaciones aprendidasImportar en él las respuestas del test final
ValidaciónElegir ajustes, prompts y umbralesPresentar la mejor puntuación exploratoria como resultado final independiente
Test finalEvaluar la configuración retenida según la regla fijadaModificar los ajustes tras la lectura y luego reutilizar la misma puntuación como confirmación
Calibración eventualPreparar un método de cuantificación que la necesiteUsar el test final para fabricar la variante evaluada

Fuentes técnicas: scikit-learn 1.9 — fuga de datos y transformaciones

03 /

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.

04 /

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.

1 200 − 240 = 960 ejemplos; 168 + 36 + 36 = 240 grupos; 672 + 144 + 144 = 960 ejemplos.
Partición aritmética ilustrativa, tras tratar las copias
ParticiónConversaciones enterasEjemplosRol
Aprendizaje168672Ajustar
Validación36144Elegir
Test final36144Confirmar en un conjunto apartado

Fuentes técnicas: scikit-learn 1.9 — GroupShuffleSplit cuenta los grupos

05 /

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

06 /

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.

07 /

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.
08 /

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.