建议使用以下浏览器,以获得最佳体验。 IE 9.0+以上版本 Chrome 31+ 谷歌浏览器 Firefox 30+ 火狐浏览器
设置昵称

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

确定
我再想想
选择版块
AI大赛 主题:368帖子:2383

【华为云AI经典论文复现】

ModelArts AI Gallery算法TinyBert使用指导(样例文档)

Mbaey233 2021/1/7 1195

本文档是ModelArts AI Gallery算法TinyBert(以下简称为本算法)的详细使用方法。

本算法使用GLUE任务下MRPC数据集中的train集和dev集,使用train集训练,在MRPC dev集上测试达到了0.8489的准确率。

    1. 准备数据集(需根据具体算法修改)

1.1 下载GLUE数据集(需根据具体算法修改)

下载用于特定任务,知识蒸馏的GLUE数据集。


      1. 数据下载:参考 download_glue_data.py

      2. 数据增强:参考 Pretrained-Language-Model/TinyBERT at master · huawei-noah/Pretrained-Language-Model (github.com) 下的data_augmentation.py。

      3. 将数据集文件从 json 格式转换为 tfrecord 格式,请参阅BERT 存储库下的run_classifier.py 

处理完成后,数据的文件目录如下:

MRPC/

├── dev

│    └── MRPC-dev.tfrecord

└── train

|    └── MPRC-train.tfrecord

├── schema.json




schema.jsom样例:


{
    "datasetType": "TF",
    "columns": {
        "input_ids": {
        "type": "int64",
        "rank": 1,
        "shape": [128]
    },
    "input_mask": {
            "type": "int64",
            "rank": 1,
            "shape": [128]
        },
    "segment_ids": {
            "type": "int64",
            "rank": 1,
            "shape": [128]
        },
    "label_ids": {
            "type": "int64",
            "rank": 1,
            "shape": [1]
        }
    }
}



1.2 安装OBS Browser+并上传数据集

ModelArts使用对象存储服务(OBS)来存储数据,实现安全、高可靠和低成本的存储需求。OBS Browser+是一款用于访问和管理对象存储服务(Object Storage Service,OBS)的图形化工具,支持完善的桶管理和对象管理操作。OBS Browser+的图形化界面可以非常方便地让用户在本地对OBS进行管理,例如:创建桶、上传下载文件、浏览文件等。

具体操作步骤如下:
(1)点此下载OBS Browser+,下载完成后解压缩,双击exe进行安装,安装完成后运行;

(2)登录界面如下图所示,需要您填写账号名、Access Key ID(AK)和Secret Accsee Key(SK),参考此文档,获取AK和SK,华为云上的许多产品都需要用到访问密钥,请妥善保存该密钥文件,然后参考下图填写您的华为云账号名及刚获取的AK和SK,点击登录;
2_login_in_obs_browser.jpg

(3)参考下图,点击“创建桶”,输入桶名称,注意:区域要选择华北-北京四、标准存储、私有、关闭多AZ,桶名需自定义,OBS桶名要全局唯一,如提示桶名已存在,则需要您修改为其他名称,比如本文设置桶名为paper-reproduction-01。您设置的桶名必须与此不同,如在下文的操作指导中看到paper-reproduction-01,请主动将桶名替换为您自己的桶名,下文将不再进行提示
3_create_bucket.jpg

(4)点击桶名称,进入到桶中,点击“新建文件夹”,输入文件夹名称,如“train_input”,点击进入文件夹,再新建“datasets”,点击“上传”->“添加文件”-> 选择本地下载好的数据集压缩包(之所以选压缩包格式是因为如果数据集比较大,上传压缩包比上传文件夹快很多) –> 确定,如下图所示;
4_upload_files.jpg

(5)点击OBS Browser+左侧的“任务管理”,可查看数据上传进度。如下图所示,点击设置,在基础设置中,设置最大并发数为最大值50,可以加快数据上传速度
5_upload_files_2.jpg

2. 订阅本算法

点击本页面右上方的【订阅】按钮。然后点击页面下方的【下一步】按钮,再点击【确认付款】按钮,最后点击【确定】按钮进入我的订阅页面,可以看到刚刚订阅的算法。点击【应用控制台】超链接,选择华北-北京四区域,进入算法管理页面。

如下图所示,点击“同步”按钮,同步算法,可以点击刷新按钮,刷新状态。当状态变成就绪时,表示同步成功。
6_sync&train_job.jpg

3. 创建训练作业(需根据具体算法修改)

点击上图中的“创建训练作业”,按照下表填写训练作业参数:

