Conocimiento Bóveda 6 /90 - ICML 2023
Usando Megatron para Entrenar Modelos de Lenguaje Grandes
Deepak Narayanan
< Imagen del Resumen >

Gráfico de Conceptos & Resumen usando Claude 3.5 Sonnet | Chat GPT4o | Llama 3:

graph LR classDef training fill:#f9d4d4, font-weight:bold, font-size:14px classDef parallelism fill:#d4f9d4, font-weight:bold, font-size:14px classDef optimization fill:#d4d4f9, font-weight:bold, font-size:14px classDef resilience fill:#f9f9d4, font-weight:bold, font-size:14px A["Usando Megatron para
Entrenar Modelos de
Lenguaje Grandes"] --> B["Desafíos de
Entrenamiento"] A --> C["Paralelismo"] A --> D["Optimización"] A --> E["Resiliencia"] B --> B1["Límites de memoria
desafían el entrenamiento
de modelos grandes. 1"] B --> B2["Modelos enormes no
caben en la memoria
de la GPU. 2"] B --> B3["Entrenamiento costoso,
años en una
GPU. 3"] B --> B4["Escalado a través de
aceleradores necesario. 4"] B --> B5["Grandes lotes necesitan
más tokens. 5"] C --> C1["Combinando paralelismo
para eficiencia. 6"] C --> C2["Paralelismo de datos:
copias del modelo, dividir
entrada. 7"] C --> C3["Paralelismo de modelo:
dividir modelo a través
de dispositivos. 8"] C --> C4["Paralelismo de tensor:
particionar capas,
operadores. 9"] C --> C5["Paralelismo de tubería:
dividir capas del
modelo. 10"] C --> C6["Combinar dimensiones de
paralelismo cuidadosamente. 15"] D --> D1["Paralelismo de datos necesita
costoso
all-reduce. 11"] D --> D2["Paralelismo de tensor:
multiplicaciones distribuidas. 12"] D --> D3["Paralelismo de tubería
riesgo de periodos
inactivos. 13"] D --> D4["Micro-lotes reducen
tiempo
inactivo. 14"] D --> D5["Optimizaciones de bajo nivel
aumentan
rendimiento. 20"] D --> D6["Kernels personalizados,
JIT mantienen
cálculo limitado. 21"] E --> E1["Fallos de nodo,
se necesita punto de control
periĆ³dico. 28"] E --> E2["Intervalo de punto de control
depende de tasas de
fallo. 29"] E --> E3["Recuperación eficiente
de fallos trabajo
futuro. 30"] E --> E4["Modelos MoE necesitan
diferente
paralelismo. 23"] E --> E5["Modelos MoE trasladan
memoria a
pesos. 26"] E --> E6["Paralelismo de expertos
introduce nuevos
patrones. 27"] class A,B,B1,B2,B3,B4,B5 training class C,C1,C2,C3,C4,C5 parallelism class D,D1,D2,D3,D4,D5,D6 optimization class E,E1,E2,E3,E4,E5,E6 resilience

Resumen:

1.- Entrenar grandes modelos de lenguaje es desafiante debido a las limitaciones de memoria de los aceleradores actuales.

2.- Los modelos con cientos de miles de millones de parámetros no caben en la memoria de la GPU.

3.- El entrenamiento es computacionalmente costoso, tomando años en una sola GPU para modelos como GPT-

4.- Escalar a través de múltiples aceleradores es necesario para hacer viable el entrenamiento.

5.- Los tamaños de lotes grandes pueden requerir más tokens para lograr la misma pérdida, limitando la escalabilidad del paralelismo de datos.

6.- Combinar diferentes dimensiones de paralelismo es crucial para un entrenamiento eficiente a gran escala.

7.- El paralelismo de datos implica replicar el modelo a través de dispositivos y dividir los datos de entrada.

8.- El paralelismo de modelo divide una copia única del modelo a través de múltiples dispositivos.

9.- El paralelismo de tensor del modelo particiona capas individuales u operadores a través de dispositivos.

10.- El paralelismo de tubería del modelo divide las capas del modelo a través de diferentes dispositivos.

11.- El paralelismo de datos requiere operaciones all-reduce costosas para los gradientes de peso después de cada iteración.

12.- El paralelismo de tensor del modelo implica multiplicaciones de matrices distribuidas, requiriendo comunicación entre dispositivos.

13.- El paralelismo de tubería puede llevar a periodos inactivos (burbuja de tubería) si no se gestiona cuidadosamente.

14.- La micro-loteo en el paralelismo de tubería reduce el tiempo inactivo al procesar lotes más pequeños.

15.- Combinar dimensiones de paralelismo (paralelismo PTD) requiere una consideración cuidadosa de las interacciones entre modos.

16.- Aumentar el tamaño del paralelismo de tensor del modelo disminuye el tamaño de la burbuja de tubería pero puede aumentar la comunicación entre servidores.

17.- La estrategia de paralelismo óptima depende de la configuración del hardware, como GPUs por servidor y velocidad de comunicación entre servidores.

18.- Diferentes horarios de tubería pueden intercambiar el tamaño de la burbuja de tubería por más comunicación.

19.- Factores como el tamaño global del lote y el tamaño del micro-lote afectan la comunicación, la burbuja de tubería y la huella de memoria.

20.- Las optimizaciones de bajo nivel son necesarias para un buen rendimiento listo para usar.

21.- Los kernels personalizados y PyTorch JIT ayudan a mantener los operadores limitados por cálculo en lugar de por memoria.

22.- Escalado eficiente logrado para grandes modelos y conteos de GPU, con el 52% del rendimiento teórico para un modelo de un billón de parámetros.

23.- Los modelos de Mezcla de Expertos (MoE) tienen diferentes proporciones de peso-activación, requiriendo diferentes estrategias óptimas de paralelismo.

24.- Automatizar el descubrimiento de estrategias óptimas de paralelización para modelos y hardware arbitrarios es una cuestión abierta.

25.- Implementación de código abierto (Megatron) disponible en GitHub con características como Flash Attention.

26.- Los modelos MoE tienen más parámetros de peso, trasladando la huella de memoria de las activaciones a los pesos.

27.- El paralelismo de expertos en modelos MoE introduce nuevos patrones de comunicación.

28.- Los fallos de nodo son un problema a gran escala, actualmente abordado mediante puntos de control periódicos.

29.- El intervalo óptimo de puntos de control basado en las tasas de fallo del clúster es importante.

30.- Estrategias más eficientes de recuperación de fallos son un área para futuros trabajos.

Bóveda del Conocimiento construida porDavid Vivancos 2024