智能文创解决方案基于阿里云机器学习PAI产品帮助您快速搭建囊括模型离线训练、离线预测和在线部署的端到端全链路构建流程。旨在从冗长、重复的文本序列中抽取、精炼或总结出要点信息,实现各类文本生成任务。本文以新闻标题生成为例为您介绍该解决方案的使用流程和操作步骤。
前提条件
在开始执行操作前,请确认您已完成以下准备工作。
- 已开通PAI(Designer、DSW、EAS)后付费,并创建默认工作空间,具体操作,请参见开通并创建默认工作空间。
- 已创建OSS存储空间(Bucket),用于存储数据集、训练获得的模型文件和配置文件。关于如何创建存储空间,详情请参见创建存储空间。
- 已创建PAI-EAS专属资源组,用于部署训练好的模型。关于如何创建专属资源组,详情请参见使用专属资源组。
背景信息
阿里云机器学习PAI在智能文本创作领域已实现各类文本生成任务,包括:文本摘要生成、新闻标题生成、文案生成、问题生成、作文生成和古诗生成等。各任务详情介绍及具体解决方案如下。
- 任务介绍
任务类型 功能描述 输入示例 输出示例 文本摘要 根据输入文本生成概要性总结 新冠肺炎疫情发生以来,滥食野生动物的突出问题,以及由此给公共卫生安全带来的巨大隐患,引发社会广泛关注。全国多地公安、林业以及市场监管部门开展相关专项行动,对非法猎捕、贩卖、食用野生动物进行全链条打击,效果显著。执法部门在打击涉野生动物违法犯罪活动的过程中发现,野味消费群体庞大、盗猎利润惊人、鉴定难度大成本高等问题,成为盗猎野生动物黑色利益链条得以在地下运转的重要原因…… 全国许多地方的公安,林业和市场监管部门已采取相关专项行动,打击非法狩猎,贩运和食用野生动物的行为,产生了重大影响。 新闻标题生成 根据新闻文本生成新闻标题。 在广州某某医院,一个上午6名患者做支气管镜检查。5人查出肺癌,且4人是老烟民!专家称,吸烟和被动吸烟是肺癌的主要元凶,而二手烟、三手烟(即吸烟后滞留在室内或衣服、头发等的微粒和气体)与吸烟危害性一样大! 远离烟草!不止二手烟,还有三手烟! 文案生成 根据产品介绍生成产品文案。 家用陶瓷杯。 这款陶瓷杯采用优质陶土高温烧制而成,瓷质细腻通透,杯口圆润光滑,唇感舒适。杯身上的花纹设计,时尚美观,尽显其现代简约风格时尚、典雅的气息。圆润的杯身,手感舒适,握感极佳,是您居家生活的好帮手。 问题生成 根据段落叙述生成可回答的问题。 小猫的很多本领,比如上厕所、对环境的探索等,都是跟猫妈妈学来的。最好是让小猫在猫妈妈身边呆2个月到3个月,相应的本领才比较成熟。如果是小母猫,过早离开妈妈,那么她长大后在育儿方面也会有所欠缺。 小猫多久可以离开母猫? 作文生成 根据标题生成作文内容。 家乡的四季。 家乡的四季是多姿多彩的。春天,万物复苏,小草从土里探出头来,好奇地打量着这个世界。小河里的冰融化了,河水清澈见底,鱼儿在水里自由自在地游来游去。柳树抽出了新的枝条,长出嫩绿的叶子,像一个个小姑娘在梳理自己美丽的长发。 古诗生成 根据关键词生成古诗。 诸葛亮。 卧龙起南阳,飞鸟起北向。初若不自慎,又何保社稷。伊吾一寸心,耿耿抱高亮。 - 解决方案
- 基于PAI提供的文本摘要模型和算法,根据您自己的文本摘要场景,在PAI-Designer可视化建模平台进行模型微调,从而构建具体场景的NLP(Natural Language Processing)文本摘要模型。
- 在PAI-Designer可视化建模平台,基于PAI提供的默认模型或您自行微调的文本摘要模型进行批量离线预测。
- 将模型部署为PAI-EAS在线服务,对本文进行自动摘要。
使用流程
基于阿里云机器学习PAI平台,智能文创解决方案的使用流程如下。