参数名 参数值
算法名称 默认值即可,无需修改
数据来源 数据存储位置,选择obs://paper-reproduction-01/algorithms/train_input/MRPC/
模型输出 选择obs://paper-reproduction-01/algorithms/train_output
do_train true
eval false
data_url obs://paper-reproduction-01/algorithms/train_input/MRPC/
train_url obs://paper-reproduction-01/algorithms/train_output
output_url obs://paper-reproduction-01/algorithms/train_output
td_phase1_epoch_size 100
td_phase2_epoch_size 30
lr 1e-5
load_weight trained_model/model/tinyBERT_4L_MRPC_mindspore1.1.1.ckpt
作业日志路径 选择
资源池 公共资源池
规格 modelarts.kat1.xlarge,或者根据自己的需要进行选择
计算节点个数 1

点击下一步,提交,训练作业的状态会经历“初始化”、“部署中”、“运行中”和“运行成功”四个状态。训练作业运行成功后,在上表中指定的“模型输出”路径下会自动生成model目录,该目录下有模型文件、ModelArts平台推理脚本(config.json、customize_service.py)和其他运行模型必备的文件。

4. 模型导入

准备好模型及相关的必备文件后,您可以将生成的模型导入至ModelArts模型管理。具体操作如下:

(1)在ModelArts控制台的左侧导航栏点击“模型管理” -> “模型”,点击右侧页面中的“导入”。在导入模型页面填写名称,选择元模型来源,可以从OBS中选择。如果是从OBS中选择,则需要选择到model目录的上一级目录;例如,本次可选择的目录为obs://paper-reproduction-01/algorithms/train_output,如下图所示:


image.png


5. 创建在线服务

在ModelArts上,可以将模型部署为在线服务,然后上传图片进行预测,直接在网页端观察预测结果。

部署为在线服务具体步骤如下:

(1)在ModelArts左侧导航栏中选择“部署上线 -> 在线服务”,然后点击页面中的“部署”;

(2)在部署页面填写参数,其中在“模型列表”选择要导入的模型及版本,计算节点规格选择Acend即可;

image.png

(3)访问在线服务。

虽然本模型是按照“Ascend 910 Mindspore模板”导入,并且输入输出模式设置为“未设定”模式。但是为了便于处理,post请求接口还是需要符号一定的规范

"apis": [
        {
            "protocol": "https",
            "url": "/",
            "method": "post",
            "request": {
                "Content-type": "multipart/form-data",
                "data": {
                    "type": "object",
                    "properties": {
                        "dev-tsv": {
                            "type": "file"
                        }
                    }
                }
            },
            "response": {
                "Content-type": "multipart/form-data",
                "data": {
                    "type": "object",
                    "properties": {
                        "accuracy": {
                            "type": "list",
                            "items": [
                                {
                                    "type": "string"
                                }
                            ]
                        },
                        "preds": {
                            "type": "list",
                            "items": [
                                {
                                    "type": "string"
                                }
                            ]
                        }
                    }
                }
            }
        }
    ]

request请求需要提供一个名为dev-tsv的文件(本例中即为GLUE数据集下MRPC任务的dev.tsv),response会返回预测的accuracy(正确率)、以及preds(预测的类别)。D


为了访问在线服务,

下图即为通过Postman软件,向在线服务发送post请求,并获得response的结果。用户如果熟悉命令行工具,也可使用curl命令发送post请求。

Mindspore部署成功.png

(3)点击“下一步”,参数确认无误后,点击“提交”。

提交后,您可以在在线服务列表中查看部署进度,当状态变为“运行中”后,点击服务名称,进入详情页面,点击“预测”,上传GLUE/MRPC/dev.tsv 进行测试。

6. 模型评估

参考本文第2节中的步骤,创建“训练作业”,按照下表设置训练参数:

参数名 参数值
算法名称 默认值即可,无需修改
数据来源 数据存储位置,选择测试集所在路径,如obs://paper-reproduction-01/algorithms/train_input/MRPC
模型输出 选择obs://paper-reproduction-01/algorithms/train_output
do_train false
eval true 
data_url obs://paper-reproduction-01/algorithms/train_input/MRPC
train_url obs://paper-reproduction-01/algorithms/train_output
load_weight trained_model/model/tinyBERT_4L_MRPC_mindspore1.1.1.ckpt



回复3

HW-QGS
0 1
2021/1/7 17:39

点赞

2021/1/7 18:10

感谢分享,点赞

2021/1/10 15:19

感谢分享,mark下

上划加载中
直达楼层
标签
您还可以添加5个标签
  • 没有搜索到和“关键字”相关的标签
  • 云产品
  • 解决方案
  • 技术领域
  • 通用技术
  • 平台功能
取消

采纳成功

您已采纳当前回复为最佳回复

Mbaey233

发帖: 1粉丝: 0

发消息 + 关注

更新于2021年06月02日 09:34:14 1195 3
直达本楼层的链接
楼主
显示全部楼层
[华为云AI经典论文复现] ModelArts AI Gallery算法TinyBert使用指导(样例文档)

