Acelerando el entrenamiento de redes neuronales a gran escala en CPU con ThirdAI y AWS Graviton | Servicios web de Amazon

Acelerando el entrenamiento de redes neuronales a gran escala en CPU con ThirdAI y AWS Graviton | Servicios web de Amazon

Esta publicación invitada está escrita por Vihan Lakshman, Tharun Medini y Anshumali Shrivastava de ThirdAI.

El aprendizaje profundo a gran escala ha producido recientemente avances revolucionarios en una amplia gama de campos. Aunque este sorprendente progreso en inteligencia artificial sigue siendo notable, los costos financieros y el consumo de energía necesarios para entrenar estos modelos se han convertido en un cuello de botella crítico debido a la necesidad de hardware especializado como las GPU. Tradicionalmente, incluso los modelos neuronales de tamaño modesto han requerido costosos aceleradores de hardware para su capacitación, lo que limita el número de organizaciones con los medios financieros para aprovechar al máximo esta tecnología.

Fundada en 2021, ThirdAI Corp. es una startup dedicada a la misión de democratizar las tecnologías de inteligencia artificial a través de innovaciones algorítmicas y de software que cambian fundamentalmente la economía del aprendizaje profundo. Hemos desarrollado un motor de aprendizaje profundo escaso, conocido como PERNO, que está diseñado específicamente para entrenar e implementar modelos en hardware de CPU estándar en lugar de aceleradores costosos y que consumen mucha energía como las GPU. Muchos de nuestros clientes tienen informó una gran satisfacción con la capacidad de ThirdAI para entrenar e implementar modelos de aprendizaje profundo para problemas comerciales críticos en una infraestructura de CPU rentable.

En esta publicación, investigamos el potencial del procesador AWS Graviton3 para acelerar el entrenamiento de redes neuronales para el exclusivo motor de aprendizaje profundo basado en CPU de ThirdAI.

Los beneficios de las CPU de alto rendimiento

En ThirdAI, logramos estos avances en el entrenamiento eficiente de redes neuronales en CPU a través de algoritmos dispersos dinámicos patentados que activan solo un subconjunto de neuronas para una entrada determinada (consulte la siguiente figura), evitando así la necesidad de cálculos completamente densos. A diferencia de otros enfoques para el entrenamiento de redes neuronales dispersas, ThirdAI utiliza hashing sensible a la localidad para seleccionar dinámicamente neuronas para una entrada determinada como se muestra en las líneas en negrita a continuación. En ciertos casos, incluso hemos observado que nuestra modelos dispersos basados ​​en CPU entrene más rápido que la arquitectura densa comparable en GPU.

Arquitectura neuronal densa con líneas en negrita que muestran qué neuronas se seleccionan

Dado que muchos de nuestros clientes objetivo operan en la nube (y entre ellos, la mayoría usa AWS), estábamos entusiasmados de probar el procesador AWS Graviton3 para ver si las impresionantes mejoras de precio-rendimiento de la innovación de silicio de Amazon se traducirían en nuestra carga de trabajo única. de entrenamiento de redes neuronales dispersas y, por lo tanto, proporcionar mayores ahorros para los clientes. Aunque tanto la comunidad de investigación como el equipo de AWS Graviton han logrado avances interesantes para acelerar inferencia de redes neuronales En instancias de CPU, en ThirdAI somos, hasta donde sabemos, los primeros en estudiar seriamente cómo entrenar modelos neuronales en CPU de manera eficiente.

Como se muestra en nuestros resultados, observamos una aceleración significativa del entrenamiento con AWS Graviton3 en comparación con instancias comparables de Intel y NVIDIA en varias cargas de trabajo de modelado representativas.

Tipos de instancia

Para nuestra evaluación, consideramos dos instancias de CPU de AWS comparables: una máquina c6i.8xlarge con tecnología del procesador Ice Lake de Intel y una c7g.8xlarge con tecnología de AWS Graviton3. La siguiente tabla resume los detalles de cada instancia.

