PAI Designer

我们在PAI Designer里新增了NLP的组件,方便用户0代码使用NLP相关产品。
场景入口如下:
进入 阿里云官网 → 产品 → 人工智能 → 机器学习平台 PAI (直通链接
image.png
注册/登录账户后点击 前往控制台
image.png
进入之后,选择PAI Designer即可。

算法简介

BERT 文本分类是通用的基于BERT的分类模型,输出文本数据,输出分类标签,适用于文本打标和文本情感分析等任务。模型结构如下所示:

image.png
尽管该组件名字称为 BERT,但事实上支持ALBERT,RoBerta 等ModelZoo里的模型。

可视化配置参数

【输入桩配置】

输入桩(从左到右) 限制数据类型 建议上游组件 是否必选
训练数据 odps 读数据表odps
测试数据 odps 读数据表odps

【右侧参数表单】

image.png
字段设置:

参数名称 参数描述 取值类型 必选,默认值
文本列选择 文本序列在输入表中对应的列名 string类型 必选,无
标签列选择 分类标签对应的列名 string类型 必选,无
标签枚举值 需要枚举出所有标签,如果标签太多,可以输入文件 string类型 必选,无
样本权重列 样本加权列,每个样本的loss计算的时候可以加个权重 double类型 可选
模型存储路径 模型checkpoint的存储路径,比方说:
oss://easynlp-sh.oss-cn-shanghai-internal.aliyuncs.com/text_match/
string类型 必选,无

image.pngimage.png
参数设置:

参数名称 参数描述 取值类型 必选,默认值
模型选择 文本分类模型名 string 可选,默认为’text_classify_bert’,此外还支持非bert模型: text_classify_cnn, text_classify_dgcnn
优化器类型 优化器选择 string 可选,默认为’adam’
batchSize 批大小 int 可选,默认为256
sequenceLength 序列整体最大长度 int 可选,默认为128,范围为1~512
numEpochs 训练的轮次 int 可选,默认为2
学习率 优化器的学习率 double 可选,默认为1e-5
模型额外参数 额外的参数,比方说修改预训练模型等 string 可选,可以修改预训练模型,比方说:pretrain_model_name_or_path=pai-bert-base-zh,
其他模型详见:https://yuque.antfin-inc.com/pai/transfer-learning/uugdk2

执行调优:

参数名称 参数描述 取值类型 必选,默认值
指定Worker数 worker的数量 int 可选,默认为3个Worker
指定Worker的GPU卡数 每个worker的GPU卡数 int 可选,标识是否使用GPU。默认是2张卡
指定Worker的CPU卡数 每个worker的CPU核数 int 可选,标识是否使用GPU。默认是4张卡。
分布式策略 定义分布式策略 MirroredStrategy
或者:
ExascaleStrategy
必须,单机单卡或者单机多卡选
MirroredStrategy
多机多卡选
ExascaleStrategy

【输出桩配置】

输出桩 限制数据类型 建议下游组件 是否必选
结果数据 oss 通用NLP预测

具体示例

首先可以下载 训练集评估集,其中 train.csv , dev.csv 是用\t 分隔的 .csv 文件:

  1. 53360 美少女甜甜圈自拍,迷之角度竟这么好看,美吸引一切事物 102 news_entertainment 自拍,美少女,经纪人,甜甜圈
  2. 53361 重庆美食打卡,带你领略舌尖上的重庆 102 news_food 重庆,美食,美味

我们定义这五个字段为 example_id,sentence,label,label_str,keywords
我们对各数据创建表,并将相应的数据上传到 ODPS 上:

  1. CREATE TABLE ez_text_classify_train(
  2. example_id INT, sentence STRING, label STRING, label_str STRING, keywords STRING);
  3. CREATE TABLE ez_text_classify_dev(
  4. example_id INT, sentence STRING, label STRING, label_str STRING, keywords STRING);
odpscmd -e --config=${odps_config} "tunnel upload train.csv ez_text_classify_test_train -fd \t;"
odpscmd -e --config=${odps_config} "tunnel upload dev.csv ez_text_classify_test_dev -fd \t;"

注意:本教程所用数据来自 TNEWS’ 今日头条中文新闻(短文本)分类,为了演示教程,训练集取了1000个样本,评估集取了100个样本。这里共有四个字段:

  • example_id: 样本id信息
  • sentence: 文本信息,对应组件里的“标签列选择”
  • label: label信息,对应组件里的“标签列选择”
  • label_str: 额外信息
  • keywords: 额外信息

参考以上可视化配置参数。创建工作流,新建两个输入组件(读数据表组件),对应训练数据和测试数据。将两个输入组件和模型组件连接,运行即可获得结果。工作流示例如下:
image.png