Determina la cantidad de pasos para cada ejecución de entrenamiento

Existen dos tipos de cargas de trabajo de entrenamiento:

  • vinculado al procesamiento
  • No está limitada por la capacidad de procesamiento

El entrenamiento vinculado a la capacidad de procesamiento está limitado por el tiempo que puedes dedicar al entrenamiento, no por la cantidad de datos de entrenamiento que tienes ni por ningún otro factor. En otras palabras, el tiempo de entrenamiento "óptimo" siempre es "todo el tiempo que puedas dedicarle". Si de alguna manera puedes entrenar durante más tiempo o de manera más eficiente, la pérdida del entrenamiento debería disminuir. (Con un ajuste adecuado, la pérdida de validación también debería disminuir).

Acelerar el entrenamiento vinculado a la capacidad de procesamiento equivale a mejorar el entrenamiento. Dicho esto, el hecho de que una carga de trabajo esté limitada por la capacidad de procesamiento no significa que entrenar durante más tiempo o más rápido sea la única forma de mejorar los resultados.

Cuando el entrenamiento no está limitado por la capacidad de procesamiento, puedes entrenar el modelo durante el tiempo que desees. Sin embargo, entrenar un modelo durante más tiempo podría no ser de gran ayuda o incluso podría causar un sobreajuste. Cuando el entrenamiento no está limitado por la capacidad de procesamiento:

  • Puedes entrenar el modelo hasta obtener una pérdida de entrenamiento muy baja, hasta el punto en que el entrenamiento adicional podría reducir ligeramente la pérdida de entrenamiento, pero no reduce de manera significativa la pérdida de validación.
  • Puedes ajustar los parámetros con mayor facilidad, en especial cuando ajustas los programas de decaimiento de la tasa de aprendizaje, ya que tienen una interacción particularmente fuerte con el presupuesto de entrenamiento. Por el contrario, obtener una pérdida de entrenamiento baja en el entrenamiento vinculado a la capacidad de procesamiento podría requerir un programa de decaimiento de la tasa de aprendizaje ajustado a la perfección.

Independientemente de si una carga de trabajo determinada está vinculada al procesamiento o no, los métodos que aumentan la varianza de los gradientes (en todos los lotes) suelen ralentizar el progreso del entrenamiento y, por lo tanto, pueden aumentar la cantidad de pasos de entrenamiento necesarios para alcanzar una pérdida de validación particular. Cualquiera de los siguientes factores puede causar una varianza alta del gradiente:

  • Usar un tamaño de lote más pequeño
  • Se agregó la aumentación de datos.
  • Agregar algunos tipos de regularización (por ejemplo, la regularización de retirados)

Decide cuánto tiempo entrenar el modelo cuando el entrenamiento no está limitado por la capacidad de procesamiento

Tu objetivo: Entrenar el modelo el tiempo suficiente para que alcance el mejor resultado posible sin desperdiciar pasos de entrenamiento.

Tu objetivo principal es asegurarte de entrenar el modelo durante el tiempo suficiente para que alcance el mejor resultado posible sin desperdiciar pasos de entrenamiento innecesarios. En caso de duda, es mejor entrenar durante más tiempo. Tus métricas de evaluación (por ejemplo, precisión, recuperación, AUC o F1) nunca deben degradarse cuando entrenas durante más tiempo, siempre que uses correctamente la selección retrospectiva de puntos de control y crees puntos de control con la frecuencia suficiente.

Nunca ajustes el número de max_train_steps en un estudio. En su lugar, elige un valor y úsalo para todas las pruebas. A partir de estas pruebas, se grafica el paso de entrenamiento que encuentra la selección retrospectiva de puntos de control para refinar la elección de max_train_steps.

Por ejemplo, si el mejor paso siempre se produce durante el primer 10% del entrenamiento, la cantidad máxima de pasos es demasiado alta. Como alternativa, si el mejor paso se encuentra de forma constante en el último 25% del entrenamiento, es posible que te convenga entrenar durante más tiempo y volver a ajustar el programa de decaimiento. La cantidad ideal de pasos de entrenamiento puede cambiar cuando se modifican la arquitectura o los datos (por ejemplo, si se agrega la aumentación de datos). En la siguiente sección, se describe cómo elegir un valor candidato inicial para max_train_steps en función de la cantidad de pasos necesarios para "ajustar perfectamente" el conjunto de entrenamiento con una tasa de aprendizaje constante.

