Concept of SYS for LLM

Lifecycle for LLM SYS

  1. collection and preprocessing of data && choosing an appropriate model.
  2. training phase
  3. Model evaluation and fine-tuning
  4. serving stage

Challenge

  1. 模型的参数量不断增加从GPT-3(175B)到PanGu(1085B),导致需要的内存越来越多
  2. 集群中通信是瓶颈

most significant challenges are the high demands for memory and computational power.

Strategies

Overview

Model training

方向:Network, Computing, and Storage Optimization

  1. parallel computing optimization
    • data parallelism
    • tensor parallelism
    • pipeline parallelism
    • expert parallelism
    • hybrid parallelism
  2. memory optimization
    • memory swap
    • zero redundancy
    • mixed precision training
    • checkpoint and recomputation
  3. communication optimization
    • communication optimization

Model service

  1. batch processing optimization
  2. sparse acceleration techniques
  3. resource scheduling
  4. GPU memory optimization
  5. multi-model inference

Model training

parallel computing optimization

type model year feature code repo
data parallelism FSDP 2023
DDP 2020
tensor parallelism Megatron-LM 1D
Optimus 2D
Tesseract 2.5D
3-dimensional model parallelism 3D
pipline parallelism GPipe
DAPPLE
PipeDream
PipeDream-2BM
Varuna
Megatron-LM
Chimera
Hanayo
MixPipe
AvgPipe
Dynapipe
Bpipe
Bamboo
FTPipe
expert parallelism GShard
FastMoe
FasterMoe
DeepSpeed-Moe
SmartMoe
DeepSpeed-Ted
Lina
Janus
hybrid parallelism Alpa
Galvatron

Pasted image 20240519180734.png

data parallelism

数据并行的核心思想:大数据集分割成小块,然后在多个处理器计算节点上同时进行处理。每个节点使用其模型副本进行前向和后向传播和梯度计算。因此需要梯度聚合和同步操作来更新全局模型参数。

DDP

在DDP中,在每个节点上存储整个模型的参数。

FSDP

它将模型参数分成更小的单元,在计算前通过通信恢复完整的模型参数,在计算后立即丢弃它们。

模型参数 、 优化器状态和梯度进行分片

Pasted image 20240519165807.png

tensor parallelism

开发张量并行性是为了解决训练超过单个设备存储容量的基础模型的挑战。

计算两个密集矩阵

1D

在Transformer model模型中,1D张量平行的方法被有效地应用于多头注意的计算-多个处理单元同时计算不同的注意头。

Pasted image 20240519172230.png

2D

Pasted image 20240519173142.png

与1D张量并行相比,2D并行将计算负载分布在更多的处理单元上,显著提高了整体计算效率。

缺点:引入更高的通信开销

2.5D

Pasted image 20240519175436.png

3D

Pasted image 20240519205248.png

设A,B,C表示平面,x,y,z表示平面的方向,i,j,l表示沿方向的不同指数。彩色块(i,j,k)表示单个处理器的示例。还用A,B,C来表示乘法中涉及的矩阵,所以Aij,0≤i,j<p应该表示A的一个子矩阵。

考虑一个处理器2 × 2 × 2的cube,对于C=AB该乘法。将大小为(M,N)和(N,K)的A和B分成2 × 2个分区,如下所示,使得每个分区Ail和Blj的大小分别为(M/2,N/2)和(N/2,K/2),如下。

Pasted image 20240519205638.png

每个分区Ail存储在处理器(i,0,l)中,而Blj存储在(0,j,l)中。随后从(i,0,l)沿y方向广播每个Ail;沿着x方向广播每个Blj;随后在每个处理器(i,j,l)上计算Cijl=AilBlj。最后沿着z方向将Cijl简化为(i,j,0)。

Pasted image 20240519175957.png

pipeline parallelism

参数不一致的问题

异步更新参数会导致这个问题,影响模型收敛。

主流框架流水线实现是同步版本的

传统pipline

Pasted image 20240519223721.png

GPipe

提出 micro batch,但是流程和传统pipeline差不多

GPipe要求在开始反向传播之前等待每个微批处理完成正向传播。所以会导致很多气泡产生。下图展示了什么是气泡。

Pasted image 20240519215750.png

PipeDream

PipeDream使用1F1B算法,减少了气泡。

Pasted image 20240519220056.png

Varuna

Varuna改进了PipeDream,在向后传递的早期执行重新计算,有效地减少了气泡和内存使用。

Pasted image 20240519220704.png

FTPIPE

Pasted image 20240519223538.png

Mobius

Pasted image 20240520112715.png

交叉放置 stage 到不同的CPU 来减少通信争用

Chimera

Pasted image 20240520113208.png

在一个GPU部署模型的多个 stage ,实现双向流水线 ,进一步 减少气泡 和缩短计算时间,下图的

expert parallelism

核心思想:稀疏化的方法,无需让整个模型来处理所有的输入。通过对神经网络进行划分,它让神经网络也“专业对口”,不同的子模型只处理固定类型的任务或数据。

MoE架构中,输入样本首先通过GateNet进行一个多分类的判别过程,确定最合适的专家模型。然后,选定的专家模型接管输入样本的处理,输出最终的预测结果。

这部分还没有太看懂,先放着

GShard

GShard基于Transformer model的基础模型中首次引入了MoE结构

通过条件计算来扩展Transformer model,方法是用稀疏激活的专家位置混合(MoE)层替换每隔一个FF层,在编码器和解码器中都使用top-2门控的变体。

Pasted image 20240520115155.png

Deepspeed

(有点复杂)
Pasted image 20240520124325.png

FastMoe
FasterMoe
DeepSpeed-Moe
SmartMoe
DeepSpeed-Ted
Lina
Janus

hybrid parallelism

背景:单一的并行策略往往无法满足实际深度学习模型训练中不断增长的计算需求和复杂性。

核心:能够根据任务的具体要求和可用的硬件资源做出定制的策略选择

Alpha

将所有并行化策略集成到一个框架中,建立了一个自动生成最佳并行化策略的编译器。

两阶段分层:输入模型的计算图和集群的信息,首先将模型划分为若干个stage(pipeline),然后将每个stage切分为若干个 shard Tensor (tensor paral;data paral)。

划分stage:动态规划,最小化延时

划分shard tensor:整数规划,最小化计算与通信

Pasted image 20240520121037.png

Galvatron

剪枝操作,有点复杂

Pasted image 20240520122438.png

memory optimization

communication optimization

Model service