极客时间已完结课程限时免费阅读

13|厚积薄发:如何让模型更好地理解人类语言?

13|厚积薄发:如何让模型更好地理解人类语言?-AI大模型系统实战-极客时间
下载APP

13|厚积薄发:如何让模型更好地理解人类语言?

讲述:Tyler

时长10:36大小14.52M

你好,我是 Tyler。
在之前的课程中,我们已经了解了语言模型的发展历程,这让我们可以明显看到,NLP 领域的发展速度并不亚于计算机视觉(CV)领域,NLP 研究人员不断推动着相关方法的不断发展。
然而,在 NLP 领域,一直存在一个令人尴尬的问题,这也是我们在第 11 节课时提过的一个问题:既然在计算机视觉领域,预训练模型的表现如此出色,NLP 领域是否从他们的成功经验中学到了一些什么呢?
答案是 NLP 确实汲取了灵感,但在实践中难以完全复制。NLP 的研究人员只是知道了外面世界的美好,却发现自己没有 CV PTM 的命,为什么这么说呢?这节课我就带你一探究竟。

重建巴别塔

首先,视觉能力是人类天生就具备的,而语言能力则要后天学习,所以对人类来说语言能力本来就更难。此外,语言存在不同的语种,每种语种都有不同的词汇、词法和语法。这进一步增加了处理语言的复杂性。
语言的多样性分散了人类的注意力,因此构建一个涵盖多种语言的带标签数据集这件事,变得异常困难。这也使得全球范围内的科学家们很难共同构建“巴别塔”,只能在自己的小圈子里打转。所以 NLP 也被我们称为人工智能皇冠上的宝石。
然而,是不是就没办法了呢?当然不是,只是这个过程非常漫长。既然无法构建一个多语种的、带标签的自然语言数据集,NLP 的预训练模型大军只能早早地离开监督学习的母星,探索无监督学习的深邃宇宙,以光年为单位飞往目标星球。
从此,人们进入了漫长的探索时期,这一路充满了坎坷。相比 CV 领域,在 2012 年就已有 AlexNet 级别的 PTM “杀器”,NLP 在 2013 年才刚刚在特征表征模型预训练上崭露一些头角,这就是我们接下来要学习的 Word2Vec。

Word2Vec:对比学习加持特征表征

Word2Vec 这个词是不是有点眼熟?没错,我们在第 6 节课就提过它。Word2Vec 算法由 Google 的研究人员于 2013 年提出。这个算法的最大贡献,是找到了一种无监督学习的方法,对大规模的语料库进行预训练,学习其中的语义,这绕开了对大规模有标签数据集的依赖,打破了 NLP 预训练数据上的困境。
让我们回顾一下之前的内容:Word2Vec 有两种训练方法,一种是跳字模型(Skip-gram),另一种是连续词袋模型(CBOW)。
简而言之,跳字模型的目标是通过给定一个中心词来预测其周围的单词,而连续词袋模型的目标是通过周围的单词来预测中心词。其实这里隐含一个假设,即在字面上相近位置经常出现的单词之间,相关性会更强。
在学习词与词之间的语义关系时,模型将每个词映射到高维向量空间中,这些向量可以应用于多种自然语言处理任务。举例来说,在机器翻译任务中,你可以将每个词的嵌入向量作为输入,这样能够显著提升语言模型对每个单词含义的理解能力。
这种方法不但大大提升了之前机器翻译任务的效果,更重要的是给 NLP 预训练模型指明了正确方向,给后续研究提供了信息和希望。

ELMo:语言模型消除歧义

不过,Word2Vec 也有明显的短板,比如无法处理词在不同语境中的多义性。举例来说,“苹果”可以指水果,也可以指手机。Word2Vec 无法理解这些差异,可能导致产生错误的结果。
怎么帮助模型消除歧义呢?这就不得不说到 ElMo(Embeddings from Language Models)了,它是 Google AI 在 2018 年提出的一项技术。
ElMo 是一种基于上下文生成词向量的方法,能够通过综合考虑“前到后”和“后到前”两个序列单词的含义,动态调整生成的词向量,让词语的表示变得更加准确。
比如,在句子“我掏出苹果手机下单了一袋苹果”中,单词“苹果”可以指代“手机”或“水果”。ELMo 能够根据上下文来动态理解这两种含义。
ELMo 的训练目标是根据单词的上下文来预测单词本身。它的网络结构如下图所示。
可以看到,ELMo 由左侧的前向双层 LSTM 编码器和右侧的逆向双层 LSTM 编码器组成,每个编码器都由两层 LSTM 叠加而成。ELMo 的重要贡献在于将上下文信息融入 NLP 词向量的表示中,提升了词向量的表达能力。
不过我们需要注意,尽管 ELMo 使用双层双向 LSTM 网络结构进行语言模型训练,但这两个双向模型是完全独立训练的,最终只是将它们的输出连接在一起,不是一个端到端的方法,这可能会导致一些信息的丢失(“端到端”是什么,你可以回顾第  7  节课)。
这时候人们已经逐渐意识到可以通过语言模型,基于对比学习的方式来进行 NLP 模型的预训练了,各家公司暗流涌动,直到 OpenAI 发布了历史性的 GPT-1。

