Reduzca el tiempo y el costo de la capacitación en aprendizaje profundo con MosaicML Composer en AWS PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Reduzca el tiempo y el costo de la capacitación en aprendizaje profundo con MosaicML Composer en AWS

En la última década, hemos visto La ciencia del aprendizaje profundo (DL) adoptada a un ritmo vertiginoso por los clientes de AWS. Los parámetros abundantes y entrenados conjuntamente de los modelos DL tienen una gran capacidad de representación que trajo mejoras en numerosos casos de uso de clientes, incluido el análisis de imágenes y voz, el procesamiento del lenguaje natural (NLP), el procesamiento de series temporales y más. En esta publicación, destacamos los desafíos comúnmente informados específicamente en la capacitación de DL y cómo la biblioteca de código abierto Compositor de MosaicML ayuda a resolverlos.

El desafío con el entrenamiento DL

Los modelos DL se entrenan de forma iterativa, en un bucle for anidado. Un bucle itera a través del conjunto de datos de entrenamiento fragmento a fragmento y, si es necesario, este bucle se repite varias veces en todo el conjunto de datos. Los profesionales de ML que trabajan en la capacitación de DL enfrentan varios desafíos:

  • La duración del entrenamiento crece con el tamaño de los datos. Con conjuntos de datos en constante crecimiento, los tiempos y costos de capacitación también crecen, y el ritmo del descubrimiento científico se ralentiza.
  • Los scripts de DL a menudo requieren un código repetitivo, en particular la estructura doble for loop antes mencionada que divide el conjunto de datos en minilotes y el entrenamiento en épocas.
  • La paradoja de la elección: se publican varios documentos y bibliotecas de optimización del entrenamiento, pero no está claro cuál probar primero y cómo combinar sus efectos.

En los últimos años, varias bibliotecas de código abierto como Keras, Rayo PyTorch, Transformadores de cara abrazadosy tren de rayos han estado intentando hacer que el entrenamiento de DL sea más accesible, en particular al reducir la verbosidad del código, simplificando así la forma en que se programan las redes neuronales. La mayoría de esas bibliotecas se han centrado en la experiencia del desarrollador y la compacidad del código.

En esta publicación, presentamos una nueva biblioteca de código abierto que adopta una posición diferente en el entrenamiento de DL: Compositor de MosaicML es una biblioteca centrada en la velocidad cuyo objetivo principal es hacer que los scripts de entrenamiento de redes neuronales sean más rápidos a través de la innovación algorítmica. En el mundo de DL en la nube, es aconsejable centrarse en la velocidad, porque la infraestructura de cómputo a menudo se paga por uso, incluso hasta el segundo en Capacitación de Amazon SageMaker—y las mejoras en la velocidad pueden traducirse en ahorros de dinero.

Históricamente, la aceleración del entrenamiento de DL se ha hecho principalmente aumentando la cantidad de máquinas que calculan las iteraciones del modelo en paralelo, una técnica llamada paralelismo de datos. Aunque el paralelismo de datos a veces acelera el entrenamiento (no garantizado porque perturba la convergencia, como se destaca en Goyal et al.), no reduce el costo total del trabajo. En la práctica, tiende a aumentarlo, debido a la sobrecarga de comunicación entre máquinas y al mayor costo por unidad de máquina, porque las máquinas DL distribuidas están equipadas con interconexión de GPU en el servidor y redes de alta gama.

Aunque MosaicML Composer admite el paralelismo de datos, su filosofía central es diferente del movimiento de paralelismo de datos. Su objetivo es acelerar la formación sin necesidad de más máquinas, innovando a nivel de implementación de la ciencia. Por lo tanto, su objetivo es lograr ahorros de tiempo que se traducirían en ahorros de costos debido a la estructura de tarifas de pago por uso de AWS.

Presentamos la biblioteca de código abierto MosaicML Composer

MosaicML Composer es una biblioteca de capacitación de DL de código abierto diseñada específicamente para simplificar la incorporación de los últimos algoritmos y componerlos en recetas novedosas que aceleran la capacitación de modelos y ayudan a mejorar la calidad del modelo. En el momento de escribir este artículo, es compatible con PyTorch e incluye 25 técnicas, llamadas métodos en el mundo de MosaicML, junto con modelos estándar, conjuntos de datos y puntos de referencia

el compositor es disponible a través de pip:

pip install mosaicml

Se puede acceder a las técnicas de aceleración implementadas en Composer con su API funcional. Por ejemplo, el siguiente fragmento aplica el desenfoque técnica a TorchVision ResNet:

import logging

from composer import functional as CF
import torchvision.models as models
logging.basicConfig(level=logging.INFO)

model = models.resnet50()
CF.apply_blurpool(model)

Opcionalmente, también puede utilizar un Formador para componer tu propia combinación de técnicas:

from composer import Trainer
from composer.algorithms import LabelSmoothing, CutMix, ChannelsLast

trainer = Trainer(
    model=.. # must be a composer.ComposerModel
    train_dataloader=...,
    max_duration="2ep",  # can be a time, a number of epochs or batches
    algorithms=[
        LabelSmoothing(smoothing=0.1),
        CutMix(alpha=1.0),
        ChannelsLast(),
    ]
)

trainer.fit()

Ejemplos de métodos implementados en Composer