Ejemplo CPU virtual RAM (GB) Procesador Precio bajo demanda (us-east-1)
c7g.8xgrande 32 64 Gravitón3 de AWS $ 1.1562 / h
c6i.8xgrande 32 64 Intel Ice Lake $ 1.36 / h
g5g.8xgrande (GPU) 32 64 con memoria GPU de 16 GB Procesadores AWS Graviton2 con 1 GPU NVIDIA T4G $ 1.3720 / h

Evaluación 1: Clasificación extrema

Para nuestra primera evaluación, nos centramos en el problema de la clasificación extrema de etiquetas múltiples (XMC), un paradigma de aprendizaje automático (ML) cada vez más popular con una serie de aplicaciones prácticas en búsqueda y recomendaciones (incluso en Amazon). Para nuestra evaluación nos centramos en el público. Tarea de recomendación de productos Amazon-670K, que, dado un producto de entrada, identifica productos similares de una colección de más de 670,000 artículos.

En este experimento, comparamos el motor BOLT de ThirdAI con TensorFlow 2.11 y PyTorch 2.0 en las opciones de hardware antes mencionadas: Intel Ice Lake, AWS Graviton3 y una GPU NVIDIA T4G. Para nuestros experimentos en Intel y AWS Graviton, utilizamos la AMI de aprendizaje profundo de AWS (Ubuntu 18.04) versión 59.0. Para nuestra evaluación de GPU, utilizamos el AMI Arm64 optimizada para GPU NVIDIA, disponible a través de AWS Marketplace. Para esta evaluación utilizamos el Arquitectura del modelo DIAPOSITIVA, que logra tanto un rendimiento competitivo en esta tarea de clasificación extrema como un fuerte rendimiento de entrenamiento en CPU. Para nuestras comparaciones de TensorFlow y PyTorch, implementamos la versión análoga de la arquitectura del perceptrón multicapa (MLP) SLIDE con multiplicaciones de matrices densas. Entrenamos cada modelo durante cinco épocas (pasos completos a través del conjunto de datos de entrenamiento) con un tamaño de lote fijo de 256 y una tasa de aprendizaje de 0.001. Observamos que todos los modelos lograron la misma precisión de prueba del 33.6%.

El siguiente cuadro compara el tiempo de entrenamiento de BOLT de ThirdAI con TensorFlow 2.11 y PyTorch 2.0 en el punto de referencia de clasificación extrema Amazon670k. Todos los modelos alcanzan la misma precisión de prueba. Observamos que AWS Graviton3 acelera considerablemente el rendimiento de BOLT desde el primer momento sin necesidad de personalizaciones, en aproximadamente un 40 %. BOLT de ThirdAI en AWS Graviton3 también logra un entrenamiento considerablemente más rápido que los modelos TensorFlow o PyTorch entrenados en la GPU. Tenga en cuenta que no hay ningún resultado de ThirdAI en la prueba comparativa de GPU de NVIDIA porque BOLT está diseñado para ejecutarse en CPU. No incluimos los puntos de referencia de CPU de TensorFlow y PyTorch debido al tiempo de entrenamiento prohibitivamente largo.

Amazon 670k Tiempo de entrenamiento Gráfico de barras que compara instancias c6i.8xlarge vs c7g.8xlarge

La siguiente tabla resume el tiempo de entrenamiento y la precisión de las pruebas para cada procesador/procesador especializado (GPU).

Procesador Motor Tiempo de entrenamiento (s) Exactitud de prueba
Lago de hielo Intel (c6i.8xlarge) PERNO 1470 33.6
AWS Graviton3 (c7g.8xlarge) PERNO 935 33.6
NVIDIA T4G (g5g.8xgrande) TensorFlow 7550 33.6
NVIDIA T4G (g5g.8xgrande) PyTorch 5130 33.6

Evaluación 2: análisis de sentimiento de polaridad de Yelp

Para nuestra segunda evaluación, nos centramos en el popular Polaridad de Yelp Punto de referencia de análisis de sentimiento, que implica clasificar una reseña como positiva o negativa. Para esta evaluación, comparamos los de ThirdAI Transformadores profundos universales (UDT) modelo contra un afinado DestilarBERT Network, un modelo de lenguaje comprimido previamente entrenado que logra un rendimiento casi de última generación con una latencia de inferencia reducida. Debido a que ajustar los modelos DistilBERT en una CPU llevaría un tiempo prohibitivamente largo (al menos varios días), comparamos los modelos basados ​​en CPU de ThirdAI con DistilBERT ajustados en una GPU. Entrenamos todos los modelos con un tamaño de lote de 256 para un solo paso a través de los datos (una época). Observamos que podemos lograr una precisión ligeramente mayor con BOLT con pasadas adicionales a través de los datos, pero nos limitamos a una sola pasada en esta evaluación para mantener la coherencia.

