BpFile(id=315, bpId=193, name=AIACC加速Bert Finetune, author=null, keyword=Bert,NLP,Finetune,AIACC,加速,GPU,AI, description=本方案适用于自然语言训练场景,使用GPU云服务器+极速型NAS进行Bert Finetune的模型训, position=null, ossUrl=bp-3BRU8GYWYIICVW9A.pdf, tags=null, level=null, tagList=null, products=null, productList=null, hotspot=null, oneClick=1, createTime=null, modifiedTime=null, timeConsuming=null, status=1, pdfDescription=
本方案适用于自然语言训练场景,使用GPU云服务器+极速型NAS进行Bert Finetune的模型训练。
, templateId=E7322B18VYK79KHM, freetry=, visitTime=null, visitCount=null, video_url=, buttonName=null, buttonUrl=null, targetId=E7322B18VYK79KHM, partner=null, partnerUrl=null, partnerLogo=null, cooperation=, cooperationList=null)
1AIACC加速BertFinetune 最佳实践
场景描述
部署架构图
本方案适用于自然语言训练场景,使用
GPU云服务器+极速型NAS进行Bert
Finetune的模型训练,使用AIACC可
以有效提升多机多卡的训练效率。
解决问题
1. 使用GPU云服务器搭建训练环境
2. 使用性能性NAS存储共享的训练
数据
3. 使用AIACC加速训练
产品列表
GPU云服务器
极速型NAS
专有网络VPC
最佳实践频道
阿里云最佳实践技术分享群
2云服务器ECS(产品名称) 文档模板(手册名称)/文档版本信息
阿里云
企业上云实践
AIACC加速BertFinetune
最佳实践
文档版本:20201225
文档版本:20150122(发布日期) 2
3AIACC加速BertFinetune最佳实践 文档版本信息
文档版本信息
文本信息
属性 内容
文档名称 AIACC加速BertFinetune最佳实践
文档编号 193
文档版本 V1.0
版本日期 2020-12-25
文档状态 外部发布
制作人 敬海
审阅人 -
文档变更记录
版本编号 日期 作者 审核人 说明
V1.0 2020-12-25 敬海 - 创建
文档版本:20201225 I
4AIACC加速BertFinetune最佳实践 前言
前言
概述
本方案适用于自然语言训练场景,使用GPU云服务器+极速型NAS进行BertFinetune
的模型训练,使用AIACC可以有效提升多机多卡的训练效率。
应用范围
使用AIACC可以有效提升多机多卡的训练效率
名词解释
GPU云服务器:是基于GPU应用的计算服务,多适用于AI深度学习、视频处理、
科学计算、图形可视化等应用场景,型号有AMDS7150、NvidiaM40、NvidiaP100、
NvidiaP4、NvidiaV100。阿里云成为中国首家与NGCGPU加速容器合作的云
厂商。更多信息,详见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及更新
平台支持)。
Tensorflow是广泛使用的实现机器学习以及其它涉及大量数学运算的算法库之一。
Tensorflow由Google开发,是GitHub上最受欢迎的机器学习库之一。
PyTorch:是一个 Python 优先的深度学习框架,能够在强大的 GPU 加速基础
上实现张量和动态神经网络,由Facebook开发。
文档版本:20201225 III
5AIACC加速BertFinetune最佳实践 前言
CNN:ConvolutionalNeuralNetworks,卷积神经网络。
专有网络VPC(VirtualPrivateCloud):是用户基于阿里云创建的自定义私有网
络,不同的专有网络之间二层逻辑隔离,用户可以在自己创建的专有网络内创建和
管 理 云产 品 实 例, 比 如 ECS 、 负 载均 衡 、 RDS 等 。 详见
https://help.aliyun.com/product/27706.html
云架构设计工具 CADT:是一款为上云应用提供自助式云架构管理的产品,显著
地降低应用云上管理的难度和时间成本。本产品提供丰富的预制应用架构模板,
同时也支持自助拖拽方式定义应用云上架构;支持较多阿里云服务的配置和管理。
用户可以方便的对云上架构方案的成本、部署、运维、回收进行全生命周期的管
理。详见https://www.aliyun.com/product/developerservices/cadt
文档版本:20201225 IV
6AIACC加速BertFinetune最佳实践 目录
目录
文档版本信息..................................................................................................................................................................I
.........................................................................................................................................................................
法律声明 II
前言................................................................................................................................................................................III
................................................................................................................................................................................
目录 V
................................................................................................................................................................
最佳实践概述 1
前置条件........................................................................................................................................................................4
...............................................................................................................................................
1. 创建专有网络VPC 5
2. 部署GPU云服务器集群......................................................................................................................................8
........................................................................................................................................
3. 部署极速型NAS服务 12
.................................................................................................................................
3.1. 创建极速型NAS 12
3.2. 创建挂载点..........................................................................................................................................13
......................................................................................................................................
3.3. 挂载文件系统 15
4. 运行BertFinetunedemo程序........................................................................................................................17
......................................................................................................................................
4.1. 检查运行环境 17
......................................................................................................................
4.2. 下载demo数据及脚本 19
4.3. 运行demo程序..................................................................................................................................20
......................................................................................................................................
4.3.1. 单机运行 20
4.3.2. 多机运行......................................................................................................................................21
...................................................................................................
4.3.3. AIACC和Horovod模式切换 24
文档版本:20201225 V
7AIACC加速BertFinetune最佳实践 最佳实践概述
最佳实践概述
AI数据处理流程
AI数据处理一般分为三个步骤,数据采集,清洗标注,模型训练。本方案属于模型训
练阶段。
方案场景描述
本最佳实践适用于自然语言处理的AI训练场景,尤其是对性能要求苛刻,业务交付紧
迫的场景。自然语言处理(NLP)就是在机器语言和人类语言之间搭建沟通的桥梁,
以实现人机交流的目的。自然语言处理的训练场景,训练出的模型可以用于预测、分
类、文本分析和文本对答等。
方案架构
本方案使用两台GPU云服务器
极速型NAS作为共享存储,提供高带宽低延迟的数据访问服务。
AIACC-training加速分布式训练,提升训练速度。
系统架构如下图所示:
文档版本:20201225 1
8AIACC加速BertFinetune最佳实践 最佳实践概述
方案优势
GPU云服务器资源丰富配置多样,满足训练,推理等业务弹性需求。
极速型NAS,提供高带宽,高IOPS的稳定存储服务,支撑海量小文件访问。
AIACC-training加速框架,兼容TF,Caffe,Pytorch,Mxnet等主流框架,获得
显著性能提升。
示例介绍
本示例提供的是利用Bert模型进行NLP的Finetune的场景。如果想查看AIACC
计算Pretrain的最佳实践,请访问《超级计算集群实现自然语言处理训练》
(https://bp.aliyun.com/detail/75)。
2018年在自然语言处理(NLP)领域最具爆炸性的一朵“蘑菇云”莫过于Google
Research 提 出 的 BERT ( Bidirectional Encoder Representations from
Transformers)模型。作为一种新型的语言表示模型,BERT以“摧枯拉朽”之
势横扫包括语言问答、理解、预测等各项NLP锦标的桂冠。
尽管BERT效果惊人,但它需要的计算量非常大,原作者在论文中也表示每次只
能预测15%的词,因此模型收敛得非常慢。
BERT模型分为预训练模型(Pretrain)和精调模型(Finetune)。Pretrain模型
为通用的语言模型。Finetune只需要在Pretrain的基础上增加一层适配层就可以
服务于从问答到语言推理等各类任务,无需为具体任务修改整体模型架构。这种
文档版本:20201225 2