管正雄:基于预训练模型、智能运维的QA生成算法落地

分享嘉宾:管正雄 阿里云 高级算法工程师

出品平台:DataFunTalk


导读:面对海量的用户问题,有限的支持人员该如何高效服务好用户?智能QA生成模型给业务带来的提效以及如何高效地构建算法服务,为业务提供支持。本文将介绍:阿里云计算平台大数据产品答疑场景;基于达摩院AliceMind预训练模型实现的智能QA生成算法核心能力及背后实现原理;如何通过智能运维服务平台将算法能力输出,给业务提供一站式服务,优化答疑体验。主要分为以下几部分:

  • 背景介绍
  • QA生成框架
  • QA生成在业务场景中的应用
  • 总结与规划
  • 精彩问答

01 背景介绍

1、计算平台产品介绍

file

阿里云计算平台的产品种类多,形态多样化,主要包括数据计算与分析、数据开发与治理、机器学习三大模块,其中包括阿里云自研产品像MaxCompute、Hologres等,以及开源产品像Flink、Elasticsearch等阿里云提供资源和托管的服务。

2、售后技术支持及痛点

在用户购买了阿里云的产品后,在使用过程中如果遇到问题,可以通过以下方式寻求解决方案,但同时又存在一些痛点:

a. 机器人问答:机器人语料覆盖有限

file

b. 文档查询:内容过多,查找效率低。

file

c. 社区问答:集中于高频问题,中长尾问题较少。

file

d. 提工单:无法实时解答问题。

file

3、解决方案:漏斗式答疑支撑模型

file

a. 产品:产品诊断等业务服务。

b. 自主解决:自助查询文档、社区。

c. 智能服务:智能机器人问答,分为用户提问流程和知识补充流程,实现知识前置,多源知识转为机器人语料。

d. 人工协助:转人工对话、工单。

接下来重点介绍在智能服务中,知识前置到智能机器人自助问答,通过QA生成框架快速补充语料。

02 QA生成框架

1、框架介绍

file

上图是QA生成框架概览。文档智能化拆解模块,将不同的文档如MarkDown文档、Html文档、PDF文档、工单等等拆解成知识点,生成知识点列表,知识点列表经过基于AliceMind模型体系里的PALM生成模型,将这些知识点生成QA,最终得到QA列表,从而实现多源知识一站式转化为QA语料。

2、文档智能化拆解

file

a. 统一协议解析:不同的文档有不同的协议,将诸如Office文档、PDF文档、扫描件、语雀文档等的协议进行统一文档表示。

b. 文档树生成:将文档的结构比如一、二、三标题等生成树状结构,将文档的内容梳理成知识点的树状汇总。

c. 知识点抽取:基于自适应划分或知识点打分,将知识树拆解成具体的知识点。

下图是HTML文档拆解和PDF文档拆解的举例:

file

3、AliceMind

file

AliceMind是领先性和系统化的深度语言模型体系,本文将重点介绍AliceMind中的生成式语言模型(PALM)如何生成QA。

a. AliceMind的业务价值和应用领域举例

  • 医疗:技术——医疗翻译、医疗搜索、医疗信息抽取、医疗文本结构化;产品——病历质检和健康档案产品、疫情问答机器人;
  • 能源:技术——智能企业知识库构建及阅读理解;产品——阿里云电网智能化运维平台,应用于变压器检修、供电抢修等业务;
  • 法律:技术——立案及裁判文书生成,法律信息抽取;产品——法院的全流程智能化审判系统,实现从立案到裁判文书生成的全流程智能;
  • 金融:技术——金融客服、金融搜索、金融预测;产品——蚂蚁智能客服,大幅降低转人工频次、天机镜行为预测。

b. 基于PALM的QA生成模型

file

  • 预训练生成模型

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. 文档

file

  • b. QA对:

Q:Dataworks的工作空间是什么

A:工作空间是Dataworks管理任务、成员……

Q:DataWorks的解决方案的优势是什么

A:一个解决方案可以包括多个业务流程,解决方案……

03 QA生成在业务场景中的应用

1、ABM运维管控平台

ABM运维管控平台即飞天大数据管控平台(ABM,Apsara Big Data Manager),是支撑平台服务与集群的全生命周期管理,智能化运维、运营和交付,面向大数据的业务方、运营方及研发方提供企业级运维平台。

file

2、ABM智能算法平台

ABM智能算法平台提供算法从开发-构建-部署的全生命周期的支撑。

file

如图所示,算法开发可以添加算法配置和注册算法检测器,SRE用户或运维可以创建场景生成检测实例,这个检测实例就是QA生成算法的应用实例,然后算法调度框架去调度,最后再给到用户。这一系列过程可以通过智能场景运营大盘进行整个生命周期的管理。

3、知识管理业务流程图

基于前面的QA生成框架概览图,最终生成的QA列表可能不是100%准确的,那么还要通过一些指标对其进行评估是否符合预期,同时经过我们专家的review,符合预期的QA将灌入到机器人语料、FAQ页面、知识图谱等里面。这就是整体的业务流程。

file

4、QA生成产品界面

a. 新建挖掘任务

file

b. 导出生成QA语料

file

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论文。因为讲得比较清晰,大家也可以自己实现。

今天的分享就到这里,谢谢大家。


分享嘉宾:

file

本文首发于微信公众号“DataFunTalk”。