基于BML平台实现谣言检测任务

  • 前言
  • 一、准备开始
  • 二、新建数据集
  • 三、新建一个项目
  • 四、导入数据集
  • 五、配置网络
  • 六、配置资源
  • 七、公有云部署
  • 八、模型调用
  • 第一步:点击查看详情
  • 第二步:点击控制台,对接口进行赋权
  • 第三步:创建应用
  • 第四步:记录API Key和Secret Key
  • 第五步:使用代码调用API接口
  • 第六步:运行代码
  • 九、温馨提示
  • 十、总结


最近发现了一个全功能AI开发平台,叫做BML(Baidu Machine Learning),这是一个面向企业和个人开发者的机器学习集成开发环境,为经典机器学习和深度学习提供了从数据处理、模型训练、模型管理到模型推理的全生命周期管理服务。

AB平台架构设计 bma架构平台_数据集

BML全功能AI开发平台官网链接:https://ai.baidu.com/bml/

最近找到了一个谣言检测数据集,同时也是刚刚了解到BML(Baidu Machine Learning)这个平台,就想用这个平台实验一下谣言检测任务,于是就开始我们的入坑之旅。具体开发流程如下:

前言

社交媒体的发展在加速信息传播的同时,也带来了虚假谣言信息的泛滥,往往会引发诸多不安定因素,并对经济和社会产生巨大的影响。

2016年美国总统大选期间,受访选民平均每人每天接触到4篇虚假新闻,虚假新闻被认为影响了2016年美国大选和英国脱欧的投票结果;近期,在新型冠状病毒感染的肺炎疫情防控的关键期,在全国人民都为疫情揪心时,网上各种有关疫情防控的谣言接连不断,从“广州公交线路因新型冠状病毒肺炎疫情停运”到“北京市为防控疫情采取封城措施”,从“钟南山院士被感染”到“10万人感染肺炎”等等,这些不切实际的谣言,“操纵”了舆论感情,误导了公众的判断,更影响了社会稳定。

人们常说“流言止于智者”,要想不被网上的流言和谣言盅惑、伤害,首先需要对其进行科学甄别,而时下人工智能正在尝试担任这一角色。那么,在打假一线AI技术如何做到去伪存真?

传统的谣言检测模型一般根据谣言的内容、用户属性、传播方式人工地构造特征,而人工构建特征存在考虑片面、浪费人力等现象。本次实践使用基于循环神经网络(RNN)的谣言检测模型,将文本中的谣言事件向量化,通过循环神经网络的学习训练来挖掘表示文本深层的特征,避免了特征构建的问题,并能发现那些不容易被人发现的特征,从而产生更好的效果。

一、准备开始

在BML平台上点击"立即使用",即将进行我们的谣言检测任务。

AB平台架构设计 bma架构平台_数据集_02

二、新建数据集

数据在人工智能项目开发的过程中起着至关重要的作用,数据的好坏通常也决定着最终的模型效果。

这里我使用的是AI Studio上的公开数据集:https://aistudio.baidu.com/aistudio/datasetdetail/72968

AB平台架构设计 bma架构平台_深度学习_03

在BML平台上点击“数据集”,进入添加数据集界面:

AB平台架构设计 bma架构平台_json_04

在添加数据集界面上点击“创建数据集”,填写数据集名称等操作,并根据自己的场景选择一下数据类型以及标注类型:

AB平台架构设计 bma架构平台_API_05


AB平台架构设计 bma架构平台_API_06

点击“完成”后,会在下方看到刚刚新建的数据集:

AB平台架构设计 bma架构平台_数据集_07

点击“导入”,将刚刚下载下来的数据集导进来(这个数据是已经标注好的,所以直接导入即可)

AB平台架构设计 bma架构平台_json_08


数据集格式:

AB平台架构设计 bma架构平台_json_09


其中txt有2963条数据。

这里我们选择了使用TXT的方式进行上传,并且我们的数据集有标注信息,所以这里我们选择有标注信息。

AB平台架构设计 bma架构平台_AB平台架构设计_10

导入后,点击“确认并返回

AB平台架构设计 bma架构平台_json_11

经过短暂的等待之后,数据终于导入完毕了,这时候我们发现数据集的数量没有对上。

AB平台架构设计 bma架构平台_json_12