- 步骤一:准备数据
将训练数据集和验证数据集上传到OSS Bucket中,用于后续的文本摘要模型训练和预测。
- 步骤二:构建文本摘要模型
在PAI-Designer可视化建模平台,使用文本摘要训练组件,基于海量大数据语料预训练获得的NLP预训练模型,构建文本摘要模型。
- 步骤三:离线批量预测
在PAI-Designer可视化建模平台,使用文本摘要预测组件,基于海量文本数据、文本摘要模型或PAI默认的模型,进行批量离线预测生成文本摘要。
- 步骤四:部署及调用模型服务
通过模型在线服务PAI-EAS,您可以将训练好的文本摘要模型部署为在线服务,并在实际的生产环境调用,从而实现在线生成文本摘要。
步骤一:准备数据
- 准备训练数据集和验证数据集。本文使用某个新闻数据集的一个子集进行模型训练和预测。训练数据集和预测数据集具体格式要求如下。
需要准备的数据 格式 包含列 数据集示例文件 训练数据集 TSV或TXT - 新闻摘要列
- 新闻原文列
cn_train.tsv 验证数据集 TSV或TXT - 新闻标题摘要列
- 新闻原文列
- 新闻标题摘要分词结果列(非必须)
- 新闻原文分词结果列(非必须)
- 新闻类别标签列(非必须)
cn_dev.tsv - 将数据集上传至OSS Bucket,具体操作,请参见上传文件。说明 如果您需要利用自己的数据集对模型进行微调,则需要提前将数据集上传至OSS Bucket中。
步骤二:构建文本摘要模型
- 进入PAI-Designer页面,并创建空白工作流,具体操作请参见操作步骤。
- 在工作流列表,选择已创建的空白工作流,单击进入工作流。
- 在工作流页面,分别拖入以下组件,并根据下文的组件参数配置组件。
区域 描述 ① 配置实验的训练数据集,即配置读OSS数据组件的OSS数据路径参数为训练数据集在OSS Bucket中的存储路径。 ② 配置实验的验证数据集,即配置读OSS数据组件的OSS数据路径参数为验证数据集在OSS Bucket中的存储路径。 ③ 配置文本摘要模型训练的参数。文本摘要训练组件的配置详情,请参见下文的文本摘要训练组件的配置。 表 1. 文本摘要训练组件的配置 页签 参数 描述 本案例使用的示例值 字段设置 输入数据格式 输入文件中每列的数据格式,多列之间使用半角逗号(,)分隔。 title_tokens:str:1,content_tokens:str:1 原文列选择 新闻原文在输入文件中对应的列名。 content_tokens 摘要列选择 新闻摘要在数据文件中对应的列名。 title_tokens 模型存储路径 配置OSS Bucket中的目录,用来存储文本摘要训练生成的模型文件。 oss://exampleBucket.oss-cn-shanghai-internal.aliyuncs.com/exampledir 参数设置 预训练模型 预训练模型名称。 alibaba-pai/mt5-title-generation-zh 批次大小 训练过程中的批处理大小。如果使用多机多卡,则表示每个GPU上的批处理大小。 8 文本最大长度 表示系统可处理的序列整体最大长度。 512 迭代轮数 训练总Epoch的数量。 3 学习率 模型构建过程中的学习率。 3e-5 保存模型文件步数 表示每训练多少步,对模型进行评价,并保存当前最优模型。 150 语言 表示当前文本处理的语言: - zh:中文
- en:英文
zh 是否从原文中拷贝文本 表示是否采用复制机制,取值如下: - false:(默认值),表示不拷贝。
- true:表示拷贝。
false 解码器最小长度 表示解码器最小长度,模型输出长度大于该值。 12 解码器最大长度 表示解码器最大长度,模型输出长度小于该值。 32 最小不重复字段 表示不重复的片段大小。例如:当取值为1时,不会生成类似“天天”等结果。 2 集束搜索数量 模型生成候选答案时的搜索空间,该值越大,预测越慢。 5 返回候选答案数量 模型返回的排名靠前的候选结果数量。 5 执行调优 GPU机器类型 计算资源的GPU机型。默认值为gn5-c8g1.2xlarge,表示8核CPU、80G内存、P100单卡。 gn5-c8g1.2xlarge
步骤三:离线批量预测
- 配置离线预测工作流。文本摘要预测组件有以下两种工作方式。
- 方式一:利用文本摘要训练组件生成的模型进行预测并生成摘要。您需要在步骤二的工作流页面,参照下图补充拖入组件,并根据下文的组件参数配置组件。
- 方式二:将PAI默认模型上传至OSS Bucket,并接入文本摘要预测组件进行预测并生成摘要。您需要参照步骤二创建新的空白工作流,参照下图拖入组件,并根据下文的组件参数配置组件。
区域 描述 ① 配置实验的预测数据集(使用步骤一中的验证数据集做为预测数据集),即配置读OSS数据组件的OSS数据路径参数为验证数据集在OSS Bucket中的存储路径。 ② 配置文本摘要模型预测的参数。文本摘要预测组件的配置详情,请参见文本摘要预测组件的配置。 表 2. 文本摘要预测组件的配置 页签 参数 描述 本案例使用的示例值 字段设置 输入数据格式 输入文件的每列的数据格式,多列之间使用半角逗号(,)分隔。 title:str:1,content:str:1,title_tokens:str:1,content_tokens:str:1,tag:str:1 原文列选择 新闻原文在输入文件中对应的列名。 content 输出追加列选择 将输入文件的若干文本列追加到输出文本列之后,多列之间使用半角逗号(,)分隔。 title_tokens,content,tag 输出列选择 选择输出列,多列之间使用半角逗号(,)分隔。 predictions,beams 预测数据输出 配置预测结果文件在OSS Bucket中的路径。 oss://exampleBucket.oss-cn-shanghai-internal.aliyuncs.com/exampledir/pred_data.tsv 使用自有模型 是否使用PAI默认模型,进行直接预测。取值如下: - 是:当文本摘要预测组件使用方式二时,配置为是。
您需要在模型存储路径参数中配置PAI默认模型在OSS Bucket中的存储路径。
- 否:当文本摘要预测组件使用方式一时,配置为否。
否 是否为Megatron模型 仅支持文本摘要训练组件中列出的带mg前缀的预训练模型。取值如下: - 否(默认值)
- 是
否 参数设置 批次大小 预测过程中的批处理大小。如果使用多机多卡,则表示每个GPU上的批处理大小。 8 文本最大长度 表示系统可处理的序列整体最大长度。 512 语言 表示当前文本处理的语言: - zh:中文。
- en:英文。
zh 是否从原文中拷贝文本 输出结果是否从文本中拷贝文本片段: - false:(默认值),表示不拷贝。
- true:表示拷贝。
false 解码器最小长度 表示解码器最小长度,模型输出长度大于该值。 12 解码器最大长度 表示解码器最大长度,模型输出长度小于该值。 32 最小不重复字段 表示不重复的片段大小。 2 集束搜索数量 表示集束搜索大小。该值越大,预测越慢。 5 返回候选答案数量 表示返回结果的数量。 5 执行调优 GPU机器类型 计算资源的GPU机型。默认值为gn5-c8g1.2xlarge,表示8核CPU、80G内存、P100单卡。 gn5-c8g1.2xlarge - 方式一:利用文本摘要训练组件生成的模型进行预测并生成摘要。
- 单击画布上方的运行。
- 实验运行成功后,您可以在文本摘要训练组件模型存储路径配置的OSS Bucket目录中,下载生成的模型文件和配置文件。
步骤四:部署及调用模型服务
通过模型在线服务PAI-EAS,您可以将训练好的文本摘要模型部署为在线服务,并在实际的生产环境中调用,从而进行推理实践。
- 首先将训练好的模型及其他相关配置文件打包。如果您希望使用PAI默认的模型进行部署,请跳过此步。以下介绍文本摘要模型的打包方式。首先将训练得到的模型,及其他配置文件打包为tgz格式,并上传至OSS Bucket。模型和配置文件的目录结构如下所示。
您可以使用以下命令,将目录打包为tgz格式。finetuned_zh_model |--config.json |--label_mapping.json |--pytorch_model.bin |--train_config.json |--vocab.txt
tar -zcvf finetuned_zh_model.tgz finetuned_zh_model/*
- 进入PAI EAS模型在线服务页面。
- 登录PAI控制台。
- 在左侧导航栏,选择 。
- 部署模型服务。
- 调式模型服务。
- 查看模型服务的公网地址和访问Token。
- 在PAI EAS模型在线服务页面,单击目标服务服务方式列下的调用信息。
- 在调用信息对话框的公网地址调用页签,查看公网调用的访问地址和Token。
- 使用脚本进行批量调用。
- 监控服务指标。调用模型服务后,您可以查看模型调用的相关指标水位,包括QPS、RT、CPU、GPU及Memory。