管正雄:基于预训练模型、智能运维的QA生成算法落地
分享嘉宾:管正雄 阿里云 高级算法工程师
出品平台:DataFunTalk
导读:面对海量的用户问题,有限的支持人员该如何高效服务好用户?智能QA生成模型给业务带来的提效以及如何高效地构建算法服务,为业务提供支持。本文将介绍:阿里云计算平台大数据产品答疑场景;基于达摩院AliceMind预训练模型实现的智能QA生成算法核心能力及背后实现原理;如何通过智能运维服务平台将算法能力输出,给业务提供一站式服务,优化答疑体验。主要分为以下几部分:
- 背景介绍
- QA生成框架
- QA生成在业务场景中的应用
- 总结与规划
- 精彩问答
--
01 背景介绍
1、计算平台产品介绍
阿里云计算平台的产品种类多,形态多样化,主要包括数据计算与分析、数据开发与治理、机器学习三大模块,其中包括阿里云自研产品像MaxCompute、Hologres等,以及开源产品像Flink、Elasticsearch等阿里云提供资源和托管的服务。
2、售后技术支持及痛点
在用户购买了阿里云的产品后,在使用过程中如果遇到问题,可以通过以下方式寻求解决方案,但同时又存在一些痛点:
a. 机器人问答:机器人语料覆盖有限。
b. 文档查询:内容过多,查找效率低。
c. 社区问答:集中于高频问题,中长尾问题较少。
d. 提工单:无法实时解答问题。
3、解决方案:漏斗式答疑支撑模型
a. 产品:产品诊断等业务服务。
b. 自主解决:自助查询文档、社区。
c. 智能服务:智能机器人问答,分为用户提问流程和知识补充流程,实现知识前置,多源知识转为机器人语料。
d. 人工协助:转人工对话、工单。
接下来重点介绍在智能服务中,知识前置到智能机器人自助问答,通过QA生成框架快速补充语料。
--
02 QA生成框架
1、框架介绍
上图是QA生成框架概览。文档智能化拆解模块,将不同的文档如MarkDown文档、Html文档、PDF文档、工单等等拆解成知识点,生成知识点列表,知识点列表经过基于AliceMind模型体系里的PALM生成模型,将这些知识点生成QA,最终得到QA列表,从而实现多源知识一站式转化为QA语料。
2、文档智能化拆解
a. 统一协议解析:不同的文档有不同的协议,将诸如Office文档、PDF文档、扫描件、语雀文档等的协议进行统一文档表示。
b. 文档树生成:将文档的结构比如一、二、三标题等生成树状结构,将文档的内容梳理成知识点的树状汇总。
c. 知识点抽取:基于自适应划分或知识点打分,将知识树拆解成具体的知识点。
下图是HTML文档拆解和PDF文档拆解的举例:
3、AliceMind
AliceMind是领先性和系统化的深度语言模型体系,本文将重点介绍AliceMind中的生成式语言模型(PALM)如何生成QA。
a. AliceMind的业务价值和应用领域举例
- 医疗:技术——医疗翻译、医疗搜索、医疗信息抽取、医疗文本结构化;产品——病历质检和健康档案产品、疫情问答机器人;
- 能源:技术——智能企业知识库构建及阅读理解;产品——阿里云电网智能化运维平台,应用于变压器检修、供电抢修等业务;
- 法律:技术——立案及裁判文书生成,法律信息抽取;产品——法院的全流程智能化审判系统,实现从立案到裁判文书生成的全流程智能;
- 金融:技术——金融客服、金融搜索、金融预测;产品——蚂蚁智能客服,大幅降低转人工频次、天机镜行为预测。
b. 基于PALM的QA生成模型
- 预训练生成模型
QA生成中的Learning to Ask模块是基于预训练生成模型PALM为底座;
PALM模型基于Encoder-Decoder框架在大规模语料上结合Autoencoding & Autoregressive无监督训练方式得到。
- QA生成
基于PALM模型在中文问答语料DuReader数据上训练,得到通用Learning to Ask模型;
具体流程图如上图下半部分所示,结合文档拆解工具获取answer和Learning to Ask生成问题得到QA对。
更多阅读:
PALM: Pre-training an Autoencoding & Autoregressive Language Model for Context-conditioned Generation.
BinBi, Chenliang Li, Chen Wu, Ming Yan, Wei Wang, Songfang Huang, Fei Huang, and Luo Si. EMNLP 2020
4、文档转化成QA举例
a. 文档:
- b. QA对:
Q:Dataworks的工作空间是什么
A:工作空间是Dataworks管理任务、成员……
Q:DataWorks的解决方案的优势是什么
A:一个解决方案可以包括多个业务流程,解决方案……
--
03 QA生成在业务场景中的应用
1、ABM运维管控平台
ABM运维管控平台即飞天大数据管控平台(ABM,Apsara Big Data Manager),是支撑平台服务与集群的全生命周期管理,智能化运维、运营和交付,面向大数据的业务方、运营方及研发方提供企业级运维平台。
2、ABM智能算法平台
ABM智能算法平台提供算法从开发-构建-部署的全生命周期的支撑。
如图所示,算法开发可以添加算法配置和注册算法检测器,SRE用户或运维可以创建场景生成检测实例,这个检测实例就是QA生成算法的应用实例,然后算法调度框架去调度,最后再给到用户。这一系列过程可以通过智能场景运营大盘进行整个生命周期的管理。
3、知识管理业务流程图
基于前面的QA生成框架概览图,最终生成的QA列表可能不是100%准确的,那么还要通过一些指标对其进行评估是否符合预期,同时经过我们专家的review,符合预期的QA将灌入到机器人语料、FAQ页面、知识图谱等里面。这就是整体的业务流程。
4、QA生成产品界面
a. 新建挖掘任务
b. 导出生成QA语料
--
04 总结与规划
1、沉淀
提取对话、论坛、工单等中的不同形式,有效知识通过某种方式沉淀到统一的知识库中。
关键词:多源数据、格式化。
规划:增加更多的数据源,格式化方法能力进一步提升。
2、消费
通过人机交互接口,精准推送知识,解用户内心之惑。
关键词:搜索与推荐、个性化、评估与反馈。
规划:通过深度模型提升搜索、推荐的能力。
3、流动
流程化,将知识的沉淀、消费在各角色间串联,让知识流动,实现迭代优化。
关键词:机制、人机协同。
规划:进一步优化流程,流程符合习惯的同时,进一步减少人工成本。
--
05 精彩问答
Q:如果这套QA生成方案在其它领域使用,迁移成本高吗?有哪些注意事项?
A:不高。我们在构建下游任务的时候需要一些数据,这个量不需要很大,目前我们应用的场景主要是电力、合同领域,大概几百条左右就可能会在该领域有一个比较好的表现。需要注意的是,训练集的质量相对来说要高一点,更能反映这个领域的属性。
Q:这样构造的问答对会不会样式比较单一?
A:这个是跟产品有关,一个问题就是一个知识点,以及对应这个知识点的答案,QA在这样的一个场景里还是比较好用的。
Q:请问怎么衡量问题生成的质量?
A:这个主要有两部分。第一部分,从模型层面会有一个得分,然后会有一些评价指标来衡量,这一部分在论文里有明确说明;第二部分是通过人工来评估,需要该领域的专家来完成,比如看这个QA是不是符合用户提问的习惯等。
Q:支持抽取多轮问答吗?
A:支持的。这个取决于你的训练集,如果训练集是多轮的,是可以抽取多轮对话的问答的。但是多轮对话问答的训练集,相对于文档生成问题的训练集,要难构建一点。
Q:能详细说一下评估反馈机制吗?
A:好的。从后台界面可以看到,生成QA以后,展现在界面上的是经过第一层筛选的,也就是说经过模型筛选的,然后让技术支持的同学去评估,评估完了以后可以选定和导出,或者导入机器人,我们会记录,作为一些正样本和副样本,作为后面学习过程的一个增量。除了技术支持的反馈,还有用户的反馈,然后再去调优。
Q:问答最后是人工质量质检,如果量大怎么控制?
A:第一层模型筛选会过滤掉较大的部分,分配下来以后,人工评估的工作量并不是特别的大。
Q:为啥智能客服很智障?
A:人工智能的前提,都是靠人的智力去慢慢堆积出来的。我们希望做的这些工作,能够慢慢地把智能客服从人工智障变成人工智能,这个也是我们的目标。
Q:拆解只适合格式化文件吗?
A:不是的。这个主要是你构建的下游任务,比如你的训练集是通过多人对话去抽取QA,还是从工单里面抽取QA,那下游任务训练出来的模型,就可以执行对应的任务,这取决于你的训练集。
Q:评价通过的准确率大概有多少?会超过90%吗?
A:根据我们之前的内部测试,大概在70%-80%左右,不同的产品可能会有一些差异性。
Q:对没有明显结构的网页数据如何进行拆解?
A:没有明显结构的网页数据可能会有一些HTML的Tag,可以基于Tag来拆解;如果一点都没有的话,那只能根据语意来拆解了,效果肯定没有有Tag的效果好。
Q:什么是多轮对话的知识形式?
A:多轮对话不像一问一答这么简单,它可能会有一些状态。我们的场景是计算平台的产品,目前基本上用不到多轮对话,一轮对话基本上可以解决了。
Q:Query如何和用户库中的QA对进行检索匹配?
A:比较简单的,Elasticsearch就可以做了;如果有更高的个性化需求比如做Query改写等,可以上一些深度模型。
Q:考虑过通过阅读理解去解决这个问题吗?
A:PALM就是基于语言理解和生成模型,它是通过阅读理解的这个深度模型作为底座,然后再加上下游任务来完成的。
Q:有用到知识图谱吗?
A:目前没有用到。目前我们的场景基本上是可以通过QA来覆盖的,后续其实我们是有这样一个方向的,我们做的这些可能就是知识图谱前面的一些铺垫。
Q:生成的问题模式会比较单一?
A:不一定。这基于两点,第一是预训练语料的语法是不是很灵活多变;第二是你的训练集,训练集里面的问法,如果说都是同一类的话,它生成的模型也会有比较大的倾向。
Q:自动文档抽取使用的预训练模型,在迁移训练时有模型改动或者输入格式匹配吗?
A:会有一些。这里肯定会做格式统一,但没有一个强制的规定,只要有一定格式上的相似性。
Q:Query同意改写在你们团队有实践吗?
A:有的。这个同意改写其实是基于一些模型,比如说是通过一些相似性、近义词等。在我们的大数据产品领域,对于产品的问法,我们可以为维护一个词库,我去收集一套可能的这个产品的所有的问法,就可以把它放到Query改写里面,作为一个同义词库。对于领域化的东西相对来说比较好找,像Query改写在开发领域则相对难一些。
Q:有源码吗?
A:可以去看那篇PALM论文。因为讲得比较清晰,大家也可以自己实现。
今天的分享就到这里,谢谢大家。
分享嘉宾:
本文首发于微信公众号“DataFunTalk”。
管正雄:基于预训练模型、智能运维的QA生成算法落地的更多相关文章
- 织云 Metis:看腾讯怎么做智能运维
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 作为企业智能运维门户,业界早已关注织云的智能运维体系.我们很荣幸地宣布织云 Metis 智能运维体系正式发布.自此,织云家族已发布:织云企业 ...
- 智和网管平台国产化AIOps智能运维 建立自主可控网络安全体系
没有网络安全就没有国家安全,中国作为一个崛起中的大国,网络安全至关重要.新一届中央高度重视信息安全自主可控的发展,Gartner研究报告表明,2019年中国三分之二的数据中心.IT基础设施支出流向中国 ...
- 数栈运维实例:Oracle数据库运维场景下,智能运维如何落地生根?
从马车到汽车是为了提升运输效率,而随着时代的发展,如今我们又希望用自动驾驶把驾驶员从开车这项体力劳动中解放出来,增加运行效率,同时也可减少交通事故发生率,这也是企业对于智能运维的诉求. 从人工运维到自 ...
- 阿里智能运维实践|阿里巴巴DevOps实践指南
编者按:本文源自阿里云云效团队出品的<阿里巴巴DevOps实践指南>,扫描上方二维码或前往:https://developer.aliyun.com/topic/devops,下载完整版电 ...
- 《Splunk智能运维实战》——1.7 为本书加载样本数据
本节书摘来自华章计算机<Splunk智能运维实战>一书中的第1章,第1.7节,作者 [美]乔史·戴昆(Josh Diakun),保罗R.约翰逊(Paul R. Johnson),德莱克·默 ...
- 真正云原生的智能运维体系,阿里云发布ECS自动化运维套件
云计算的发展,推动了自动化运维.DevOps.AIOps 等趋势的兴起,在业务快速变化的今天,企业希望通过一套自动化运维的专家系统提高运维效率,为业务提供支撑. 传统的方式下,打造一套成熟的 DevO ...
- Mysql基于GTID复制模式-运维小结 (完整篇)
先来看mysql5.6主从同步操作时遇到的一个报错:mysql> change master to master_host='192.168.10.59',master_user='repli' ...
- 搭建基于Jenkins salt-api的运维工具
1. 安装salt-master和salt-minion 安装过程不再赘述,请参考http://docs.saltstack.com/en/latest/topics/installation/ind ...
- 基于Jquery的多彩二维码的生成
Demo效果图: 源代码: @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name=&quo ...
随机推荐
- Docker系列教程05-Docker数据卷(Data Volume)学习
引言 在Docker中,容器的数据读写默认发生在容器的存储层,当容器被删除时其上的数据将会丢失.要想实现数据的持久化,需要将数据从宿主机挂载到容器中.目前Docker提供了三种方式将数据从宿主机挂载到 ...
- Go 语言快速开发入门
目录 需求 开发的步骤 linux下如何开发Go程序 MAC下如何开发Go程序 Golang执行流程分析 编译和运行说明 Go程序开发的注意事项 Go语言的转义字符(escapechar) Golan ...
- 【翻译】ScyllaDB数据建模的最佳实践
文章翻译自Scylla官方文档:https://www.scylladb.com/2019/08/20/best-practices-for-data-modeling/ 转载请注明出处:https: ...
- 【Electron】使用 build-tools 在 Windows 中编译 electron
[Electron]使用 build-tools 在 Windows 中编译 electron 提前准备 预留好磁盘空间 Git 缓存目录:%UserProfile%/.git_cache ,大概有 ...
- VsCode[Git] | 配置Gitee和Github | 不使用全局用户名和邮箱
(VsCode[Git] | 配置Gitee和Github | 不使用全局用户名和邮箱 | 2021-04-11) 目录 一 .安装Git / VsCode配置Git / Win10系统 二.Git配 ...
- CentOS下sudo的使用和sudoers配置
一.sudo命令 sudo [参数选项] 命令 参数选项 -l:列出目前用户可执行与无法执行的指令: -v:延长密码有效期限5分钟: -u<用户>:以指定的用户作为新的身份.若不加上此参数 ...
- 关于TornadoFx和Android的全局配置工具类封装实现及思路解析
原文地址: 关于TornadoFx和Android的全局配置工具类封装实现及思路解析 - Stars-One的杂货小窝 目前个人开发软件存在设置页面,可以让用户自定义些设置,但我发现,存储数据的代码逻 ...
- 我熬夜读完这份“高分宝典”,竟4面拿下字节跳动offer
前言 怎样的契机? 实际上,目前毕业已经两年时间了,在大学时就已经开始关注字节跳动的发展.一开始,我是电气自动化专业的,大二清楚目标之后就转计算机了,大四进了一家小型的互联网公司实习,具体就不说哪家了 ...
- python基础学习7
python基础学习7 内容概要 字符串的内置方法 字符串的内置方法(补充) 列表的内置方法 可变类型与不可变类型 队列与堆栈 内容详情 字符串的内置方法 # 1.strip 移除字符串首尾的指定字符 ...
- Java并发3
轻量级锁:如果一个有多个线程访问,但多线程访问的时间是错开的,没有竞争,那么可以使用轻量级锁来优化: monitor:重量级锁: 正常我们使用synchronized时,没有竞争则是轻量级锁,当遇到竞 ...