Transformers 文档

MegatronGPT2

MegatronGPT2

概述

MegatronGPT2模型由Mohammad Shoeybi、Mostofa Patwary、Raul Puri、Patrick LeGresley、Jared Casper和Bryan Catanzaro在Megatron-LM: Training Multi-Billion Parameter Language Models Using Model Parallelism中提出。

论文的摘要如下:

最近在语言建模方面的工作表明,训练大型变压器模型可以推动自然语言处理应用的技术进步。然而,由于内存限制,非常大的模型可能很难训练。在这项工作中,我们展示了训练非常大的变压器模型的技术,并实现了一种简单、高效的层内模型并行方法,使得训练具有数十亿参数的变压器模型成为可能。我们的方法不需要新的编译器或库更改,与管道模型并行正交且互补,并且可以通过在原生PyTorch中插入少量通信操作完全实现。我们通过使用512个GPU收敛基于变压器的模型,参数高达83亿,展示了这种方法。与一个强大的单GPU基线相比,我们在整个应用中维持了15.1 PetaFLOPs,缩放效率为76%,该基线维持了39 TeraFLOPs,这是峰值FLOPs的30%。为了证明大型语言模型可以进一步推动技术进步(SOTA),我们训练了一个83亿参数的变压器语言模型,类似于GPT-2,以及一个39亿参数的模型,类似于BERT。我们展示了在类似BERT的模型中,随着模型规模的增大,仔细关注层归一化的位置对于提高性能至关重要。使用GPT-2模型,我们在WikiText103(10.8,相比SOTA困惑度15.8)和LAMBADA(66.5%,相比SOTA准确率63.2%)数据集上取得了SOTA结果。我们的BERT模型在RACE数据集上取得了SOTA结果(90.9%,相比SOTA准确率89.4%)。

该模型由jdemouth贡献。原始代码可以在这里找到。 该仓库包含了Megatron语言模型的多GPU和多节点实现。特别是,它包含了一种使用“张量并行”和“管道并行”技术的混合模型并行方法。

使用提示

我们提供了预训练的GPT2-345M检查点,用于评估或微调下游任务。

要访问这些检查点,首先注册并设置NVIDIA GPU Cloud (NGC) Registry CLI。有关下载模型的更多文档可以在NGC文档中找到。

或者,您可以直接使用以下方式下载检查点:

wget --content-disposition https://api.ngc.nvidia.com/v2/models/nvidia/megatron_lm_345m/versions/v0.0/zip -O
megatron_gpt2_345m_v0_0.zip

一旦你从NVIDIA GPU Cloud (NGC) 获得了检查点,你需要将其转换为一种格式,以便Hugging Face Transformers GPT2实现能够轻松加载。

以下命令允许您进行转换。我们假设文件夹 models/megatron_gpt2 包含 megatron_gpt2_345m_v0_0.zip 并且命令是从该文件夹运行的:

python3 $PATH_TO_TRANSFORMERS/models/megatron_gpt2/convert_megatron_gpt2_checkpoint.py megatron_gpt2_345m_v0_0.zip

MegatronGPT2 架构与 OpenAI GPT-2 相同。有关配置类及其参数的信息,请参阅 GPT-2 文档

< > Update on GitHub