Los modelos de lenguaje grande (LLM) son sistemas de inteligencia artificial entrenados con grandes cantidades de datos de texto, lo que les permite comprender, generar y razonar con lenguaje natural de manera altamente capaz y flexible. La formación LLM ha experimentado avances notables en los últimos años, y las organizaciones han superado los límites de lo posible en términos de tamaño, rendimiento y eficiencia del modelo. En esta publicación, exploramos cómo la optimización del 8PM puede acelerar significativamente el entrenamiento de modelos grandes en Amazon SageMaker Instancias P5.
Formación de LLM con SageMaker P5
En 2023, SageMaker anunciado Instancias P5, que admiten hasta ocho de las últimas GPU NVIDIA H100 Tensor Core. Equipadas con tecnologías de red de gran ancho de banda como EFA, las instancias P5 proporcionan una poderosa plataforma para la capacitación distribuida, lo que permite entrenar modelos grandes en paralelo en múltiples nodos. Con el uso de Capacitación sobre el modelo de Amazon SageMakerlas organizaciones han podido lograr mayores velocidades de capacitación y eficiencia al recurrir a instancias P5. Esto muestra el potencial transformador de entrenar diferentes escalas de modelos de forma más rápida y eficiente utilizando SageMaker Training.
Formación LLM utilizando el FP8
Las instancias P5, que debajo son GPU NVIDIA H100, también vienen con Capacidades de los modelos de entrenamiento utilizando la precisión del FP8.. El tipo de datos del 8PM se ha convertido en un punto de inflexión en la formación de LLM. Al reducir la precisión de los pesos y activaciones del modelo, FP8 permite un uso más eficiente de la memoria y un cálculo más rápido, sin afectar significativamente la calidad del modelo. El rendimiento para ejecutar operaciones matriciales como multiplicadores y convoluciones en tensores flotantes de 32 bits es mucho menor que el uso de tensores flotantes de 8 bits. La precisión del FP8 reduce la huella de datos y los requisitos computacionales, lo que lo hace ideal para modelos a gran escala donde la memoria y la velocidad son críticas. Esto permite a los investigadores entrenar modelos más grandes con los mismos recursos de hardware, o entrenar modelos más rápido manteniendo un rendimiento comparable. Para que los modelos sean compatibles con el FP8, NVIDIA lanzó el Biblioteca de motor transformador (TE)que proporciona soporte para algunas capas como Linear, LayerNormy DotProductAttention. Para permitir el entrenamiento del FP8, los modelos deben utilizar la API TE para incorporar estas capas cuando se transmiten al FP8. Por ejemplo, el siguiente código Python muestra cómo se pueden integrar capas compatibles con FP8:
try:
import transformer_engine.pytorch as te
using_te = True
except ImportError as ie:
using_te = False
......
linear_type: nn.Module = te.Linear if using_te else nn.Linear
......
in_proj = linear_type(dim, 3 * n_heads * head_dim, bias=False, device="cuda" if using_te)
out_proj = linear_type(n_heads * head_dim, dim, bias=False, device="cuda" if using_te)
......
Resultados
Realizamos algunas pruebas utilizando LLM de parámetros 1B y 7B ejecutando entrenamiento con y sin FP8. La prueba se ejecuta en 24 mil millones de tokens durante una época, lo que proporciona una comparación del rendimiento (en tokens por segundo por GPU) y el rendimiento del modelo (en números de pérdida). Para los modelos de parámetros 1B, calculamos los resultados para comparar el rendimiento con el FP8 utilizando un número diferente de instancias para el entrenamiento distribuido. La siguiente tabla resume nuestros resultados:
| Número de nodos P5 | Sin el 8PM | Con el 8PM | % más rápido mediante el uso del FP8 | % de pérdida mayor con el 8PM que sin el 8PM | ||||
| Fichas/seg/GPU | % Disminuir | Pérdida después de 1 época | Fichas/seg/GPU | % Disminuir | Pérdida después de 1 época | |||
| 1 | 40200 | – | 6.205 | 40800 | – | 6.395 | 1,49 | 3.06 |
| 2 | 38500 | 4.2288 | 6.211 | 41600 | -3.4825 | 6.338 | 8.05 | 2.04 |
| 4 | 39500 | 1.7412 | 6.244 | 42000 | -4.4776 | 6.402 | 6.32 | 2.53 |
| 8 | 38200 | 4.9751 | 6.156 | 41800 | -3,98 | 6.365 | 9.42 | 3.39 |
| 16 | 35500 | 11.6915 | 6.024 | 39500 | 1.7412 | 6.223 | 11.26 | 3.3 |
| 32 | 33500 | 16.6667 | 6.112 | 38000 | 5.4726 | 6.264 | 13.43 | 2.48 |
El siguiente gráfico muestra el rendimiento del modelo de parámetro 1B en términos de tokens/segundo/gpu en diferentes números de instancias P5:
Para los modelos de parámetros 7B, calculamos los resultados para comparar el rendimiento con el FP8 utilizando un número diferente de instancias para el entrenamiento distribuido. La siguiente tabla resume nuestros resultados:
| Número de nodos P5 | Sin el 8PM | Con el 8PM | % más rápido mediante el uso del FP8 | % de pérdida mayor con el 8PM que sin el 8PM | ||||
| Fichas/seg/GPU | % Disminuir | Pérdida después de 1 época | Fichas/seg/GPU | % Disminuir | Pérdida después de 1 época | |||
| 1 | 9350 | – | 6.595 | 11000 | – | 6.602 | 15 | 0,11 |
| 2 | 9400 | -0.5347 | 6.688 | 10750 | 2.2935 | 6.695 | 12.56 | 0.1 |
| 4 | 9300 | 0.5347 | 6.642 | 10600 | 3.6697 | 6.634 | 12.26 | -0,12 |
| 8 | 9250 | 1.0695 | 6.612 | 10400 | 4.9541 | 6.652 | 11.06 | 0,6 |
| 16 | 8700 | 6.9518 | 6.594 | 10100 | 8.7155 | 6.644 | 13,86 | 0,76 |
| 32 | 7900 | 15.508 | 6.523 | 9700 | 11.8182 | 6.649 | 18.56 | 1,93 |
El siguiente gráfico muestra el rendimiento del modelo de parámetros 7B en términos de tokens/segundo/gpu en diferentes números de instancias P5:
Las tablas anteriores muestran cómo, cuando se utiliza FP8, el entrenamiento de los modelos 1B es un 13% más rápido y el entrenamiento de los modelos 7B es un 18% más rápido. A medida que la velocidad de entrenamiento del modelo aumenta con el FP8, generalmente existe una compensación con una disminución más lenta de la pérdida. Sin embargo, el impacto en el rendimiento del modelo después de una época sigue siendo mínimo, con solo aproximadamente un 3 % más de pérdida para los modelos 1B y un 2 % más de pérdida para los modelos 7B que usan FP8 en comparación con el entrenamiento sin usar FP8. El siguiente gráfico ilustra el comportamiento de las pérdidas.
Como se discutió en Entrenamiento escalable de múltiples nodos con TensorFlowdebido a la comunicación entre nodos, se observa una pequeña disminución en el rendimiento general a medida que aumenta el número de nodos.
El impacto en la formación LLM y más allá
El uso de la precisión del FP8 combinada con instancias de SageMaker P5 tiene implicaciones importantes para el campo de la formación LLM. Al demostrar la viabilidad y eficacia de este enfoque, se abre la puerta a que otros investigadores y organizaciones adopten técnicas similares, acelerando el progreso en la formación de modelos grandes. Además, los beneficios del 8PM y el hardware avanzado van más allá de la formación LLM. Estos avances también pueden acelerar la investigación en campos como la visión por computadora y el aprendizaje por refuerzo al permitir la capacitación de modelos más grandes y complejos con menos tiempo y menos recursos, lo que en última instancia ahorra tiempo y costos. En términos de inferencia, los modelos con activaciones del 8PM tienen demostrado mejorar dos veces sobre modelos BF16.
Conclusión
La adopción de la precisión del FP8 y las instancias de SageMaker P5 marca un hito importante en la evolución de la formación LLM. Al ampliar los límites del tamaño del modelo, la velocidad de entrenamiento y la eficiencia, estos avances han abierto nuevas posibilidades para la investigación y la innovación en modelos grandes. A medida que la comunidad de IA se base en estos avances tecnológicos, podemos esperar aún más avances en el futuro. La investigación en curso está explorando nuevas mejoras a través de técnicas como PyTorch 2.0 Datos paralelos completamente fragmentados (FSDP) y AntorchaCompile. Combinar estos avances con la formación del 8PM podría conducir a una formación LLM aún más rápida y eficiente. Para aquellos interesados en el impacto potencial del 8PM, los experimentos con modelos 1B o 7B, como GPT-Neo o Metallama 2en las instancias SageMaker P5 podría ofrecer información valiosa sobre las diferencias de rendimiento en comparación con FP16 o FP32.
Acerca de los autores
Romil Shah es científico de datos sénior en AWS Professional Services. Romil tiene más de 8 años de experiencia en la industria en visión por computadora, aprendizaje automático, inteligencia artificial generativa y dispositivos de borde de IoT. Trabaja con clientes, ayudándolos en la capacitación, optimización e implementación de modelos básicos para dispositivos perimetrales y en la nube.
Mike Garrison es un arquitecto de soluciones globales con sede en Ypsilanti, Michigan. Utilizando sus veinte años de experiencia, ayuda a acelerar la transformación tecnológica de las empresas automotrices. En su tiempo libre le gusta jugar videojuegos y viajar.