Los grandes modelos transformadores basados en la atención han obtenido ganancias masivas en el procesamiento del lenguaje natural (PNL). Sin embargo, entrenar estas redes gigantescas desde cero requiere una gran cantidad de datos y computación. Para conjuntos de datos de NLP más pequeños, una estrategia simple pero efectiva es usar un transformador previamente entrenado, generalmente entrenado sin supervisión en conjuntos de datos muy grandes, y ajustarlo en el conjunto de datos de interés. Abrazando la cara mantiene un gran zoológico modelo de estos transformadores pre-entrenados y los hace fácilmente accesibles incluso para usuarios novatos.
Sin embargo, el ajuste fino de estos modelos aún requiere conocimiento experto, ya que son bastante sensibles a sus hiperparámetros, como la tasa de aprendizaje o el tamaño del lote. En esta publicación, mostramos cómo optimizar estos hiperparámetros con el marco de código abierto Sintonía para la optimización distribuida de hiperparámetros (HPO). Syne Tune nos permite encontrar una mejor configuración de hiperparámetros que logra una mejora relativa entre 1-4% en comparación con los hiperparámetros predeterminados en los populares COLA conjuntos de datos de referencia. La elección del modelo preentrenado también puede considerarse un hiperparámetro y, por lo tanto, ser seleccionado automáticamente por Syne Tune. En un problema de clasificación de texto, esto conduce a un aumento adicional en la precisión de aproximadamente un 5 % en comparación con el modelo predeterminado. Sin embargo, podemos automatizar más decisiones que un usuario debe tomar; demostramos esto al exponer también el tipo de instancia como un hiperparámetro que luego usamos para implementar el modelo. Al seleccionar el tipo de instancia correcto, podemos encontrar configuraciones que equilibren de manera óptima el costo y la latencia.
Para obtener una introducción a Syne Tune, consulte Ejecute hiperparámetros distribuidos y trabajos de ajuste de arquitectura neuronal con Syne Tune.
Optimización de hiperparámetros con Syne Tune
Usaremos el COLA suite de referencia, que consta de nueve conjuntos de datos para tareas de comprensión del lenguaje natural, como el reconocimiento de implicaciones textuales o el análisis de sentimientos. Para eso, adaptamos Hugging Face's run_glue.py guión de entrenamiento. Los conjuntos de datos de GLUE vienen con un conjunto de evaluación y entrenamiento predefinido con etiquetas, así como un conjunto de prueba de reserva sin etiquetas. Por lo tanto, dividimos el conjunto de entrenamiento en conjuntos de entrenamiento y validación (70 %/30 % divididos) y usamos el conjunto de evaluación como nuestro conjunto de datos de prueba de reserva. Además, agregamos otra función de devolución de llamada a la API de Entrenador de Hugging Face que informa el rendimiento de la validación después de cada época a Syne Tune. Ver el siguiente código:
Comenzamos con la optimización de los hiperparámetros de entrenamiento típicos: la tasa de aprendizaje, la relación de calentamiento para aumentar la tasa de aprendizaje y el tamaño del lote para ajustar un BERT preentrenado (bert-base-case), que es el modelo predeterminado en el ejemplo Hugging Face. Ver el siguiente código:
Como nuestro método HPO, usamos ASHA, que muestrea configuraciones de hiperparámetros uniformemente al azar y detiene iterativamente la evaluación de configuraciones con bajo rendimiento. Aunque métodos más sofisticados utilizan un modelo probabilístico de la función objetivo, como BO o MoBster, usamos ASHA para esta publicación porque viene sin suposiciones sobre el espacio de búsqueda.
En la siguiente figura, comparamos la mejora relativa en el error de prueba con respecto a la configuración predeterminada de hiperparámetros de Hugging Faces.
Para simplificar, limitamos la comparación a MRPC, COLA y STSB, pero también observamos mejoras similares para otros conjuntos de datos GLUE. Para cada conjunto de datos, ejecutamos ASHA en un solo ml.g4dn.xlarge Amazon SageMaker instancia con un presupuesto de tiempo de ejecución de 1,800 segundos, lo que corresponde a aproximadamente 13, 7 y 9 evaluaciones de funciones completas en estos conjuntos de datos, respectivamente. Para tener en cuenta la aleatoriedad intrínseca del proceso de entrenamiento, por ejemplo, causada por el muestreo de mini lotes, ejecutamos ASHA y la configuración predeterminada para cinco repeticiones con una semilla independiente para el generador de números aleatorios e informamos el promedio y la desviación estándar de la mejora relativa a través de las repeticiones. Podemos ver que, en todos los conjuntos de datos, de hecho podemos mejorar el rendimiento predictivo en un 1-3 % en relación con el rendimiento de la configuración predeterminada cuidadosamente seleccionada.
Automatice la selección del modelo preentrenado
Podemos usar HPO no solo para encontrar hiperparámetros, sino también para seleccionar automáticamente el modelo preentrenado adecuado. Por qué queremos hacer esto? Debido a que ningún modelo único tiene un rendimiento superior en todos los conjuntos de datos, tenemos que seleccionar el modelo correcto para un conjunto de datos específico. Para demostrar esto, evaluamos una gama de modelos de transformadores populares de Hugging Face. Para cada conjunto de datos, clasificamos cada modelo por su rendimiento de prueba. La clasificación en los conjuntos de datos (consulte la siguiente figura) cambia y no hay un solo modelo que obtenga la puntuación más alta en cada conjunto de datos. Como referencia, también mostramos el rendimiento absoluto de la prueba de cada modelo y conjunto de datos en la siguiente figura.
Para seleccionar automáticamente el modelo correcto, podemos emitir la elección del modelo como parámetros categóricos y agregar esto a nuestro espacio de búsqueda de hiperparámetros:
Aunque el espacio de búsqueda ahora es más grande, eso no significa necesariamente que sea más difícil de optimizar. La siguiente figura muestra el error de prueba de la mejor configuración observada (basada en el error de validación) en el conjunto de datos MRPC de ASHA a lo largo del tiempo cuando buscamos en el espacio original (línea azul) (con un modelo preentrenado basado en BERT). ) o en el nuevo espacio de búsqueda aumentada (línea naranja). Con el mismo presupuesto, ASHA puede encontrar una configuración de hiperparámetros mucho mejor en el espacio de búsqueda ampliado que en el espacio más pequeño.
Automatice la selección del tipo de instancia
En la práctica, es posible que no solo nos interese optimizar el rendimiento predictivo. También es posible que nos interesen otros objetivos, como el tiempo de capacitación, el costo (en dólares), la latencia o las métricas de imparcialidad. También necesitamos hacer otras elecciones más allá de los hiperparámetros del modelo, por ejemplo, seleccionar el tipo de instancia.
Si bien el tipo de instancia no influye en el rendimiento predictivo, tiene un gran impacto en el costo (en dólares), el tiempo de ejecución del entrenamiento y la latencia. Esto último se vuelve particularmente importante cuando se implementa el modelo. Podemos formular HPO como un problema de optimización de objetivos múltiples, donde nuestro objetivo es optimizar múltiples objetivos simultáneamente. Sin embargo, ninguna solución única optimiza todas las métricas al mismo tiempo. En cambio, nuestro objetivo es encontrar un conjunto de configuraciones que compensen de manera óptima un objetivo frente al otro. Esto se llama el conjunto de Pareto.
Para analizar más esta configuración, agregamos la elección del tipo de instancia como un hiperparámetro categórico adicional a nuestro espacio de búsqueda:
Utilizamos MO-ASHA, que adapta ASHA al escenario multiobjetivo mediante el uso de clasificación no dominada. En cada iteración, MO-ASHA también selecciona para cada configuración el tipo de instancia en la que queremos evaluarla. Para ejecutar HPO en un conjunto heterogéneo de instancias, Syne Tune proporciona el backend de SageMaker. Con este backend, cada prueba se evalúa como un trabajo de capacitación independiente de SageMaker en su propia instancia. El número de trabajadores define cuántos trabajos de SageMaker ejecutamos en paralelo en un momento dado. El optimizador en sí, MO-ASHA en nuestro caso, se ejecuta en la máquina local, una computadora portátil Sagemaker o en un trabajo de capacitación de SageMaker separado. Ver el siguiente código:
Las siguientes figuras muestran la latencia frente al error de prueba a la izquierda y la latencia frente al costo a la derecha para configuraciones aleatorias muestreadas por MO-ASHA (limitamos el eje para visibilidad) en el conjunto de datos MRPC después de ejecutarlo durante 10,800 XNUMX segundos en cuatro trabajadores. El color indica el tipo de instancia. La línea negra discontinua representa el conjunto de Pareto, es decir, el conjunto de puntos que dominan todos los demás puntos en al menos un objetivo.
Podemos observar una compensación entre la latencia y el error de prueba, lo que significa que la mejor configuración con el error de prueba más bajo no logra la latencia más baja. Según sus preferencias, puede seleccionar una configuración de hiperparámetros que sacrifique el rendimiento de la prueba pero tenga una latencia menor. También vemos la compensación entre latencia y costo. Al usar una instancia ml.g4dn.xlarge más pequeña, por ejemplo, solo aumentamos marginalmente la latencia, pero pagamos una cuarta parte del costo de una instancia ml.g4dn.8xlarge.
Conclusión
En esta publicación, discutimos la optimización de hiperparámetros para el ajuste fino de modelos de transformadores previamente entrenados de Hugging Face basados en Syne Tune. Vimos que al optimizar hiperparámetros como la tasa de aprendizaje, el tamaño del lote y la relación de calentamiento, podemos mejorar la configuración predeterminada cuidadosamente elegida. También podemos extender esto seleccionando automáticamente el modelo preentrenado a través de la optimización de hiperparámetros.
Con la ayuda del backend SageMaker de Syne Tune, podemos tratar el tipo de instancia como un hiperparámetro. Aunque el tipo de instancia no afecta el rendimiento, tiene un impacto significativo en la latencia y el costo. Por lo tanto, al presentar HPO como un problema de optimización multiobjetivo, podemos encontrar un conjunto de configuraciones que compensan de manera óptima un objetivo frente al otro. Si quieres probarlo tú mismo, echa un vistazo a nuestro cuaderno de ejemplo.
Acerca de los autores
Aaron Klein es científico aplicado en AWS.
Matías Seeger es científico principal aplicado en AWS.
David Salinas es un científico aplicado sénior en AWS.
emilio webber se unió a AWS justo después del lanzamiento de SageMaker y ha estado tratando de contárselo al mundo desde entonces. Además de crear nuevas experiencias de aprendizaje automático para los clientes, a Emily le gusta meditar y estudiar el budismo tibetano.
cedric archambeau es científico principal aplicado en AWS y miembro del laboratorio europeo de aprendizaje y sistemas inteligentes.
- Coinsmart. El mejor intercambio de Bitcoin y criptografía de Europa.
- Platoblockchain. Inteligencia del Metaverso Web3. Conocimiento amplificado. ACCESO LIBRE.
- CriptoHawk. Radar de altcoins. Prueba gratis.
- Fuente: https://aws.amazon.com/blogs/machine-learning/hyperparameter-optimization-for-fine-tuning-pre-trained-transformer-models-from-hugging-face/
- "
- 10
- 100
- 7
- 9
- a
- Sobre
- Absoluto
- accesible
- Mi Cuenta
- Lograr
- a través de
- Adicionales
- afectar
- Todos
- permite
- Aunque
- Amazon
- cantidad
- análisis
- analizar
- Otra
- abejas
- aplicada
- aproximadamente
- arquitectura
- aumentado
- automatizado
- automáticamente
- promedio
- AWS
- Eje
- porque
- MEJOR
- mejores
- entre
- Más allá de
- Negro
- empujón
- presupuesto
- Construir la
- servicios sociales
- case
- causado
- manera?
- opciones
- elegido
- clase
- clasificación
- código
- cómo
- en comparación con
- Calcular
- Configuración
- control
- Clientes
- datos
- decisiones
- demostrar
- desplegar
- desplegado
- distribuidos
- No
- Dólar
- cada una
- pasan fácilmente
- Eficaz
- Europea
- evaluar
- evaluación
- ejemplo
- Experiencias
- experto
- ampliar
- Cara
- Moda
- Figura
- siguiendo
- Marco conceptual
- en
- ser completados
- función
- promover
- Además
- generador
- ayuda
- esta página
- Cómo
- Como Hacer
- Sin embargo
- HTTPS
- Impacto
- importante
- mejorar
- es la mejora continua
- aumente
- independientes
- influir
- ejemplo
- De Operación
- intereses
- IT
- sí mismo
- Trabajos
- Empleo
- se unió a
- especialistas
- el lab
- Etiquetas
- idioma
- large
- mayores
- lanzado
- Prospectos
- aprendizaje
- LIMITE LAS
- línea
- local
- máquina
- para lograr
- HACE
- masivo
- sentido
- métodos
- Métrica
- podría
- ML
- modelo
- modelos
- más,
- múltiples
- Natural
- necesariamente
- telecomunicaciones
- cuaderno
- número
- ,
- obtenido
- optimización
- Optimización
- optimizando
- reconocida por
- Otro
- EL DESARROLLADOR
- particularmente
- Pagar
- actuación
- realizar
- Por favor
- puntos
- Popular
- Director de la escuela
- Problema
- tratamiento
- proporciona un
- distancia
- Clasificación
- reporte
- molécula indicadora
- Informes
- representa
- requiere
- Resultados
- Ejecutar
- correr
- mismo
- Científico
- Buscar
- segundos
- dispersores
- seleccionado
- sentimiento
- set
- pólipo
- Mostrar
- importante
- similares
- sencillos
- soltero
- Tamaño
- a medida
- sofisticado
- Espacio
- soluciones y
- dividido
- estándar
- comienzo
- Estado
- Sin embargo
- Estrategia
- Todas las funciones a su disposición
- tareas
- test
- El
- el mundo
- por lo tanto
- equipo
- comercio
- Formación
- sorpresa
- tremendo
- juicio
- comprensión
- us
- utilizan el
- usuarios
- generalmente
- utilizar
- validación
- la visibilidad
- Wikipedia
- sin
- los trabajadores.
- mundo
- tú