Fork me on GitHub

近十年NLP预训练技术的重要发展

以下文章来源于 https://zhuanlan.zhihu.com/p/618178628

阅读本文,您将获得以下收益:

  1. 全面了解预训练技术

  2. 近十年NLP预训练技术的重要发展

  3. 预训练技术的多样化应用场景


导读: 本文将分享澜舟科技在预训练技术及应用方面的经验。

首先整体介绍预训练技术架构,从研究重点、主要模型,到技术路线架构;第二部分介绍预训练的研究框架;第三部分介绍近十年 NLP 预训练模型的重要发展进程;第四部分介绍知识增强技术,让模型学习更丰富的知识;第五部分介绍训练优化技术,让模型更高效地学习知识;最后,介绍预训练技术多样化的应用场景。


分享嘉宾|华菁云 澜舟科技 算法研究员

编辑整理|王超

出品社区|DataFun


01/预训练技术架构


近年来,随着预训练模型的发展。预训练加上微调,已经成为了 AI 模型开发的标准范式。预训练模型技术的优势在于,可以通过一套机制,也就是 Pre-train+Fine-tune 这个范式来解决所有语言、主要场景的 NLP 任务。很好的解决了原有的 NLP 任务碎片化的问题,也大大提高了开发效率。预训练技术极大地推进了 NLP 的落地。这也标志着 NLP 已经进入了工业化实施阶段。

预训练的研究最早起源于 Transfer Learning,也就是迁移学习。迁移学习的思想是基于已有的知识来学习新知识,也就是将一个预训练的模型直接迁移用在另一个解决具体的任务之中,早期的预训练模型主要使用的是有监督的数据。



预训练模型最早是出现在图像领域,在 ImageNet 图像的分类数据集上面,可以用预训练的图像分类模型,比如 ResNet-50,由于已经学习了上百万张图片上的上千种分类。所以当它迁移到新的图像分类任务上面去之后,其效果有着非常明显的提升。

但是在 NLP 领域,由于图片和文本不同,它没有办法去获得像 ImageNet 这样大规模、有监督的数据集。所以 NLP 领域尝试的是使用自监督的学习方法来训练预训练模型。那么,对应的技术路线就是基于海量的文本数据以及超大规模的算力来训练超大规模的预训练语言模型。

在解决具体的 NLP 任务时,像 BERT 以及 GPT 模型,它们需要的是使用有监督数据集,进行对应任务的 Fine-tune,然后在 Fine-tune 完成之后再去完成具体的下游任务。其中 BERT 类的模型更适合去解决自然语言理解类的问题,而 GPT 类的模型更适合解决自然语言生成类的任务。像 GPT-3 这样的模型,由于模型规模非常大,不需要进行下游任务的微调,可以直接通过 Prompt 的方式完成具体的下游任务。

预训练模型主要的模型结构包括了三种:Encoder 结构, 也就是 BERT 模型的结构;Decoder 结构, 也就是 GPT 模型的结构;以及 Encoder+Decoder 结构,也就是 T5 模型的结构。我们总结了几个研究重点,主要包括更大的模型以及更多的数据、更高效的预训练方法、知识增强的预训练模型、小样本学习以及统一微调、In-Context Learning 以及 Prompt Learning 等等。

--

02/预训练模型研究框架



算力、算法、数据是被公认的人工智能发展的三驾马车,整体预训练模型的研究框架是从数据源出发,去选择模型的架构,设立训练目标,然后获得对应的模型,在训练好的模型的基础之上再进行具体的任务应用,其中数据源就包括了自由文本,也就是海量的无监督数据,以及结构化数据、多语言数据以及多模态数据等等,模型通过这样各种数据源提供的数据,可以获取到非常多的知识。

训练目标包括自监督、自回归以及额外的训练模式。比如编码器类型的模型,也就是 BERT 类的模型,通常采用的是 Masked Language Model(MLM)这样的任务和 Next Sentence Prediction(NSP)任务作为训练目标,MLM 任务是通过上下文来预测被 Mask 掉的词, NSP 任务是预测两个句子是否连贯。自回归类的模型,比如 GPT 类的模型,通常是以通过上文预测下文的任务作为训练目标。模型在训练完成的时候就得到了对应的单语言模型、多语言模型或者是多模态的模型。在已经训练完成的模型基础之上,通过不同的任务接口就可以完成对应的具体任务的应用。比如文本摘要、智能对话、内容生成以及认知推理任务等等。