Como se muestra en la siguiente figura, AWS Graviton3 nuevamente acelera considerablemente el entrenamiento del modelo UDT de ThirdAI. Además, UDT puede lograr una precisión de prueba comparable a DistilBERT con una fracción del tiempo de entrenamiento y sin la necesidad de una GPU. Observamos que también ha habido trabajos recientes en optimizando el ajuste de la polaridad de Yelp en las CPU. Sin embargo, nuestros modelos aún logran mayores ganancias de eficiencia y evitan el costo de la capacitación previa, que es sustancial y requiere el uso de aceleradores de hardware como GPU.

Tiempo de entrenamiento en Yelp Polarity C7g vs c6i

La siguiente tabla resume el tiempo de entrenamiento, la precisión de la prueba y la latencia de inferencia.

Procesador Motor Modelo Tiempo de entrenamiento (s) Exactitud de prueba Latencia de inferencia (ms)
Intel Icelake (c6i.8xlarge) PERNO UDT 47 93.2 <1
Gravitón3 (c7g.8xlarge) PERNO UDT 29 92.9 <1
GPU T4G (g5g.8xlarge) TensorFlow DestilarBERT 4200 93.3 8.7
GPU T4G (g5g.8xlarge) PyTorch DestilarBERT 3780 93.4 8.3

Evaluación 3: Clasificación de textos multiclase (DBPedia)

Para nuestra evaluación final, nos centramos en el problema de la clasificación de texto de clases múltiples, que implica asignar una etiqueta a un texto de entrada determinado de un conjunto de más de dos clases de salida. Nos centramos en el DBPedia benchmark, que consta de 14 posibles clases de salida. Nuevamente, vemos que AWS Graviton3 acelera el rendimiento de UDT en comparación con la instancia Intel comparable en aproximadamente un 40 %. También vemos que BOLT logra resultados comparables a los del modelo basado en transformador DistilBERT ajustado en una GPU al tiempo que logra una latencia inferior a milisegundos.

Tiempo de entrenamiento ThirdAI BOLT en c7g vs c6i

La siguiente tabla resume el tiempo de entrenamiento, la precisión de la prueba y la latencia de inferencia.

Procesador Motor Modelo Tiempo de entrenamiento (s) Exactitud de prueba Latencia de inferencia (ms)
Intel Icelake (c6i.8xlarge) PERNO UDT 23 98.23 <1
Gravitón3 (c7g.8xlarge) PERNO UDT 14 98.10 <1
GPU T4G (g5g.8xlarge) TensorFlow DestilarBERT 4320 99.23 8.6
GPU T4G (g5g.8xlarge) PyTorch DestilarBERT 3480 99.29 8

Comience con ThirdAI en AWS Graviton

Hemos diseñado nuestro software BOLT para que sea compatible con las principales arquitecturas de CPU, incluido AWS Graviton3. De hecho, no tuvimos que realizar ninguna personalización en nuestro código para ejecutarlo en AWS Graviton3. Por lo tanto, puede utilizar ThirdAI para la capacitación e implementación de modelos en AWS Graviton3 sin esfuerzo adicional. Además, como se detalla en nuestro reciente documento técnico de investigación, hemos desarrollado un conjunto de técnicas matemáticas novedosas para ajustar automáticamente los hiperparámetros especializados asociados con nuestros modelos dispersos, lo que permite que nuestros modelos funcionen bien inmediatamente desde el primer momento.

También observamos que nuestros modelos funcionan bien principalmente para tareas de búsqueda, recomendación y procesamiento de lenguaje natural que generalmente presentan espacios de salida grandes y de alta dimensión y un requisito de latencia de inferencia extremadamente baja. Estamos trabajando activamente para ampliar nuestros métodos a dominios adicionales, como la visión por computadora, pero tenga en cuenta que nuestras mejoras de eficiencia no se traducen en todos los dominios de ML en este momento.

