收藏级教程:预训练语言模型发展史——从ELMo、BERT到GPT,大模型的必经之路

本文系统梳理了大模型之前的预训练语言模型发展历程,从ELMo、GPT、BERT等里程碑模型,到各类改进创新如RoBERTa、ALBERT、ELECTRA等知识增强型模型,以及UniLM、XLNet等新型架构。文章详细分析了各模型的核心思想、技术突破和优缺点,揭示了预训练语言模型如何通过pretrain-finetune范式推动NLP发展,为理解大模型演进提供了坚实基础。

1、预训练语言模型的里程碑

预训练语言模型要从词向量说起。词向量利用文本数据,构造出词之间的共现关系,一般将在一句话中共现的词作为正样本,随机负采样构造负样本,采用CBOW或Skip-Gram的方式进行训练,以此达到让经常共现的词,能够具有相似向量化表示。其本质是NLP中的一个先验:频繁在文本中共现的两个词,往往语义是相近的。然而,词向量的问题也比较明显,同一个词在不同的语境中,含义往往是不同的,而词向量对于某一个词只能生成一个固定的向量,无法结合语境上下文信息进行调整。

Deep contextualized word representations(ACL 2018) 提出了ELMo模型,利用双向LSTM模型结合上下文语境信息生成词的embedding。ELMo和以往的词向量模型最大的差别是,每个词的embedding都是整个句子的一个函数,即每个词的embedding和这个句子的上下文信息是相关的。ELMo语言模型的模型结构采用了一个正向LSTM和一个反向LSTM联合训练的方式,优化两个方向的语言模型优化目标。在完成训练后,每个单词在每层LSTM都会产生正向、反向两个embedding,对每个单词所有层的embedding拼接在一起,得到这个词在这句话中的embedding。ELMO在使用到下游任务时,会把数据每句话先过一遍ELMo,得到每个词的embedding,然后将ELMo生成的embedding和通过词向量得到的embedding拼接到一起,用于后续任务预测。

此后,语言模型预训练成为NLP中的核心之一。在Improving Language Understanding by Generative Pre-Training(2018) 中提出了GPT模型。相比ELMo,GPT真正意义实现了pretrain-finetune的框架,不再需要将模型中的embedding取出来,而是直接把预训练好的模型在下游任务上finetune,对于不同任务采用不同的输入或输出层改造,让下游任务更贴近上游预训练模型。值得一提的是,在后续的prompt等优化中,又将下游任务向上游任务的贴近更近了一步,即将下游任务的输入和输出逻辑也进行变化去适应上游任务。让下游任务向上游任务对齐,是一个NLP中的发展方向。GPT模型主体采用的是Attention Is All You Need(NIPS 2017) 提出的Transformer模型,使用的优化目标是正向语言模型。

BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding(2018) 提出了Bert模型,也是目前在NLP中应用最广泛的预训练模型之一。相比GPT和ELMo,Bert采用了一种Mask Language Model(MLM)这一不同的目标,通过随机mask掉输入文本中的某些token,然后利用上下文信息进行预测,实现对数据语义关系的提取。这种MLM相比之前的语言模型优化目标优点是,可以从多个方向同时进行信息抽取来预测当前token,而传统的语言模型(前向后后向)每一次只能从一个方向提取信息。即使将前向和后向结合,也无法实现真正意义上的同时利用前后文信息预测当前token。同时,Bert还引入了Next Sentence Prediction(NSP)任务,在预训练阶段构造了两个文本pair对输入,预测这两个文本的相关性。这个任务相当于是在sentence维度的信息提取,和下游的文本匹配类任务更加契合,这在单纯的语言模型中是难以学到的。

对Bert、GPT、ELMo三者模型结构图的一个简要对比如下,可以帮助更清晰的理解三类模型的差异。

上文介绍了ELMo、GPT、Bert等3个预训练语言模型的代表工作。下面我们梳理一下,在此之后,学术界对这些经典的预训练语言模型进行了哪些方面的改进和创新。

2、针对GPT的改进创新

