Configuración de infraestructura y scripts
Introducción
- Durante varios meses, un pequeño equipo de investigación y de ingeniería entrenó desde cero un modelo de 70B parámetros en su propia infraestructura, superando a GPT-4o zero-shot en tareas relacionadas con razonamiento.
- Hoy comparten una guía integral sobre la configuración de infraestructura necesaria, desde la configuración inicial del clúster y la instalación del sistema operativo hasta la recuperación automática de errores durante el entrenamiento.
- Explican en detalle los desafíos que enfrentaron en cada etapa y cómo los resolvieron, y publican los scripts de infraestructura para que otros equipos puedan construir infraestructura estable con mayor facilidad.
Contexto: cómo funciona este sistema
- Se necesitan GPUs rápidas para ejecutar con agilidad experimentos de modelos de lenguaje a gran escala.
- Usan un clúster con 4,092 GPUs H100 distribuidas en 511 computadoras.
- La red InfiniBand permite la comunicación de alta velocidad entre GPUs.
Proceso: cómo pasar de bare metal a un clúster completamente operativo
Aprovisionamiento de máquinas individuales
- Establecen la conexión Ethernet inicial al clúster a través de la red de administración y acceden al BMC (controlador de administración de la placa base).
- Usan iDRAC para instalar Ubuntu 22.04 en el primer servidor y, a partir de ahí, configurar el resto de los servidores.
Instalación del SO en todas las máquinas
- Usan el software MAAS para aprovisionar el resto de los servidores.
- Arrancan por red mediante PXE y herramientas automatizadas de iDRAC, y configuran MAAS para que responda a las solicitudes de arranque PXE.
Diagnóstico de máquinas averiadas
- Cerca del 10% de las máquinas fallan al arrancar, principalmente por problemas físicos.
- Detectan los problemas mediante verificaciones automatizadas y solicitan a Dell nuevas pruebas o generan tickets para el personal del centro de datos.
Configuración mínima de bare metal observable
- Instalan Docker, los drivers de GPU para centro de datos, Prometheus Node Exporter y otros componentes en todos los servidores.
- Ejecutan diagnósticos básicos de GPU para verificar que la mayoría de las GPUs funcionen correctamente.
Entrenamiento con GPU en un solo nodo
- Verifican que todas las máquinas puedan ejecutar por sí solas trabajos con GPU.
- Resuelven errores relacionados con GPU y problemas de conexión entre el bus PCIe y las tarjetas de red.
Aprovisionamiento de InfiniBand
- Instalan UFM (Unified Fabric Manager), detectan los switches de red y les asignan nombres según su ubicación física.
- Resuelven problemas de cableado de red y alertas de temperatura.
Garantizar máquinas completamente sanas
- Usan diversas verificaciones de estado para confirmar qué hosts sanos pueden utilizarse para entrenamiento.
- Realizan comprobaciones de GPU, espacio en disco, Docker, dmesg, iDRAC, discos, InfiniBand, NVLink, GDR, VBIOS, Flint, PSB y más.
Diagnóstico de problemas comunes de entrenamiento
- Una vez que el hardware comienza a funcionar correctamente, inician el entrenamiento.
- Resuelven problemas como fallos al inicio, caídas a mitad del proceso, bloqueos sin información de stack trace y degradación de la velocidad de entrenamiento.
Mejora de herramientas de infraestructura
- Desarrollan diversas herramientas y sistemas para que el entrenamiento avance sin problemas.
- Desactivan automáticamente máquinas averiadas y componentes de red defectuosos, y automatizan las solicitudes de reparación.
- Construyen un sistema de archivos mirror local y un registro local distribuido de Docker.
- Configuran herramientas de monitoreo de rendimiento y escriben herramientas para detectar lotes de entrenamiento lentos y entender su causa.
Opinión de GN⁺
- Este artículo es muy útil porque ofrece experiencia práctica y soluciones para la configuración y administración de clústeres a gran escala.
- Explica bien la complejidad de construir la infraestructura necesaria para entrenar modelos de lenguaje a gran escala.
- Proporciona varios scripts y herramientas que otros equipos pueden tomar como referencia al construir infraestructura similar.
- Explica claramente la importancia de la red InfiniBand y los problemas que pueden surgir durante el proceso de configuración.
- También describe bien los aspectos que conviene considerar, así como las ventajas y desventajas, al adoptar nuevas tecnologías o código abierto.
1 comentarios
Comentarios de Hacker News
Un pequeño equipo de investigación entrenó un modelo de 70B parámetros en su propia infraestructura y superó a GPT-4 zero-shot en tareas relacionadas con razonamiento
En un clúster hay 4,092 GPU H100 distribuidas en 511 computadoras
Este tema se discutió hace unos días en el pódcast Latent Space
Se preguntan por qué se necesita tanto hardware de PC
Sería interesante repetir el entrenamiento con el mismo hardware usando Unicode crudo en lugar de datos de entrenamiento tokenizados
4,092 GPU H100
Hay interés en el consumo total de energía necesario para construir el modelo
Se preguntan cuál fue el costo total
Cisco está impulsando una nueva colaboración con NVIDIA a velocidad de 800G por puerto
Se preguntan qué pasa con el hardware y la infraestructura después de que el modelo termina de entrenarse