Chi Liu

Results 8 comments of Chi Liu

## MOE层的细节: 加噪声和topK的门控层 ![image](https://user-images.githubusercontent.com/42956025/161964165-69182847-c32c-42f8-bdef-98a4768b0976.png) ### batch缩小问题 这种方式导致每个expert分到的样本太少。假设有n个experts,batch_size=b,每次会有k个expert被选择,每个expert会接收到平均kb/n

## DeepSpeed对MoE的改进 * 拓展到自回归任务上(比如GPT3) * moe有更低的 parameter efficiency, 即参数的增长和效果的增加不成正比 * 参数增加使得需要的GPU增加,带来推理性能的下降 解决办法 * 在自回归任务上尝试了moe,相比GPT3和MT-NLG,达到同样的效果降低了五倍消耗 * 使用Pyramid-Residual MoE(PR-MoE)提高parameter efficiency,可以减少三倍参数。并提出了压缩版的PR-MoE, MoS(Mixture-of-Students),减少3.7倍参数。 * 开发 DeepSpeed-MoE inference system. ### PR-MoE 两个结论 1. 在较深的层加MoE效果更好(更深即更顶层) ![image](https://user-images.githubusercontent.com/42956025/162174570-340dac56-91b1-439f-becc-ee2099067d9c.png)...

deepspeed采用G-sharded对MoE的实现 https://arxiv.org/pdf/2006.16668.pdf ![image](https://user-images.githubusercontent.com/42956025/162395502-151dd342-5e3f-4867-a07d-3c7c61381612.png)

colossal ai 支持特性 * 数据并行 * 流水线并行 * 1维, 2维, 2.5维, 3维张量并行 * 序列并行 * 混合精度 * 零冗余优化器 (ZeRO) * 友好的trainer和engine * 可扩展新的并行方式

## Colossal-AI 架构 ![image](https://user-images.githubusercontent.com/42956025/160576264-57e9e037-3bb6-40ea-8643-94c9ea4d98a5.png) ## 多重并行 目前主流的AI并行解决方案,如微软的DeepSpeed和英伟达的威震天,都使用3D并行,即数据并行、流水并行和1D张量并行。在数据和流水线并行的兼容下,Colossal-AI 进一步发展了 2D 张量并行、3D 张量并行和 2.5D 张量并行。此外,对于大图、视频、长文本等数据,采用了序列并行,将长序列分成子序列分布在一系列设备上。因此,Colossal-AI 可以将并行度从目前最高的 3 维提升到 5 维甚至 6 维。 ## 大规模优化器 Colossal-AI使用大规模优化器,如LAMB和LARS,将batch size从512扩大到65536,在保证精度的同时大大缩短了模型训练时间。 ![image](https://user-images.githubusercontent.com/42956025/160578109-9939467a-b90c-4b4e-850c-d729a51f02d2.png) ## 自适应任务调度 不光根据gpu数量来调度任务,也考虑了batch_size等因素,实现弹性调度。 ![image](https://user-images.githubusercontent.com/42956025/160578285-7b3e4a68-0ab2-4e9d-9618-a7f785489ef6.png) ##...

# 并行框架 ## Megatron 特点: * 层内模型并行 1D tensor parallelism 目的: 减少GPU占用和通信 ### Model Parallel Transformers transformer layer = self-attention + mlp #### MLP的并行 MLP 矩阵乘法(GEMM)加上非线性层 $Y=GeLU(XA)$ 并行的一种方式:把权重矩阵A横向划分,把输入张量纵向划分 $X=[X_1,X_2], A=[A_1,A_2]^T$...

https://github.com/thinksoso/ChatGLM-Instruct-Tuning

https://github.com/thinksoso/ChatGLM-Instruct-Tuning/blob/65a22d249de595b758434803340a6a934faeb7f2/chat_dataset.py#L49 目前是这样处理的,没用GLM的MASK训练方式