https://github.com/NVIDIA/Megatron-LMhttps://github.com/NVIDIA/Megatron-LM
目录
Megatron Overview
此存储库包含两个基本组件:Megatron-LM 和 Megatron-Core。Megatron-LM 是一个以研究为导向的框架,利用 Megatron-Core 进行大型语言模型 (LLM) 训练。另一方面,Megatron-Core 是一个 GPU 优化训练技术库,附带正式的产品支持,包括版本控制的 API 和常规版本。您可以将 Megatron-Core 与 Megatron-LM 或 Nvidia NeMo 框架一起使用,以实现端到端和云原生解决方案。或者,您可以将 Megatron-Core 的构建块集成到您首选的训练框架中。
Megatron-LM
Megatron(1、2 和 3)于 2019 年首次推出,在 AI 社区引发了一波创新浪潮,使研究人员和开发人员能够利用该库的基础来进一步推动 LLM 的进步。如今,许多最流行的 LLM 开发人员框架都受到开源 Megatron-LM 库的启发并直接利用开源 Megatron-LM 库构建,从而刺激了一波基础模型和 AI 初创公司。基于 Megatron-LM 构建的一些最流行的 LLM 框架包括 Colossal-AI、HuggingFace Accelerate 和 NVIDIA NeMo 框架。可以直接使用 Megatron 的项目列表可以在这里找到。
Megatron-Core
Megatron-Core 是一个基于 PyTorch 的开源库,其中包含 GPU 优化技术和尖端的系统级优化。它将它们抽象为可组合的模块化 API,为开发人员和模型研究人员提供了充分的灵活性,可以在 NVIDIA 加速计算基础设施上大规模训练自定义转换器。此库与所有 NVIDIA Tensor Core GPU 兼容,包括对 NVIDIA Hopper 架构的 FP8 加速支持。
Megatron-Core 提供核心构建块,例如注意力机制、transformer 块和层、归一化层和嵌入技术。激活重新计算、分布式检查点等其他功能也内置于库中。构建块和功能都经过 GPU 优化,可以使用高级并行化策略构建,以实现 NVIDIA 加速计算基础设施上的最佳训练速度和稳定性。Megatron-Core 库的另一个关键组件包括高级模型并行技术(张量、序列、管道、上下文和 MoE 专家并行)。
Megatron-Core 可与企业级 AI 平台 NVIDIA NeMo 一起使用。或者,您可以在此处使用本机 PyTorch 训练循环探索 Megatron-Core。访问 Megatron-Core 文档以了解更多信息。
Training Speed and Scalability
Setup
Usage
安装后,有几种可能的工作流程。最全面的是:
- 数据预处理
- 预训练
- 微调(对于零镜头任务可选)
- 下游任务评估或文本生成
但是,步骤 1 和 2 可以用上面提到的预训练模型之一来代替。
我们在 examples 目录中提供了几个用于预训练 BERT 和 GPT 的脚本,以及用于零样本和微调下游任务的脚本,包括 MNLI、RACE、WikiText103 和 LAMBADA 评估。还有一个用于 GPT 交互式文本生成的脚本。
Training
BERT Pretraining
GPT Pretraining
T5 Pretraining
Distributed Pretraining
Activation Checkpointing and Recomputation
Distributed Optimizer
FlashAttention
GPT-3 Example
Retro and InstructRetro
Mamba-based Language Models
Mixture of Experts
Evaluation and Tasks
GPT Text Generation
GPT Evaluation
LAMBADA Cloze Accuracy
BERT Task Evaluation (BERT模型评估)
RACE Evaluation
MNLI Evaluation
Llama-2 Inference and Finetuning
Model Optimization and Deployment
Quantization and TensorRT-LLM Deployment
Datasets
Reproducibility
Checkpoint conversion
Model class conversion
Checkpoint format conversion
Projects Using Megatron
Below are some of the projects where we have directly used Megatron:
- BERT and GPT Studies Using Megatron
- BioMegatron: Larger Biomedical Domain Language Model
- End-to-End Training of Neural Retrievers for Open-Domain Question Answering
- Large Scale Multi-Actor Generative Dialog Modeling
- Local Knowledge Powered Conversational Agents
- MEGATRON-CNTRL: Controllable Story Generation with External Knowledge Using Large-Scale Language Models
- RACE Reading Comprehension Dataset Leaderboard
- Training Question Answering Models From Synthetic Data
- Few-shot Instruction Prompts for Pretrained Language Models to Detect Social Biases
- Exploring the Limits of Domain-Adaptive Training for Detoxifying Large-Scale Language Models
- Using DeepSpeed and Megatron to Train Megatron-Turing NLG 530B, A Large-Scale Generative Language Model
- Multi-Stage Prompting for Knowledgeable Dialogue Generation
- Evaluating Parameter Efficient Learning for Generation
- Exploring the Limits of Domain-Adaptive Training for Detoxifying Large-Scale Language Models
- Shall We Pretrain Autoregressive Language Models with Retrieval? A Comprehensive Study
- InstructRetro: Instruction Tuning post Retrieval-Augmented Pretraining
- An Empirical Study of Mamba-based Language Models