MindSpore21日实战训练营-Bert

举报
JeffDing 发表于 2020/11/10 15:32:13 2020/11/10
【摘要】 MindSpore21日实战训练营-Bert

一、Bert简介

BERT的全称为Bidirectional Encoder Representation from Transformers,是一个预训练的语言表征模型。它强调了不再像以往一样采用传统的单向语言模型或者把两个单向语言模型进行浅层拼接的方法进行预训练,而是采用新的masked language model(MLM),以致能生成深度的双向语言表征。BERT论文发表时提及在11个NLP(Natural Language Processing,自然语言处理)任务中获得了新的state-of-the-art的结果,令人目瞪口呆。

该模型有以下主要优点:

1)采用MLM对双向的Transformers进行预训练,以生成深层的双向语言表征。

2)预训练后,只需要添加一个额外的输出层进行fine-tune,就可以在各种各样的下游任务中取得state-of-the-art的表现。在这过程中并不需要对BERT进行任务特定的结构修改。

Bert结构:

二、作业流程:

1. 申请华为云账号、申请ModelArts华为云昇腾集群服务公测

2. 从链接下载bert_base ckpt文件、tnews数据集和源代码

3. 创建obs桶

4. 上传bert_base ckpt文件、tnews数据集和源代码到obs桶

5. 提交ModelArts 训练作业

6. 等待、查看结果

三、下载作业包

https://e-share.obs-website.cn-north-1.myhuaweicloud.com?token=SvjC1tq+9EC0fILT0WI5w1SIJKMVsoAn6d3hiNI5bHpGQMMKuJiZhGfVhyPTgqUIFIVIYKtAmENUpN6ssH654op9P9KNXqX021meACXkf2EZ+O58B+FMoSmBJoaoi+97k52R89dhiOtO4HUMuIK6JYdZImjBOaZ1gxeB+gXCgHBKRNpzfcccU4d41LlA3BPBLqhJ24K0Q76EZdwPUFdf+oRgVqr9d4n01yNmZ9PlIYQlLFSxfQGeIojXp5jif1EEISBUvsvSm880An8VEAqYCMdiLcyfVE9rv0YFodid0EPzGmngOMa5p2Q/P6q3jJsjaPsElkX4SMpQ80v4DkJ4J+un4gISVfwf5VWIxObY7CbnP2YIJ+K7F+m9OrRN8oDm4aUooUfi0u8xlKIij4NqFyWMjUuPCsAIHavtpB+WQqMFOZooFxE45VAIZSXQiWIL3UKYVSm/Eyvi+cyg8PON0I501QJkhONQH7inkdoUMinwQoWOx/lyBzKiw8f94rtRtCWWNwI9DZsz/tDSF+yeMo3hI7p7NILWiFUbvFK2lUc= 

提取码:123456

最新Bert源代码(MindSpore 1.0)下载地址:

git clone http://github.com/mindspore-ai/mindspore-21-days-tutorials/

然后找到Chapter2目录中的Bert,这里面就是Bert的源代码,然后将他上传到OBS中

Bert_base.ckpt文件下载地址:

https://bert-21days.obs.myhuaweicloud.com:443/bert/bert_base.ckpt?AccessKeyId=M7KX8KLMT0ZL1P8QWXZ5&Expires=1635991421&Signature=cruWVmPy68Fz%2Bfr90Do5sS1WN0E%3D 

下载完成Bert_base.ckpt文件后将他和OBS中的源代码放在同意目录下

OBS中文件目录列表如下:

tfrecoder:存放tfrecoder文件

output:模型输出文件夹

dataset:存放 tnews文件

bert:程序源代码

四、开始训练+验证

进入到ModelArts创建训练作业

需要额外增加参数

num_class = 15

load_pretrain_checkpoint_path = /home/work/user-job-dir/bert/bert_base.ckpt

train_data_file_path = /cache/data/train.tf_record

do_train = true

epoch_num = 3

eval_data_file_path = /cache/data/dev.tf_record

do_eval = true

全部设定完毕后点击确定按钮开始训练,最终的运行结果如图:

到此整个训练验证就完成了


番外篇:

image.png

我们把所有自己添加的训练参数都删除,然后新建一个predict参数,内容设定一个我们要让程序判断是什么类型的新闻的字段,然后我们看一下模型运行结果

image.png

image.png

通过模型训练我们发现,系统觉得这是一条金融新闻


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

举报
请填写举报理由
0/200