Es posible que se pueda disminuir max_train_steps si el proceso de entrenamiento mejora de alguna manera, por ejemplo, con un optimizador mejor ajustado o un programa de tasa de aprendizaje mejor ajustado.

Algoritmo para elegir un candidato inicial para max_train_steps con un análisis de la tasa de aprendizaje

Puedes elegir un candidato inicial para max_train_steps con un algoritmo de exploración de la tasa de aprendizaje. El siguiente algoritmo supone que es posible no solo ajustar "perfectamente" el conjunto de entrenamiento, sino también hacerlo con un programa de tasa de aprendizaje constante.

  1. Si es posible ajustar perfectamente todo el conjunto de entrenamiento, debe existir una configuración (con algún valor de max_train_steps) que se ajuste perfectamente al conjunto de entrenamiento. Busca cualquier configuración de este tipo y usa su valor de max_train_steps como punto de partida N.
  2. Ejecuta un análisis de la tasa de aprendizaje constante (es decir, una búsqueda de cuadrícula de la tasa de aprendizaje) sin magnificación de datos y sin regularización, en el que cada prueba se entrena durante N pasos. La cantidad de pasos necesarios para que la prueba más rápida en el análisis de la tasa de aprendizaje alcance un rendimiento de entrenamiento perfecto debe ser tu suposición inicial para max_train_steps.

NOTA: Los espacios de búsqueda deficientes pueden generar autoengaño. Por ejemplo, si todas las tasas de aprendizaje de un estudio son demasiado bajas, es posible que concluyas de forma incorrecta que se necesita un valor muy grande de max_train_steps. Como mínimo, verifica que la tasa de aprendizaje óptima del estudio no se encuentre en el límite del espacio de búsqueda.

Decide cuánto tiempo entrenar cuando el entrenamiento está limitado por la capacidad de procesamiento

En algunos casos, la pérdida del entrenamiento sigue mejorando de forma indefinida, por lo que tu paciencia y tus recursos de procesamiento se convierten en los factores limitantes. Pero, ¿deberías entrenar todo el tiempo que puedas? No necesariamente. Ten en cuenta lo siguiente:

  • Es posible que puedas realizar ajustes de manera más eficaz si ejecutas una mayor cantidad de experimentos más cortos y reservas las ejecuciones más largas de "longitud de producción" para los modelos que esperas lanzar.
  • A medida que el tiempo de entrenamiento de las pruebas se acerca a tu límite de paciencia, los experimentos de ajuste se vuelven más relevantes para tus posibles candidatos de lanzamiento, pero puedes completar menos de ellos.
  • Probablemente puedas responder muchas preguntas con solo entrenar durante el 10% de la duración de producción. Sin embargo, es posible que tus conclusiones en este límite de tiempo no se apliquen a experimentos con el 20% de la duración de producción, y mucho menos al 100%.

El ajuste durante varias iteraciones con límites de pasos de entrenamiento por prueba cada vez mayores es un enfoque sensato. Puedes realizar tantas rondas como quieras, pero, por lo general, de 1 a 3 rondas son las más prácticas. Básicamente, intenta comprender el problema lo más posible con pruebas que tengan un tiempo de respuesta muy rápido, y considera las siguientes compensaciones:

  • Es la minuciosidad del ajuste.
  • Relevancia para las ejecuciones finales más largas.

Una vez que un límite de tiempo por prueba determinado haya generado estadísticas útiles, aumenta el tiempo de entrenamiento y sigue ajustando, y verifica tus conclusiones de las ejecuciones más cortas según sea necesario. Como punto de partida, te recomendamos que realices dos rondas de ajuste:

  • Ronda 1: Ejecuciones de menor duración para encontrar buenos hiperparámetros del modelo y del optimizador.
  • Ronda 2: Se ejecutan muy pocas pruebas de larga duración en buenos puntos de hiperparámetros para obtener el modelo final.

La mayor pregunta que surge entre la ronda 1 y la ronda 2 es la siguiente:

Cómo ajustar los programas de disminución de la tasa de aprendizaje