在GPT之后,OpenAI进一步提出了GPT-2、GPT-3,旨在通过更大的模型容量、更多的训练语料进一步提升预训练语言的效果。Language Models are Unsupervised Multitask Learners(2018) 提出了GPT-2。本文相比GPT增加了语料、增大了模型尺寸,模型的基本结构和GPT差不多。GPT-2的核心思想是,任何一个有监督NLP任务,都可以看成是语言模型的一个子集,只要预训练语言模型的容量足够大,理论上就能解决任何NLP任务。任何NLP任务都可以表示成p(output | input, task)的形式,语言模型就是无监督的多任务学习。因此GPT-2的核心就是提升模型的容量和数据多样性,让语言模型能够达到解决任何任务的程度。

在随后的Language Models are Few-Shot Learners(2020) 中提出了GPT-3,进一步增大了模型尺寸,模型参数量是GPT-2的100倍。GPT-3的核心思想在于不进行finetune(zero-shot learning)就可以对下游任务生成预测结果,其做法为将下游任务转换为一系列的文本,直接通过语言模型预测出结果。下图为一个例子,对比了finetune方法和GPT-3中提出的zero-shot方法的区别,便于对这种预测方法进行理解。通过增加对任务的描述文本,来让模型知道当前要解决什么任务,进而实现预测。

可以看出,GPT的后续优化思路,建立在不断提升训练语料丰富度和模型容量,使语言模型能够从大量文本中学习到各个NLP任务的解决方法,再通过zero-shot learning的方式实现不进行finetune,而是将下游任务转换成语言模型的输入形式,来让预训练模型直接进行下游任务预测。

在GPT的基础上,Meta在LLaMA: Open and Efficient Foundation Language Models中提出了LLaMA,LLaMA是目前很多SOTA开源大模型的基础,包括DeepSeek、千问等在内的很多大模型的模型机构大体上都沿用了LLaMA。LLaMA的主体结构仍然基于Transformer,相比于GPT主要引入进行了一些结构上的细节优化,包括Pre-Normalization、RMSNorm、SwiGLU激活函数、Rotray Embedding等模块进一步提升语言模型效果。

3、针对BERT的改进创新