Conclusión

En esta publicación, investigamos el potencial del procesador AWS Graviton3 para acelerar el entrenamiento de redes neuronales para el exclusivo motor de aprendizaje profundo basado en CPU de ThirdAI. Nuestros puntos de referencia sobre búsqueda, clasificación de texto y recomendaciones sugieren que AWS Graviton3 puede acelerar las cargas de trabajo de entrenamiento de modelos de ThirdAI entre un 30 % y un 40 % en comparación con las instancias x86 comparables, con una mejora de precio-rendimiento de casi un 50 %. Además, debido a que las instancias de AWS Graviton3 están disponibles a un costo menor que las máquinas análogas de Intel y NVIDIA y permiten tiempos de entrenamiento e inferencia más cortos, puede desbloquear aún más el valor del modelo de uso de pago por uso de AWS utilizando un costo más bajo. máquinas durante periodos de tiempo más cortos.

Estamos muy entusiasmados con los ahorros de precio y rendimiento de AWS Graviton3 y buscaremos transmitir estas mejoras a nuestros clientes para que puedan disfrutar de una capacitación e inferencia de ML más rápidas con un rendimiento mejorado en CPU de bajo costo. Como clientes de AWS, estamos encantados con la velocidad a la que AWS Graviton3 nos permite experimentar con nuestros modelos y esperamos utilizar más innovaciones de silicio de vanguardia de AWS en el futuro. Guía técnica de Gravitón es un buen recurso a considerar al evaluar sus cargas de trabajo de ML para ejecutarlas en Graviton. También puedes probar las instancias Graviton t4g. prueba gratuita..

El contenido y las opiniones de esta publicación son del autor externo y AWS no es responsable del contenido o la precisión de esta publicación. Al momento de escribir el blog, la instancia más actual era c6i y, por lo tanto, la comparación se realizó con instancias c6i.


Sobre la autora

Vihan Lakshman – Vihan Lakshman es un científico investigador de ThirdAI Corp. centrado en el desarrollo de sistemas para un aprendizaje profundo eficiente en el uso de recursos. Antes de ThirdAI, trabajó como científico aplicado en Amazon y obtuvo títulos universitarios y de maestría de la Universidad de Stanford. Vihan también recibió una beca de investigación de la Fundación Nacional de Ciencias.

Tharun Medini – Tharun Medini es cofundador y CTO de ThirdAI Corp. Hizo su doctorado en “Algoritmos Hashing para búsqueda y recuperación de información” en la Universidad Rice. Antes de ThirdAI, Tharun trabajó en Amazon y Target. Tharun ha recibido numerosos premios por su investigación, incluida la beca BP del Instituto Ken Kennedy, la beca de la Sociedad Estadounidense de Ingenieros Indios y una beca de posgrado de la Universidad Rice.

Anshumali Shrivastava – Anshumali Shrivastava es profesor asociado en el departamento de informática de la Universidad Rice. También es el fundador y director ejecutivo de ThirdAI Corp, una empresa que está democratizando la IA para convertirla en hardware básico a través de innovaciones de software. Sus amplios intereses de investigación incluyen algoritmos probabilísticos para un aprendizaje profundo que ahorra recursos. En 2018, Science News lo nombró uno de los 10 mejores científicos menores de 40 años a seguir. Recibió el premio CAREER de la Fundación Nacional de Ciencias, un premio para jóvenes investigadores de la Oficina de Investigación Científica de la Fuerza Aérea, un premio de investigación en aprendizaje automático de Amazon y un premio de investigación en ciencia de datos de Adobe. Ha ganado numerosos premios en papel, incluidos los premios al mejor artículo en NIPS 2014 y MLSys 2022, así como el premio al papel más reproducible en SIGMOD 2019. Su trabajo sobre tecnologías eficientes de aprendizaje automático en CPU ha sido cubierto por la prensa popular, incluido Wall Street Journal, New York Times, TechCrunch, NDTV, etc.

Sello de tiempo:

Mas de Aprendizaje automático de AWS