Un error común cuando se ajustan los programas de la tasa de aprendizaje entre las rondas es usar todos los pasos de entrenamiento adicionales con una tasa de aprendizaje demasiado baja.

Ronda 1: Muchas ejecuciones de entrenamiento cortas

Lamentablemente, no hay garantía de que los hiperparámetros adecuados que se encuentran en un entrenamiento corto e incompleto sigan siendo buenas opciones cuando aumentas significativamente la duración del entrenamiento. Sin embargo, para algunos hiperparámetros, las buenas opciones suelen estar correlacionadas lo suficiente como para que la ronda 1 sea útil. ¿Qué valores de hiperparámetros encontrados en ejecuciones más cortas se transfieren correctamente a ejecuciones de entrenamiento más largas? No lo sabemos, necesitamos más investigación. Sin embargo, según lo que sabemos hasta ahora, estas son nuestras sospechas en orden decreciente de probabilidad de transferencia:

  • Es muy probable que se transfiera. La inestabilidad del entrenamiento inicial se puede resolver en la primera ronda de ajuste con una menor cantidad de pasos de entrenamiento. Los siguientes hiperparámetros son los que tienen más probabilidades de transferirse:
    • Duración del período de preparación
    • Inicialización
  • Es probable que se transfiera. Por lo general, una mejora drástica en la arquitectura del modelo se transfiere, pero es probable que haya muchos contraejemplos.
  • Es posible que se transfiera. Es posible que se transfieran los siguientes hiperparámetros:
    • El algoritmo de optimización y los hiperparámetros se transferirían de forma "flexible".
    • Magnificación de datos
    • Regularización Si no es posible ajustar perfectamente el conjunto de entrenamiento, es posible que el modelo se encuentre en un régimen en el que la regularización no ayude mucho.
  • Es poco probable que se transfiera. Es poco probable que el programa de la tasa de aprendizaje se transfiera a la perfección. Training Compute-Optimal Large Language Models sugiere que incluso los programas de decaimiento se transfieren, pero no creemos que esto sea cierto en general. Por ejemplo, ajustar la disminución de la raíz cuadrada en una pequeña cantidad de pasos de entrenamiento y, luego, extenderla a una gran cantidad hace que la mayor parte del entrenamiento se produzca en pasos demasiado pequeños. Es probable que obtengas resultados "suficientes" con la mayoría de las programaciones dentro del límite de presupuesto de entrenamiento extremo, pero es probable que observes mejoras notables en el rendimiento si se ajusta. En Understanding Short-Horizon Bias in Stochastic Meta-Optimization, se describen los peligros de intentar elegir tasas de aprendizaje de forma miope.

Ronda 2: Menos ejecuciones, pero de mayor duración

Ejecuta la mejor configuración de hiperparámetros de la ronda 1.

Especulación: 🤖 Usa los pasos adicionales para extender el período de entrenamiento con una tasa de aprendizaje alta. Por ejemplo, si usas una programación lineal, mantén la duración de la disminución fija desde la ronda 1 y extiende el período de lr constante al principio. Para la disminución del coseno, conserva el lr base de la ronda 1 y extiende max_train_steps como se describe en Training Compute-Optimal Large Language Models.

Las rondas de entrenamiento adicionales pueden ser útiles para los equipos que cumplen con todos los siguientes requisitos:

  • Modelado muy avanzado
  • Ajuste de canalizaciones
  • Ejecuciones de entrenamiento de producción muy largas y costosas

Sin embargo, las ejecuciones de entrenamiento adicionales suelen ser improductivas.

Ya describimos cómo pasar de la ronda 1 a la ronda 2. Si no te preocupa el tiempo de análisis y tu principal preocupación es usar los recursos de procesamiento de manera eficiente, te recomendamos que aumentes de forma exponencial la duración de las ejecuciones de entrenamiento (y, por lo tanto, el tiempo de extremo a extremo para completar un estudio) en muchas rondas de ajuste diferentes:

  • En cada ronda, asegúrate de forma sistemática de que tus elecciones sigan proporcionando buenos resultados.
  • Somete las ideas nuevas a una canalización que las reduce progresivamente con experimentos cada vez más prolongados, desde el paso i hasta el paso i+1.