这里大家也不要担心,数据变少的原因是平台把重复数据给去除了,去重操作在你"新建数据集"的时候是自己进行选择的。

"导入数据集"完毕之后,我们要检查一下标注是不是为100%。

AB平台架构设计 bma架构平台_API_13


我这里显示为百分之100%,这时我们数据集的操作就已经创建完毕了。

三、新建一个项目

首先打开BML管理页面,在这个界面中可以看到当前支持的深度学习任务类型,也可在左侧目录选择不同深度学习方向。

AB平台架构设计 bma架构平台_数据集_14

在左侧目录中找到“自然语言处理模型”,点击“文本分类-单文本单标签”,写个名称加段描述就能新建一个项目了。

AB平台架构设计 bma架构平台_API_15

点击“新建”后,可以在下方找到刚刚创建的项目:

AB平台架构设计 bma架构平台_数据集_16

点击“新建任务”可管理本项目的“基本信息”、“配置任务类型”、“添加数据”、“配置网络”等。

AB平台架构设计 bma架构平台_深度学习_17

四、导入数据集

将第一步创建的数据集导入:

AB平台架构设计 bma架构平台_深度学习_18


直接选择即可。

五、配置网络

在配置网络的过程中,可以选择使用预训练模型ERNIE2.0对应的三个版本:ERNIE2.0_Base、ERNIE2.0_Large和ERNIE2.0_Tiny,我这里使用性能均衡的预训练模型:

AB平台架构设计 bma架构平台_json_19

平台提供了脚本编辑的工具,点击“立即编辑”进行脚本编辑:

AB平台架构设计 bma架构平台_AB平台架构设计_20


AB平台架构设计 bma架构平台_json_21

一般可以在里面配置一些参数,开发者可以自行修改里面的参数。

六、配置资源

训练模型需要租用服务器,BML平台直接提供了一个配置好的环境,不需要自己买服务器,然后自己配置环境了,可以说是非常地方便!根据自己的需要去选择自己的配置!

AB平台架构设计 bma架构平台_API_22

这里根据自己的需求选择即可。

点击“提交训练任务”就可以开始训练啦:

AB平台架构设计 bma架构平台_json_23

训练过程中还能看到训练日志:

AB平台架构设计 bma架构平台_深度学习_24

AB平台架构设计 bma架构平台_AB平台架构设计_25

当你觉得看log枯燥无味的时候,BML也为你提供了可视化展示:

AB平台架构设计 bma架构平台_json_26


AB平台架构设计 bma架构平台_深度学习_27


为大家清晰的展示我们的训练过程~,真的是太棒了!

"训练结束"后还能出一份评估报告:

AB平台架构设计 bma架构平台_深度学习_28

当你有事外出的时候,训练完成之后也可以给你发送短信,这里自己进行选择。

AB平台架构设计 bma架构平台_AB平台架构设计_29


AB平台架构设计 bma架构平台_json_30

有一说一,这平台我可太喜欢啦!

七、公有云部署

大家参考我写的另一篇文章,都是通用的换成你现在的模型就行,就不在细讲了,直接展示我部署完成的界面!
【BML全功能AI开发平台初体验】没有服务器也可以实现公有云部署!

AB平台架构设计 bma架构平台_AB平台架构设计_31

AB平台架构设计 bma架构平台_深度学习_32


至此,公有云部署就完成啦,完全不用自己的服务器!

八、模型调用

第一步:点击查看详情

AB平台架构设计 bma架构平台_深度学习_33

记录下你的调用接口地址,在下方代码部分需要修改API调用接口地址。

AB平台架构设计 bma架构平台_AB平台架构设计_34

第二步:点击控制台,对接口进行赋权

AB平台架构设计 bma架构平台_数据集_35

第三步:创建应用

AB平台架构设计 bma架构平台_json_36

填写你的应用名称、应用归属、公司名称等信息。

AB平台架构设计 bma架构平台_API_37

创建完成之后会显示你创建的应用信息,也就是对接口进行赋权的应用。

AB平台架构设计 bma架构平台_API_38

第四步:记录API Key和Secret Key

记录好API Key和Secret Key,下方代码调用的时候需要进行输入授权。

AB平台架构设计 bma架构平台_数据集_39

第五步:使用代码调用API接口

文本分类API调用文档