GPT:预训练模型走上舞台

GPT-1(Generative Pre-Training)标志着一个重要的里程碑。我们看名字就知道,OpenAI 一开始就将预训练模型(PTM)作为目标,因此也相应地设计了适用于多种 NLP 下游任务的微调方法。这一刻,NLP 领域终于拥有大模型预训练 + 领域微调的策略了。
GPT 系列一直采用了 Decoder Only 的 Transformer 架构,当时 Transformer 刚刚发表,足以看出 OpenAI 的判断非常准确。
ElMo 提出了一个两阶段的方法:首先,在第一阶段使用一个庞大的语言模型进行预训练;然后,在第二阶段,使用特定下游任务的数据集做模型微调。后面这张图展示了如何修改 GPT 预训练模型,以便其兼容各种下游的 NLP 任务。
为了与下游任务的网络结构相匹配,GPT-1 提出了一种对齐改造的策略。这种改造非常便捷,不同的任务,只需要对输出分进行适应性修改和微调就可以,具体的实现在后面的课程中我会详细展开。
如下图所示,由于 GPT-1 采用的是仅利用上文信息的 Decoder Only 架构,在完形填空等问题上显然存在一定的天然劣势,这就为 BERT 提供了施展才能的机会。
GPT 算法核心架构
不过我们换个角度看,这种“劣势”在 ChatGPT 这类对话生成型任务上,反而成为了一项优点。这个巧妙的设计为 OpenAI 在生成式 AI 大模型领域的异军突起埋下了伏笔。在后面的课程,我将继续带领你深入学习 GPT-1 到 GPT-3 系列模型的更多内容。这里你先重点把握 NLP PTM 的历史发展规律就可以。

BERT:预训练模型一鸣惊人

接下来,让我们将目光转向另一个重要的 NLP 预训练模型——BERT。BERT 和 GPT-1 是在同一时期诞生的,当然,它的发表时间比 GPT-1 稍晚一些。
BERT 与 GPT-1 在预训练过程中有明显差异。BERT 采用了类似 ELMo 的双向语言模型,同时利用上文和下文信息进行建模预测。
BERT 在模型和方法方面的创新主要体现在 Masked 语言模型和 Next Sentence Prediction。Masked 语言模型使用掩码标记替换部分单词,并要求模型预测这些被替换的单词。Next Sentence Prediction 则要求模型判断两个句子之间的关系。因为在预训练阶段中同时使用这些技巧和各类任务的数据,所以  BERT  具备了多任务学习的能力。
BERT 系列从一开始就采用了 Encoder Only 的 Transformer 架构,这一架构能够同时利用上文和下文信息,为 BERT 带来了显著的性能提升。所以它在各类 NLP 任务上表现出色,赢得了工业界的广泛认同,取得了巨大的成功,将 NLP 预训练模型技术推向了不可或缺的地位。
据传 OpenAI 与 Google 之间存在一段有趣的爱恨纠葛。传闻说,OpenAI 认为 BERT 在方法上只是借鉴了 GPT-1 的设计思想,它的声誉很大一部分都源于训练数据量的提升以及 Google 强大的公关宣传。
由于 BERT 在 NLP 预训练模型领域获得几乎所有赞誉,作为开创者的 OpenAI 一直在憋着一口气,准备超越 BERT。
命运的齿轮在这时开始转动,最初一次偶然的选择导致这两家公司发展出了不同的技术路线。几年后,OpenAI 的 Decoder Only 架构成为全世界关注的焦点,风头无人能敌。

总结

