预训练知识度量比赛夺冠!阿里云PAI发布知识预训练工具

本文涉及的产品
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
交互式建模 PAI-DSW,5000CU*H 3个月
模型训练 PAI-DLC,5000CU*H 3个月
简介: 阿里云计算平台PAI团队携手达摩院智能对话与服务技术团队,在CCIR Cup2021全国信息检索挑战杯的《预训练模型知识量度量》比赛中基于自研的融入知识预训练模型取得第一名。团队采用自研的知识预训练模型KGBERT和DKPLM为底座,采用多样化知识融入方法,形成强有力的蕴含丰富知识的预训练模型,在比赛数据上取得了非常好的效果。

背景


阿里云计算平台PAI团队携手达摩院智能对话与服务技术团队,在CCIR Cup2021全国信息检索挑战杯的《预训练模型知识量度量》比赛中基于自研的融入知识预训练模型取得第一名。本赛题主要考查预训练语言模型蕴含的知识量,涉及到九大领域,包括音乐、影视、军事、历史、化学、物理、生物、法律、医学。同时,赛题包含三种不同难度的题目,考查模型对于单跳事实,多跳事实和常识的掌握程度。可以看出,赛题针对预训练语言模型多领域多层次的知识掌握能力进行考验,难度较大。详情请见比赛页面:https://ccir2021.dlufl.edu.cn/ccirContest/index.html。为了解决上述问题,团队采用自研的知识预训练模型KGBERT和DKPLM为底座,采用多样化知识融入方法,形成强有力的蕴含丰富知识的预训练模型,在比赛数据上取得了非常好的效果

值得一提的是,PAI团队很早就开始了基于知识的继续预训练的研究,致力于提升预训练模型的常识性和知识性,让预训练模型更加“聪明”。PAI团队已经在国际知名会议ACL和CIKM发表了知识预训练的工作,包括医疗知识预训练模型和异构知识注入模型HORNET,团队自研的DKPLM工作也被最近的人工智能顶会AAAI录用,论文详见:https://arxiv.org/abs/2112.01047。为了方便用户使用我们的知识预训练模型,PAI团队推出了知识预训练工具,将KGBERT模型和扩展模型DKPLM整理成工具,方便用户在下游任务里尝试融入知识的预训练模型,提升下游场景的效果。


为什么要做知识预训练?

作为NLP基础模型,预训练语言模型(包括BERT,RoBERTa,XLNET等)在各个下游NLU任务取得了前所未有的成绩,具有很强的通用性。然而,主流的预训练语言模型都是基于公开的文档,从非结构化文档中学习一般的语言知识,忽略了对大量知识信息的学习,特别是结构化的知识图谱信息。这将导致模型无法真正理解现实中的实体和它们之间的关系等一系列知识,难以拥有真正的NLU能力。比方说,GPT模型输出关于“太阳有两只眼睛”,“巴拉克奥巴马是一个Muslim”等论断(如下图)。此类知识的缺失,将会产生一些反事实的内容,也会大大减弱模型的小样本学习能力,领域知识的迁移能力,一般知识的归纳能力等等。因此,PAI团队很早就开始了知识预训练的技术积累,致力于提升预训练模型的常识性和知识性,避免出现反常识和反事实的模型结果。

知识预训练工具

PAI团队本次推出的知识预训练工具,除了CCF知识度量比赛获奖模型KGBERT之外,还有扩展模型DKPLM。模型总览介绍如下:

和通用的预训练工具不同,知识预训练工具包括如下亮点:

  • 提供了高效的知识预训练模型KGBERT和DKPLM,方便用户直接使用预训练好的模型;其中提供了DKPLM在医疗领域的预训练模型,和KGBERT在税务和保险领域的预训练模型;
  • 支持丰富的下游场景应用,包括文本分类,文本匹配,和序列标注。可以基于预训练模型做预测,也可以用新的场景数据finetune预训练模型,以取得更好的成果;
  • 融合了PAI-EasyTransfer的分布式框架,可以更好的训练做加速。


KGBERT

KGBERT首先采用SPO(Subject-Property-Object)三元组的形式表达知识图谱中的海量知识。为了高效的利用这些知识,KGBERT构建了“Sentence-正向SPO-负向SPO”形式的语料,其中,正向SPO为与Sentence语义相关的表达正确知识的SPO,负向SPO为随机采样的、与Sentence语义无关的SPO。KGBERT的模型架构如下图所示:

KGBERT中,我们设计了多粒度的语义理解预训练任务:

  • Mention Detection:传统NER模型,增强模型对核心实体Mention的理解。
  • SPO Masking:将大规模文本数据及其对应的SPO知识同时输入到预训练模型中进行预联合训练,促进结构化知识和无结构文本之间的信息共享,提升模型语义理解能力,加强属性识别能力。
  • SPO Margin Magnification (SPOMM):设计基于对比学习的预训练任务,拉开Sentence相关SPO与无关SPO语义间隔,使其具备更强的语义区分能力。通过伯努利分布产生随机概率打乱相关和无关SPO的顺序。避免输入顺序固定,模型学到Hard Rule。


DKPLM

目前的KGBERT,如果要取得好的效果,需要在下游任务中显式地注入知识图谱中的知识,给下游业务场景的使用带来了负担。在KGBERT的基础上,PAI推出新版的模型DKPLM (Decomosable Knowledge-injected PLM),可以在预训练阶段注入知识,训练完的模型在下游场景里不需要注入知识直接finetune就可以取得很好的效果。在公开数据上效果显示,DKPLM比常用的KEPLM和KGBERT效果更好。模型使用方式如下图所示:

由此可见,传统的知识注入的预训练语言模型(例如KGBERT)需要在下游任务的时候做显式的知识注入,增加了使用成本。新版的知识注入模型DKPLM可以跟普通的预训练模型(例如BERT)同样使用,在下游任务里直接Finetune就可以取得不错的效果。值得一提的是,我们提出的DKPLM模型在医疗数据上相比其他预训练模型平均提升了3个点。DKPLM的架构如下所示:

由上图可见,DKPLM基于传统的PLM,提出了三个技术创新点来做知识注入:

  • 面向长尾实体的知识注入:最近很多研究结果已经显示,对于常见的三元组实体,预训练语言模型通过大规模无监督语料的训练,已经能够将相应的知识三元组建模出来,知识注入会带来冗余信息。因此,DKPLM采取面向长尾实体的知识注入机制,利用实体频率、实体语义重要性和目标实体周围邻居数量检测长尾实体,作为知识注入的目标。
  • 实体知识注入:为了将实体的知识注入到预训练模型中,同时尽可能不要引入其他额外参数,保持backbone与预训练模型对齐。我们引入了伪知识表示注入方法。具体地,如果训练语句中的目标实体是头实体,那么将其对应的预训练输入的表示替换成尾实体减去关系的表示。如果是头实体,就进行相反的操作。
  • 基于关系知识的知识解码验证:最后,将注入的三元组知识显示地解码出来,我们将这一任务作为DKPLM的预训练任务之一,加入预训练流程中。


实验效果评测

除了CCF知识度量比赛,我们也在三个公开医学数据集上验证了自研模型的效果,实验结果如下:

数据集/模型

DKPLM

KGBERT

BERT

CMedQANER (NER)

F1=84.79

F1=81.84

F1=81.43

CHIP20

(RE)

F1=77.12

F1=74.43

F1=73.05

CMedMRC

(MRC)

EM=67.18

F1=85.33

EM=66.49

F1=84.92

EM=66.15

F1=84.08

其中,所有模型均为Base量级(参数量约为1亿)。

我们得出如下结论:1)DKPLM和KGBERT效果都超过了BERT,可见融入知识的预训练模型比原始的BERT预训练效果更好;2)在三个数据上,DKPLM都取得了最好的效果,可以证明DKPLM提出的知识注入方式是有效的; 3) 不仅如此,不像传统的KEPLM,DKPLM在下游任务finetune的时候不需要用额外的KG或者knowledge encoder,可以很方便的部署到线上。

同时,我们也在公开的知识探测任务(LAMA),下游知识任务(TACRED,Open Entity)上比较了DKPLM与传统的知识预训练模型(KEPLM)、通用预训练模型(PLM),实验结果如下:

由此可见,与其他基线的结果相比,我们可以得出以下结论。 1)在知识探测任务LAMA任务上:DKPLM模型在四个数据集上取得了最先进的结果(平均+1.88%),说明DKPLM能够高效的注入知识。2)此外,在下游知识任务中,注入外部知识的模型相比于其他基线结果都会有一定程度的提升。特别是在TACRED任务上,相比最好的模型在三个指标Precision,Recall和F1都有很大的提升。3)整体来看,DKPLM可以有效地存储和理解来自KG的事实知识,相比基线模型在多个任务上都有很好的效果。DKPLM工作已经被AI顶级会议AAAI收录,详见论文:https://arxiv.org/pdf/2112.01047.pdf

模型调用方式

用户可以通过PAI-Designer的界面来调用预训练的模型,可以直接做预测,也可以基于预训练模型做训练和评估。PAI-Designer文档详见https://help.aliyun.com/document_detail/114368.html。使用方式如下。