在这里我们使用python3调用进行演示。
因为没有示例代码,所以大家可以用我写的代码复制过去~
复制代码到自己本地开始进行调用:

"""
BML 谣言检测 调用模型公有云API Python3实现
"""

import json
import requests
"""
使用 requests 库发送请求
使用 pip(或者 pip3)检查我的 python3 环境是否安装了该库,执行命令
  pip freeze | grep requests
若返回值为空,则安装该库
  pip install requests
"""

# 可选的请求参数
# top_num: 返回的分类数量,不声明的话默认为 6 个
PARAMS = {"top_num": 1}

# 服务详情 中的 接口地址
MODEL_API_URL = ""

# 调用 API 需要 ACCESS_TOKEN。若已有 ACCESS_TOKEN 则于下方填入该字符串
# 否则,留空 ACCESS_TOKEN,于下方填入 该模型部署的 API_KEY 以及 SECRET_KEY,会自动申请并显示新 ACCESS_TOKEN
ACCESS_TOKEN = ""
API_KEY = ""
SECRET_KEY = ""

print("将 需要预测的数据填入 PARAMS 的 'text' 字段")
PARAMS["text"] = "我依然不喜欢XXX,故弄玄虚,假装深刻,乱七八糟,狗屁不通,整几个破词儿就以为看透了整个世界。"


if not ACCESS_TOKEN:
    print("2. ACCESS_TOKEN 为空,调用鉴权接口获取TOKEN")
    auth_url = "https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials"               "&client_id={}&client_secret={}".format(API_KEY, SECRET_KEY)
    auth_resp = requests.get(auth_url)
    auth_resp_json = auth_resp.json()
    ACCESS_TOKEN = auth_resp_json["access_token"]
    print("新 ACCESS_TOKEN: {}".format(ACCESS_TOKEN))
else:
    print("2. 使用已有 ACCESS_TOKEN")


print("3. 向模型接口 'MODEL_API_URL' 发送请求")
request_url = "{}?access_token={}".format(MODEL_API_URL, ACCESS_TOKEN)
response = requests.post(url=request_url, json=PARAMS)
response_json = response.json()
response_str = json.dumps(response_json, indent=4, ensure_ascii=False)
print("结果:{}".format(response_str))

我们只需要修改五个地方即可完成调用

AB平台架构设计 bma架构平台_深度学习_40

  • PARAMS[“text”]:自己需要预测的文本
  • MODEL_API_URL:为API接口的地址
  • ACCESS_TOKEN:留空即可(一定要把他的删除留空,或者是你自己计* 算出了ACCESS_TOKEN,写在这里也行)
  • API_KEY:创建应用的时候产生了,复制过来即可
  • SECRET_KEY:创建应用的时候产生了,复制过来即可

第六步:运行代码

数据集展示:
我依然不喜欢XXX,故弄玄虚,假装深刻,乱七八糟,狗屁不通,整几个破词儿就以为看透了整个世界。

修改完毕之后,运行代码,可以看下方图片,已经运行成功,识别出螺丝数据。

AB平台架构设计 bma架构平台_AB平台架构设计_41


标签代表:{0: ‘谣言’, 1: ‘非谣言’}

至此,模型的调用也就成功了,大家赶紧自己去试试把

九、温馨提示

模型不用的时候,赶紧停止,毕竟免费额度有限哈哈

AB平台架构设计 bma架构平台_API_42

十、总结

人们常说“流言止于智者”,要想不被网上的流言和谣言盅惑、伤害,首先需要对其进行科学甄别,而时下人工智能正在尝试担任这一角色。那么,在打假一线AI技术如何做到去伪存真?所以进行了谣言检测训练。

BML平台从模型开发的时间上看,还是很快的,我平时通过纯代码的方式开发模型至少需要半天及以上的时间,但使用BML平台,只需要大概1~2个小时的时间就能搞定,如果熟练操作的话,应该还能更快,真正实现了0代码的可视化操作,在不改动超参数的情况下,代码都不用看都可以进行训练,真的是太帅了。

另一方面,从易用性上,只要把数据准备好,剩下的都是手动配置的事了,就算你不懂Python,不懂人工智能也完全可以开发出一套模型,因此,对于BML(Baidu Machine Learning)平台对于没有基础的同学是非常友好的!