Estás leyendo la publicación: Este método de inteligencia artificial de MIT e IBM Research mejora el rendimiento de entrenamiento e inferencia de modelos de aprendizaje profundo en gráficos grandes
Los gráficos, un tipo de datos abstractos y no lineales, se emplean con frecuencia para ilustrar vínculos entre diferentes tipos de datos, como conexiones de redes sociales, jerarquías, transacciones financieras, etc. algoritmos computacionalmente eficientes ya que la cantidad de datos representados como gráficos es bastante grande. Una red neuronal que manipula directamente las estructuras gráficas se conoce como Graph Neural Network (GNN). Los GNN se han vuelto cada vez más comunes en los últimos años, particularmente en dominios que involucran redes sociales, sistemas de recomendación, etc.
En contraste con las redes neuronales ordinarias, la expansión exponencial de los vecindarios de gráficos de saltos múltiples a lo largo de las capas de la red hace que la construcción de mini lotes en GNN sea altamente costosa desde el punto de vista computacional. Esto hace que mejorar el rendimiento de inferencia y entrenamiento de GNN sea bastante desafiante. Para abordar estos problemas, los investigadores del MIT colaboraron con IBM Research para desarrollar una nueva técnica llamada SALIENT (muestreo, corte y movimiento de datos). Al abordar tres cuellos de botella principales, su método acorta significativamente el tiempo de ejecución de GNN en grandes conjuntos de datos, incluso a escala de miles de millones. Además, el enfoque recién creado escala bien cuando la capacidad computacional aumenta de una a dieciséis unidades de procesamiento gráfico (GPU).
Cuando los investigadores comenzaron a examinar las dificultades que encontraban los sistemas actuales al escalar técnicas de aprendizaje automático de vanguardia para gráficos a grandes conjuntos de datos, prácticamente a escala de miles de millones, la necesidad de SALIENT se hizo aún más evidente. La mayor parte de la investigación actual logra un rendimiento satisfactorio en conjuntos de datos más pequeños que pueden caber fácilmente en la memoria de la GPU. El objetivo del equipo es construir un sistema que pueda manejar gráficos que puedan usarse para representar toda la red de Bitcoin. Sin embargo, también quieren que el sistema sea lo más eficaz y ágil posible para mantener el ritmo al que se generan nuevos datos prácticamente todos los días.
Para construir SALIENT, el equipo inicialmente incluyó técnicas de optimización fundamentales para elementos que encajan en marcos de aprendizaje automático ya existentes, como PyTorch Geometric y la biblioteca de gráficos profundos (DGL). Para acelerar el entrenamiento del modelo y obtener hallazgos de inferencia más rápidamente, el objetivo principal de inventar un método que pudiera integrarse fácilmente en las arquitecturas GNN actuales era simplificar la aplicación de este trabajo para los expertos de dominio en sus campos especializados. Una modificación que el equipo hizo a su diseño fue utilizar continuamente toda la tecnología de hardware, incluidas las CPU, las líneas de datos y las GPU. Por ejemplo, la GPU se puede utilizar para entrenar el modelo de aprendizaje automático o realizar inferencias mientras la CPU muestrea el gráfico y crea mini lotes de datos.
Estos sencillos ajustes permitieron a los investigadores aumentar la utilización de la GPU del 10 al 30 por ciento, lo que llevó a un aumento del rendimiento de 1,4 a 2 veces en comparación con las rutinas de referencia de código abierto. Sin embargo, el equipo de estudio creía que podía lograr resultados aún mejores, por lo que se dispuso a examinar los cuellos de botella que surgen al comienzo de la canalización de datos y los algoritmos para el muestreo de gráficos y la preparación de mini lotes.
Las GNN difieren significativamente de otras redes neuronales. Llevan a cabo un proceso de agregación de vecindarios que implica la computación de detalles sobre un determinado nodo utilizando sus nodos vecinos. Sin embargo, a medida que aumenta la cantidad de capas en una GNN, también aumenta la cantidad de nodos a los que debe conectarse la red, lo que ocasionalmente puede superar las limitaciones de una computadora. Si bien algunas técnicas de muestreo de barrio hacen uso de la aleatorización para aumentar ligeramente la eficiencia, esto es insuficiente. Para abordar esto, el equipo mejoró el procedimiento de muestreo aproximadamente tres veces mediante el uso de una combinación de estructuras de datos y mejoras algorítmicas.
El tercer y último cuello de botella del equipo fue incorporar un paso de captación previa para canalizar la transferencia de datos en minilotes entre la CPU y la GPU. El equipo también encontró y solucionó un problema de rendimiento en un módulo PyTorch conocido, lo que resultó en un tiempo de ejecución de 16,5 segundos por época para SALIENT. El equipo cree que su meticulosa atención a los detalles es la razón por la que pudieron producir resultados tan impresionantes. Simplemente examinando cuidadosamente las variables que afectan el rendimiento mientras se entrena un GNN, resolvieron una cantidad significativa de problemas de rendimiento. Actualmente, su enfoque solo tiene un cuello de botella conectado al límite de cómputo de la GPU, que debería ser el caso de un sistema ideal.
Los investigadores ahora podrán manejar gráficos en un tamaño que nunca antes se había visto, gracias al MIT y SALIENT de IBM. Con respecto a las perspectivas futuras, el equipo desea utilizar el sistema de entrenamiento de redes neuronales gráficas en los algoritmos actuales para pronosticar las propiedades de cada nodo y en trabajos más difíciles como reconocer patrones de subgráficos más profundos. La indicación de delitos financieros sería una de sus aplicaciones prácticas. El Laboratorio de Investigación de la Fuerza Aérea de EE. UU., el Acelerador de Inteligencia Artificial de la Fuerza Aérea de EE. UU. y el Laboratorio de IA Watson de MIT-IBM proporcionaron fondos para la investigación del equipo. Su trabajo también se presentó en la conferencia MLSys 2022.