本文档是ModelArts AI Gallery算法TinyBert(以下简称为本算法)的详细使用方法。

本算法使用GLUE任务下MRPC数据集中的train集和dev集,使用train集训练,在MRPC dev集上测试达到了0.8489的准确率。

    1. 准备数据集(需根据具体算法修改)

1.1 下载GLUE数据集(需根据具体算法修改)

下载用于特定任务,知识蒸馏的GLUE数据集。


      1. 数据下载:参考 download_glue_data.py

      2. 数据增强:参考 Pretrained-Language-Model/TinyBERT at master · huawei-noah/Pretrained-Language-Model (github.com) 下的data_augmentation.py。

      3. 将数据集文件从 json 格式转换为 tfrecord 格式,请参阅BERT 存储库下的run_classifier.py 

处理完成后,数据的文件目录如下:

MRPC/

├── dev

│    └── MRPC-dev.tfrecord

└── train

|    └── MPRC-train.tfrecord

├── schema.json




schema.jsom样例:


{
    "datasetType": "TF",
    "columns": {
        "input_ids": {
        "type": "int64",
        "rank": 1,
        "shape": [128]
    },
    "input_mask": {
            "type": "int64",
            "rank": 1,
            "shape": [128]
        },
    "segment_ids": {
            "type": "int64",
            "rank": 1,
            "shape": [128]
        },
    "label_ids": {
            "type": "int64",
            "rank": 1,
            "shape": [1]
        }
    }
}



1.2 安装OBS Browser+并上传数据集

ModelArts使用对象存储服务(OBS)来存储数据,实现安全、高可靠和低成本的存储需求。OBS Browser+是一款用于访问和管理对象存储服务(Object Storage Service,OBS)的图形化工具,支持完善的桶管理和对象管理操作。OBS Browser+的图形化界面可以非常方便地让用户在本地对OBS进行管理,例如:创建桶、上传下载文件、浏览文件等。

具体操作步骤如下:
(1)点此下载OBS Browser+,下载完成后解压缩,双击exe进行安装,安装完成后运行;

(2)登录界面如下图所示,需要您填写账号名、Access Key ID(AK)和Secret Accsee Key(SK),参考此文档,获取AK和SK,华为云上的许多产品都需要用到访问密钥,请妥善保存该密钥文件,然后参考下图填写您的华为云账号名及刚获取的AK和SK,点击登录;
2_login_in_obs_browser.jpg

(3)参考下图,点击“创建桶”,输入桶名称,注意:区域要选择华北-北京四、标准存储、私有、关闭多AZ,桶名需自定义,OBS桶名要全局唯一,如提示桶名已存在,则需要您修改为其他名称,比如本文设置桶名为paper-reproduction-01。您设置的桶名必须与此不同,如在下文的操作指导中看到paper-reproduction-01,请主动将桶名替换为您自己的桶名,下文将不再进行提示
3_create_bucket.jpg

(4)点击桶名称,进入到桶中,点击“新建文件夹”,输入文件夹名称,如“train_input”,点击进入文件夹,再新建“datasets”,点击“上传”->“添加文件”-> 选择本地下载好的数据集压缩包(之所以选压缩包格式是因为如果数据集比较大,上传压缩包比上传文件夹快很多) –> 确定,如下图所示;
4_upload_files.jpg

(5)点击OBS Browser+左侧的“任务管理”,可查看数据上传进度。如下图所示,点击设置,在基础设置中,设置最大并发数为最大值50,可以加快数据上传速度
5_upload_files_2.jpg

2. 订阅本算法

点击本页面右上方的【订阅】按钮。然后点击页面下方的【下一步】按钮,再点击【确认付款】按钮,最后点击【确定】按钮进入我的订阅页面,可以看到刚刚订阅的算法。点击【应用控制台】超链接,选择华北-北京四区域,进入算法管理页面。

如下图所示,点击“同步”按钮,同步算法,可以点击刷新按钮,刷新状态。当状态变成就绪时,表示同步成功。
6_sync&train_job.jpg

3. 创建训练作业(需根据具体算法修改)

点击上图中的“创建训练作业”,按照下表填写训练作业参数:

参数名 参数值
算法名称 默认值即可,无需修改
数据来源 数据存储位置,选择obs://paper-reproduction-01/algorithms/train_input/MRPC/
模型输出 选择obs://paper-reproduction-01/algorithms/train_output
do_train true
eval false
data_url obs://paper-reproduction-01/algorithms/train_input/MRPC/
train_url obs://paper-reproduction-01/algorithms/train_output
output_url obs://paper-reproduction-01/algorithms/train_output
td_phase1_epoch_size 100
td_phase2_epoch_size 30
lr 1e-5
load_weight trained_model/model/tinyBERT_4L_MRPC_mindspore1.1.1.ckpt
作业日志路径 选择
资源池 公共资源池
规格 modelarts.kat1.xlarge,或者根据自己的需要进行选择
计算节点个数 1

