Mejore el rendimiento del aprendizaje automático eliminando los ceros

Actualización: 6 de agosto de 2023
Mejore el rendimiento del aprendizaje automático eliminando los ceros

Los investigadores de KAUST han encontrado una forma de aumentar significativamente la velocidad del entrenamiento. Los grandes modelos de aprendizaje automático se pueden entrenar significativamente más rápido al observar la frecuencia con la que se producen cero resultados en el aprendizaje automático distribuido que utiliza grandes conjuntos de datos de entrenamiento.

Los modelos de IA desarrollan su "inteligencia" al ser entrenados en conjuntos de datos que han sido etiquetados para decirle al modelo cómo diferenciar entre diferentes entradas y luego responder en consecuencia. Cuantos más datos etiquetados entren, mejor será el modelo para realizar cualquier tarea que se le haya asignado. Para aplicaciones complejas de aprendizaje profundo, como vehículos autónomos, esto requiere enormes conjuntos de datos de entrada y tiempos de entrenamiento muy largos, incluso cuando se utilizan plataformas de supercomputación altamente paralelas potentes y costosas.

Durante el entrenamiento, se asignan pequeñas tareas de aprendizaje a decenas o cientos de nodos informáticos, que luego comparten sus resultados a través de una red de comunicaciones antes de ejecutar la siguiente tarea. Una de las mayores fuentes de gastos generales de computación en tales tareas de computación paralela es en realidad esta comunicación entre los nodos de computación en cada paso del modelo.

"La comunicación es un cuello de botella importante en el rendimiento del aprendizaje profundo distribuido", explica el equipo de KAUST. “Junto con el rápido aumento en el tamaño del modelo, también vemos un aumento en la proporción de valores cero que se producen durante el proceso de aprendizaje, lo que llamamos escasez. Nuestra idea era aprovechar esta escasez para maximizar el uso efectivo del ancho de banda enviando solo bloques de datos distintos de cero ".

Sobre la base de un desarrollo anterior de KAUST llamado SwitchML, que optimizó las comunicaciones entre los entrenudos mediante la ejecución de un código de agregación eficiente en los conmutadores de red que procesan la transferencia de datos, Fei, Marco Canini y sus colegas dieron un paso más al identificar resultados cero y desarrollar una forma de eliminar la transmisión sin interrumpir la sincronización del proceso de cálculo paralelo.

“Exactamente cómo aprovechar la escasez para acelerar el entrenamiento distribuido es un problema desafiante, dice el equipo. “Todos los nodos necesitan procesar bloques de datos en la misma ubicación en un intervalo de tiempo, por lo que tenemos que coordinar los nodos para asegurar que solo se agreguen los bloques de datos en la misma ubicación. Para superar esto, creamos un proceso de agregación para coordinar a los trabajadores, indicándoles qué bloque enviar a continuación ".

El equipo demostró su esquema OmniReduce en un banco de pruebas que consta de una serie de unidades de procesamiento de gráficos (GPU) y logró una aceleración de ocho veces para los típicos deep learning tareas.

Horarios ELE
+ publicaciones
  • BD Soft se une con Data Resolve y fortalece sus ofertas en ciberseguridad e inteligencia empresarial
  • El enfoque combinado encuentra la mejor trayectoria directa para la generación de trayectorias de robots
  • Un material con dos funciones podría conducir a una memoria más rápida
  • Nuevo Tecnología Podría llevar la versión más rápida de 5G a su hogar y lugar de trabajo