- meta representa Rastros de ejecución de chakra.Representación gráfica abierta de la ejecución de cargas de trabajo de IA/ML, que proporciona una base para realizar evaluaciones comparativas y optimizar el rendimiento de la red.
- Los seguimientos de ejecución de los chakras representan operaciones clave como computación, memoria y comunicación, dependencias de datos y control, tiempos y limitaciones de recursos.
- En colaboración con MLCommonsEstamos comprometidos con la adopción generalizada de evaluaciones comparativas en la industria.
- Meta ha proporcionado un conjunto de herramientas de código abierto para permitir la recopilación, análisis, generación y uso de seguimientos de ejecución de Chakra utilizando una amplia gama de simuladores, emuladores y herramientas de reproducción.
En Meta, nuestros esfuerzos no sólo están dirigidos a ampliando los límites de la IA/ML sino también a optimizar las vastas redes que permiten estos cálculos. Nuestro sistema de evaluación comparativa flexible, repetible y estandarizado juega un papel importante en esto. A través de nuestra colaboración con MLCommons y nuestro profundo conocimiento de las limitaciones de las evaluaciones comparativas tradicionales, iniciamos Chakra Execution Tracing, una representación gráfica de las cargas de trabajo de AI/ML. Este enfoque tiene como objetivo unificar varios esquemas de seguimiento de ejecución, con el objetivo de lograr una adopción generalizada en la industria de análisis avanzados de rendimiento de IA y evaluaciones comparativas de rendimiento integrales.
Limitaciones de la metodología tradicional de evaluación comparativa de IA
Tradicionalmente, las pruebas de sistemas de IA han dependido en gran medida de la ejecución de cargas de trabajo completas de aprendizaje automático. Enfoques establecidos para la evaluación comparativa, como MLPerfproporcionó información invaluable sobre el comportamiento y el rendimiento de las cargas de trabajo y los sistemas de inteligencia artificial. Sin embargo, la evaluación comparativa tradicional de carga completa enfrenta una serie de problemas:
- Dificultad para predecir el rendimiento futuro del sistema.: Al diseñar un sistema de inteligencia artificial, los ingenieros a menudo se enfrentan al problema de predecir el rendimiento de sistemas futuros. Tales predicciones se vuelven aún más difíciles cuando los mecanismos informáticos no están listos o cuando se hacen necesarios cambios en la topología y la capacidad de la red. No es posible confiar en toda la carga de trabajo para evaluar el desempeño de estos sistemas aún no implementados.
- Alto coste computacionalNota: La ejecución de pruebas con carga de trabajo completa es costosa desde el punto de vista computacional. Dado que los modelos modernos de aprendizaje automático a menudo requieren miles de unidades de procesamiento de gráficos (GPU) para entrenarse, lo ideal sería que estas pruebas se ejecutaran en una cantidad igualmente masiva de GPU. Además, evaluar el rendimiento del sistema mediante este método puede llevar mucho tiempo.
- Incapacidad para adaptarse a cargas de trabajo cambiantes.: El panorama de las cargas de trabajo de aprendizaje automático y sus requisitos está evolucionando rápidamente. Las pruebas tradicionales de carga de trabajo completa no pueden hacer frente a estas necesidades cambiantes, principalmente porque requieren un esfuerzo significativo para estandarizar las cargas de trabajo como referencias.
Revisión de chakras
Basándonos en nuestra comprensión de las limitaciones de la evaluación comparativa tradicional, presentamos los seguimientos de ejecución de Chakra. Este nuevo enfoque proporciona una representación gráfica abierta e interoperable de la ejecución de una carga de trabajo de IA/ML. El seguimiento de ejecución de Chakra captura operaciones básicas que incluyen computación, memoria y comunicaciones, junto con sus dependencias, tiempos y metadatos.
Si bien los seguimientos de ejecución son una representación valiosa de una tarea de aprendizaje automático, la estructura y los metadatos de los seguimientos resultantes pueden variar según la plataforma de aprendizaje automático utilizada. Al reconocer esto, Chakra introduce un esquema de modelado de rendimiento estandarizado llamado seguimiento de ejecución de Chakra. La siguiente figura muestra el ecosistema Chakra, del cual los rastros de ejecución son un componente central. Como se muestra en la figura, Chakra también ofrece una serie de herramientas para transformar, visualizar, crear y simular estos rastros de ejecución.
Cómo utiliza Meta el seguimiento de la ejecución de Chakra
En Meta, recopilamos rastros de ejecución de nuestros servidores de producción todos los días. Estos seguimientos de ejecución sirven para varios propósitos: evaluación comparativa, visualización y optimización del rendimiento.
Evaluación comparativa
La evaluación comparativa es necesaria para mejorar los sistemas de inteligencia artificial existentes y planificar redes futuras. Para esta tarea, utilizamos específicamente seguimientos de ejecución de Chakra. Hemos desarrollado varias herramientas de evaluación comparativa, que incluyen Místico Y PARAM. Mystique nos permite reproducir el rendimiento de una carga de trabajo de aprendizaje automático al reproducir declaraciones tanto computacionales como de comunicación que se encuentran en los seguimientos de ejecución. Utiliza seguimientos de ejecución de Chakra para registrar los detalles del tiempo de ejecución del modelo a nivel de declaración y luego los reproduce para reproducir el rendimiento original. Según nuestra visión, Grupo de trabajo de chakras de MLCommons selecciona el «Chakra Tracing Test Suite», recopilando seguimientos de ejecución de varios actores de la industria.
Visualización y optimización del rendimiento.
Un ejemplo de visualización y optimización del rendimiento es el análisis de los tamaños de mensajes colectivos. Analizamos las trazas de producción mediante un sistema automatizado. Los datos visuales resultantes nos ayudan a identificar cualquier equilibrio o desequilibrio en los tamaños de mensajes colectivos de diferentes rangos. Nuestra herramienta de visualización puede identificar estos desequilibrios, como se muestra en la imagen a continuación.
Con esta información a mano, los ingenieros de Meta pueden desarrollar soluciones adecuadas para garantizar un tamaño de mensaje equilibrado, como se muestra en la siguiente figura.
Planes futuros
Ampliando las capacidades de análisis comparativo de los rastros de ejecución de Chakra.
Aunque Execution Trace Player le permite reproducir seguimientos de ejecución, crea problemas. El principal problema es la vinculación interna de los seguimientos de ejecución recopilados con sistemas específicos. Debido a que los seguimientos se recopilan de ejecuciones reales de la computadora, los núcleos ejecutados están optimizados para el sistema específico involucrado. Como resultado, es posible que los seguimientos obtenidos de un sistema no se simulen con precisión en otro con una GPU, topología de red y ancho de banda diferentes.
Estamos abordando esta limitación en colaboración con el grupo de trabajo MLCommons Chakra. Nuestro objetivo es recopilar seguimientos de ejecución hasta la etapa de optimización del operador para cualquier sistema de destino, como se muestra en la figura. Se trata de los llamados rastros previos a la ejecución. Paralelamente, para permitir la evaluación comparativa de los sistemas de IA de próxima generación, estamos simplificando el proceso desde la recopilación de rastros hasta la simulación del simulador.
Uso de IA para crear seguimientos de ejecución representativos
Los seguimientos de ejecución de Chakra son capaces de identificar cuellos de botella en la red al ejecutar una carga de trabajo de ML. Sin embargo, optimizar las pilas de software y hardware mediante el seguimiento de la ejecución de la producción es una tarea práctica. El principal problema surge al intentar optimizar globalmente nuestros sistemas de producción. Dado el gran volumen de trazas de producción, su uso exhaustivo para la optimización del sistema es poco práctico e ineficaz. Esto requerirá tiempo y esfuerzo computacional. Por tanto, la selección de un subconjunto representativo de trazas de producción se vuelve obligatoria.
Sin embargo, existe el riesgo de que los seguimientos seleccionados no reflejen completamente las características globales, lo que podría dar como resultado que los esfuerzos de optimización se dirijan solo a cargas de trabajo de aprendizaje automático específicas. Imaginamos un modelo de IA generativa que pueda identificar y generar seguimientos de ejecución que reflejen características subyacentes observables. También planeamos incluir un mecanismo de ofuscación en el modelo de IA. Esto facilitará el intercambio de rastros sin comprometer la propiedad intelectual y también fomentará el diseño conjunto de software y hardware entre diferentes empresas.
Dé el salto con la colaboración de la industria
Para que un ecosistema de este tipo prospere, el consenso de la industria es primordial. Nuestra colaboración con el consorcio MLCommons, una colaboración de ingeniería abierta de más de 50 empresas líderes, es un testimonio de nuestro compromiso. El objetivo de esta colaboración es integrar Chakra en su marco, proporcionando la base para una adopción generalizada.
El Grupo de Trabajo de Chakra en MLCommons liderará los esfuerzos para crear y desarrollar:
- Un esquema estandarizado que puede capturar y transformar seguimientos de ejecución desde diferentes plataformas.
- Modelos de aprendizaje automático para crear rastros de ejecución representativos de Chakra, protegiendo información confidencial y prediciendo futuras cargas de trabajo de IA.
- Un ecosistema abierto de herramientas de prueba, simulación y emulación.
- Pruebas integrales con seguimiento de ejecución de Chakra basadas en recomendaciones de MLCommons/MLPerf.
Únase a nosotros en este viaje
Nuestra visión es crear un sistema de codiseño y evaluación comparativa flexible y repetible para la IA. La colaboración con colegas, instituciones académicas y consorcios será fundamental. Invitamos a personas y empresas interesadas a formar parte de Grupo de Trabajo de Chakrascontribuir a un cambio de paradigma en la evaluación comparativa y optimización del rendimiento de la red.
Leer el trabajo de investigación
Chakra: mejora del rendimiento y el diseño colaborativo mediante seguimientos de ejecución estandarizados
Gracias
Nos gustaría agradecer a todos los contribuyentes al proyecto Chakra dentro de Meta: Taecyeon Ho, Srinivas Sridharan, Brian Coutinho, Hiwot Kassa, Matt Bergeron, Parth Malani, Shashi Gundham, Omar Baldonado, nuestros socios externos en Georgia Tech y MLCommons, y colaboradores externos de AMD, CMU, Cornell, Enfabrica, Google, Harvard, HP Labs, Intel, Keysight Technologies, Microsoft, NVIDIA, OCP y Stanford.