在线上业务的内容生产过程中,为了及时识别其中的高风险内容,PAI提供了文本内容风控解决方案。本文介绍如何基于人工智能算法,快速构建符合业务场景的风控模型,助力您快速识别高风险内容,进而对其进行拦截。
您可前往阿里云AI体验馆中的内容安全审核页面,体验文本内容风控的智能服务。
背景信息
在诸多生产内容的场景(例如评论、博客、商品介绍)中,由于生产内容的范围不受限,因此难免出现高风险内容,您需要识别这些高风险内容,并及时拦截。针对该问题,阿里云机器学习PAI提出了如下解决方案,借助人工智能算法,帮助您快速判断风险内容:
-
解决方案
-
基于iTAG平台和PAI数据集管理,对目标场景的文本进行快捷标注和样本管理。
-
基于PAI提供的BERT迁移学习预训练模型,针对自己的文本风控场景,在可视化建模平台Designer上进行模型Fine-Tune,从而构建具体场景的NLP文本风控模型。
-
将模型进行EAS在线部署,形成完整的端到端流程,从而自动识别生产过程中的风险内容。
-
-
方案架构
文本内容风控解决方案的架构图如下所示。
前提条件
-
已开通PAI(Designer、DSW、EAS)后付费,详情请参见开通。
-
已开通MaxCompute,用于存储预测数据。关于如何开通MaxCompute,请参见快速体验MaxCompute。
-
已创建工作空间,并添加MaxCompute计算资源,详情请参见管理工作空间。
-
已创建OSS存储空间(Bucket),用于存储原始数据、标签列表文件及训练获得的模型文件。关于如何创建存储空间,请参见控制台创建存储空间。
-
已创建EAS专属资源组,本文训练好的模型会部署至该资源组。关于如何创建专属资源组,请参见创建专属资源组。
操作流程
基于阿里云机器学习PAI平台,构建文本内容风控解决方案的流程如下:
-
准备数据
基于iTAG进行原始数据标注,然后将获得的训练集和测试集上传到数据仓库MaxCompute中,用于后续的模型训练。
-
构建文本分类模型
在可视化建模平台Designer中,基于海量大数据语料预训练获得的NLP迁移学习模型,构建文本内容风控场景的文本分类模型。
-
部署及调用模型服务
通过模型在线服务EAS,您可以将训练好的文本风控模型部署为在线服务,并在实际的生产环境中调用,从而进行推理实践。
准备数据
首先基于iTAG进行原始数据标注,然后将获得的训练集和测试集上传到数据仓库MaxCompute中,用于后续的模型训练。
-
将原始数据分为训练集和测试集,分别按照iTAG的标注数据格式,生成.manifest格式的数据集。iTAG有通用的标注数据格式(包括文本类、图像类、视频类和语音类),也支持您根据自定义模板创建数据集,您可以根据实际情况进行选择,详情请参见标注数据格式概述。
本案例.manifest文件示例请参见textDemo.manifest。
-
在PAI的数据集管理模块,通过本地上传方式将准备好的.manifest数据集上传,详情请参见创建及管理数据集。
-
通过iTAG管理员控制台,创建标注任务,详情请参见创建标注任务。
-
通过iTAG标注员控制台,进行数据标注,详情请参见处理标注任务。
-
在智能标注(iTAG)页面的任务中心页签,单击标注完成的任务操作列下的获取标注结果,得到存放在指定OSS目录下的标注结果数据集。
-
将获得的标注结果数据集转换为模型构建需要的训练集和测试集的CSV格式数据表。
示例训练集请参见nlp_risk_train.csv,示例测试集请参见nlp_risk_dev.csv。
-
通过MaxCompute客户端的Tunnel命令将训练数据集和测试数据集上传至MaxCompute。关于MaxCompute客户端的安装及配置请参见使用客户端(odpscmd)连接,关于Tunnel命令详情请参见Tunnel命令。本案例使用的示例命令如下所示。
# 建表语句。 CREATE TABLE nlp_risk_train(content STRING, qince_result STRING); # 上传语句。 tunnel upload /Users/tongxin/xxx/nlp_risk_train.csv nlp_risk_train;
构建文本分类模型
-
进入PAI-Designer页面。
-
登录PAI控制台。
-
在左侧导航栏单击工作空间列表,在工作空间列表页面中单击待操作的工作空间名称,进入对应工作空间内。
-
在工作空间页面的左侧导航栏选择模型开发与训练 > 可视化建模(Designer),进入Designer页面。
-
-
选择用于创建文本分类的工作流模板。
-
在可视化建模(Designer)页面,单击预置模板页签。
-
单击NLP页签。
-
在基于BERT模型的文本分类区域,单击创建。
-
-
填写工作流基本信息,从而创建文本分类工作流。
在新建工作流对话框,先输入工作流名称和描述、选择可见范围和工作流数据存储位置,再单击确定即可创建工作流。
-
进入工作流,并配置组件参数。
-
在可视化建模(Designer)页面,单击工作流列表页签。
-
选中刚才创建好的模板工作流,并单击进入工作流。
-
系统根据预置的模板,自动构建工作流,如下图所示。
区域
描述
①
配置实验的训练数据集,即配置读数据表组件的表名参数为MaxCompute的训练表。例如nlp_risk_train。
②
配置实验的评估数据集,即配置读数据表组件的表名参数为MaxCompute的评估表。例如nlp_risk_dev。
③
配置文本分类模型训练的参数。文本分类训练组件的配置详情请参见下文的文本分类组件配置。
说明
该组件目前仅支持读取BOOLEAN、BIGINT、DOUBLE、STRING和DATETIME类型的数据。
④
配置实验的预测数据集,即配置读数据表组件的表名参数为MaxCompute的预测表。例如nlp_risk_dev。
⑤
使用训练好的文本分类模型对预测数据集进行预测。文本分类预测(MaxCompute)组件的配置详情请参见下文的预测组件的参数配置。
表 1. 文本分类组件配置 页签
参数
描述
本案例使用的示例值
字段设置
文本列选择
进行文本分类的内容在输入表中对应的列名。
content
标签列选择
标签在输入表中对应的列名。
qince_result
标签枚举值
标签列内容的枚举值,多个值之间使用半角逗号(,)分隔。
正常,低俗,成人,色情,其他风险
样本权重列
特定列样本的数据增强,非必选。
无需填写
模型存储路径
训练得到的模型的OSS存储路径。
oss://tongxin-lly.oss-cn-hangzhou-internal.aliyuncs.com/pai/text_spam_rb/
参数设置
优化器类型
优化器的类型,支持以下取值:
-
adam
-
adagrad
-
lamb
adam
batchSize
训练过程中的批处理大小。如果使用多机多卡,则表示每个GPU上的批处理大小。
32
sequenceLength
序列整体最大长度,取值范围为1~512。
64
numEpochs
训练总Epoch的数量。
1
学习率
模型构建过程中的学习率。
1e-5
模型选择
选择使用的预训练语言模型。
pai-bert-base-zh
模型额外参数
用户自定义参数,可以配置预训练模型pretrain_model_name_or_path,常用如下四种预训练模型:
-
base-roberta
-
base-bert
-
tiny-roberta
-
tiny-bert
模型精度排序:
base-roberta > base-bert > tiny-roberta > tiny-bert
。模型速度排序:
base-roberta = base-bert < tiny-roberta = tiny-bert
。无需填写
执行调优
指定Worker数
分布式服务器的数量,默认值表示1个Worker。
1
指定Worker的CPU卡数
每个Worker下的CPU卡数量。
1
指定Worker的GPU卡数
每个Worker下的GPU卡数量。
1
分布式策略
分布式策略,支持以下取值:
-
MirroredStrategy:单机多卡。
-
ExascaleStrategy:多机多卡。
MirroredStrategy
表 2. 预测组件的参数配置 页签
参数
描述
本案例使用的示例值
参数设置
第一文本列选择
进行文本分类的内容在输入表中对应的列名。
content
输出列
预测结果输出列。如果有多个列,则使用半角逗号(,)分隔。
predictions,probabilities,logits
预测概率截断
进行预测判断时的概率阈值。
无需填写
附加列
输入表中需要添加到输出表的列,多个列之间使用半角逗号(,)分隔。
content, qince_result
batch Size
预测过程中的批处理大小。
32
使用自定义模型
如果没有上游组件,可以自定义一个OSS目录中训练好的模型进行预测。本案例使用上游组件输入训练模型,因此无需填写。
否
执行调优
指定Worker数
分布式服务器的数量,默认值表示1个Worker。
1
指定Worker的CPU卡数
每个Worker下的CPU卡数量。
1
指定Worker的GPU卡数
每个Worker下的GPU卡数量。
1
-
-
部署及调用模型服务
通过模型在线服务EAS,您可以将训练好的内容风控模型部署为在线服务,并在实际的生产环境中调用,从而进行推理实践。
-
进入PAI-EAS 模型在线服务页面。
-
登录PAI控制台。
-
在左侧导航栏单击工作空间列表,在工作空间列表页面中单击待操作的工作空间名称,进入对应工作空间内。
-
在工作空间页面的左侧导航栏选择模型部署 > 模型在线服务(EAS),进入PAI-EAS 模型在线服务页面。
-
-
部署模型服务。
-
在PAI-EAS 模型在线服务页面,单击部署服务。
-
在部署服务页面,配置以下参数(此处仅介绍与本案例相关的核心参数配置,其他参数配置,详情请参见控制台上传部署),并单击部署。
参数
描述
服务名称
模型的名称,建议结合实际业务进行命名,以区分不同的模型服务。
部署方式
模型+processor部署服务
Processor种类
选择EasyTransfer(CPU)。
模型类别
选择文本分类。
模型文件
本案例中训练好的模型均存储在OSS中,因此选择OSS挂载。
OSS路径选择文本分类组件模型存储路径参数配置的路径下的deployment文件夹中的模型文件夹(其中包含variables文件夹、config.json、saved_model.pb、vocab.txt及label_mapping.json)。例如,对于下图中的模型目录结构,您需要将OSS路径选择到/deployment/目录。
资源部署信息
根据您自己购买的资源服务和上面Processor种类,合适选择资源。
-
-
调试模型服务。
-
在PAI-EAS 模型在线服务页面,单击目标服务操作列下的在线调试。
-
在调试页面的在线调试请求参数区域的Body处填写如下内容。
{"id": "113","first_sequence": "拥抱编辑3.0时代!内容升级为产品海内外媒体规划下个十年。","sequence_length": 128}
-
单击发送请求,即可在调试信息区域查看预测结果,如下图所示。
-
-
查看模型服务的公网地址和访问Token。
-
在PAI-EAS 模型在线服务页面,单击目标服务服务方式列下的调用信息。
-
在调用信息对话框的公网地址调用页签,查看公网调用的访问地址和Token。
-
-
使用脚本进行批量调用。
-
创建调用模型服务的Python脚本eas_nlp_risk.py。
#!/usr/bin/env python # encoding=utf-8 from eas_prediction import PredictClient from eas_prediction import StringRequest if __name__ == '__main__': # 下面的client = PredictClient()入参需要替换为实际的访问地址。 client = PredictClient('http://1664xxxxxxxxxxx.cn-hangzhou.pai-eas.aliyuncs.com', 'nlp_risk_cls002') # 下面的Token需要替换为实际值。 client.set_token('MTgxNjE1NGVmMDdjNDRkY2Q5NWE4xxxxxxxxxxxxxxxxxxxxxxx') client.init() # 输入请求需要根据模型进行构造,此处仅以字符串作为输入输出的程序为例。 request = StringRequest('[{"id": "110","first_sequence": "想赢勇士想到发疯?格林新发现吓呆众人","sequence_length": 128},{"id": "112","first_sequence": "骗人的,千万别买,谁买谁后悔?商家就是欺诈。垃圾商家。买了之后想退货门都没有,以各种手段不退货。买者慎重。","sequence_length": 128},{"id": "113","first_sequence": "很不错的,正品,很给力,男性同胞的福音,改善的效果特别的好,效果真的是不错的。是能增大2cm","sequence_length": 128}]') for x in range(0, 50000): resp = client.predict(request) # print(str(resp.response_data, 'utf8')) print("test endding")
-
将eas_nlp_risk.py Python脚本上传至您的任意环境,并在脚本上传后的当前目录执行如下调用命令。
python3
其中需要替换为实际的Python脚本名称。
-
-
监控服务指标。
调用模型服务后,您可以查看模型调用的相关指标水位,包括QPS、RT、CPU、GPU及Memory。
-
在PAI-EAS 模型在线服务页面,单击已调用服务服务监控列下的
图标。
-
在服务监控页签,即可查看模型调用的指标水位。您自己的模型指标水位以实际为准。
-
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家
阿里云企业补贴进行中: 马上申请
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠
转转请注明出处:https://www.yunxiaoer.com/164332.html