在Bert的基础上,有很多针对其的改进,这里我们主要介绍3个模型。RoBERTa: A Robustly Optimized BERT Pretraining Approach(2019) 细致的对Bert模型的训练方式进行了对比实验和分析,并基于此总结出了能够提升Bert效果的训练方法。相比Bert,RoBerta的主要改进在于3个方面。首先采用了dynamic mask,即每个文本进入训练时动态mask掉部分token,相比原来的Bert,可以达到同一个文本在不同epoch被mask掉的token不同,相当于做了一个数据增强。其次,分析了训练样本应该如何构造,原来的Bert采用segment pair的形式,训练样本为两个segment组合到一起并使用NSP任务预测两个任务是否相关。RoBERTa发现从同一个document构造输入单句子的输入文本而非pair对,并且不使用NSP任务,效果会有一定提升。最后,RoBERTa增大了batch size以及对BPE(输入文本的分词方法进行了升级。

ALBERT: A LITE BERT FOR SELF-SUPERVISED LEARNING OF LANGUAGE REPRESENTATIONS(2020) 提出了一个轻量级的Bert模型,以此降低Bert的运行开销。为了减少Bert资源开销,本文主要提出了两个优化:Factorized embedding parameterization以及Cross-layer parameter sharing。Factorized embedding parameterization对输入的embedding进行分解,原始的Bert将token输入的embedding维度E和模型隐藏层维度H绑定了,即E=H,前者表示每个token固有信息,后者表示每个token结合了上下文的动态信息,后者被证明是更重要的。因此本文提出可以让E和H接绑,选择一个较小的E不会影响模型效果,同时显著降低了由于输入词表V变大带来的内存开销上升。具体的,将E变成远小于H的维度,再用一层全连接将输入embedding映射到H维。这样模型embedding部分参数量从V*H下降到了V*E+E*H。Cross-layer parameter sharing让Bert每层的参数是共享的,以此来减小模型参数量。

除了上述两个降低Bert运行开销的优化外,ALBERT提出了inter-senetnce loss这一新的优化目标。原来Bert中的NSP任务可以理解为topic prediction和coherence prediction两个任务。其中topic prediction是一种特别简单的任务,由于其任务的简单性,导致coherence prediction学习程度不足。本文提出将coherence prediction单独分离出来,相比Bert,正样本仍然是一个document相邻的两个segment,负样本变成这两个segment的顺序交换。

ELECTRA: PRE-TRAINING TEXT ENCODERS AS DISCRIMINATORS RATHER THAN GENERATORS(ICLR 2020) 对pretrain阶段的MLM任务进行了优化。该方法的核心思路采用了GAN的思路。模型包括一个generator 和一个discriminator。输入文本仍然会被随机mask,然后generator会生成被mask掉的token,这里和MLM类似。而discriminator会判断每个位置的token是否是generator生成的(如果generator正好生成了正确的token,也认为其生成的是正确的)。通过这种对抗学习的方式,让discriminator预测被mask掉的token能力逐渐增强,也即从文本中提取信息的能力增强。最终的预训练模型使用的是discriminator部分。ELECTRA的缺点在于由于有了一个单独的Generator,模型整体开销会更大,Generator一般采用一个参数量较少的MLM。

4引入知识的预训练

ERNIE: Enhanced Language Representation with Informative Entities(2019) 从知识增强的角度对Bert进行优化。相比原来的Bert,ERNIE引入了如知识图谱等外部知识信息。这样的好处在于,有一些文本如果不知道某些词组代表一个实体的话,模型是很难学习的,例如一些人名、地名等。如下面的例子,不知道橘子中的这些实体是书名、歌名,就无法识别出作者的职业。

ERNIE在Bert中引入了知识图谱中的实体信息,模型结构如下图。模型主要分为T-Encoder和K-Encoder两个部分。T-Encoder类似Bert,从输入的文本上提取每个token的信息表示。K-Encoder主要是引入知识信息,将输入文本中的实体识别出来,然后获取这些实体的embedding(利用TransE在构造好的知识图谱上预训练得到),然后将token的embedding和实体的embedding进行一个融合,融合方法是将实体embedding添加到对应token序列的位置。每层融合输入上一层的token embedding和entity embedding,生成新的token embedding和entity embedding,公式可以表示为:

此外,ERNIE在预训练阶段增加了token-entity relation mask任务,在20%的entity上,会mask掉token和entity的对齐关系,让模型来预测当前token对应的是哪个entity。

此外,还有一个同名工作***ERNIE: Enhanced Representation through Knowledge Integration(2019)***也使用了类似的思路,希望通过引入外部知识信息提升预训练模型效果。和Bert主要差别在于,本文将MLM任务分成basic-level、phrase-level、entity-level三种类型,在entity-level mask中,mask掉的不是单个token,而是输入文本中某个entity对应的连续多个token,其和Bert的差异如下图。

后面这篇工作后续又推出了2.0版本,ERNIE 2.0: A Continual Pre-Training Framework for Language Understanding(2019)。该工作在pretrain阶段引入了很多task来辅助pretrain阶段的学习。首先构造pretrain阶段的任务,主要是无监督或弱监督的训练数据容易获得的任务,同时也会引入知识图谱中的信息构造一些训练任务。接下来,本文采用continual multitask learning的方式,不断构造新的任务,并且以增量的方式进行多任务学习,每来一个任务都把历史所有任务放到一起进行多任务学习,避免忘记历史学到的知识。本文的核心点在于提出的多种构造预训练任务的方式,包括Knowledge Masking Task(即上一篇ERNIE中的对entity或phrase进行mask)、Capitalization Prediction Task、Token-Document Relation Prediction Task等,感兴趣的同学可以阅读论文深入了解。

5其他类型的预训练语言模型

在GPT和BERT的启发下,后续涌现了很多其他类型的预训练语言模型,这里主要介绍UniLM、XLNet、BART、T5等4种。

Unified Language Model Pre-training for Natural Language Understanding and Generation(NIPS 2019) 提出了UniLM预训练语言模型。本文首先总结了之前语言模型的特点:EMLo采用前向+后向LSTM、GPT采用从左至右的单向Transformer、BERT采用双向Attention。虽然BERT的双向Attention取得很好效果,但是这种特性也导致其无法像GPT等使用单向方法的语言模型一样适用于文本生成这种任务。UniLM融合了3种语言模型优化目标,通过精巧的控制mask方式来在一个模型中同时实现了3种语言模型优化任务,在pretrain过程交替使用3种优化目标。下图比较形象的描述了UniLM是如何利用mask机制来控制3种不同的优化任务,核心思路是利用mask控制生成每个token时考虑哪些上下文的信息。

XLNet: Generalized Autoregressive Pretraining for Language Understanding(NIPS 2019) 提出了XLNet模型,融合了BERT和GPT这两类预训练语言模型的优点,并且解决了BERT中pretrain和finetune阶段存在不一致的问题(pretrain阶段添加mask标记,finetune过程并没有mask标记)。本文将无监督语言模型分成两类,一类是AR自回归模型,如GPT、ELMo这种使用单向语言模型建模概率分布的方法;另一类是AE自编吗模型,如BERT这种通过预测句子中token的方法。XLNet融合了AR模型和AE模型各自的优点,既能建模概率密度,适用于文本生成类任务,又能充分使用双向上下文信息。XLNet实现AR和AE融合的主要思路为,对输入文本进行排列组合,然后对于每个排列组合使用AR的方式训练,不同排列组合使每个token都能和其他token进行信息交互,同时每次训练又都是AR的。但是,实现这种模式也存在很多问题,文中针对这些问题提出了解法,由于篇幅原因具体内容我们会在后续相关文章再进行详细介绍。

BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehension(2019) 提出了一种新的预训练范式,包括两个阶段:首先原文本使用某种noise function进行破坏,然后使用sequence-to-sequence模型还原原始的输入文本。下图中左侧为Bert的训练方式,中间为GPT的训练方式,右侧为BART的训练方式。首先,将原始输入文本使用某些noise function,得到被破坏的文本。这个文本会输入到类似Bert的Encoder中。在得到被破坏文本的编码后,使用一个类似GPT的结构,采用自回归的方式还原出被破坏之前的文本。

文中尝试了多种类型的noise function,如token masking、sentence permutation、text infilling等,其中sentence permutation+text infilling的方式取得了最好的效果。Text infilling指的是随机mask某些span。下图展示了文中提出的一些noise function方法。

Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer(2023) 统一了各种类型的文本到文本任务,提出了一种统一的Encoder-Decoder语言模型,该方法也是目前业内很多其他领域的大模型使用最多的架构。文中对Encoder-Decoder、纯Decoder、UniLM等方式进行了对比验证,发现Encoder-Decoder的效果是最优的。通过prompt将所有NLP任务都统一成文本到文本的生成任务,训练统一的T5模型。

6总结

本文介绍了预训练语言模型的发展历程,包括EMLo、BERT、GPT等经典模型,也包括在此基础上的一些改进创新。这一阶段属于深度学习语言模型高速发展的阶段,整体基于pretrain-finetune的范式解决各类NLP问题。在后续的章节中,会为大家介绍大模型阶段语言模型的进一步发展,包括ChatGPT、DeepSeek、PaLM等各类成熟的大模型。

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费

https://img-blog.csdnimg.cn/img_convert/05840567e2912bcdcdda7b15cba33d93.jpeg

在这里插入图片描述

为什么要学习大模型?

我国在A大模型领域面临人才短缺,数量与质量均落后于发达国家。2023年,人才缺口已超百万,凸显培养不足。随着AI技术飞速发展,预计到2025年,这一缺口将急剧扩大至400万,严重制约我国AI产业的创新步伐。加强人才培养,优化教育体系,国际合作并进是破解困局、推动AI发展的关键。

在这里插入图片描述

在这里插入图片描述

大模型入门到实战全套学习大礼包

1、大模型系统化学习路线

作为学习AI大模型技术的新手,方向至关重要。 正确的学习路线可以为你节省时间,少走弯路;方向不对,努力白费。这里我给大家准备了一份最科学最系统的学习成长路线图和学习规划,带你从零基础入门到精通!

img


2、大模型学习书籍&文档

学习AI大模型离不开书籍文档,我精选了一系列大模型技术的书籍和学习文档(电子版),它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。

在这里插入图片描述

3、AI大模型最新行业报告

2025最新行业报告,针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。

img

4、大模型项目实战&配套源码

学以致用,在项目实战中检验和巩固你所学到的知识,同时为你找工作就业和职业发展打下坚实的基础。

img

5、大模型大厂面试真题

面试不仅是技术的较量,更需要充分的准备。在你已经掌握了大模型技术之后,就需要开始准备面试,我精心整理了一份大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余

img

适用人群

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范
第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署
第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建
第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费

https://img-blog.csdnimg.cn/img_convert/05840567e2912bcdcdda7b15cba33d93.jpeg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值