Algunos de los métodos disponibles en Composer son específicos de la visión artificial, por ejemplo, las técnicas de aumento de imágenes. ColFuera, Separaro Cambio de tamaño de imagen progresivo. Otros son específicos del modelado de secuencias, como Calentamiento de la duración de la secuencia or Coartada. Curiosamente, varios son independientes del caso de uso y se pueden aplicar a una variedad de redes neuronales PyTorch más allá de la visión por computadora y la PNL. Esos métodos genéricos de aceleración de entrenamiento de redes neuronales incluyen Suavizado de etiquetas, Puntal selectivo, Promedio de peso estocástico, Congelación de capasy Minimización consciente de la nitidez (SAM).

Profundicemos en algunos de ellos que el equipo de MosaicML encontró particularmente efectivos:

  • Minimización consciente de la nitidez (SAM) es un optimizador que minimiza tanto la función de pérdida del modelo como su nitidez al calcular un gradiente dos veces para cada paso de optimización. Para limitar el cálculo adicional y penalizar el rendimiento, SAM se puede ejecutar periódicamente.
  • Atención con Sesgos Lineales (ALiBi), inspirado por Prensa et al., es específico para los modelos de Transformers. Elimina la necesidad de incrustaciones posicionales, reemplazándolas con un sesgo no aprendido a los pesos de atención.
  • Puntal selectivo, inspirado por Jiang et al., le permite ejecutar la propagación hacia atrás (los algoritmos que mejoran los pesos del modelo siguiendo su pendiente de error) solo en registros con una función de pérdida alta. Este método lo ayuda a evitar cálculos innecesarios y ayuda a mejorar el rendimiento.

Tener esas técnicas disponibles en un solo marco de capacitación compacto es un valor agregado significativo para los profesionales de ML. Lo que también es valioso es la retroalimentación de campo procesable que produce el equipo de MosaicML para cada técnica, probada y calificada. Sin embargo, dada una caja de herramientas tan rica, puede preguntarse: ¿qué método debo usar? ¿Es seguro combinar el uso de múltiples métodos? Ingrese al Explorador de MosaicML.

Explorador de MosaicML

Para cuantificar el valor y la compatibilidad de los métodos de capacitación de DL, el equipo de MosaicML mantiene Explorer, el primer tablero en vivo de su tipo que muestra docenas de experimentos de entrenamiento de DL en cinco conjuntos de datos y siete modelos. El tablero representa la frontera óptima de pareto en la compensación de costo/tiempo/calidad, y le permite buscar y encontrar combinaciones de métodos con la mejor puntuación, llamadas recetas en el mundo de MosaicML, para un modelo y un conjunto de datos determinados. Por ejemplo, los siguientes gráficos muestran que para un entrenamiento GPT125 de 2M de parámetros, el entrenamiento más económico manteniendo una perplejidad de 24.11 se obtiene combinando AliBi, Sequence Length Warmup y Scale Schedule, alcanzando un costo de alrededor de $145.83 en la nube de AWS. Sin embargo, tenga en cuenta que este cálculo de costos y los que siguen en esta publicación se basan únicamente en un cálculo bajo demanda de EC2; es posible que se apliquen otras consideraciones de costos, según su entorno y las necesidades comerciales.

Captura de pantalla de MosaicML Explorer para el entrenamiento de GPT-2

Logros notables con Composer en AWS

Al ejecutar la biblioteca de Composer en AWS, el equipo de MosaicML logró una serie de resultados impresionantes. Tenga en cuenta que las estimaciones de costos informadas por el equipo de MosaicML consisten solo en cargos de cómputo bajo demanda.

Conclusión

Puede comenzar con Composer en cualquier plataforma compatible, desde su computadora portátil hasta grandes servidores en la nube equipados con GPU. La biblioteca cuenta con funciones intuitivas Tour de bienvenida y Cómo Empezar páginas de documentación. El uso de Composer en AWS le permite acumular la ciencia de optimización de costos de Composer con los servicios y programas de optimización de costos de AWS, incluido Spot Compute (Amazon EC2, Amazon SageMaker), Plan de ahorro, Ajuste automático del modelo SageMaker, y más. El equipo de MosaicML mantiene un tutoriales de Composer en AWS. Proporciona una demostración paso a paso de cómo puede reproducir los resultados de MLPerf y capacitar a ResNet-50 en AWS con la precisión estándar del 76.6 % entre los primeros 1 en solo 27 minutos.

Si tiene problemas con las redes neuronales que se entrenan demasiado lentamente, o si busca mantener bajo control los costos de entrenamiento de DL, pruebe MosaicML en AWS y háganos saber lo que crea.


Sobre los autores

Reduzca el tiempo y el costo de la capacitación en aprendizaje profundo con MosaicML Composer en AWS PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.Bandish Shah es gerente de ingeniería en MosaicML y trabaja para unir el aprendizaje profundo eficiente con sistemas distribuidos a gran escala y computación de rendimiento. Bandish tiene más de una década de experiencia en la creación de sistemas para aprendizaje automático y aplicaciones empresariales. Le gusta pasar tiempo con amigos y familiares, cocinar y ver Star Trek en repetición para inspirarse.

Reduzca el tiempo y el costo de la capacitación en aprendizaje profundo con MosaicML Composer en AWS PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.olivier cruchant es un arquitecto de soluciones especialista en aprendizaje automático en AWS, con sede en Francia. Olivier ayuda a los clientes de AWS, desde pequeñas empresas emergentes hasta grandes empresas, a desarrollar e implementar aplicaciones de aprendizaje automático de nivel de producción. En su tiempo libre, disfruta leer trabajos de investigación y explorar la naturaleza con amigos y familiares.

Sello de tiempo:

Mas de Aprendizaje automático de AWS