模型训练和评估

用户可以直接采用PAI-Designer的组件来直接调用知识预训练的模型,这里的组件都在 “自然语言处理”这个目录下,包括:

  • 文本分类训练(MaxCompute)
  • 文本分类训练(DLC)
  • 文本匹配训练
  • 序列标注训练
  • BERT文本向量化

组件的页面如下所示:


调用模型的时候,只需要修改pretrain_model_name_or_path参数即可。支持的模型如下:

  • pai-dkplm-medical-base-zh(DKPLM医疗预训练模型)
  • alibaba-kgbert-tax-base-zh(KGBERT税务领域预训练模型)
  • alibaba-kgbert-insurance-base-zh(KGBERT保险领域预训练模型)

模型预测

模型预测可以复用通用NLP预测组件,通过组件连接,可以基于训练好的模型做预测。

训练好的模型可以通过PAI-EAS做serving服务 ,文档详见:https://help.aliyun.com/document_detail/113696.html

开发工具EasyTransfer

知识预训练工具是基于EasyTransfer开发的,感兴趣的用户可以关注一下EasyTransfer代码库。https://github.com/alibaba/EasyTransfer

用户也可以通过如下二维码关注EasyTransfer代码库。




相关实践学习
使用PAI-EAS一键部署ChatGLM及LangChain应用
本场景中主要介绍如何使用模型在线服务(PAI-EAS)部署ChatGLM的AI-Web应用以及启动WebUI进行模型推理,并通过LangChain集成自己的业务数据。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
目录
相关文章
|
22天前
|
机器学习/深度学习 人工智能 专有云
人工智能平台PAI使用问题之怎么将DLC的数据写入到另一个阿里云主账号的OSS中
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
1月前
|
机器学习/深度学习 数据可视化 搜索推荐
Python在社交媒体分析中扮演关键角色,借助Pandas、NumPy、Matplotlib等工具处理、可视化数据及进行机器学习。
【7月更文挑战第5天】Python在社交媒体分析中扮演关键角色,借助Pandas、NumPy、Matplotlib等工具处理、可视化数据及进行机器学习。流程包括数据获取、预处理、探索、模型选择、评估与优化,以及结果可视化。示例展示了用户行为、话题趋势和用户画像分析。Python的丰富生态使得社交媒体洞察变得高效。通过学习和实践,可以提升社交媒体分析能力。
51 1
|
8天前
|
机器学习/深度学习 存储 人工智能
【ACL2024】阿里云人工智能平台PAI多篇论文入选ACL2024
近期,阿里云人工智能平台PAI的多篇论文在ACL2024上入选。论文成果是阿里云与阿里集团安全部、华南理工大学金连文教授团队、华东师范大学何晓丰教授团队共同研发。ACL(国际计算语言学年会)是人工智能自然语言处理领域的顶级国际会议,聚焦于自然语言处理技术在各个应用场景的学术研究。该会议曾推动了预训练语言模型、文本挖掘、对话系统、机器翻译等自然语言处理领域的核心创新,在学术和工业界都有巨大的影响力。此次入选标志着阿里云人工智能平台PAI在自然语言处理和多模态算法、算法框架能力方面研究获得了学术界认可。
|
21天前
|
数据采集 人工智能 自然语言处理
阿里云百炼平台深度体验:智能问答与模型训练的创新之旅
在人工智能的浪潮中,阿里云百炼平台以其强大的大模型开发能力,为企业和个人开发者提供了一站式的解决方案。本文将从知识检索应用搭建、模型训练调优以及流程管理功能三个角度,全面评测阿里云百炼平台的实际使用体验。
105 3
|
5天前
|
机器学习/深度学习 存储 缓存
模型遇见知识图谱问题之参与阿里云机器学习团队的开源社区的问题如何解决
模型遇见知识图谱问题之参与阿里云机器学习团队的开源社区的问题如何解决
|
1月前
|
存储 人工智能 弹性计算
|
1月前
|
机器学习/深度学习 人工智能 分布式计算
阿里云人工智能平台PAI论文入选OSDI '24
阿里云人工智能平台PAI的论文《Llumnix: Dynamic Scheduling for Large Language Model Serving》被OSDI '24录用。论文通过对大语言模型(LLM)推理请求的动态调度,大幅提升了推理服务质量和性价比。
|
1月前
|
人工智能 自然语言处理 算法
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
|
1月前
|
存储 人工智能 物联网

热门文章

最新文章

相关产品

  • 人工智能平台 PAI