Bert用在seq2seq任务上——UNILM实战

本文介绍了如何将Bert应用于序列到序列(seq2seq)任务,重点讨论了UNILM模型。通过实战部分,详细讲解了如何在阿里云服务器上配置环境、训练和验证UNILM模型,包括服务器租用、环境配置、安装PyTorch和所需库的过程。

1.UNILM简介

按照我粗浅的理解:

  • 传统的seq2seq模型需要用一个encoder把输入的语料处理成向量,一个decoder把向量转换为词表里的词,生成目标语句。

  • Bert是一个预训练好的语言模型,有三层嵌入信息,能够很好的对输入语料进行建模。

我刚学习完Bert和传统的seq2seq时,就在想: 如果能够把Bert运用在seq2seq模型,那么或许能够得到更好的生成效果。

果然,早就有人实现了这个想法,并取名为UNILM,其实现过程是:改变训练Bert的方式,采用特定的顺序遮挡attention矩阵去训练,相当于是训练seq2seq模型。

详细的原理介绍可以看: Unilm模型的摘要任务原理解释苏剑林老师针对中文UNILM的博客

总之,UNILM把Bert运用在seq2seq模型上,从而使得模型可以用于NLG(文本生成)。

2.实战

租服务器的这天是2020欧冠决赛,由于主队利物浦已经被淘汰了,我本不打算看凌晨3点的决赛的,没想到出了种种状况,导致我到凌晨3点才刚好调试完服务器环境,开始用数据训练微调UNILM模型。所以,我就边看比赛边等着它训练完,十分舒适。

2.0 租服务器

进入阿里云官网

登录(支付宝、淘宝账户均可登录)并先预充一百元。

2.0.1 基础配置

登录后,点官网上方栏的控制台,再点左侧栏的云服务器 ECS,点页面中央的创建我的ECS

这样就进入了选择服务器规格的页面了,如下图。

在这里插入图片描述

(1) 付费模式

除了包年包月,我们还可以选择“按量付费”或者“抢占式实例”。按量付费是以小时为单位进行计费,计算完毕后需手动释放服务器以停止计费。“抢占式实例”也是按小时计费,价格随市场波动,出价高的一批用户获得GPU服务器的使用权。

由于我们的训练任务不用花很久时间,所以我采用的是“按量付费“

(2) 地域及可用区

这个我选的是华北5(呼和浩特),其实选哪里都无所谓的,有的地区有优惠。

(3) 实例

服务器规格搜索并选择“ecs.gn5-c8g1.2xlarge”,该规格有8个vCPU,60G内存,一块P100 GPU,440G存储空间(暂时存储),Intel Xeon E5-2682v4 CPU。配置足以满足绝大部分任务的需求了。

(4) 镜像

Ubuntu16.04系统支持“自动安装GPU驱动”(推荐使用Ubuntu16.04,遇到的坑会少一点),可免去之后安装GPU驱动的步骤。

由于微软在github上发布的UNILM对于pytorch和cuda的版本要求是:

pytorch:1.2-cuda10.0-cudnn7

此外,UNILM要用到NVIDIA/apex,它又要求cuda版本要在10.1以上

所以,我尝试安装过几种cuda版本,最后发现下面这样选镜像配置是可以正常运行UNILM的

在这里插入图片描述

即选择:

自动安装 GPU 驱动

GPU 云加速器

CUDA 版本 10.1.168 / Driver 版本 440.64.00 / CUDNN 版本 7.6.5

(5)存储

不更改存储设置

完成上述配置后,点击“下一步:网络和安全组”该界面,我们不做任何更改

2.0.2 网络和安全组

不更改网络设置

安全组默认也保持不变。确保22端口打开即可,我们之后会通过ssh的方式连接服务器。

点击“下一步:系统配置”

2.0.3 系统配置

选“自定义密码”(记住该密码,当我们登录服务器时,登录名为root,密码为此处设置的密码)

完成后点击“确认订单”。

我们可以设置自动释放的时间**(谨慎操作,到达释放时间后,实例会被释放,数据及IP不会被保留)**若读者对自己的使用时间没有把握,不建议设置“使用时限”。

点击同意《云服务器 ECS 服务条款》服务协议。

之后我们即可点击**右下角的“创建实例”**了。创建实例之后即开始计费,直到我们手动停止服务为止。

这样就注册好了一个云服务器实例。

2.0.4 服务器的状态

进入服务器控制台。

点击管理

当不用服务器的时候,一定记得要停止服务或者快照保存+释放实例

从今年6月开始,停止服务仍然会继续收取CPU的费用,所以还是采用快照保存+释放实例的方式比较合理。

关于快照的操作,详见阿里云的快照文档

2.0.5 查看账单

登录阿里云官网后,点官网上方栏的控制台,再点上方栏的费用,再点左边栏的费用账单,在费用账单界面上方有三个选项,选账单,就可以看到所有的费用支出了,如下图。

在这里插入图片描述

阿里云比较坑的一点是:他的扣费是延时扣的,可能你充了100元,一开始随意注册了3个多余的服务器实例,然后忘了释放了(即使停止服务也会扣费,只有释放实例才不会继续扣费),可能在2个小时后才会发现自己突然被扣掉3个服务器2个小时的服务费。

而且就算欠费了,阿里云还是继续给你提供服务并扣钱,等你反应过来把多余的服务器关掉了,一看账单,有点头疼了。

所以,大家最好在下线前,检查一下自己的账单,预防忘记关掉多余服务器导致的扣费问题。

2.1 环境配置

2.1.0 登录服务器

登录后,点官网上方栏的控制台,再点左侧栏的云服务器 ECS,我们就可以看到我们正在运行的云服务器。记住我们服务器的公网IP地址,如下图。

在这里插入图片描述

打开电

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值