范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

使用MindStudio进行albert模型训练

  目录
  一、MindStudio 环境搭建 2MindStudio 下载 2软件安装 4打开工程 7
  二. 训练配置 15打开命令行 15配置本地到远端服务器的映射 15
  三、 相关介绍 21模型概况 21数据集 22代码介绍 22
  四、 GPU 训练 25
  五、 NPU 训练 26打开终端 27配置环境变量 28torch1.8 的使用 28运行脚本的更改 28
  六、 总结与分享 30一、MindStudio 环境搭建
  Mindstudio 官网链接:https://www.hiascend.com/zh/software/mindstudio
  本次实验使用 MindStudio 开发工具,按照此教程配置环境,安装 MindStudio。MindStudio 是一套基于华为自研昇腾 AI 处理器开发的 AI 全栈开发工具平台,该 IDE 上功能很多,涵盖面广,可以进行包括网络模型训练、移植、应用开发、推理运行及自定义算子开发等多种任 务。MindStudio 除了具有工程管理、编译、调试、运行等功能外,还能进行性能分析,算子比对,可以有效提高工作人员的开发效率。除此之外,MindStudio 还具有远端环境,运行任务可在远端实现,对于近端的个人设备要求不高,用户交互体验很好,可以让我们随时随地 进行使用。
  如需在Linux 安装昇腾套件包ascend-cann-toolkit(以下简称 CANN),请在官网下载 CANN。官网链接:https://www.hiascend.com/software/cann
  用户手册:(本例中使用的版本为 5.1.RC2) https://www.hiascend.com/document/detail/zh/canncommercial/51RC2/overview/index.ht
  ml
  代码链接为:https://gitee.com/yaohaozhe/transformer
  需将代码仓下载到本地。MindStudio 下载
  打开官网链接,在跳转的如图 1-1 中点击"立即下载"。
  图 1-1 官网下载界面
  在如图 1-2 的跳转页面中,选择配套的 MindStudio 版本,本例使用的 CANN 包版本为 5.1.RC2, 故下载 MindStudio_5.0.RC2_win.exe。
  图 1-2 版本选择
  点击"软件包下载"后,跳出软件下载须知,阅读 MindStudio 软件许可协议,同意则勾选, 然后点击"立即下载"。如图 1-3 所示:
  图 1-3 软件下载须知软件安装
  下载完成后,在弹出的安装界面中点击"Next"。如图 1-4 所示:
  图 1-4
  在接下来的界面中配置安装路径,点击"Browse..."选择安装的目的路径。完成后点击"Next>"。如图 1-5 所示:
  图 1-5
  在 Create Desktop Shortcut 中勾选 MindStudio,以在桌面创建 MindStudio 快捷方式。在 Update Context Menu 中勾选 Add "Open Folder as Project"以方便创建工程。
  接下来点击"Next >"。如图 1-6 所示:
  图 1-6
  接下来点击"install",如图 1-7 所示:
  图 1-7
  等待进度条结束后,点击"Next >"。如图 1-8 所示:
  图 1-8
  勾选 Run MindStudio 可以立即打开 MindStudio。点击"Finish"完成安装。如图 1-9 所示:
  图 1-9 安装完成打开工程
  安装完成后,第一次打开 MindStudio 会出现如图 1-10 所示界面:
  图 1-10
  如图 1-11 所示的 Projects,用于工程打开、创建:
  图 1-11 Projects 界面
  如图 1-12 所示的 Customize 可以进行颜色主题,字体等选择:
  图 1-12 Customize 界面可以安装所需要的插件,如图 1-13 所示:
  图 1-13 Plugins 界面
  点击界面中的 Help 可以跳转到 MindStudio 社区,如图 1-14 所示:
  图 1-14 Learn MindStudio 界面点击 Projects 中的 Open,如图 1-15 所示:
  图 1-15
  选择刚下载好的代码仓文件,如图 1-16 所示:
  图 1-16
  选择箭头所指的"Trust",如图 1-17 所示:
  图 1-17
  打开后,如图 1-18 所示:
  图 1-18
  选择"File"->"Settings"来配置 CANN 包,如图 1-19:
  图 1-19
  依次如图所示进行选择,点击"Change CANN"按钮,如图 1-20 所示:
  图 1-20
  点击 Remote Connection 后的"田",如图 1-21 所示,跳转到图 1-22 所示配置 SSH 界面。
  图 1-21
  如图 1-22 所示,点击"+",增加 ssh 连接。
  图 1-22
  如图 1-23 所示,填写远端服务器的用户名,端口,密码等信息,点击"Test Connection"测试连接是否成功。
  图 1-23
  出现如图 1-24 所示"Successfully connected!"后表明连接成功,点击"OK":
  注:成功连接的服务器会被保存,下文中会用到。在此处可继续添加 GPU 服务器的 SSH 连接。
  图 1-24
  上述步骤完成后,在 Remote CANN location 中选择远端服务器的 CANN 包,如图 1-25 所示:
  图 1-25
  点击"Finish",等待片刻后即可完成安装。随后点击菜单栏中"Ascend"->"Convert to Ascend project"。
  图 1-26
  如图 1-27 所示,在下拉框中做出如下选择,点击"ok"。
  图 1-27
  转换成功后,菜单栏变成如图 1-28 所示:
  图 1-28二.训练配置打开命令行
  选择菜单栏中的"Tools",选择"Start SSH session"。
  图 2-1 创建命令行
  选择所需要的服务器,如图 2-2 所示:
  图 2-2 选择服务器配置本地到远端服务器的映射
  选择菜单栏中的"Tools",点击"Deployment",点击"Configuration",如图 2-3 所示:
  图 2-3
  点击"+",新建"deployment",命名为"gpu",点击"Connection",选择配置好的 gpu 服务器的 ssh。点击右侧中间的"Mappings",在左侧"Local Path"中选择需要在远端服务器运行的本地项目,在右侧"Deployment Path"中,配置服务器中的路径。如图 2-5 所示:
  图 2-4
  图 2-5
  同理可配置 NPU(192.168.99.113)服务器的 Deployment。
  在菜单栏中选择"File",点击"Project Structure",如图 2-6 所示:
  图 2-6
  打开的 Project Structure 界面如图 2-7 所示,在左侧选择 SDKs,点击箭头所指的"+",选择 "Add Python SDK"。
  图 2-7
  点击"SSH Interpreter",在"Deploy"中选择前文配置好的 gpu 服务器,在"Interpreter"中选择远端服务器上的 python 文件夹,"Name"会自动获取。如图 2-8 所示:
  图 2-8
  配置好后,点击"OK"出现 python SDK,配置成功。如图 2-9 所示:
  图 2-9
  点击"Project",选择刚配置好的远端 SDK。如图 2-10 所示。
  图 2-10
  点击左侧"Modules",在右侧选择"Dependencies",在 Module SDK 下拉框中选择刚配置好的远端 SDK,点击"OK",如图 2-11 所示:
  图 2-11
  点击菜单栏中的"Tools",选择"Deployment",选择"Automatic Upload",修改代码保存后可自动上传到远端服务器。如图 2-12 所示:
  图 2-12三、相关介绍模型概况
  ALBERT 架构的主干和 BERT 类似,都使用了基于 GELU 的非线性激活函数的 Transformer。但是其分别在两个地方减少了参数量。
  以下图为例可以看到模型的参数主要集中在两块,一块是 Token embedding projection block, 另一块是 Attention feed-forward block,前者占有 20% 的参数量,后者占有 80% 的参数量。
  数据集
  SQuAD 是 Stanford Question Answering Dataset 的缩写。这是一个阅读理解数据集,由众包工作者在一组维基百科文章上提出的问题组成,其中每个问题的答案都是相应文章中的一 段文本,某些问题可能无法回答。
  SQuAD2.0 组合了 SQuAD1.1 中的 10 万个问题,并增加了超过 5 万个无法回答的问题, 这些问题由众包工作者以对抗(adversarially)的方式设计,看起来与可回答的问题相似。为了在 SQuAD2.0 数据集上表现出色。系统不仅必须在可能的情况下回答问题,还必须确定篇章数据何时不支持回答,并避免回答。
  EM(Exact Match ) 和 F1 值是用于 SQuAD 的主要指标。Exact Match 是一种常见的评价标准,它用来评价预测中匹配到正确答案(ground truth answers)的百分比。代码介绍
  模型代码路径:
  src/transformers/models/mbart/modeling_albart.py
  主要类与函数介绍:
  Albert 源码整体和 bert 代码差异很小,为了实现灵活的参数共享,作者提出了一个Group 的概念。 源码中将每一层都分到一个指定 Group 之中,一个 Group 包含了多个相邻的层,同一个 Group 里面的层是参数共享的,这个 group 个数由 num_hidden_groups 参数决定,默认为 1。即所有的层 share 同一个 Transformer 权重。
  如 num_hidden_groups 为 2,num_hidden_layers 为 12,那么层分为两组。1~6 层是第一组,
  7~12 是第二组。
  如 num_hidden_groups 为 3,num_hidden_layers 为 12 ,那么层分为三组。1~4 为第一组 , 5~8 为 第 二 组 , 9~12 为 第 三 组 , 以 此 类 推 ...
  层索引 layer_idx 和组索引 group_idx 由代码计算得出:
  对于 group 编号较低的组,学习低抽象的知识,group 编号较高的组,学习相对较高抽象的知识,这个是 make sense 的。通过设定 num_hidden_groups 和 num_hidden_layers 可以灵活设定模型深度和共享的程度。
  可见 group 在源码中是一个比较重要的类型,其由 AlbertGroup 类实现。AlbertTransformer 在初始化之时,预先实例化了 num_hidden_groups 个 AlbertGroup,这个AlbertGroup 代表新的一层参数,里面还有一些细节,后文会描述。
  当 AlbertTransformer 计算到某一层时,直接在 group 列表中找到对应的 AlbertGroup 去forward,因此在梯度 backward 的时候,梯度的变化也会传递到对应的 AlbertGroup,这样就实现了多级参数共享的参数更新。AlbertTransformer 完整代码:
  AlbertGroup 完整代码:
  AlbertGroup 内部的层级由 inner_group_num 参数确定,默认为 1。其内部处理的逻辑也很简单,即 forward 多层的 AlbertLayer,这个 AlbertLayer 就代表着一个 block。
  由此可见,假设一个 block 的参数量为 m。则实际的 encoder 的参数量 K 为:
  K = m * inner_group_num * num_hidden_groups
  inner_group_num 和 num_hidden_groups 默认均为 1。大多数预训练模型是基于默认参数训
  练的,所以这两个参数一般也不会改动。除非需要尝试调整共享程度进行重新预训练。除了
  Group 分组共享外 albert 还可以调整 block 内部的共享方式分为三种all : ffn 和 attention 都共享ffn :ffn 共享attention: attention 共享
  对于不同的内部共享,在初始化 Module 时将不共享组件实例化 inner_group_num * num_hidden_groups 个 保存在 ModuleList 之中,在 forward 时,按照索引定位到指定组件即可。四、GPU 训练
  首先要在 GPU 环境中安装 transformer 库,如已经安装,需要先通过 pip uninstall transfomer 命令卸载原版本之后然后在 transformer 路径下使用命令 pip install –e ./ 进行安装,如未安装,直接使用 pip install –e ./ 命令即可,如图 4-1 所示。
  图 4-1
  安装完成之后方可进行模型训练,进入到 transformer/examples/pytorch/question- answering 路径下后输入如下启动代码后即可开始训练。
  python -m torch.distributed.launch --nproc_per_node  8  run_qa.py --model
  _name_or_path albert-base-v2 --dataset_name squad --do_train --do_eval
  --per_device_train_batch_size  12  --learning_rate  3e-5  --num_train_epoch s  2  --max_seq_length  384  --doc_stride  128  --fp16 --fp16_opt_level O1 -- output_dir /home/name/output/
  下面将启动代码的参数进行说明
  作用
  参数名
  model_name_or_path
  加载的模型权重
  dataset_name
  使用的数据集名称
  do_train
  是否执行训练,默认为 true
  do_eval
  是否执行评估,默认为 true
  per_device_train_batch_size
  训练批次大小
  fp16
  是否使用混合精度,默认为 false
  learning_rate
  初始学习率
  pad_to_max_length
  是否把所有的输入 pad 到最大长度
  num_train_epochs
  训练轮数
  doc_stride
  将一个长文档拆分为块时,块之间要步数
  loss_scale
  混合精度的 scale
  fp16_opt_level
  混合精度的模式
  local_rank
  指定多卡训练的 id,默认值为-1(单卡训练)
  dataloader_drop_last
  是否覆盖之前下载的数据集,默认为 True
  optim
  优化器选择
  output_dir
  重保存路径
  训练完成后得到如下结果,如图 4-2 所示。
  图 4-2五、NPU 训练
  根据前文介绍的服务器连接,建立与 NPU 服务器的连接。打开终端
  如图 5-1 所示,点击"Start SSH session...":
  图 5-1
  选择已经成功连接的 192.168.99.113 服务器:
  图 5-2
  打开成功后,如图 5-3 所示:
  图 5-3
  依赖的安装同第四章 GPU 部分内容。本章介绍 NPU 服务器需要额外做的操作,如环境变量的配置,torch1.8 版本的使用,运行脚本的更改等。配置环境变量
  激活 conda 后,在任意路径执行 source /usr/local/Ascend/ascend-toolkit/set_env.sh
  如图 5-4 所示:
  图 5-4torch1.8 的使用
  在 run_qa.py 脚本中增加 torch_npu 的引入,如图 5-5 所示:
  图 5-5运行脚本的更改
  在 NPU 中使用 run_qa.py 脚本默认是单卡运算,如需多卡,需使用 ddp 进行指定,如图 5-6
  所示:
  图 5-6
  点击配置可视化运行设置"Edit Configurations...",运行如图 5-7 所示:
  图 5-7
  配置好图中所圈画出来的地方,点击"OK"
  图 5-8
  运行后结果可在 train_0.log 中查看:
  图 5-9六、总结与分享
  本文介绍了 MindStudio 工具的下载安装,以及使用 MindStudio 工具完成与 GPU 服务器和 NPU 服务器的连接,并完成 albert 模型的训练。
  训练过程中遇到的问题及解决方案: Question1:Loss 震荡不收敛Answer:调小 learning-rate
  Question2:模型训练精度 NPU 单 P 达标,8P 不达标:
  Answer: 混合精度使用 O1,将 O2 注释.
  开发过程中遇到的问题可以在昇腾论坛发帖提问,也可以查看其他案例的分享以熟悉流 程。除了参考官方指导文档外,帮助更多的还是开发者社区,如下图所示,推荐大家多看些 经验分享,写的很详细也很有帮助。
  MindStudio 论坛:https://bbs.huaweicloud.com/forum/forum-945-1.html?filterCondition=1

