El entrenamiento de modelos de IA de vanguardia no es sólo un problema informático: es cada vez más un problema de redes. Y OpenAI acaba de presentar su solución.
OpenAI anunció el lanzamiento de MRC (Conexión confiable de múltiples rutas), un novedoso protocolo de red desarrollado durante los últimos dos años en asociación con AMD, Broadcom, Intel, Microsoft y NVIDIA. La especificación se publicó a través del Open Compute Project (OCP), lo que permite a la industria en general utilizarla y desarrollarla.
Por qué la creación de redes es el cuello de botella oculto en la formación en IA
Para comprender por qué es importante MRC, es necesario comprender qué sucede dentro de una supercomputadora durante el entrenamiento del modelo. Al entrenar grandes modelos de IA, un solo paso puede implicar muchos millones de transferencias de datos. Una transferencia que llega tarde puede afectar a todo el trabajo y provocar potencialmente que las GPU queden inactivas.
La congestión de la red, las fallas de enlaces y dispositivos son las fuentes más comunes de demoras y fluctuaciones en las transferencias, y estos problemas se vuelven más frecuentes y más difíciles de resolver a medida que aumenta el tamaño del clúster. Este es el complejo desafío de infraestructura que OpenAI se propuso solucionar.
Según OpenAI, más de 900 millones de personas utilizan ChatGPT cada semana. Mantener y mejorar esos modelos a esa escala significa que cada segundo de tiempo de inactividad de la GPU representa un costo real y una pérdida de capacidad. OpenAI afirma que su objetivo es “no sólo construir una red rápida, sino también construir una que ofrezca un rendimiento muy predecible, incluso en presencia de fallas, para mantener los trabajos de capacitación en movimiento”.
Lo que realmente hace el MRC: tres mecanismos centrales
MRC no es un invento desde cero. Extiende RDMA sobre Ethernet convergente (RoCE), un estándar de la InfiniBand Trade Association (IBTA) que permite el acceso remoto directo a memoria acelerado por hardware entre GPU y CPU. Se basa en técnicas desarrolladas por Ultra Ethernet Consortium (UEC) y las amplía con enrutamiento de origen basado en SRv6 para admitir estructuras de redes de IA a gran escala.
RoCE es un protocolo que permite que una máquina lea o escriba memoria en otra máquina directamente a través de una red Ethernet, sin pasar por la CPU para obtener el máximo rendimiento. SRv6 (enrutamiento de segmentos sobre IPv6) va más allá: la máquina emisora codifica la ruta exacta que debe seguir el paquete directamente dentro del encabezado del paquete, por lo que los conmutadores ya no necesitan ejecutar cálculos de enrutamiento complejos. Esto reduce la carga de procesamiento en los conmutadores y ahorra energía, un factor significativo a escala de centro de datos.
1. Fumigación adaptativa de paquetes para eliminar la congestión
En lugar de enviar cada transferencia a través de una única ruta de red, MRC distribuye los paquetes a través de cientos de rutas simultáneamente, lo que reduce la congestión en el núcleo de la red. Con RoCEv2 tradicional, los paquetes quedaban atrapados en una única ruta desde el punto A al punto B, lo que contribuye a la congestión. Para superar esto, MRC introdujo el equilibrio de carga inteligente por pulverización de paquetes, de modo que si la ruta de un paquete no se puede utilizar, los paquetes pueden atravesar otras rutas en la red. Esto permite una mayor utilización del ancho de banda, una latencia de cola reducida y un equilibrio de carga detallado a nivel de paquete.
2. Recuperación de fallas a nivel de microsegundos mediante enrutamiento de fuente estática SRv6
Cuando fallan las rutas de red, los enlaces o los conmutadores, MRC puede detectar el problema y solucionarlo en una escala de tiempo de microsegundos. Las estructuras de red convencionales pueden tardar segundos o incluso decenas de segundos en estabilizarse después de fallas. Una decisión arquitectónica clave hace esto posible: los conmutadores no necesitan volver a calcular las rutas ni hacer nada más que seguir ciegamente las rutas estáticas con las que fueron configurados. Toda la inteligencia de enrutamiento se encuentra en el nivel de NIC, no en el nivel de conmutador. Se trata de un diseño deliberadamente poco convencional: deshabilitar por completo el enrutamiento dinámico en los conmutadores para evitar que dos mecanismos adaptativos interfieran entre sí.
Antes de MRC, si fallaba un enlace entre la interfaz de red de una GPU y un conmutador de nivel 0, el trabajo de entrenamiento fallaba. Con MRC, el trabajo sobrevive con un rendimiento razonable. Si una interfaz de red de 8 puertos pierde un puerto, la velocidad máxima se reduce en un octavo. MRC detecta esto, recalcula las rutas para evitar el avión fallido e inmediatamente les dice a sus pares que no usen ese avión para el tráfico entrante. La mayoría de los enlaces fallidos se recuperan en un minuto, momento en el que MRC vuelve a poner el avión en funcionamiento.
3. Redes multiplano con menos niveles de conmutadores y menor costo
Aquí es donde MRC cambia fundamentalmente la arquitectura del clúster. En lugar de tratar cada interfaz de red como un enlace de 800 Gb/s, se divide en varios enlaces más pequeños. Por ejemplo, una interfaz se puede conectar a ocho conmutadores diferentes. Un conmutador que puede conectar 64 puertos a 800 Gb/s puede conectar 512 puertos a 100 Gb/s. Esto permite construir una red que conecte completamente alrededor de 131.000 GPU con solo dos niveles de conmutadores. Una red convencional de 800 Gb/s requeriría tres o cuatro niveles.
El ahorro se agrava aún más: el equipo de investigación cuantifica que para un ancho de banda de bisección completo, el diseño multiplano de dos niveles requiere 2/3 de la óptica y 3/5 de la cantidad de conmutadores en comparación con una red de tres niveles. Menos niveles de conmutadores también significan una latencia más baja (la ruta más larga atraviesa solo tres conmutadores en lugar de cinco o siete) y un radio de explosión más pequeño cuando falla cualquier componente individual.
Hardware: qué NIC y conmutadores ejecutan MRC
Según el artículo de investigación, MRC ya se está ejecutando en producción en hardware específico con nombre. Se implementa en NIC RDMA de 400 y 800 Gb/s, incluidas NVIDIA ConnectX-8, AMD Pollara, AMD Vulcano y Broadcom Thor Ultra, con compatibilidad con conmutadores SRv6 en NVIDIA Spectrum-4 y Spectrum-5 (que ejecuta Cumulus y SONiC) y Broadcom Tomahawk 5 a través de Arista EOS. En lo que respecta al protocolo, AMD contribuyó con el algoritmo de control de congestión NSCC, que ahora forma parte de la especificación UEC Congestion Control, junto con extensiones de capa semántica de transporte IB/RDMA que permiten que MRC se integre con los modelos de programación RDMA existentes y, al mismo tiempo, agrega las capacidades de rutas múltiples que lo distinguen de los transportes tradicionales.
Ya en producción: de Stargate a Fairwater
MRC no es sólo un prototipo. Ya está implementado en todas las supercomputadoras NVIDIA GB200 más grandes de OpenAI utilizadas para entrenar modelos de frontera, incluido el sitio con Oracle Cloud Infrastructure (OCI) en Abilene, Texas, y en las supercomputadoras Fairwater de Microsoft. MRC se ha utilizado para entrenar múltiples modelos OpenAI, aprovechando el hardware de NVIDIA y Broadcom. Las supercomputadoras Fairwater de Microsoft están ubicadas en Atlanta y Wisconsin.
MRC se ha utilizado específicamente para entrenar modelos de lenguajes de gran frontera para ChatGPT y Codex. Durante el entrenamiento de un modelo de frontera reciente, OpenAI tuvo que reiniciar cuatro conmutadores de nivel 1. Con MRC, la empresa no necesitaba coordinar el reinicio con los equipos que ejecutaban trabajos de capacitación en el clúster.
Conclusiones clave
OpenAI presenta MRC: OpenAI se asoció con AMD, Broadcom, Intel, Microsoft y NVIDIA para lanzar MRC (Conexión confiable de múltiples rutas) a través de Open Compute Project (OCP). La pulverización de paquetes elimina la congestión: MRC distribuye paquetes a través de cientos de rutas simultáneamente, eliminando la congestión del núcleo y reduciendo la latencia de cola durante el entrenamiento de GPU a gran escala. Recuperación de fallas en microsegundos: MRC detecta fallas en enlaces y conmutadores y redirige el tráfico en microsegundos, manteniendo vivos los trabajos de capacitación a través de fallas que anteriormente habrían causado la terminación completa del trabajo. Topología de dos niveles para más de 131 000 GPU: al dividir las interfaces de 800 Gb/s en ocho planos de 100 Gb/s, MRC admite supercomputadoras con más de 100 000 GPU utilizando solo dos niveles de conmutadores en lugar de tres o cuatro. Ya se utiliza para ChatGPT y Codex: MRC ya está implementado en las supercomputadoras NVIDIA GB200 más grandes de OpenAI y se ha utilizado para entrenar modelos de lenguajes de gran frontera para ChatGPT y Codex.
Consulte el documento y los detalles técnicos. Además, no dude en seguirnos en Twitter y no olvide unirse a nuestro SubReddit de más de 150.000 ML y suscribirse a nuestro boletín. ¡Esperar! estas en telegrama? Ahora también puedes unirte a nosotros en Telegram.
¿Necesita asociarse con nosotros para promocionar su repositorio de GitHub O su página principal de Hugging O su lanzamiento de producto O seminario web, etc.? Conéctate con nosotros
Michal Sutter es un profesional de la ciencia de datos con una Maestría en Ciencias de Datos de la Universidad de Padua. Con una base sólida en análisis estadístico, aprendizaje automático e ingeniería de datos, Michal se destaca en transformar conjuntos de datos complejos en conocimientos prácticos.