Recursos/Entrenamiento de modelos/Preparación de datos

Paso del pipeline

División de validación

Una proporción de las conversaciones se reserva fuera del entrenamiento y se utiliza para observar la pérdida en datos de los que el modelo no aprende. La división se realiza por conversación completa, de modo que ninguna parte de un chat reservado se filtre al entrenamiento — y no es lo mismo que el conjunto de prueba que se retiene para la evaluación.

Capítulo 55 min de lectura3 referencias

Qué es

Una división de validación reserva parte de sus datos antes de que comience el entrenamiento. Esas conversaciones se reservan: el modelo nunca se entrena con ellas. El proveedor las utiliza para calcular la pérdida de validación durante la ejecución del entrenamiento. No son el conjunto de prueba, un segundo grupo independiente de conversaciones que se guarda para la evaluación posterior.

La razón es sencilla. Un modelo con ajuste fino puede memorizar. Si se le hace una pregunta con la que se entrenó, puede reproducir la respuesta de referencia casi palabra por palabra, lo que no le dice nada sobre cómo manejará las preguntas de la próxima semana. Solo los datos que no ha visto pueden mostrar si aprendió el patrón o simplemente los ejemplos.

Cómo funciona

Entrenamiento · 90 % de las conversacionesValidación · 10 %, nunca usado para entrenar
Las conversaciones completas van a un lado o al otro. Dividir por mensaje pondría la primera mitad de un chat en el entrenamiento y su respuesta en la validación, y la puntuación favorecería al modelo.

Las conversaciones se asignan al azar a un lado u otro, como conversaciones completas. Dividir por mensaje sería una forma de fuga de datos: la primera mitad de un chat podría entrenar al modelo mientras su respuesta se encuentra en validación, o la misma respuesta podría aparecer en ambos lados en dos registros contiguos. La puntuación de validación mediría entonces la capacidad de recordar, no la habilidad. La fuga de datos es una trampa bien documentada mucho más allá de los modelos de lenguaje: Kapoor y Narayanan (2022) descubrieron errores de fuga que afectaban a 329 artículos en 17 campos científicos.

Durante el entrenamiento, el proveedor ejecuta periódicamente el modelo en los registros de validación e informa de su pérdida sin actualizar ningún peso. Cuando la pérdida de entrenamiento sigue disminuyendo pero la pérdida de validación aumenta, el modelo ha empezado a sobreajustarse.

La validación no es el conjunto de prueba

Los registros de validación se envían al proveedor con el archivo de entrenamiento y se observan durante toda la ejecución; también se eligen las épocas y las tasas de aprendizaje observándolos. Eso hace que no sean del todo inéditos, por lo que no son una prueba final limpia. Una prueba limpia necesita conversaciones que no toquen ni el entrenamiento ni la validación y que nunca salgan de sus manos: el conjunto de prueba. La evaluación lo utiliza por defecto y solo recurre a las preguntas de validación cuando no hay un conjunto de prueba.

Conjunto¿Visto durante el entrenamiento?Utilizado para
EntrenamientoSí, se aprende de élModificar los pesos
ValidaciónVisto por el proveedor, no se aprende de élLa pérdida de validación; una segunda opinión en la evaluación cuando no hay conjunto de prueba
PruebaNo, nunca se envía al proveedorDeterminar si el modelo realmente mejoró

¿Qué tamaño debería tener?

Es un compromiso. Cada conversación reservada es una de la que el modelo no aprende; cada conversación con la que se entrena es una con la que no se puede probar. La precisión de una puntuación depende del número de ejemplos reservados, no de su proporción, razón por la cual los conjuntos de datos pequeños son el caso difícil. Para una tasa de éxito, la incertidumbre se reduce aproximadamente con la raíz cuadrada del número de preguntas:

cómo el tamaño de la muestra determina la precisión
standard error of a win rate  ≈  √( p × (1 − p) ÷ n )
95% margin                    ≈  1.96 × standard error
at p = 0.5                    ≈  1 ÷ √n

n = 10   →  ± 31 points
n = 50   →  ± 14 points
n = 100  →  ± 10 points
n = 400  →  ±  5 points
Proporción de validaciónTípico 10 % (10–20 %)#

La fracción de conversaciones reservadas para validación. Con miles de conversaciones, incluso un 5 % ofrece una curva de validación estable; con unos pocos cientos, un 15–20 % reduce el ruido de la curva con un coste moderado para el entrenamiento.

Mínimo de conversaciones reservadasTípico 10#

Por debajo de este número, la pérdida de validación sería principalmente ruido, por lo que no se realiza ninguna división de validación y todo lo que queda fuera del conjunto de prueba se destina al entrenamiento.

Ejemplo práctico: tres tamaños de conjuntos de datos al 10 %
  1. 2000 conversaciones: 200 van primero al conjunto de prueba, luego el 10 % del resto (180) a validación, dejando 1620 para el entrenamiento. Una evaluación de las 200 conversaciones de prueba mide una tasa de éxito con un margen de unos ±7 puntos, suficiente para comparar ejecuciones.
  2. 300 conversaciones: 30 conversaciones de prueba y 27 de validación. Una evaluación de 30 conversaciones de prueba tiene un margen de unos ±18 puntos y no puede distinguir un modelo del 55 % de uno del 45 %; solo con más datos se reduce este margen.
  3. 60 conversaciones: 6 van al conjunto de prueba. El 10 % de las 54 restantes es 5, por debajo del mínimo de 10, por lo que no hay curva de validación y las 54 se utilizan para entrenar. La evaluación sigue contando con 6 conversaciones de prueba no vistas: son pocas, así que interprete el resultado como un indicio.
  4. 8 conversaciones: muy pocas para un conjunto de prueba, que requiere un conjunto de datos de al menos 10. No se reserva nada, y una evaluación solo puede recurrir, con una advertencia, a las preguntas con las que se entrenó el modelo.

Errores comunes

  • Dividir por mensaje o por registro, de modo que partes de la misma conversación acaben en ambos lados.
  • Reservar una proporción demasiado pequeña para medir algo y luego buscarle sentido a un resultado de 6 contra 4.
  • Añadir casi duplicados de conversaciones de validación a un conjunto de entrenamiento posterior, lo que las convierte discretamente en datos de entrenamiento.
  • Comparar dos modelos que se evaluaron en diferentes conjuntos reservados como si las puntuaciones estuvieran en la misma escala.
  • Omitir la división en un conjunto de datos real para «usar todos los datos» y perder la única medición honesta que tenía.
  • Tratar los resultados de validación como una prueba final limpia, a pesar de que el proveedor vio esos registros durante todo el entrenamiento.

Referencias y lecturas adicionales

Las fuentes externas se abren en una pestaña nueva.

  1. 01Datasets: Dividing the original datasetGoogle Machine Learning Crash Course · developers.google.comUna introducción clara a los conjuntos de entrenamiento, validación y prueba.
  2. 02Training, validation, and test data setsWikipedia · en.wikipedia.orgDefiniciones y la función de cada conjunto.
  3. 03Leakage and the Reproducibility Crisis in ML-based ScienceKapoor & Narayanan, 2022 · arXiv · arxiv.orgUn estudio sobre cómo la filtración entre los datos de entrenamiento y de prueba infla los resultados reportados.

Convierta semanas de trabajo experto en minutos

Vea cómo Scalata se adapta a su equipo, a sus datos y a sus Controles.

Contactar con ventas