基于BML平台实现谣言检测任务
最近发现了一个全功能AI开发平台,叫做BML(Baidu Machine Learning),这是一个面向企业和个人开发者的机器学习集成开发环境,为经典机器学习和深度学习提供了从数据处理、模型训练、模型管理到模型推理的全生命周期管理服务。
BML全功能AI开发平台官网链接:https://ai.baidu.com/bml/
最近找到了一个谣言检测数据集,同时也是刚刚了解到BML(Baidu Machine Learning)这个平台,就想用这个平台实验一下谣言检测任务,于是就开始我们的入坑之旅。具体开发流程如下:
前言
社交媒体的发展在加速信息传播的同时,也带来了虚假谣言信息的泛滥,往往会引发诸多不安定因素,并对经济和社会产生巨大的影响。
2016年美国总统大选期间,受访选民平均每人每天接触到4篇虚假新闻,虚假新闻被认为影响了2016年美国大选和英国脱欧的投票结果;近期,在新型冠状病毒感染的肺炎疫情防控的关键期,在全国人民都为疫情揪心时,网上各种有关疫情防控的谣言接连不断,从“广州公交线路因新型冠状病毒肺炎疫情停运”到“北京市为防控疫情采取封城措施”,从“钟南山院士被感染”到“10万人感染肺炎”等等,这些不切实际的谣言,“操纵”了舆论感情,误导了公众的判断,更影响了社会稳定。
人们常说“流言止于智者”,要想不被网上的流言和谣言盅惑、伤害,首先需要对其进行科学甄别,而时下人工智能正在尝试担任这一角色。那么,在打假一线AI技术如何做到去伪存真?
传统的谣言检测模型一般根据谣言的内容、用户属性、传播方式人工地构造特征,而人工构建特征存在考虑片面、浪费人力等现象。本次实践使用基于循环神经网络(RNN)的谣言检测模型,将文本中的谣言事件向量化,通过循环神经网络的学习训练来挖掘表示文本深层的特征,避免了特征构建的问题,并能发现那些不容易被人发现的特征,从而产生更好的效果。
一、准备开始
在BML平台上点击"立即使用",即将进行我们的谣言检测任务。
二、新建数据集
数据在人工智能项目开发的过程中起着至关重要的作用,数据的好坏通常也决定着最终的模型效果。
这里我使用的是AI Studio上的公开数据集:https://aistudio.baidu.com/aistudio/datasetdetail/72968
在BML平台上点击“数据集”,进入添加数据集界面:
在添加数据集界面上点击“创建数据集”,填写数据集名称等操作,并根据自己的场景选择一下数据类型以及标注类型:
点击“完成”后,会在下方看到刚刚新建的数据集:
点击“导入”,将刚刚下载下来的数据集导进来(这个数据是已经标注好的,所以直接导入即可)
数据集格式:
其中txt有2963条数据。
这里我们选择了使用TXT的方式进行上传,并且我们的数据集有标注信息,所以这里我们选择有标注信息。
导入后,点击“确认并返回”
经过短暂的等待之后,数据终于导入完毕了,这时候我们发现数据集的数量没有对上。
这里大家也不要担心,数据变少的原因是平台把重复数据给去除了,去重操作在你"新建数据集"的时候是自己进行选择的。
"导入数据集"完毕之后,我们要检查一下标注是不是为100%。
我这里显示为百分之100%,这时我们数据集的操作就已经创建完毕了。
三、新建一个项目
首先打开BML管理页面,在这个界面中可以看到当前支持的深度学习任务类型,也可在左侧目录选择不同深度学习方向。
在左侧目录中找到“自然语言处理模型”,点击“文本分类-单文本单标签”,写个名称加段描述就能新建一个项目了。
点击“新建”后,可以在下方找到刚刚创建的项目:
点击“新建任务”可管理本项目的“基本信息”、“配置任务类型”、“添加数据”、“配置网络”等。
四、导入数据集
将第一步创建的数据集导入:
直接选择即可。
五、配置网络
在配置网络的过程中,可以选择使用预训练模型ERNIE2.0对应的三个版本:ERNIE2.0_Base、ERNIE2.0_Large和ERNIE2.0_Tiny,我这里使用性能均衡的预训练模型:
平台提供了脚本编辑的工具,点击“立即编辑”进行脚本编辑:
一般可以在里面配置一些参数,开发者可以自行修改里面的参数。
六、配置资源
训练模型需要租用服务器,BML平台直接提供了一个配置好的环境,不需要自己买服务器,然后自己配置环境了,可以说是非常地方便!根据自己的需要去选择自己的配置!
这里根据自己的需求选择即可。
点击“提交训练任务”就可以开始训练啦:
训练过程中还能看到训练日志:
当你觉得看log枯燥无味的时候,BML也为你提供了可视化展示:
为大家清晰的展示我们的训练过程~,真的是太棒了!
"训练结束"后还能出一份评估报告:
当你有事外出的时候,训练完成之后也可以给你发送短信,这里自己进行选择。
有一说一,这平台我可太喜欢啦!
七、公有云部署
大家参考我写的另一篇文章,都是通用的换成你现在的模型就行,就不在细讲了,直接展示我部署完成的界面!
【BML全功能AI开发平台初体验】没有服务器也可以实现公有云部署!
至此,公有云部署就完成啦,完全不用自己的服务器!
八、模型调用
第一步:点击查看详情
记录下你的调用接口地址,在下方代码部分需要修改API调用接口地址。
第二步:点击控制台,对接口进行赋权
第三步:创建应用
填写你的应用名称、应用归属、公司名称等信息。
创建完成之后会显示你创建的应用信息,也就是对接口进行赋权的应用。
第四步:记录API Key和Secret Key
记录好API Key和Secret Key,下方代码调用的时候需要进行输入授权。
第五步:使用代码调用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))
我们只需要修改五个地方即可完成调用
- PARAMS[“text”]:自己需要预测的文本
- MODEL_API_URL:为API接口的地址
- ACCESS_TOKEN:留空即可(一定要把他的删除留空,或者是你自己计* 算出了ACCESS_TOKEN,写在这里也行)
- API_KEY:创建应用的时候产生了,复制过来即可
- SECRET_KEY:创建应用的时候产生了,复制过来即可
第六步:运行代码
数据集展示:
我依然不喜欢XXX,故弄玄虚,假装深刻,乱七八糟,狗屁不通,整几个破词儿就以为看透了整个世界。
修改完毕之后,运行代码,可以看下方图片,已经运行成功,识别出螺丝数据。
标签代表:{0: ‘谣言’, 1: ‘非谣言’}
至此,模型的调用也就成功了,大家赶紧自己去试试把
九、温馨提示
模型不用的时候,赶紧停止,毕竟免费额度有限哈哈
十、总结
人们常说“流言止于智者”,要想不被网上的流言和谣言盅惑、伤害,首先需要对其进行科学甄别,而时下人工智能正在尝试担任这一角色。那么,在打假一线AI技术如何做到去伪存真?所以进行了谣言检测训练。
BML平台从模型开发的时间上看,还是很快的,我平时通过纯代码的方式开发模型至少需要半天及以上的时间,但使用BML平台,只需要大概1~2个小时的时间就能搞定,如果熟练操作的话,应该还能更快,真正实现了0代码的可视化操作,在不改动超参数的情况下,代码都不用看都可以进行训练,真的是太帅了。
另一方面,从易用性上,只要把数据准备好,剩下的都是手动配置的事了,就算你不懂Python,不懂人工智能也完全可以开发出一套模型,因此,对于BML(Baidu Machine Learning)平台对于没有基础的同学是非常友好的!
本次谣言检测任务到这里就结束了,你还没心动吗?还不赶紧去试试!