0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何向大规模预训练语言模型中融入知识?

深度学习自然语言处理 ? 来源:复旦DISC ? 作者:王瑞泽 ? 2021-06-23 15:07 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本文介绍了复旦大学数据智能与社会计算实验室 (Fudan DISC)在ACL 2021上录用的一篇Findings长文: K-Adapter: Infusing Knowledge into Pre-Trained Models with Adapters

文章摘要

本文关注于向大规模预训练语言模型(如RoBERTa、BERT等)中融入知识。提出了一种灵活、简便的知识融入框架K-Adapter,通过外挂知识插件的方式来增强原模型,缓解了知识遗忘的问题、且支持连续知识学习。本文提出的模型在三种知识驱动的任务,包括了命名实体识别、关系分类、问答等任务上取得了显著的效果。

研究背景

预训练语言模型,如BERT、GPT、XLNet、RoBERTa,可以通过无监督训练目标(如MLM)来从大规模文本语料中学习通用表示,并且在各种各样的下游任务上取得了SOTA的表现。尽管这些模型取得了巨大的进步,但是最近的一些工作表明这些通过无监督方式训练的模型很难学习到丰富的知识,如逻辑知识、事实类知识、语言学知识、特定领域的知识等等。因此这启发了本文来研究如何向预训练模型中融入知识。

最近出现了一些向预训练模型中融入知识的工作,如ERNIE、WKLM、KnowBERT等。下表中展示了本文工作和先前融入知识工作的对比。先前的工作通过多任务(multi-task)学习的方式训练模型,也就是在原有的MLM训练目标的基础上,额外增加了用于融入知识的训练目标,例如ERINE通过增加Entity Linking的训练目标学习相关知识。由于这些方法在预训练融入知识的阶段BERT不是固定的,需要更新模型的全部参数,会使得模型融入知识的代价较大。而且他们不支持连续学习,模型的参数在引入新知识的时候需要重新训练;对于已经学到的知识来说,会造成灾难性遗忘(catastrophic forgetting)的问题。为了更好地解决上述问题,本文提出了 K-Adapter,一种灵活、简便地向预训练模型中注入知识的方法。

方法描述

本文提出的方法如下图所示。图a是基于多任务学习融入知识的方法,图b是本文模型K-Adapter,通过外挂在原始模型外的adapter,融入不同种类的知识。

e1d6bf12-d15c-11eb-9e57-12bb97331649.png

1. Adapter结构

Adapter模型可以看做是知识特定模型,可以看做为插件,挂载在预训练模型外部。具体而言,每个Adapter模型由K个Adapter层(如下图所示,KIA)组成,其中每个Adapter层包含了N个Transformer层和两个映射层(Projection Layer)。对于Adapter模型,本文将Adapter层插入到预训练模型的不同Transformer层之间,将预训练模型的中间层输出的特征和前一个Adapter层的输出特征拼接作为Adapter层的输入。本文将预训练模型和Adapter的最后一个隐藏特征拼接作为最终的输出特征。

e1efddf8-d15c-11eb-9e57-12bb97331649.png

本文采用RoBERTa作为backbone。需要注意的是,RoBERTa在融入知识的预训练过程中是固定的,但Adapter的参数是可训练的。这样的模型和训练设定,缓解了融入知识时灾难性遗忘的问题,不同知识的学习不受影响,融入知识效率更高;而且不同的Adapter间没有信息流、可以利用分布式的方式同时、独立地训练。

本文通过设置不同的预训练任务向Adapter中融入不同的知识。接下来介绍如何将不同种类的知识融入到特定的Adapter中。

2. 知识融入

下图展示了向知识特定Adapter中融入知识的框图。

e1fc38f0-d15c-11eb-9e57-12bb97331649.png

本文主要融入了2种知识——事实类知识和语言类知识,分别融入到了2种知识特定的adapter中:

(1)Factual Adapter:Factual Adapter融入了事实类知识。此处的事实类知识指文本中实体之间的关系,来源于Wikipedia和Wikidata之间自动对齐的文本-三元组对。本文在关系分类任务上进行预训练来融入知识,该任务要求给定1个句子和句子中的2个实体,然后要求模型预测出这两个实体的关系。如下图展示了融入事实类知识的示意图。

e27629ee-d15c-11eb-9e57-12bb97331649.png

(2)Linguistic Adapter:Linguistic Adapter融入了语言类知识。语言类的知识是自然语言中最基本的一类知识,比如说语义和语法信息。本文中的语言类知识指文本中词之间的依存关系。本文在依存关系预测任务上进行预训练来融入知识。这个任务要求模型预测出给定句子中,每个词的father的index。

下图展示了如何将Adapter应用在下游任务中。此处关键的点是预训练模型特征+知识特征,即一方面利用预训练模型的通用信息,一方面利用Adapter中的特定知识。

e2880eb6-d15c-11eb-9e57-12bb97331649.png

实验