--

03/NLP 重要发展



这里对近十年来 NLP 领域预训练相关的重要发展进行了梳理。从整体的 AI 历史来看,一般来说,AI 时代被划分为 2013 年之前和 2013 年之后。2013 年之前是传统的机器学习时代,从 2013 年之后是深度学习的时代。2018 年当之无愧为 NLP 新纪元的开始,它也是自监督学习预训练的元年。

总体而言,预训练方法可以分为基于特征和基于微调两种。基于特征的方法是使用预训练模型的输出,作为下游任务的输入。预训练模型输出的词向量是固定的,并且预训练模型在下游任务中不再发生变化,这种基于特征的预训练方法的代表就是 2013 年提出的 Word2Vec 模型,以及 2018 年由华盛顿大学提出的 ELMo 模型。由于 Word2Vec 这个模型的词表示技术只能将一个词语映射到一个静态的和上下文没有关系的语义表示空间上面,所以无法解决语言中常见的一词多义的问题。而 ELMo 模型采用的是 LSTM 对文本序列的上下文进行建模,能够将双向语言模型中不同层表示进行融合,并且计算上下文相关的词表示。它在一定的程度上面解决了一词多义的问题。

另外一种基于微调的方法中,语言模型本身就是下游任务的模型的一部分。模型参数在下游任务的 Fine-tune 时,也是继续更新的。这种基于微调的预训练方法最具代表性的模型就是 BERT 以及 GPT 模型。从时间线上可以看到,在 2017 年 Google 发表了 Attention Is All You Need 这篇 paper 提出 Transformer 之后,基于 Transformer 的各种预训练模型相继出现,开始大放异彩。当 2018 年 10 月,Google 提出了 BERT 模型,它直接改变了 NLP 的基本范式。BERT 模型使用双向 Transformer 对文本序列进行建模,并且采用了预训练加上微调的方法,也就是基于自监督学习的方法。首先是对大规模无标注的数据进行学习,然后再对小规模的任务标注数据进行微调。这一套两阶段的训练新范式,当时一举刷新了多个自然语言理解类任务的 Benchmark。预训练模型技术的成熟,也进一步推动了自然语言处理领域的发展,2019 年 2 月,OpenAI 提出了 GPT-2 模型,同年 Google 提出了 T5 模型,2020 年 OpenAI 使用了更大的模型规模以及更多的数据,发布了 GPT-3 这个模型。从 GPT-3 这篇 paper 的 title 也可以看出来,Language Models are Few-Shot Learners,它也确实展示出了预训练模型非常好的 Few-Shot 能力,在使用的时候不需要再进行微调就可以很好地完成具体的下游任务。在 2022 年 OpenAI 进一步迭代了模型,1 月份提出了 InstructGPT 模型。12 月份提出了现在已经火出圈的 ChatGPT 模型。

以上就是近十年NLP领域预训练相关的重要发展。模型规模不断提升,BERT 是 330M、GPT-2 是 1.5B、T5 是 11B,到 GPT-3 已经达到了 175B 这样的量级。预训练模型的使用范式也从 Pre-train + Fine-tune 到 Pre-train + Prompt + Predict 这种新范式。这种新范式将下游任务改造成了自然语言表达的形式,使得在下游任务建模的时候,这种形式更接近预训练模型的学习过程。通过 Prompt + Predict 这个方式,可以从预训练模型中挖掘出模型更强大的 Zero-Shot 以及 Few-Shot 的能力,这也是一个发展的趋势。

--

04/知识增强



预训练语言模型主要是从海量的未标注数据、无结构化的数据中进行学习。为了让模型学习到更丰富的知识,我们也可以考虑使用知识增强的方法对模型的预训练进行优化,其中知识增强包括了使用知识图谱增强、基于语言学知识增强、使用特定知识增强等等。

知识图谱的增强可以通过使用融合实体信息表示方法,以及基于图谱的推理强化的方法。知识图谱增强的方法通过丰富的实体信息表示可以有效的让模型学习到实体和关系的知识表示,将知识图谱三元组中包含的事实知识有效地融合到预训练模型中去。

