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

    浏览量

    24051
  • 模型
    +关注

    关注

    1

    文章

    2709

    浏览量

    47716

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

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

收藏 人收藏

    评论

    相关推荐

    【大语言模型:原理与工程实践】探索《大语言模型原理与工程实践》

    处理训练架构Transformer,以及这些技术在现实世界的如何应用。通过具体案例的分析,作者展示了大语言
    发表于 04-30 15:35

    盘点一下史上最全大语言模型训练中的网络技术

    人工智能的基础设施在大语言模型训练和推理过程中发挥了关键的作用。随着大语言模型规模不断增大,其对
    的头像 发表于 03-27 17:24 402次阅读
    盘点一下史上最全大<b class='flag-5'>语言</b><b class='flag-5'>模型</b><b class='flag-5'>训练</b>中的网络技术

    【书籍评测活动NO.31】大语言模型:原理与工程实践

    的视角,以揭示大语言模型的精妙之处。本书的一大特色体现在其知识体系的系统性。我们从数据处理的基础工作(如数据清洗与去重)讲起,逐步深入,探讨训练
    发表于 03-18 15:49

    【书籍评测活动NO.30】大规模语言模型:从理论到实践

    多种形式和任务。这个阶段是从语言模型对话模型转变的关键,其核心难点在于如何构建训练数据,包括训练
    发表于 03-11 15:16

    语言模型概述

    的人工智能模型,旨在理解和生成自然语言文本。这类模型的核心是深度神经网络,通过大规模训练数据和强大的计算能力,使得
    的头像 发表于 12-21 17:53 753次阅读

    大规模神经网络优化:超参最佳实践与规模

    从理论分析入手把握大规模神经网络优化的规律,可以指导实践中的超参数选择。反过来,实践中的超参数选择也可以指导理论分析。本篇文章聚焦于大语言模型,介绍从 GPT 以来大家普遍使用的训练
    的头像 发表于 12-10 21:45 605次阅读

    大规模语言模型的基本概念、发展历程和构建流程

    大规模语言模型(Large Language Models,LLM),也称大规模语言模型或大型
    的头像 发表于 12-07 11:40 1664次阅读
    <b class='flag-5'>大规模</b><b class='flag-5'>语言</b><b class='flag-5'>模型</b>的基本概念、发展历程和构建流程

    腾讯发布混元大语言模型

    腾讯发布混元大语言模型 腾讯全球数字生态大会上腾讯正式发布了混元大语言模型,参数规模超千亿,预训练
    的头像 发表于 09-07 10:23 855次阅读

    训练语言模型带来的硬件挑战

    生成式AI和大语言模型(LLM)正在以难以置信的方式吸引全世界的目光,本文简要介绍了大语言模型训练这些
    的头像 发表于 09-01 17:14 1130次阅读
    <b class='flag-5'>训练</b>大<b class='flag-5'>语言</b><b class='flag-5'>模型</b>带来的硬件挑战

    如何计算transformer模型的参数量

    参数规模大,训练数据规模大。以GPT3为例,GPT3的参数量为1750亿,训练数据量达到了570GB。进而,训练
    的头像 发表于 07-10 09:13 7492次阅读
    如何计算transformer<b class='flag-5'>模型</b>的参数量

    大型语言模型的应用

       大型语言模型(LLM) 是一种深度学习算法,可以通过大规模数据集训练来学习识别、总结、翻译、预测和生成文本及其他内容。大语言
    的头像 发表于 07-05 10:27 1631次阅读

    基于预训练模型语言增强的零样本视觉学习

    在一些非自然图像中要比传统模型表现更好 CoOp 增加一些 prompt 会让模型能力进一步提升 怎么让能力更好?可以引入其他知识,即其他的预训练
    的头像 发表于 06-15 16:36 328次阅读
    基于预<b class='flag-5'>训练</b><b class='flag-5'>模型</b>和<b class='flag-5'>语言</b>增强的零样本视觉学习

    PyTorch教程-11.9. 使用 Transformer 进行大规模训练

    11.9. 使用 Transformer 进行大规模训练¶ Colab [火炬]在 Colab 中打开笔记本 Colab [mxnet] Open the notebook
    的头像 发表于 06-05 15:44 988次阅读
    PyTorch教程-11.9. 使用 Transformer 进行<b class='flag-5'>大规模</b>预<b class='flag-5'>训练</b>

    PyTorch教程11.9之使用Transformer进行大规模训练

    电子发烧友网站提供《PyTorch教程11.9之使用Transformer进行大规模训练.pdf》资料免费下载
    发表于 06-05 15:07 0次下载
    PyTorch教程11.9之使用Transformer进行<b class='flag-5'>大规模</b>预<b class='flag-5'>训练</b>

    “伶荔”(Linly) 开源大规模中文语言模型

    Linly-Chinese-LLaMA:中文基础模型,基于 LLaMA 在高质量中文语料上增量训练强化中文语言能力,现已开放 7B、13B 和 33B 量级,65B 正在训练中。
    的头像 发表于 05-04 10:29 761次阅读
    “伶荔”(Linly) 开源<b class='flag-5'>大规模</b>中文<b class='flag-5'>语言</b><b class='flag-5'>模型</b>