AI系统论文:Janus(MoE)(continuing)

发布时间 2023-09-19 19:37:01作者: 诗子黎
tag: AI system
category: 系统论文

abstruct

all-to-all communication: (expert-centric) 让专家位于原地,数据在专家之间进行交换。

作者提出了一种”data-centric“的范式:让数据位于原地,在GPU之间移动专家。(因为专家的规模小于数据)。——Janus

主要适用于

the size of expert is small while the amout of input data is large(e.g., large batch size)

特点

  1. 支持“fine-grained”(细粒度的)异步通信。——使得计算和通信重叠

同时,实现了分层通信,通过在同一台机器上共享获取的专家来进一步减少交叉节点流量。

细粒度的(fine-grained) 指的是:将时间或者资源划分的非常细,来更好地进行调控

  1. 其次,在调度“抓取专家”请求时,Janus实现了拓扑感知的优先级策略,以有效地利用节点内和节点间的链路
  2. 最后,Janus允许预取专家,这允许下游计算在前一步完成后立即开始。
  3. 是“data-centric”的

introduction


MoE示意图

expert parallelism示意图

是为了解决MoE模型超过了单个GPU的内存限制而提出的。示例如下:

Expert被放在了不同的GPU(worker)上,因此,在模型计算过程中,必须在专家层前后添加all -to- all通信,以便在各gpu之间交换中间结果。

在NLP中,中间数据也叫作 token


data-centric的优点:

  1. 实现expert之间的异步通信,而不像expert-centric一样,必须等每轮迭代中GPU全部完成后,再进行通信(同步)。同时,同一个机器上的expert可以被该机器上不同的GPU重用。
  2. 由于专家权重(expert weights)在单次迭代中是确定的。因此预取专家是可能的,并且它允许我们进一步改善计算和通信之间的重叠

"expert weights" 指的是模型中的参数,具体来说是用来调整模型中不同专家(或子模型)的重要性或贡献程度的权重参数。

这里的权重不是用来决定数据分配给哪个专家的权重,而是用来决定每个专家模型对最终预测结果的贡献有多大的权重

因此,其在一次迭代过程中是确定的。

Janus提升模型性能的三个视角

  1. Janus将获取每个专家的请求作为单独的任务。

好处:一个worker可以在接受另一个专家的同时(communication),执行一个expert的计算任务(computation)。同时,也使得Janus能够将同一个机器上的不同worker对同一个expert的请求合并。

  1. topology-aware priority 策略来仔细安排专家请求的优先级

  2. Janus利用空闲时隙中的带宽来预取专家,这使得专家层的计算可以在

    一层的计算完成后立即开始。

2 Background

2.1 Transformer and MoE Model

Transformer

Transformer块(figure1(a))通常由两部分组成:注意力层和前馈网络层(FFN)。一般,MoE块可以从Transformer块派生。

2.2 Expert Parallelism

有些MoE模型,每个GPU上的experts是不一样的。有些则是independent copy。

3 Observation and Motivation

3.1 observation on expert-centric paradigm

3.1.1 The communication workload is heavy and imbalanced.

  1. all-to-all 通信开销在MoE模型中每轮迭代的占比很大(有时多达一半)。
  2. All to All原语是一种同步集体通信,这意味着延迟由需要发送和接收最大数量tokens的最繁忙的worker决定。因此,不平衡的工作量对训练时间有负面影响

同一台机器中的GPU通过NVlink连接,不同机器中的GPU通过RDMA网络连接。机器内All-to-All goodput 比机器间 All-to-All goodput 大 18 倍,这表明机器内链路的带宽在机器间All-to-All 通信中没有得到充分利用,系统性能受限于机器间链路的带宽。

3.2 Data-centric Paradigm

先不看了,这段其实没啥太大用处