基于语言学知识增强的方法,可以使用成分句法、语义角色、依存关系等语言学知识对预训练模型进行增强。使用基于成分的预训练方法,可以将成分句法这些知识融入到预训练模型中;使用语言表示的融合增强,可以将语义角色融入到预训练模型中;使用自注意力权重约束和剪枝,可以将依存关系的知识融入到预训练模型中。比如我们可以将语言学知识作为显示的知识信号。使用 Spacy 对语料文本进行词性标注(POS)和命名实体识别(NER),然后将这些标注作为目标标签,让模型在语言建模的同时去计算词性和实体预测的损失。

另外,也可以考虑使用特定数据的增强。为了增强预训练模型在专业领域的应用效果,可以将领域知识融入到模型之中。针对特定的任务,可以将任务相关的知识融入到模型。当然,也可以将多语言知识融入到模型中进行知识在不同语言之间的增强。

--

05/训练优化



除了知识增强,我们也可以考虑从训练优化的角度,让模型更高效的学习知识。一方面,我们可以考虑对模型进行尺寸优化,尽量减少模型结构层面的冗余;另一方面,也可以考虑设置新的训练目标来加强模型的语义学习的能力。在模型预训练的过程中,我们可以采用训练矫正策略来实现更准确的训练。也可以采用对抗样本的方式进行预训练,来提升模型的鲁棒性。还可以采用训练加速的策略,使用分布式大批次的训练方式等等。

--

06/多样化应用场景


考虑多样化的应用场景,在以上的这些常见的预训练方法以及模型结构之外,也可以对具体的应用场景进行针对性的设计和优化。



在进行语义相似度任务的时候,Sentence-BERT 模型采用了孪生的网络设计,Sentence-BERT 模型的子网络都使用的是 BERT 模型。并且这两个 BERT 模型是共享参数的,这个设计提高了模型在大规模语义相似计算场景下的运行效率。

在对话生成的领域,PLATO-XL 模型就是对对话任务进行特定优化的模型,它可以同时进行对话、理解和回复生成的联合建模,参数的性价比非常高。它通过灵活的注意力机制模型对上文进行双向编码,充分利用和理解上文的信息;在回复的时候进行了单向解码来适应回复生成的自回归特性。

在文本摘要领域,PEGASUS 这个模型是一个专门为文本摘要任务定制的模型,这个模型在预训练的阶段,就将输入文本的重要句子 Remove 或者 Mask,然后通过其他的句子去进行预测生成,这个训练任务的设定和摘要任务本身的特性就非常接近了。由此也可以看出来,预训练目标和下游任务越接近,Fine-tune 会带来更好的任务表现。

在图像领域,MAE 模型提出了一种针对图像的无监督预训练方法,它也是类似于文本模态的自编码语言模型。MAE 模型最核心的思想是通过图片中的 patch 进行随机 Mask,然后通过没有被 Mask 的区域预测被 Mask 掉的区域,使得模型学习到图像的语义特征。MAE 模型也证明了通过图像重建进行图像预训练的可行性。

在多模态领域,CLIP 模型通过图像特征向量和文本特征向量的相似度来判断图像和文本之间是否相似,使图片和文本可以映射到同一个特征空间中。双塔结构的 CLIP 模型在数据量足够的情况下可以在预训练的阶段学习到很多通用的视觉语义概念,并且给下文的任务提供非常大的帮助。

不难看出,预训练技术可以适用于多样化的应用场景,并且都能在对应的场景中取得不错的效果提升。

近年来,预训练技术的发展也无疑推进了人工智能的应用落地。现在的 AI 技术已经从感知智能时代正式步入了认知智能的时代。最近大火的 Stable Diffusion 以及 ChatGPT 效果非常惊艳,非常期待 AI 技术早日从认知智能时代步入 AGI 时代。

以上就是今天的分享内容,谢谢大家。



▌DataFun2023线下大会 火热报名中


第四届DataFunCon数据智能创新与实践大会将于⏰ 7月21-22日在北京召开,会议主题为新基建·新征程,聚焦数据智能四大体系:数据架构数据效能算法创新智能应用 。你将领略到数据智能技术实践最前沿的景观

点击图片可查看大会详情,欢迎大家点击下方链接获取门票
DataFunCon2023(北京站):数据智能创新与实践大会




本文地址:https://www.6aiq.com/article/1680150922463
本文版权归作者和AIQ共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出