Blog

关于分布式模型并行的分正式评论

关于 Data Parallel(DP、Tensor Parallel(TP)和 Pipeline Parallel(PP)等分布式并行策略,与 MegatronDeepSpeed FSDP 等实现的一些深入研究与讨论。分布式并行训练主要解决两类问题:

  1. 模型分片:模型大小远超单节点存储上来,需要多节点分片存储和计算担;
  2. 并行训练:提高单位时间内的算力密度,进而降低整体训练时间;
    分布式并行训练几乎总是会引入昂贵的成本,比如增加了昂贵的多节点通信、引入了额外的多机稳定性问题、以及额外的开发与调试成本等,因此我们应该尽量避免引入分布式并行训练。而不得不引入分布式训练的场景中,也应充分考虑通信开销,尽量降低并行的规模。

3D 模型并行

根据切分维度的不同,并行策略主要分为如下几类:

  1. Data Parallel(DP:将数据切分成 N 份,每个 instance 采用完全相同的配置,在计算梯度后通过 all reduce 全局同步梯度,并分别更新;
  2. Tensor Parallel(TP:将每个 tensor 切分成 N 份,在矩阵乘法等计算时进行同步;也称为横切
  3. Pipeline Parallel (PP:将模型按执行前后顺序切分多分(通常按 layer 切分,并根据顺序依次执行;
  4. Zero Redundancy Optimizer(ZeRO:同样将 tensor 切分成 N 份,但是在前向与后向计算时在每个分布式节点重建原始 Tensor
  5. Sequence Parallel(SP:在超长序列上进行训练时,将计算切分至多个节点;

dp_tp_pp.png

关于 Scaling Law 的非正式评论

大模型被广泛关注的起点是 OpenAI 发布 ChatGPT,凭借优秀的对话能力与 In-Context Learning 的能力,吸引了整个 AI 圈的关注。
LLM技术的发展主要得益于Scaling Law给出的一系列预测,这些预测主导了最近几年LLM模型在参数、数据和算力规模上快速增长。
甚至有人提出了”Scale is All You Need!”。本文主要讨论LLM行为的可预测性,记录关于Scaling Law、Grokking和Double descent等empirical phenomenon的讨论。

大模型的良好泛化性

OpenAI GPT3 论文中提出 GPT-3 等语言模型(language model)是 few shot learner。这一概念出自 In-Context Learning,具体是指在模型预测时通过上下文中给出足够的背景知识和任务描述,然后直接预测 1,比如:

  • Zero-shot(没有示例:{8+9=?}
  • One-shot(一个示例:5+5=10, {8+9=?}
  • Few-shot(多个示例:6+7=13,6+6=12,5+5=10, {==8+9=? ==}

Open AI 2020 年的大模型 Scaling Law 论文中发现,若将模型迁移到新的数据集,新数据集上的测试 loss 与训练数据集上的测试 loss 存在一个相对恒定的 offset。随着模型规模的增大,训练数据集和新数据集上的测试 loss 近似同步下降。这也就意味着可以通过持续增大模型大小来降低模型在所有数据集上的 loss

Pasted image 20240121235222.png

这种优秀的泛化性给出了一种全新的探索方向:相比探索更复杂的模型结构,探索更大的模型是否能够成为深度学习的全新路径。