今天的内容告一段落,我们来做个总结。
相比计算机视觉(CV)领域的 PTM 技术,NLP 面临更多的困难和复杂性。为了让模型更好地理解人类语言,研究人员一直在探索和突破,这也推动了 NLP 技术的发展。
早期的尝试,如 Word2Vec,为 NLP 预训练模型的发展找到了正确的方向,为后来的研究提供了信心和希望。然而,这些方法也存在着一些明显的缺点,如无法处理词在不同语境中的不同含义。
随后,ELMo 和 GPT 等模型的出现为 NLP 预训练模型的发展带来了突破。ELMo 使用双向的语言模型,将上下文信息融入到 NLP 词向量,更准确地表示了词语的含义。而 GPT 则通过大规模预训练,在各类 NLP 下游任务中取得了显著的成果。
BERT 通过引入双向语言模型和更大规模的预训练数据,在各种 NLP 任务中展现了出色的能力,在工业界取得了巨大的成功,成为了各大公司不可或缺的核心技术之一。
最后,我想附上一张我的老东家——亚马逊发表的一篇论文(https://arxiv.org/pdf/2304.13712.pdf)中的一张图。该图清晰地描绘了现在大语言模型发展的几条主要路线的进化过程,我们可以看出,在 WordVec 和 ELMo 之后 BERT 和 GPT 开始分道扬镳。
后面的故事将在后几节课揭晓,我会带你学习 GPT-1 到 GPT-3 的发展历程,让你知道 OpenAI 是如何一步步“战胜” Google 的。

思考题

既然 BERT 的模型使用了大数据和大参数模型进行训练,那它是否属于大语言模型(LLM)呢?
恭喜完成我们第 13 次打卡学习,期待你在留言区和我交流互动。如果你觉得有收获,也欢迎你分享给你身边的朋友,邀 TA 一起讨论。

NLP领域的发展一直备受关注,本文从历史发展和技术特点出发,探讨了如何让模型更好地理解人类语言。文章首先指出NLP领域面临的挑战,包括语言多样性和缺乏带标签的多语种数据集。随后介绍了Word2Vec算法的无监督学习方法,以及其在语义理解和机器翻译任务中的应用。接着,文章提到了ElMo技术,通过上下文生成词向量的方法,解决了Word2Vec无法处理词义多义性的问题。最后,文章重点介绍了GPT-1的预训练模型,以及其在NLP下游任务微调方面的应用。总的来说,本文深入探讨了NLP领域的发展历程和技术特点,为读者提供了对NLP预训练模型发展规律的全面了解。 文章主要介绍了NLP领域的发展历程和技术特点,从Word2Vec到ElMo再到GPT-1,逐步探讨了NLP预训练模型的演进。其中,提到了BERT和GPT-1在预训练过程中的差异,以及BERT在模型和方法方面的创新,如Masked语言模型和Next Sentence Prediction。文章还涉及了OpenAI与Google之间的竞争和技术路线的发展,以及大语言模型(LLM)的讨论。总的来说,本文全面介绍了NLP领域的技术发展和预训练模型的演进,对读者了解NLP技术的发展规律具有重要参考价值。

分享给需要的人,Ta购买本课程,你将得18
生成海报并分享
2023-09-08

赞 6

提建议

上一篇
12|博观约取:重走NLP领域预训练模型的长征路
下一篇
14|变形金刚:Transformer是如何让模型变大的?
unpreview
 写留言

全部留言(4)

  • 最新
  • 精选
  • baron
    2023-09-10 来自北京
    bert 训练也是无监督且双向训练出来的,我理解大数据量、无监督都满足,不满足的是不能进行多任务。说得不对的地方请大牛更正哈,我没有算法基础。

    作者回复: 你好,baron!回答的很好,说明你真的在认真思考。这里大家常见的现象就是忽略 BERT 的多任务能力,其实 BERT 是可以兼容多种下游 NLP 任务的。在后面的课程中依然期待你的回答!

    4
  • 糖糖丸
    2023-10-27 来自北京
    非端到端方法为什么就可能会导致信息丢失呢?应该如何理解?

    作者回复: 你好,糖糖丸!建议你先回顾一下第7课的内容。分阶段的建模方法往往是一个无奈之举,因为既有的模型无法理解和利用端到端的监督信号,所以才人为地为模型设计一些阶段性的特征,以简化任务的实现过程。这里做个比喻,在汽车生产过程中,传统的流程都是冲压、焊接、涂装、总装这样的流程,而特斯拉则引入了新技术,使用了一体压铸的工艺,取代了冲压和焊接,提高了生产效率和车身强度。

    2
  • 顾琪瑶
    2023-09-08 来自上海
    看到这个思考题去搜了一些关于大语言模型的定义, 其中说到几点 1. 大量的文本数据进行训练 2. 过大规模的无监督训练来学习自然语言的模式和语言结构 3. 表现出一定的逻辑思维和推理能力 搜了下, BERT并不符合第3点, 那就代表不是LLM

    作者回复: 你好,顾琪瑶!第三点并不是大语言模型的定义哦,可以回顾一下第一节课的内容,再仔细想想

    共 2 条评论
    1
  • aLong
    2023-12-30 来自北京
    属于大模型,因为我看到那个亚马逊的论文图片中包含了BERT,他是在Encoder-Decoder的路线上面。
    1