FP8-LM: Treinamento de Modelos de Linguagem de Grande Escala em FP8
FP8-LM: Training FP8 Large Language Models
October 27, 2023
Autores: Houwen Peng, Kan Wu, Yixuan Wei, Guoshuai Zhao, Yuxiang Yang, Ze Liu, Yifan Xiong, Ziyue Yang, Bolin Ni, Jingcheng Hu, Ruihang Li, Miaosen Zhang, Chen Li, Jia Ning, Ruizhe Wang, Zheng Zhang, Shuguang Liu, Joe Chau, Han Hu, Peng Cheng
cs.AI
Resumo
Neste artigo, exploramos formatos de dados de baixa precisão FP8 para o treinamento eficiente de modelos de linguagem de grande escala (LLMs). Nossa principal percepção é que a maioria das variáveis, como gradientes e estados do otimizador, no treinamento de LLMs pode empregar formatos de dados de baixa precisão sem comprometer a precisão do modelo e sem exigir alterações nos hiperparâmetros. Especificamente, propomos um novo framework de precisão mista automática FP8 para treinamento de LLMs. Este framework oferece três níveis de utilização de FP8 para simplificar o treinamento de precisão mista e paralelo distribuído para LLMs. Ele incorpora gradualmente gradientes de 8 bits, estados do otimizador e aprendizado distribuído de maneira incremental. Os resultados dos experimentos mostram que, durante o treinamento do modelo GPT-175B na plataforma GPU H100, nosso framework de treinamento de precisão mista FP8 não apenas alcançou uma redução notável de 42% no uso real de memória, mas também foi 64% mais rápido do que o amplamente adotado framework BF16 (ou seja, Megatron-LM), superando a velocidade do Nvidia Transformer Engine em 17%. Isso reduz substancialmente os custos de treinamento para grandes modelos de base. Além disso, nossa metodologia de treinamento de precisão mista FP8 é genérica. Ela pode ser aplicada de forma contínua a outras tarefas, como ajuste fino de instruções de LLMs e aprendizado por reforço com feedback humano, oferecendo economia nos custos de ajuste fino. Nosso framework de treinamento de baixa precisão FP8 está disponível em código aberto em {https://github.com/Azure/MS-AMP}{aka.ms/MS.AMP}.
English
In this paper, we explore FP8 low-bit data formats for efficient training of
large language models (LLMs). Our key insight is that most variables, such as
gradients and optimizer states, in LLM training can employ low-precision data
formats without compromising model accuracy and requiring no changes to
hyper-parameters. Specifically, we propose a new FP8 automatic mixed-precision
framework for training LLMs. This framework offers three levels of FP8
utilization to streamline mixed-precision and distributed parallel training for
LLMs. It gradually incorporates 8-bit gradients, optimizer states, and
distributed learning in an incremental manner. Experiment results show that,
during the training of GPT-175B model on H100 GPU platform, our FP8
mixed-precision training framework not only achieved a remarkable 42% reduction
in real memory usage but also ran 64% faster than the widely adopted BF16
framework (i.e., Megatron-LM), surpassing the speed of Nvidia Transformer
Engine by 17%. This largely reduces the training costs for large foundation
models. Furthermore, our FP8 mixed-precision training methodology is generic.
It can be seamlessly applied to other tasks such as LLM instruction tuning and
reinforcement learning with human feedback, offering savings in fine-tuning
expenses. Our FP8 low-precision training framework is open-sourced at
{https://github.com/Azure/MS-AMP}{aka.ms/MS.AMP}.