苹果新机iPhoneSE3或在3月8日发布上市,性价比很高iPhoneSE3或将在下周3月8日发布首先,据报道iPhoneSE3将于2022年3月开始量产,这显然是有道理的,因为该手机预计将于下周推出。预计2022他们的出货量将达到25至小白裤太火了,清爽干净又百搭,微胖的人也可以照着穿到了春天,才发现越来越多人的喜欢穿白色裤子,为什么大家都喜欢穿白色裤子了,大概是因为白色代表干净,代表纯洁,就像医生一样,我们统称为白衣天使。我们也不难发现无论是时尚杂志还是素人博距历史第三还差一球北京时间3月5日,76人坐镇主场迎来骑士挑战,在开局不利的情况下76人最终完成逆转,以125119取得胜利,哈登取得了加盟76人的四连胜。此役哈登10投6中,三分4中2,罚球12中胡金秋一家四口全家福曝光怀抱双胞胎儿子,与妻子16岁约定结婚在中国男篮的历史上,大个子内线球员一直是能够主宰男篮多年走势在大赛命运的关键人物。像最早的穆铁柱再到后来的移动长城姚明王治郅巴特尔,以及易建联和如今的周琦,纵然在他们身上都存在很大她两换国籍八上奥运,数次复出成为体操奶奶,只为给儿子治病我是狼君,一个陪您读历史的工科小伙儿2021年7月26日,女子体操界传奇,在东京奥运会女子体操资格赛落选,八战奥运的体操奶奶丘索维金娜宣布退役,为自己为世界体育的传奇画上了一个句号中国千万以上高净值家庭,都分布在哪些城市?来源城市战争作者孙不熟团队中国最有钱那些人,都分布在哪些城市?近日,胡润研究院发布2021中国高净值人群家族安全报告,将富有家庭按净资产数量分为四档1。富裕家庭拥有600万人民币净北京一家三代警察服务冬奥孙子场馆外执勤,爷爷家门口做志愿者3月3日下午,奥林匹克公园外的一条大街上,槐昊浡在密切关注着周边动态,从早上6点开始,他已经在这条路线上安保执勤近10个小时,但精神依然高度紧张。这天是冬残奥会火炬传递仪式,他的职送财童子!费城两将或因哈登涨年薪!奈何克拉克斯顿却只能点赞回顾哈登的职业生涯,我们发现和哈登打球一些角色球员总会打出比以往更好的表现。比如篮网球员克拉克斯顿。克拉克斯顿本赛季场均有接近9分5篮板1盖帽的数据,现在的克拉克斯顿应该高兴不起来光和光速的本质大道至简,道法自然的理论进行分析光是人类对自然界现象的第一位认识,是人类了解世界的最基本媒介,光也成为了人认识宇宙的最重要手段。但关于光,现今科学依旧无法解释许多现象。爱因斯坦成功解释了光电效应,获得了1921的股市里真正赚钱的一种人做一个安静的投资者,最简单的修行方式交易的成功,在于将正确的动作不断地重复,复杂的事情简单做,简单的事情认真做,这就是成功之道。大道至简,大道无形,大道无法。在一个充满噪音的交易市场,你要保持安静的心态,确实不容易。享受孤独,是一个人变优秀的开始,你开始了吗?文唯晨你有没有什么时候感到格外孤独?相信关于这个问题,几乎每个人都会给出肯定的答复。孤独是我们与生俱来的东西。这世上不可能有两个完全契合的灵魂,也没有办法让大家的思想完全统一。当一
闷声发大财!上港悄无声息就跟三大新援正式签约,韦世豪意外在列日前,网传韦世豪杨立瑜张威三位国字号锋霸,都已经加盟上港队。韦世豪杨立瑜张威都被上港分配好了房间,未来将在球队集训时现身。上港球迷觉得要是网传属实的话,那么球队前场实力就会提升一个打赢19。1亿欧元的强强对话,曼城淘汰阿森纳文羊城晚报全媒体记者徐扬扬1月28日,眼下的英超榜首双雄在足总杯的第4轮狭路相逢,最终老二曼城在主场以1比0小胜领头羊阿森纳,打赢了这场双方身价之和高达19。1亿欧元的强强对话。这同年机型大对比,小米11和iPhone12谁更流畅?用户这次小米赢了不知道大家发没发现一个规律,现在已经很少有苹果用户说iPhone手机比安卓机流畅了,这是为什么呢?有两方面的原因,一个是安卓系统确实越做越流畅,一点也不比iOS差了,另一个是iOS开门红!全部冠军,包揽!北京时间1月26日,WTT支线赛多哈站结束全部争夺,中国乒乓球队包揽本站全部五项冠军,同时收获了男单女单女双混双四项亚军。(图片来源WTT世界乒联)男单女单决赛全部在中国选手之间展1月27日中局测试题上期答案红先1。车4平8黑方置3路马于不顾,平车8路攻击红方空虚的右翼,妙手。2。马一进三,马3进43。帅五平六,车8进84。帅四进一,车8退15。帅四退一,士6进5黑方补士,攻不Stein若未与伍德达成续约独行侠将不得不考虑在截止日前送走他直播吧1月27日讯今日,据名记MarcStein报道,随着交易截止日的临近,独行侠中锋伍德仍是一名值得关注的球员,因为如果独行侠无法与伍德达成提前续约,那么球队将不得不考虑交易伍德拯救中国女排,唯有蔡斌!中国女排溃败东瀛,中国女排主教练难产,为此中国排协成立选帅小组,该小组由组长钟秉枢副组长王镜宇,专家组成员郎平陈忠和沈富麟张欣,经过专家组一个月论证,一致认定蔡斌作为中国女排主教练朱婷姚笛在海外过年,七个菜,一盘饺子,浓浓的中国年味!朱婷姚迪在海外过年,7个菜,1盘饺子,贴门联,浓浓的中国年味!姚迪的饺子包的确实不错,两个人也是开开心心过大年!朱婷和姚笛虽然在国外打球,只要他们还会回来,继续为国效力就是好事。在人民日报金句摘抄(208)1。金虎辞旧岁,玉兔迎新春。2。温馨鼓舞,传递着直抵人心的温暖殷切期望,凝聚起奋进不息的力量。3。无论是应对眼下的危机,还是共创美好的未来,人类都需要同舟共济团结合作。4。新春佳节足总杯0阿森纳晋级16强北京时间1月28日凌晨4点,202223赛季英格兰足总杯116决赛率先进行了一场焦点战,曼城坐镇伊蒂哈德球场对阵阿森纳。上半场,双方均无建树,斯通斯伤退下半场,阿尔瓦雷斯远射中柱,官方2024美洲杯将在美国举办,10支南美队6支中北美队参赛直播吧1月28日讯南美足联和中北美及加勒比海足联官方消息,2024年美洲杯将在美国举行,共有16支球队参加。2024年美洲杯确定在美国进行,将有南美足联的全部10支球队以及中北美足