本文在3种知识驱动的下游任务上进行实验,包含命名实体识别,问答和关系分类。此外,还通过案例分析和探究性实验对模型学习事实类知识的有效性进行了分析。K-ADAPTER (F+L) 代表同时外挂事实类(factual) adapter和语言类(linguistic) adapter;K-ADAPTER (F) 代表外挂事实类(factual) adapter,K-ADAPTER (L) 代表外挂语言(linguistic) adapter。实验中RoBERTa均指RoBERTa-Large。

1. 命名实体识别(Entity Typing)

命名实体识别任务是给定一个文本和指定的实体,让模型预测出指定实体的类别。在OpenEntity和FIGER数据集上的结果如下表所示。在OpenEntity数据集上,本文模型K-ADAPTER(F+L)相比于RoBERTa进一步提高了1.38%的Mi-F1。在FIGER数据集上,与WKLM相比,K-ADAPTER (F+L)提高了2.88%的Ma-F1,提高了2.54%的Mi-F1。

2. 问答(Question Answering)

问答任务的目的是给定一个问题和一个文本,来让模型做出回答,有时还会提供问题的上下文信息。在问答任务上的实验结果如下表所示。在CosmosQA上,与BERT-FTRACE+SWAG相比,本文的RoBERTa在准确率上显著提高了11.89%。与RoBERTa相比,K-ADAPTER(F+L)进一步提高了1.24%的准确率,这表明K-ADAPTER可以获得更好的常识推理能力。在开放域的QA数据集(SearchQA和Quasar-T)上,与其他baseline相比,K-ADAPTER取得了更好的结果。这表明K-ADAPTER可以充分利用融入的知识,有利于根据检索到的段落来回答问题。具体来说,在SearchQA上,K-ADAPTER(F+L)WKLM相比,显著提高了4.01%的F1,甚至比WKLM+Ranking略高。值得注意的是,K-ADAPTER没有建模检索到的段落的置信度,而WKLM+Ranking额外利用了另一个基于BERT的ranker为检索到的段落进行打分、排序。

3. 关系分类(Relation Classification)

关系分类任务是指给定一个文本和文本中的两个实体,要求模型预测出这两个实体之间的关系。在关系分类任务上的实验结果如下表所示。结果表明,K-ADAPTER明显优于所有baseline。特别地,(1)K-ADAPTER模型优于RoBERTa,证明了利用Adapter进行知识融入的有效性;(2)与RoBERTa+multitask相比,K-ADAPTER取得了更大的提升,这直接说明了K-ADAPTER相比于多任务学习方式融入知识的效果更好,有助于模型充分利用知识。

4. 案例分析(Case Study)

下表中展示了在TACRED数据集上,K-ADAPTER和RoBERTa的定性比较。结果表明,K-ADAPTER中的事实知识可以帮助模型从预测“no_relation”转换到预测正确的类别标签

为了检验模型学习事实类知识的能力,本文在LAMA数据集上进行了探究(Probing)实验。具体来说,该实验是在zero-shot的设定下进行的,要求模型不在微调的情况下完成关于事实知识的完型填空,例如将“The native language of Mammootty is [MASK] ”作为输入,让模型预测出 [MASK]是什么。

总结

提出了一种灵活而简单的方法K-Adapter,支持将知识注入到大规模预训练语言模型中。

K-Adapter保持原有预训练模型参数不变,使用不同的知识特定"插件"学习不同类别的知识,支持连续知识学习,从而缓解“知识遗忘”问题,即融入新的知识不会影响原有的知识;且由于不同adapter间没有信息流,所以adapter可以用分布式的方式进行高效地训练。

在三种知识驱动的任务上取得了显著的效果,包括了命名实体识别、关系分类、问答。详细的分析进一步证明K-Adapter可以学习到更为丰富的事实类知识,为如何有效地进行知识融入提供了一些见解。

责任编辑:lq6

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 语言
    +关注

    关注

    1

    文章

    97

    浏览量

    24520
  • 模型
    +关注

    关注

    1

    文章

    3528

    浏览量

    50515

原文标题:通过外挂"插件"向预训练语言模型中融入知识

