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

    浏览量

    24755
  • 模型
    +关注

    关注

    1

    文章

    3648

    浏览量

    51707

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    在Ubuntu20.04系统训练神经网络模型的一些经验

    本帖欲分享在Ubuntu20.04系统训练神经网络模型的一些经验。我们采用jupyter notebook作为开发IDE,以TensorFlow2为训练框架,目标是
    发表于 10-22 07:03

    大规模专家并行模型在TensorRT-LLM的设计

    DeepSeek-V3 / R1 等模型采用大规模细粒度混合专家模型 (MoE) 架构,大幅提升了开源模型的质量。Llama 4 和 Qwen3 等新发布的开源
    的头像 发表于 09-06 15:21 911次阅读
    <b class='flag-5'>大规模</b>专家并行<b class='flag-5'>模型</b>在TensorRT-LLM的设计

    基于大规模人类操作数据训练的VLA模型H-RDT

    近年来,机器人操作领域的VLA模型普遍基于跨本体机器人数据集训练,这类方法存在两大局限:不同机器人本体和动作空间的差异导致统一训练困难;现有大规模
    的头像 发表于 08-21 09:56 776次阅读
    基于<b class='flag-5'>大规模</b>人类操作数据<b class='flag-5'>预</b><b class='flag-5'>训练</b>的VLA<b class='flag-5'>模型</b>H-RDT

    沐曦MXMACA软件平台在大模型训练方面的优化效果

    在如今的人工智能浪潮大规模语言模型(上百亿乃至千亿参数)正迅速改变着我们的工作和生活。然而,训练这些庞大的
    的头像 发表于 07-03 14:09 1699次阅读
    沐曦MXMACA软件平台在大<b class='flag-5'>模型</b><b class='flag-5'>训练</b>方面的优化效果

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

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

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

    作者:算力魔方创始人/英特尔创新大使刘力 《用PaddleNLP在4060单卡上实践大模型训练技术》发布后收到读者热烈反响,很多读者要求进一步讲解更多的技术细节。本文主要针对大语言
    的头像 发表于 03-21 18:24 3813次阅读
    用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 1205次阅读
    小白学大<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 2128次阅读
    用PaddleNLP在4060单卡上实践大<b class='flag-5'>模型</b><b class='flag-5'>预</b><b class='flag-5'>训练</b>技术

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

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

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

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

    模型训练框架(五)之Accelerate

    轻松切换不同的并行策略,同时它还支持混合精度训练,可以进一步提升训练效率。 1. 导入 Accelerate只需添加四行代码,即可在任何分布式配置运行相同的 PyTorch 代码!让大规模
    的头像 发表于 01-14 14:24 1766次阅读

    《具身智能机器人系统》第7-9章阅读心得之具身智能机器人与大模型

    布外任务展示出多样化和复杂的推广能力。 知识载体 知识嵌入在训练期间学习的模型参数知识载体
    发表于 12-24 15:03

    KerasHub统一、全面的训练模型

    深度学习领域正在迅速发展,在处理各种类型的任务训练模型变得越来越重要。Keras 以其用户友好型 API 和对易用性的重视而闻名,始终处于这一动向的前沿。Keras 拥有专用的内
    的头像 发表于 12-20 10:32 768次阅读

    语言模型开发框架是什么

    语言模型开发框架是指用于训练、推理和部署大型语言模型的软件工具和库。下面,AI部落小编为您介绍大语言
    的头像 发表于 12-06 10:28 825次阅读