自然语言处理套件(使用文本分类工作流开发应用)
ModelArts Pro的自然语言处理套件提供了通用文本分类工作流和多语种文本分类工作流,通过工作流指引支持自主上传文本数据,构建高精度文本分类预测模型,适配不同行业场景的业务数据,快速获得定制服务。
通用文本分类工作流仅支持中文文本分类,多语种文本分类工作流支持对英语、法语、德语、西班牙语、葡萄牙语、阿拉伯语等语种文本进行分类。使用两种工作流开发应用的流程相同。
由于通用文本分类工作流和多语种文本分类工作流开发应用的流程相同,因此本章节以通用文本分类工作流为例,介绍如何使用自然语言处理套件中的文本分类工作流开发应用,通过上传训练数据、训练模型,将生成的模型部署为在线服务。部署完成后,用户可通过在线服务分类文本内容。
首先,请仔细阅读准备工作罗列的要求,提前完成准备工作。使用通用文本分类工作流开发应用的步骤如下所示:
步骤1:准备数据
在开发应用之前,您需要自行准备训练数据集并上传至OBS桶及文件夹中。由于数据安全原因,本样例不提供具体的样例数据,仅提供样例数据要求。
本样例使用已标注数据训练模型,数据集要求如下:
- 文件格式要求为txt或者csv,文件大小不能超过8MB。
- 以换行符作为分隔符,每行数据代表一个标注对象。
- 每个分类标签需要准备5个及以上数据,为了训练出效果较好的模型,建议每个分类标签准备100个以上的数据。
- 文本分类的标注对象和标注内容在一个文本文件内,标注对象与标注内容之间,多个标注内容之间可分别指定分隔符。
步骤2:新建应用
- 登录ModelArts Pro控制台,单击“自然语言处理套件”卡片的“进入套件”。
默认进入“应用开发>工作台”页面的“我的应用”页签。
图1 进入套件
- 在“我的应用”页签下,单击“新建应用”。
进入“新建应用”页面。
图2 新建应用
- 填写应用的“基本信息”、“工作流配置”和“资源配置”。
- 基本信息
- 工作流配置
- 资源配置
按图5和表3填写资源配置。
表3 资源配置参数说明 参数
说明
推荐填写
数据处理资源
用于数据处理的资源池和资源类型。
- “公共资源池”:提供公共的大规模计算集群,资源按作业隔离。您可以按需选择不同的资源类型。
- “专属资源池”:提供独享的计算资源,不与其他用户共享,更加高效。使用专属资源池需要在ModelArts创建专属资源池。
本样例选择“公共资源池”、“CPU:2核8GiB”。
模型训练资源
用于模型训练的资源池和资源类型。
- “公共资源池”:提供公共的大规模计算集群,资源按作业隔离。您可以按需选择不同的资源类型。
- “专属资源池”:提供独享的计算资源,不与其他用户共享,更加高效。使用专属资源池需要在ModelArts创建专属资源池。
本样例选择“公共资源池”。
部署方式
选择应用的部署方式,当前通用文本分类工作流仅支持“在线部署”。
本样例选择“在线部署”。
- 确认信息后,单击右下角的“确定”。
成功新建应用,进入“应用开发”页面。
步骤3:选择数据
- 在应用开发的“数据选择”页面,单击“新建数据集”。
右侧弹出“新建数据集”页面。
- 按表4填写数据集基本信息,然后单击“确定”。
图6 新建数据集
表4 新建数据集参数说明 参数
说明
推荐填写
数据集名称
待新建的数据集名称。支持输入中英文、数字、下划线及中划线。
本样例填写“test”。
描述
数据集简要描述。
-
数据集状态
上传的训练数据可以是已标注的数据,也可以是未标注的数据。
您可以根据自身业务选择“数据集状态”是“已标注数据集”还是“未标注数据集”。
数据集模板可在选择“数据集状态”后,单击下方的“文本分类已标注数据模板”或“文本分类未标注数据模板”,下载数据集模板至本地查看。
本样例使用已标注的数据集,所以选择“已标注数据集”。
如果您想手动修改标签,可单击数据集操作列的“标注”,进入数据集概览页单击右上角的“开始标注”,在“数据标注”页面手动标注数据,详细的操作指导请参考标注数据。
数据集输入位置
训练数据存储至OBS的位置。
单击“数据集输入位置”右侧输入框,在弹出的“数据集输入位置”对话框中,选择“OBS桶”和“文件夹”,然后单击“确定”。
选择步骤1:准备数据中提前上传数据集的OBS路径“mapro-nlp/data-in”。
数据集输出位置
待新建的数据集存储至OBS的位置。
单击“数据集输出位置”右侧的“修改”,在弹出的“数据集输出位置”对话框中,选择“OBS桶”和“文件夹”,然后单击“确定”。
选择步骤1:准备数据中提前创建好的输出数据集的OBS路径“mapro-nlp/data-out”。
- 勾选已上传的数据集。
您可以选择打开“合并标签”开关,将样本数量较少的标签在模型训练中进行合并,以达到更优训练效果。
图7 数据选择
- 单击右下角“下一步”。
进入应用开发的“模型训练”页面。
步骤4:训练模型
- 在应用开发的“模型训练”页面,勾选模型训练所使用的“预训练模型”。
当前服务提供预置预训练模型“BERT”、“TinyBERT”、“FastText”。本样例使用“FastText”模型。
- 在参数配置,填写“学习率”和“训练轮次”。
本样例使用“学习率”为“0.00001”,“训练轮次”为“3”。
- 单击右下角的“开始训练”,开始训练模型。
模型训练一般需要运行一段时间,等模型训练完成后,可查看“训练详情”、“准确率变化情况”和“误差变化”。
图8 训练详情
- 模型训练完成后,单击右下角的“下一步”。
进入应用开发的“模型评估”页面。
步骤5:评估模型
- 在应用开发的“模型评估”页面,您可以针对当前版本的模型进行整体评估和详细评估。
“整体评估”左侧显示当前模型的“版本”、“标签数量”、“验证集数量”。
“整体评估”右侧显示当前模型的评估参数值,包括“精准率”、“召回率”、“F1值”。
图9 整体评估
- 在应用开发的“模型评估”页面,您可以搜索查看测试集中数据模型预测结果。
“详细评估”左侧在搜索框中搜索标签,右侧显示正确标签所对应样本的正确标签和预测标签,您可以对比正确标签和预测标签,判断当前模型预测该样本是否预测正确。
例如搜索框内输入标签“1”,下方会显示正确标签为“1”的样本中,预测正确的样本数在验证集中的占比。右侧显示正确标签为“1”的样本信息,包括样本的正确标签和预测标签。
图10 详细评估
- 单击右下角的“发布部署”。
进入应用开发的“服务部署”页面。
步骤6:部署服务
在应用开发“服务部署”页面,按表5填写服务的相关参数,然后单击“部署”。
参数 |
说明 |
推荐填写 |
---|---|---|
服务名称 |
待部署的服务名称,首次部署服务请单击可修改默认服务名称。 如果在不同版本非首次部署服务,服务名称不支持修改。 |
本样例使用默认服务名称。 |
描述 |
待部署服务的简要说明。 |
- |
资源池 |
用于部署服务的资源池和资源类型。资源池可选“公共资源池”和“专属资源池”。
|
本样例选择“公共资源池”。 |
计算节点规格 |
界面上选择计算规格。 |
- |
计算节点个数 |
设置当前版本模型的实例个数。如果节点个数设置为1,表示后台的计算模式是单机模式;如果节点个数设置大于1,表示后台的计算模式为分布式的。请根据实际编码情况选择计算模式。 |
本样例选择1个计算节点。 |
服务自动停止 |
设置服务自动停止的时间,在线服务运行状态在所选的时间点后自动停止,同时在线服务也停止计费。 |
本样例选择“1小时后”。 |
部署成功后,页面显示“服务部署成功”。您可以单击“查看应用监控”,进入应用监控页面查看监控信息,详情请见监控应用。