文章出处:【微信号:zenRRan,微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    AI原生架构升级:RAKsmart服务器在超大规模模型训练的算力突破

    近年来,随着千亿级参数模型的崛起,AI训练对算力的需求呈现指数级增长。传统服务器架构在应对分布式训练、高并发计算和显存优化等场景时逐渐显露瓶颈。而RAKsmart为超大规模
    的头像 发表于 04-24 09:27 ?330次阅读

    用PaddleNLP为GPT-2模型制作FineWeb二进制训练数据集

    作者:算力魔方创始人/英特尔创新大使刘力 《用PaddleNLP在4060单卡上实践大模型训练技术》发布后收到读者热烈反响,很多读者要求进一步讲解更多的技术细节。本文主要针对大语言
    的头像 发表于 03-21 18:24 ?1740次阅读
    用PaddleNLP为GPT-2<b class='flag-5'>模型</b>制作FineWeb二进制<b class='flag-5'>预</b><b class='flag-5'>训练</b>数据集

    从Open Model Zoo下载的FastSeg大型公共训练模型,无法导入名称是怎么回事?

    从 Open Model Zoo 下载的 FastSeg 大型公共训练模型。 运行 converter.py 以将 FastSeg 大型模型转换为中间表示 (IR): pyth
    发表于 03-05 07:22

    小白学大模型训练语言模型的深度指南

    在当今人工智能飞速发展的时代,大型语言模型(LLMs)正以其强大的语言理解和生成能力,改变着我们的生活和工作方式。在最近的一项研究,科学家们为了深入了解如何高效地
    的头像 发表于 03-03 11:51 ?764次阅读
    小白学大<b class='flag-5'>模型</b>:<b class='flag-5'>训练</b>大<b class='flag-5'>语言</b><b class='flag-5'>模型</b>的深度指南

    用PaddleNLP在4060单卡上实践大模型训练技术

    作者:算力魔方创始人/英特尔创新大使刘力 之前我们分享了《从零开始训练一个大语言模型需要投资多少钱》,其中高昂的训练费用让许多对大
    的头像 发表于 02-19 16:10 ?1057次阅读
    用PaddleNLP在4060单卡上实践大<b class='flag-5'>模型</b><b class='flag-5'>预</b><b class='flag-5'>训练</b>技术

    腾讯公布大语言模型训练新专利

    语言模型训练过程中引入第一摘要文本和第二摘要文本,为模型提供了更为丰富的学习信息。这两个摘要文本在信息量上存在差异,且第一摘要文本既包
    的头像 发表于 02-10 09:37 ?443次阅读

    【「基于大模型的RAG应用开发与优化」阅读体验】+大模型微调技术解读

    微调:通过在训练模型插入适配器模块来适应特定任务,既保留了原始模型的性能,又能快速适应新任务。Prefix-Tuning:通过在输入序列
    发表于 01-14 16:51

    什么是大模型、大模型是怎么训练出来的及大模型作用

    ,基础模型。 ? 大模型是一个简称,完整的叫法,应该是“人工智能训练模型”。
    的头像 发表于 11-25 09:29 ?1.3w次阅读
    什么是大<b class='flag-5'>模型</b>、大<b class='flag-5'>模型</b>是怎么<b class='flag-5'>训练</b>出来的及大<b class='flag-5'>模型</b>作用

    从零开始训练一个大语言模型需要投资多少钱?

    一,前言 ? 在AI领域,训练一个大型语言模型(LLM)是一个耗时且复杂的过程。几乎每个做大型语言模型(LLM)
    的头像 发表于 11-08 14:15 ?809次阅读
    从零开始<b class='flag-5'>训练</b>一个大<b class='flag-5'>语言</b><b class='flag-5'>模型</b>需要投资多少钱?

    使用EMBark进行大规模推荐系统训练Embedding加速

    推荐系统是互联网行业的核心系统,如何高效训练推荐系统是各公司关注的核心问题。目前,推荐系统基本上都是基于深度学习的大规模 ID 类模型模型包含数十亿甚至数百亿级别的 ID 特征,典型
    的头像 发表于 10-31 14:46 ?790次阅读
    使用EMBark进行<b class='flag-5'>大规模</b>推荐系统<b class='flag-5'>训练</b>Embedding加速

    AI大模型训练数据来源分析

    学术机构、政府组织或企业公开发布,涵盖了各种类型的数据,如图像、文本、音频、视频等。例如: ImageNet :一个广泛用于图像识别任务的大规模图像数据集。 Common Crawl :提供了大量的网页抓取数据以供自然语言处理模型
    的头像 发表于 10-23 15:32 ?3786次阅读

    直播预约 |数据智能系列讲座第4期:训练的基础模型下的持续学习

    鹭岛论坛数据智能系列讲座第4期「训练的基础模型下的持续学习」10月30日(周三)20:00精彩开播期待与您云相聚,共襄学术盛宴!|直播信息报告题目
    的头像 发表于 10-18 08:09 ?643次阅读
    直播预约 |数据智能系列讲座第4期:<b class='flag-5'>预</b><b class='flag-5'>训练</b>的基础<b class='flag-5'>模型</b>下的持续学习

    【实操文档】在智能硬件的大模型语音交互流程接入RAG知识

    本帖最后由 jf_40317719 于 2024-9-29 17:13 编辑 智能硬件的语音交互接入大模型后可以直接理解自然语言内容,但大模型作为一个语言
    发表于 09-29 17:12

    摩尔线程与羽人科技完成大语言模型训练测试

    (YuRen-7b)大语言模型训练测试。测试结果显示,训练效率达到预期,夸娥千卡智算集群展现出了高度的兼容性和稳定性,为羽人科技未来的零代码训练
    的头像 发表于 08-27 16:19 ?860次阅读

    【《大语言模型应用指南》阅读体验】+ 基础知识学习

    的信息,提供更全面的上下文理解。这使得模型能够更准确地理解复杂问题中的多个层面和隐含意义。 2. 语义分析 模型通过训练学习到语言的语义特征,能够识别文本
    发表于 08-02 11:03