点击下一步,提交,训练作业的状态会经历“初始化”、“部署中”、“运行中”和“运行成功”四个状态。训练作业运行成功后,在上表中指定的“模型输出”路径下会自动生成model目录,该目录下有模型文件、ModelArts平台推理脚本(config.json、customize_service.py)和其他运行模型必备的文件。

4. 模型导入

准备好模型及相关的必备文件后,您可以将生成的模型导入至ModelArts模型管理。具体操作如下:

(1)在ModelArts控制台的左侧导航栏点击“模型管理” -> “模型”,点击右侧页面中的“导入”。在导入模型页面填写名称,选择元模型来源,可以从OBS中选择。如果是从OBS中选择,则需要选择到model目录的上一级目录;例如,本次可选择的目录为obs://paper-reproduction-01/algorithms/train_output,如下图所示:


image.png


5. 创建在线服务

在ModelArts上,可以将模型部署为在线服务,然后上传图片进行预测,直接在网页端观察预测结果。

部署为在线服务具体步骤如下:

(1)在ModelArts左侧导航栏中选择“部署上线 -> 在线服务”,然后点击页面中的“部署”;

(2)在部署页面填写参数,其中在“模型列表”选择要导入的模型及版本,计算节点规格选择Acend即可;

image.png

(3)访问在线服务。

虽然本模型是按照“Ascend 910 Mindspore模板”导入,并且输入输出模式设置为“未设定”模式。但是为了便于处理,post请求接口还是需要符号一定的规范

"apis": [
        {
            "protocol": "https",
            "url": "/",
            "method": "post",
            "request": {
                "Content-type": "multipart/form-data",
                "data": {
                    "type": "object",
                    "properties": {
                        "dev-tsv": {
                            "type": "file"
                        }
                    }
                }
            },
            "response": {
                "Content-type": "multipart/form-data",
                "data": {
                    "type": "object",
                    "properties": {
                        "accuracy": {
                            "type": "list",
                            "items": [
                                {
                                    "type": "string"
                                }
                            ]
                        },
                        "preds": {
                            "type": "list",
                            "items": [
                                {
                                    "type": "string"
                                }
                            ]
                        }
                    }
                }
            }
        }
    ]

request请求需要提供一个名为dev-tsv的文件(本例中即为GLUE数据集下MRPC任务的dev.tsv),response会返回预测的accuracy(正确率)、以及preds(预测的类别)。D


为了访问在线服务,

下图即为通过Postman软件,向在线服务发送post请求,并获得response的结果。用户如果熟悉命令行工具,也可使用curl命令发送post请求。

Mindspore部署成功.png

(3)点击“下一步”,参数确认无误后,点击“提交”。

提交后,您可以在在线服务列表中查看部署进度,当状态变为“运行中”后,点击服务名称,进入详情页面,点击“预测”,上传GLUE/MRPC/dev.tsv 进行测试。

6. 模型评估

参考本文第2节中的步骤,创建“训练作业”,按照下表设置训练参数:

参数名 参数值
算法名称 默认值即可,无需修改
数据来源 数据存储位置,选择测试集所在路径,如obs://paper-reproduction-01/algorithms/train_input/MRPC
模型输出 选择obs://paper-reproduction-01/algorithms/train_output
do_train false
eval true 
data_url obs://paper-reproduction-01/algorithms/train_input/MRPC
train_url obs://paper-reproduction-01/algorithms/train_output
load_weight trained_model/model/tinyBERT_4L_MRPC_mindspore1.1.1.ckpt



举报
分享

分享文章到朋友圈

分享文章到微博

采纳成功

您已采纳当前回复为最佳回复

HW-QGS

发帖: 330粉丝: 27

发消息 + 关注

发表于2021年01月07日 17:39:43
直达本楼层的链接
沙发
显示全部楼层

点赞

点赞1 评论 引用 举报

采纳成功

您已采纳当前回复为最佳回复

初学者7000

发帖: 343粉丝: 8

发消息 + 关注

发表于2021年01月07日 18:10:14
直达本楼层的链接
板凳
显示全部楼层

感谢分享,点赞

点赞1 评论 引用 举报

采纳成功

您已采纳当前回复为最佳回复

小强鼓掌

发帖: 234粉丝: 2

发消息 + 关注

发表于2021年01月10日 15:19:03
直达本楼层的链接
地板
显示全部楼层

感谢分享,mark下

点赞1 评论 引用 举报

游客

富文本
Markdown
您需要登录后才可以回帖 登录 | 立即注册

结贴

您对问题的回复是否满意?
满意度
非常满意 满意 一般 不满意
我要反馈
0/200