计算:语言及语义
赛事简介
在ASC22初赛中,所有队伍需要完成两道极具挑战性的尖端应用赛题,分别是“源”AI语言大模型和AI+Science代表性软件DeePMD-kit。
2022年的AI赛题聚焦当前业界前沿AI大模型。“源”是2021年发布的一个面向中文的巨量语言模型,参数量达2457亿,刷新了业界多个中文榜单的记录,且在众多的语言处理任务场景中表现出了广阔的应用前景。AI大模型的训练面临着计算量和并行策略设计的双重挑战,因此也是参赛队展示超算性能优化能力的绝佳试验场。ASC22组委会提供了100GB的高质量中文数据集,要求参赛队基于这一数据集实现一个47亿参数的小号“源”模型。值得一提的是,组委会并没有提供模型设计的参考代码,这意味着参赛队需要自行完成模型结构构建和全部训练过程,并合理设计模型训练策略,以期得到最佳的计算性能。
DeePMD-kit赛题将引导大学生进行一场人工智能+科学研究(AI+Science)的前沿探索。科学研究与人工智能结合被视为当前最值得期待的创新趋势之一,机器学习分子动力学DeePMD-kit的出现成功推动了相关领域的跨越式发展。而高性能计算的加入将机器学习分子动力学的潜力持续释放:DeePMD-kit在超级计算机顶点(Summit)上达到了双精度91P的峰值性能,到解时间快于之前基线水平1000倍以上,相关成果获得了2020年戈登·贝尔奖。可以说DeePMD-kit的出现定义了科学研究+机器学习+高性能计算的新范式。本次赛题聚焦DeePMD-kit的训练效率优化,通过高性能优化提升训练速度对于用户来说至关重要。参赛选手将对DeePMD-kit的模型构建过程有一个直观认识,并可以使用高性能优化的手段优化整个训练过程。
ASC
世界大学生超级计算机竞赛是由中国发起组织,并得到亚洲及欧美相关专家和机构支持,旨在通过大赛平台推动各国及地区间超算青年人才交流和培养,提升超算应用水平和研发能力,发挥超算的科技驱动力,促进科技与产业创新。ASC超算大赛迄今已举行至第十届,吸引超过万名世界各国大学生参赛,是全球最大规模的超算竞赛。
- 时间
- 人员 JGQ. DJ. JCH. RXY
集群搭建
该集群的计算性能估算如下(FP32):
CPU:2.5 GHz(4215处理器基础频率)* 8(8个核心)* 2(2个处理器)* 1 * 2 *
512(AVX-512 FMA单元数,1个,最多支持2个FMAs)/ 32位 * 4(4个计算节点)= 5120 GFLOPs = 5.120 TFLOPs;
GPU:19.5 TF(峰值FP32)* 8 = 156 TFLOPs;
总计:161.120 TFLOPs;
![](assets/img/project/project-asc/device.png)
节点配置与HCG性能测试
Hardware resources | |||
---|---|---|---|
Item | Name | Configuration | Num |
Server | Inspur NF5280M5 | Intel® Xeon® Silver 4215 Processor 2.5GHz 8
cores x 2 Memory: 32G x 4,DDR4,2933Mhz Hard disk: 480G SSD SATA x 1 Power consumption estimation: 4215 TDP 85W, memory 12W, hard disk 7.5W |
5 |
HCA card | InfiniBand/VPI Card | ConnectX®-5 VPI adapter card, FDR/EDR IB
(100Gb/s) and 40/50/100GbE dual-port QSFP28 PCIe3.0 x16, tall bracket Power consumption estimation: 18W |
5 |
Switch | GbE switch | 10/100/1000Mb/s,24 ports Ethernet switch Power consumption estimation: 30W |
1 |
EDR InfiniBand Switch | SB7800 InfiniBand EDR 100Gb/s Switch System 36 QSFP28 non-blocking ports 136W typical power consumption |
1 | |
Cable | Gigabit CAT6 cables | CAT6 copper cable, blue, 3m | 5 |
InfiniBand cable | Mellanox® MCP1600 -E0xxEyy direct attach
copper (DAC) cables, 100Gb/s QSFP28 port IB EDR, 3m, Black, 26AWG |
5 | |
GPU | NVIDIA V100 SXM2 | NVIDIA NVLink 600 GB/s** PCIe Gen3.0 MEMORY:16GB HBM2 BANDWIDTH:1,133 GB/s Max TDP Power:250W |
8 |
Software resources | ||
---|---|---|
Item | Name | Version |
Operating system | Ubuntu | 18.04 |
cluster workload manager | Slurm | 20.11.2 |
Translater | mpicc, mpic++, nvcc | (Corresponding to the version of the package) |
icc | 2017.5.239 | |
Math library | Intel mkl | 2017.0 |
Fftw | 3.3.8 | |
MPI | OpenMPI | 4.0.2 |
intel-mpi | 17.0.5 | |
GPU-accelerated application | CUDA toolkit | 10.1 |
Message Passing libraries | ucx | 1.8 |
GPU memory copy library | gdrcopy | 2.0 |
Name | Power consumption |
Inspur NF5280M5 | (85w * 2+ 12w + 7.5w) * 3 |
NVIDIA V100 SXM2 | 250w * 8 |
GbE switch | 30w |
EDR InfiniBand Switch | 136w |
InfiniBand/VPI Card | 18w * 4 |
Total:2807w |
HPCG&HPL性能测试
Processor Dimensions:npx = 4,npy = 4,npz = 6 ;Local Domain Dimensions:nx = 16,ny = 16,nz = 16 ;
运行时间:1800秒 ;
经过多组数据测试,我们认为进程数量会影响处理器维度,进而显著影响结果。同时,当Processor Dimensions为偶数时,得到的结果会更好。 例如,使用16个进程和28个进程,进程数量的差异较大,但结果相似; 32个进程和56个进程也有类似的特点。
而Local Domain Dimensions的选择对结果影响较小。
HPCG的默认运行时间是60秒,官方推荐的最小运行时间是1800秒。经过多组测试,1800秒是最佳运行时间。
结果如下:
Yuan大语言模型
首先,我们尝试使用Megatron-LM框架进行预训练,这带来了一个问题:传统Transformer中正常(softmax)注意力的时间复杂度是O(𝑁2), 这意味着我们需要花费数百个小时来完成10亿tokens的训练。所以我们引入了Performers,一个Transformer变种,可准确近似传统softmax注意力机制,且只使用线性(而非二次)的空间和时间复杂度, 而避免过度依赖先验知识,如稀疏性或低秩性。
在Performers中,我们使用了一种新的方法,即正交随机特征,用于对传统softmax注意力进行稳健且无偏的估计。 新的计算方法将理论时间复杂度从O(𝑁2)降低到O(𝑁)。实际上,我们只用了30个小时就完成了整个训练,比原来缩短了三分之一的时间。
可以清楚地看到,在训练的前10亿token阶段,训练损失迅速下降,并持续继续下降。此外,ppl(困惑度)指数也从一千降至不到七十。
这显示了训练模型的有效性,随着训练的进行,模型对数据的拟合效果越来越好,损失逐渐减小,同时模型的预测能力也得到了显著的提升。