BpFile(id=257, bpId=75, name=超级计算集群实现自然语言处理训练, author=null, keyword=NLP,BERT,SCCGN6,RDMA, description=使用裸金属GPU服务器、CPFS和Perseus框架/搭建NLP训练环境, position=null, ossUrl=bp-EBQD4NY7DO8WOSAC.pdf, tags=null, level=null, tagList=null, products=null, productList=null, hotspot=null, oneClick=0, createTime=null, modifiedTime=null, timeConsuming=null, status=1, pdfDescription=
场景描述
本方案适用于自然语言训练场景,使用神龙
GPU云服务器(SCCGN6)+CPFS进行NLP的
训练,采用Bert模型。这里不使用容器,直接
使用裸机进行NLP的Bert训练,使用飞天AI加
速训练工具可以有效提升多机多卡的训练效率。
解决问题
使用神龙GPU云服务器搭建NLP训练环
境
使用SCC的RDMA网络
使用CPFS存储训练数据
使用飞天AI加速训练工具加速训练
产品列表
神龙GPU云服务器(SCCGN6)
SCC超级计算集群
CPFS共享存储
, templateId=null, freetry=null, visitTime=null, visitCount=null, video_url=null, buttonName=null, buttonUrl=null, targetId=null, partner=null, partnerUrl=null, partnerLogo=null, cooperation=null, cooperationList=null)
1超级计算集群实现自然语言处理训练 最佳实践
部署架构图
场景描述
本方案适用于自然语言训练场景,使用神
龙GPU云服务器(SCCGN6)+CPFS进
行NLP的训练,采用Bert模型。这里不使
用容器,直接使用裸机进行NLP的Bert训
练,使用AIACC可以有效提升多机多卡的
训练效率。
解决问题
使用神龙GPU云服务器搭建NLP训练
环境
使用SCC的RDMA网络
使用CPFS存储训练数据
使用AIACC加速训练
产品列表
神龙GPU云服务器(SCCGN6)
SCC超级计算集群
CPFS共享存储
2云服务器ECS(产品名称) 文档模板(手册名称)/文档版本信息
阿里云
企业上云实践
超级计算集群实现自然语言处理
训练最佳实践
文档版本:20210308
文档版本:20150122(发布日期) 2
3企业上云实践 超级计算集群实现自然语言处理训练
文档版本信息
文本信息
属性 内容
文档名称 基于超级计算集群的自然语言处理训练最佳实践
文档编号 075
文档版本 V1.5
版本日期 2021-03-08
文档状态 外部发布
制作人 敬海
审阅人 游圣行夜
文档变更记录
版本编号 日期 作者 审核人 说明
V1.0 2019/07/15 敬海 游圣行夜 创建
V1.1 2019/11/20 敬海 增加首页概览页,
更新git地址
V1.2 2019/12/09 敬海 产品更新
V1.3 2020/02/02 敬海 更新架构图
V1.4 2020/12/10 敬海 AIACC更新及demo更新
V1.5 2021/03/08 敬海 更新文件链接等
I
4企业上云实践 超级计算集群实现自然语言处理训练
前言
概述
本文介绍了使用阿里云SCC超级计算集群来进行自然语言处理的AI训练的环境搭建
步骤及测试方法,本示例直接使用SCC主机进行训练,不使用容器。
应用范围
适合使用阿里云SCC超级计算集群来搭建自然语言处理的AI训练环境的场景。
名词解释
GPU云服务器是基于GPU应用的计算服务,多适用于AI深度学习,视频处理,科
学计算,图形可视化,等应用场景,型号有AMDS7150,NvidiaM40,Nvidia
P100,NvidiaP4,NvidiaV100。阿里云成为中国首家与NGCGPU加速容器合
作的云厂商。更多信息,详见GPU云服务器
https://cn.aliyun.com/product/ecs/gpu 。
AIACC是阿里云推出的统一分布式加速框架,支持主流的四种训练框架,分别是
Tensorflow、Pytorch、MXNet、Caffe。
提供PerseusHorovod的接口,分别支持Tensorflow和Pytorch。
提供dist_sync_perseus的基于allreduce的kvstoremodule,支持MXNet。
提供BVLCCaffe的支持。
AIACC针对阿里云环境进行了深度优化,核心代码是多框架共享的,各框架的支
持均包含以下功能:
梯度融合通信的自适应多流,自适应梯度融合,对带宽密集的网络模型,性
能提升显著(提升50%至300%)。
高度优化的梯度协商机制,将大规模节点下梯度协商的开销降低一到两个数
量级。
分级的Allreduce,同时支持FP16的梯度压缩,以及混合精度压缩。
训练过程中开启NaN检查,报告NaN来自于哪个梯度的计算(SM60及更
新平台支持)。
III
5企业上云实践 超级计算集群实现自然语言处理训练
弹性裸金属服务器(神龙)(ECSBareMetalInstance)是一种可弹性伸缩的高
性能计算服务,计算性能与传统物理机无差别,具有安全物理隔离的特点,分钟
级的交付周期将提供给您实时的业务响应能力,助力您的核心业务飞速成长。更
多信息,请参见弹性裸金属服务器https://cn.aliyun.com/product/ebm。
超级计算集群(SuperComputingCluster,SCC)使用高速RDMA网络互联的
CPU以及GPU等异构加速设备,面向高性能计算、人工智能/机器学习、科学/
工程计算、数据分析、音视频处理等应用,提供极致计算性能和并行效率的计算
集群服务。更多信息,请参见超级计算集群https://cn.aliyun.com/product/scc。
CPFS(CloudParalleledFileSystem)是一种并行文件系统。CPFS 的数据存储
在集群中的多个数据节点,并可由多个客户端同时访问,从而能够为大型高性能
计算机集群提供高IOPS、高吞吐、低时延的数据存储服务。更多信息,请参见
CPFShttps://www.aliyun.com/product/nas_cpfs。
Tensorflow是广泛使用的实现机器学习以及其它涉及大量数学运算的算法库之一。
Tensorflow由Google开发,是GitHub上最受欢迎的机器学习库之一。
PyTorch是一个Python优先的深度学习框架,能够在强大的GPU 加速基础上
实现张量和动态神经网络,由Facebook开发。
CNN,ConvolutionalNeuralNetworks,卷积神经网络。
IV
6企业上云实践 超级计算集群实现自然语言处理训练
目录
文档版本信息..................................................................................................................................................................I
.........................................................................................................................................................................
法律声明 II
................................................................................................................................................................................
前言 III
目录.................................................................................................................................................................................V
.................................................................................................................................................................
最佳实践概述 1
前置条件.........................................................................................................................................................................3
..................................................................................................................................................
1.创建专有网络VPC 1
.........................................................................................................................................
2.部署SCC超级计算集群 4
3.部署CPFS服务.....................................................................................................................................................11
..................................................................................................................................................
3.1.创建CPFS 11
3.2.创建挂载点..................................................................................................................................................13
..............................................................................................................................................
3.3.挂载文件系统 15
...........................................................................................................................................
4.部署AI训练基础环境 21
4.1.更新网卡fw................................................................................................................................................21
.............................................................................................................................
4.2.下载demo数据及脚本 21
4.3.安装GPU驱动...........................................................................................................................................22
............................................................................................................................................
4.4.安装Openmpi 23
...............................................................................................................................................
4.5.安装cuda10 24
4.6.安装NCCL库.............................................................................................................................................25
.................................................................................................................................................
4.7.安装cudnn 25
4.8.安装python3.6...........................................................................................................................................27
..........................................................................................................................................
4.9.安装tensorflow 27
.....................................................................................................................................
4.10.安装AIACC软件 27
4.11.检查IB设备..............................................................................................................................................28
...............................................................................................................................................
4.12.安装依赖包 30
5.验证神龙服务器的RDMA协议...........................................................................................................................31
........................................................................................................................
5.1.验证RDMA协议可以跑通 31
............................................................................................................................
5.2.监控RDMA协议的流量 34
6.部署NLP训练demo............................................................................................................................................36
..............................................................................................................................................
6.1.配置集群操作 36
6.1.1.修改/etc/hosts........................................................................................................................................36
........................................................................................................
6.1.2.配置root用户的ssh无密码访问 37
..............................................................................................................................
6.1.3.创建mpihosts文件 40
6.2.部署脚本......................................................................................................................................................40
V
7企业上云实践 基于超级计算集群的自然语言处理AI训练
最佳实践概述
AI数据处理流程
AI数据处理一般分为三个步骤,数据采集,清洗标注,模型训练。本方案属于模型训
练阶段。
方案场景描述
本最佳实践适用于自然语言处理的AI训练场景,尤其是对性能要求苛刻,业务交付紧
迫的场景。自然语言处理(NLP)就是在机器语言和人类语言之间搭建沟通的桥梁,
以实现人机交流的目的。自然语言处理的训练场景,训练出的模型可以用于预测、分
类、文本分析和文本对答等。
方案架构
本方案使用了sccgn6机型的GPU云服务器,是一种弹性裸金属的神龙服务器,
每台配置8个V100的GPU,并配置50Gb/s的RDMA网络。
并行文件系统CPFS作为共享存储,提供高带宽低延迟的数据访问服务。
Ali-Perseus框架加速分布式训练,提升训练速度。
系统架构图如下:
1
8企业上云实践 基于超级计算集群的自然语言处理AI训练
方案优势
SCC超级计算集群
神龙服务器提供弹性+裸金属服务器性能,无性能损耗
RDMA计算网络提供低延迟,高带宽网络传输,低至2us延迟,带宽可达50Gb/s
强大的计算能力,SCCGN6每台配置最新8个V100的GPU
并行存储CPFS
提供高带宽,高IOPS的稳定存储服务
支撑海量小图片访问
Perseus加速框架
兼容TF,Caffe,Pytorch,Mxnet等主流框架
性能提升
AIACC加速效果明显,在某些场景下双机16卡V100的配置下,相比horvord,性
能提升接近数倍。
示例介绍
本示例提供的是利用Bert模型进行NLP的预训练的场景。
2018年在自然语言处理(NLP)领域最具爆炸性的一朵“蘑菇云”莫过于GoogleResearch
提出的BERT()模型。作为一种新
型的语言表示模型,BERT以“摧枯拉朽”之势横扫包括语言问答、理解、预测等各项NLP锦
标的桂冠。
尽管BERT效果惊人,但它需要的计算量非常大,原作者在论文中也表示每次只能预测 15%
的词,因此模型收敛得非常慢。
BERT模型分为预训练模型(Pretrain)和精调模型(Finetune)。Pretrain模型为通用的语言
模型。Finetune只需要在Pretrain的基础上增加一层适配层就可以服务于从问答到语言推理等
各类任务,无需为具体任务修改整体模型架构。这种设计方便BERT预处理模型适配于各类具
体NLP模型(类似于CV领域基于ImageNet训练的各种Backbone模型)。
2