1 puntos por GN⁺ 2024-06-29 | 1 comentarios | Compartir por WhatsApp

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

 
GN⁺ 2024-06-29
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

    • Todos los componentes, como InfiniBand, Ethernet, GPU y nodos, deben funcionar perfectamente
    • Si aunque sea una de más de 12,000 conexiones es inestable, todo el entrenamiento puede volverse más lento
    • Comparten scripts open source y una guía integral sobre la configuración de la infraestructura
    • Es una de tres partes sobre el entrenamiento de un modelo 70B; las otras dos se enfocan en evaluación y optimización de hiperparámetros con CARBS
  • En un clúster hay 4,092 GPU H100 distribuidas en 511 computadoras

    • Esto equivale a más de 100 millones de dólares en costo de GPU
    • Se preguntan si algo así sería posible con el presupuesto de una PC gamer
  • Este tema se discutió hace unos días en el pódcast Latent Space

    • Es un buen episodio para escuchar el contexto detrás de las decisiones
  • Se preguntan por qué se necesita tanto hardware de PC

    • Piensan que quizá podría componerse de un backend PCI + InfiniBand, GPU y pequeños controladores ARM
    • Se preguntan si se debe a la inercia de diseños anteriores o a la falta de mercado para controladores especializados de GPU
  • Sería interesante repetir el entrenamiento con el mismo hardware usando Unicode crudo en lugar de datos de entrenamiento tokenizados

    • Quieren ver la diferencia en desempeño de ortografía y rima
  • 4,092 GPU H100

    • Están en una tarea de "self-coding"
    • Podría tratarse de una solución no-code o minimal code
    • Hay muchos artículos y materiales interesantes en el sitio web
  • Hay interés en el consumo total de energía necesario para construir el modelo

    • Se preguntan si hay cifras sobre energía y enfriamiento
    • Mencionan que Mark Zuckerberg está planeando el próximo modelo de 1GW
  • Se preguntan cuál fue el costo total

    • Incluyendo costo de hardware, tiempo de desarrollo, electricidad y enfriamiento
  • Cisco está impulsando una nueva colaboración con NVIDIA a velocidad de 800G por puerto

    • Se preguntan si InfiniBand es accesible para las GPU
    • Agradecen que se haya compartido
  • Se preguntan qué pasa con el hardware y la infraestructura después de que el modelo termina de entrenarse