

开源|qa_match更新啦——支持轻量级预训练、提高问答通用性
source link: http://mp.weixin.qq.com/s?__biz=MzI1NDc5MzIxMw%3D%3D&%3Bmid=2247488245&%3Bidx=1&%3Bsn=f33ffb5e2ee8c404d029c36811864252
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

开源项目专题系列
(十一)
1.开源项目名称:qa_match
2.github地址:
https://github.com/wuba/qa_match
3.开源协议:Apache License 2.0
4.简介:qa_match是58同城推出的一款基于深度学习的轻量级问答匹配工具,V1.0版本于2020年3月9日发布,可参见 《qa_match|一款基于深度学习的层级问答匹配工具》 ,最近我们对qa_match进行了升级,新增如下Features:
-
使用轻量级预训练语言模型(SPTM,Simple Pre-trained Model)来进行问答匹配。
-
支持基于一层结构知识库的问答(V1.0版本仅支持基于两层结构知识库的问答),提高通用性 。
全文大纲如下:
-
为什么要升级到V1.1
-
问答知识库介绍
-
轻量级预训练语言模型(SPTM)
-
问答匹配
-
未来规划
-
如何贡献&问题反馈
-
作者简介
为什么要升级到V1.1
在V1.0版本中qa_match已经对两层结构知识库问答进行了支持,为了提升知识库问答的通用性和问答效果,在V1.1版本我们增加了对一层结构知识库问答的支持,同时开源了基于Bi-LSTM的预训练语言模型,以提升基于知识库的问答等下游任务的效果。
问答知识库介绍
在实际场景中,知识库一般是通过人工总结、标注、机器挖掘等方式进行构建,知识库中包含大量的标准问题,每个标准问题有一个标准答案和一些扩展问法,我们称这些扩展问法为扩展问题。对于一层结构知识库,仅包含标准问题和扩展问题,我们把标准问题称为意图。对于两层结构知识库,每个标准问题及其扩展问题都有一个类别,我们称为领域,一个领域包含多个意图。两种知识库结构的对比如下图所示:
轻量级预训练语言模型(SPTM)
考虑到实际使用中往往存在大量的无标签数据,在知识库数据有限时,可使用无监督预训练语言模型提升匹配模型的效果。参考 BERT 预训练过程,2019年4月我们开发了SPTM模型,该模型相对于BERT主要改进了两方面:一是去掉了效果不明显的NSP(Next Sentence Prediction),二是为了提高线上推理性能将Transformer替换成了LSTM,模型原理如下:
1、数据预处理 预训练模型时,生成训练数据需要使用无标签单句作为数据集,并参考了BERT来构建样本:每个单句作为一个样本,句子中15%的字参与预测,参与预测的字中80%进行mask,10%随机替换成词典中一个其他的字,10%不替换。
2、预训练 预训练阶段的模型结构如下图所示:
为提升模型的表达能力,保留更多的浅层信息,引入了残差Bi-LSTM网络(Residual LSTM)作为模型主体。该网络将每一层Bi-LSTM的输入和该层输出求和归一化后,结果作为下一层的输入。此外将最末层Bi-LSTM输出作为一个全连接层的输入,与全连接层输出求和归一化后,结果作为整个网络的输出。
预训练模型耗时示例如下表所示:
问答匹配
1、基于两层结构知识库的自动问答 V1.0版本详细介绍了如何融合LSTM领域分类模型和DSSM意图匹配模型来完成基于两层结构知识库的自动问答,这里不再描述,详细可参见 《开源|qa_match:一款基于深度学习的层级问答匹配工具》 。
对于一层结构知识库,可以使用DSSM和预训练语言模型来完成自动问答。
2.1 基于DSSM模型的自动问答
对于一层结构知识库问答,只需用使用V1.0版本中的DSSM意图匹配模型对输入问题进行打分,根据意图匹配的最高分值与下图中的x1,x2进行比较决定回答类型(唯一回答、列表回答、拒识)。DSSM原理见之前的文章 《开源|qa_match:一款基于深度学习的层级问答匹配工具》 。
2.2 基于SPTM模型的自动问答
引入预训练语言模型后,对于一层结构知识库问答,先使用基于语言模型微调的意图匹配模型对输入问题进行打分。微调使用的模型结构与预训练相同,微调时无需进行mask操作,预测目标由单字改为样本所匹配的标准问题id。模型参数初始值与已有的预训练模型参数值对应(也可以不使用预训练模型,进行随机参数初始化)。
得到微调模型后,需要用模型对输入问题进行打分,再根据与DSSM意图匹配模型相同的策略确定回答类型(唯一回答、列表回答、拒识),整体流程如下图所示:
3、效果示例
为了让使用者快速上手qa_match,我们给出了一级知识库、二级知识库的示例数据集(具体见 data_demo),训练了不同模型(模型结果文件见DSSM/SPTM/ LSTM+DSSM融合模型),并评测了不同模型的离线效果和线上推理性能(使用通用深度学习推理服务 dl_inference 开源项目部署模型来评测推理耗时)
数据集 模型 唯一回答准确率 唯一回答召回率 唯一回答F1 CPU机器上推理耗时 一级知识库数据集 DSSM 0.8398 0.8326 0.8362 3 ms SPTM 0.8841 0.9002 0.8921 16ms 二级知识库数据集 LSTM+DSSM融合模型 0.8957 0.9027 0.8992 18ms说明:由于示例数据中列表回答真实占比较小,这里我们主要看唯一回答的准确率、召回率和F1值。对于二级知识库数据集,我们也可以使用SPTM来完成自动问答,这里不做过多描述。
未来规划
未来我们会继续优化扩展qa_match的能力,计划开源如下:
1、知识库半自动挖掘流程。基于知识库的构建,我们开发了一套结合人工和机器挖掘的算法流程,已经在生产环境使用,并取得了不错的效果。
2、目前tensorflow已发版到2.1版本,后续我们会根据需求发布tensorflow 2.X版本或pytorch版本的qa_match。
如何贡献&问题反馈
本次更新达成了qa_match持续迭代历程中的第一步,我们诚挚地希望开发者继续向我们提出宝贵的意见。
您可以挑选以下方式向我们反馈建议和问题:
1、在 https://github.com/wuba/qa_match.git 提交 PR 或者 Issue
2、邮件发送至[email protected]
作者简介
贺睿,58同城 AI Lab 资深算法工程师,主要负责58智能问答相关算法研发工作。
王勇,58同城 AI Lab 算法架构师,主要负责58智能问答相关算法研发工作。
陈璐,58同城 AI Lab 资深算法工程师,主要负责58智能质检相关算法研发工作。
阅读推荐
Recommend
-
52
最近做一款音乐游戏,需要显示较多的音符,需频繁回收利用GameObject,简易的对象池满足不了需求,以前写过一个对象池 对象池(重复资源的循环利用)_008 , 使用起来有比较有局限性,不是很方便,就考...
-
20
既能写文章,又会画图 金磊 贾浩楠 发自 凹非寺 量子位 报道 | 公众号 QbitAI 生成文字的AI和生成图像的AI,竟然是同一个,人工智能要实现通用(AGI)了吗? 语言模型GPT,现在跨界了。 这...
-
15
谈程序的“通用性” 在现实的软件工程中,我经常发现这样的一种现象。本来用很简单的代码就可以解决的问题,却因为设计者过分的关注了“通用性”,“可维护性”和“可扩展性”,被搞得绕了几道弯,让人琢磨不透。 这些人的思维方式是这样...
-
12
周日晚间,“猎户星座”,全家便利店的美式咖啡,酝酿着困倦与新一周的未知,初冬的天气却毫不冷静。“有时你乘起风,有时你沉没,有时午夜有彩虹”。一周前上架了新的 Sketch 组件库,也就是聚焦于社交类产品设计需求的 WireframeKit “Social”,同时也开始...
-
10
wangxingqin | 15 Apr 2021 | 27 min (7303 words) 通用性接口健壮性扫描方案 1.1 业务背景 随...
-
10
Lotus 1.10.0 FinalizeFailed 通用性解决方案 她那个时候还太年轻,不知道所有命运的赠送的礼物,早已在暗中标好了价格。 -- 断头皇后 本文首发于 原语云 微信服务号,文末有二维码,欢迎关...
-
12
轻量级PyTorch通用训练模板pytorch-accelerated介绍及入门
-
4
记账beancount给我的灵感,一个通用性的 excel 处理工具 miaogaolin ·...
-
5
2023-03-31 01:10 中信建投:AI 有望成为第五次通用性技术浪潮 据金十报道,中信建投证券 3 月 31 日研报认为,AI 有望成为第五次通用性技术浪潮,推动生产进步并改变生产方式,当前来看算力成为 AI 的“产能约束”,短期或难以大面...
-
5
小红书618各类目通用性策略及流程-鸟哥笔记 首页 >
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK