前言

这两天,ChatGPT模型真可谓称得上是狂拽酷炫D炸天的存在了。一度登上了CSDN热搜,这对科技类话题是非常难的存在。不光是做人工智能、机器学习的人关注,而是大量的各行各业从业人员都来关注这个模型,真可谓空前盛世。

我赶紧把 OpenAI 以往的 GPT-n 系列论文又翻出来,重新学习一下,认真领会大规模预训练语言模型(Large Language Model)的强大之处。

可能很多深度学习相关从业人员的感受和我一样,大家之前对 LLM 的感受依然是,预训练+finetune,处理下游任务,依然需要大量的标注数据和人工干预,怎么突然间,ChatGPT 就智能到如此地步?

接下来,我简要梳理一下 OpenAI 的 GPT 大模型的发展历程。

一、还得从 Bert 说起

2018年,自然语言处理 NLP 领域也步入了 LLM 时代,谷歌出品的 Bert 模型横空出世,碾压了以往的所有模型,直接在各种NLP的建模任务中取得了最佳的成绩。

Bert做了什么,主要用以下例子做解释。

请各位做一个完形填空: ___________和阿里、腾讯一起并成为中国互联网 BAT 三巨头。

请问上述空格应该填什么?有的人回答“百度”,有的人可能觉得,“字节”也没错。但总不再可能是别的字了。

不论填什么,这里都表明,空格处填什么字,是受到上下文决定和影响的。

Bert 所作的事就是从大规模的上亿的文本预料中,随机地扣掉一部分字,形成上面例子的完形填空题型,不断地学习空格处到底该填写什么。所谓语言模型的训练和学习,就是从大量的数据中学习复杂的上下文联系。

二、GPT 初代

与此同时,OpenAI 早于 Bert 出品了一个初代 GPT 模型。

它们大致思想是一样的。都基于 Transformer 这种编码器,获取了文本内部的相互联系。

Transformer结构

编解码的概念广泛应用于各个领域,在 NLP 领域,人们使用语言一般包括三个步骤:

接受听到或读到的语言 -> 大脑理解 -> 输出要说的语言。

语言是一个显式存在的东西,但大脑是如何将语言进行理解、转化、存储的,则是一个目前仍未探明的东西。因此,大脑理解语言这个过程,就是大脑将语言编码成一种可理解、可存储形式的过程,这个过程就叫做语言的编码。

相应的,把大脑中想要表达的内容,使用语言表达出来,就叫做语言的解码

在语言模型中,编码器和解码器都是由一个个的 Transformer 组件拼接在一起形成的。

Transformer编码器组成的 Encoder-decoder模型
这里不展开讲 Transformer 里的内部结构,仅仅讲一下 Bert 和 GPT 的区别。

两者最主要的区别在于,Bert 仅仅使用了 encoder 也就是编码器部分进行模型训练,GPT 仅仅使用了 decoder 部分。两者各自走上了各自的道路,根据我粗浅的理解,GPT 的decoder 模型更加适应于文本生成领域。

GPT 初代其实个人认为(当然普遍也都这么认为)略逊色于 Bert,再加上宣传地不够好,影响力也就小于 Bert。

我相信很多的 NLP 从业者对 LLM 的理解也大都停留在此。即,本质上讲,LLM 是一个非常复杂的编码器,将文本表示成一个向量表示,这个向量表示有助于解决 NLP 的任务。

今日学习寄语:

1、要么做第一个,要么做最好的一个。

2、信念和目标,必须永远洋溢在程序员内心。3、最累的时候,家人是你最好的归宿。

4、C程序员永远不会灭亡。他们只是cast成了void。

5、真正的程序员认为自己比用户更明白用户需要什么。

6、退一步海阔天空,这是一种应有的心境。

7、过去的代码都是未经测试的代码。

8、优秀的判断力来自经验,但经验来自于错误的判断。

9、测试是来表明bug的存在而不是不存在。

10、我们这个世界的一个问题是,蠢人信誓旦旦,智人满腹狐疑。

11、一个好汉三个帮,程序员同样如此。

12、看再多的书是学不全脚本的,要多实践。13、无私奉献不是天方夜谭,有时候,我们也可以做到。

14、世界上只有两句真理:1、人一定会死。2、程序一定有Bug。

15、UNIX很简单。但需要有一定天赋的人才能理解这种简单。

16、程序中蕴含着很多的道理,唯有大彻大悟者方能体会其中的奥妙。

17、编程中我们会遇到多少挫折?表放弃,沙漠尽头必是绿洲。

18、做技术一定要一颗恒心,这样才不会半途而废。

19、不要被对象、属性、方法等词汇所迷惑;最根本的是先了解最基础知识。

20、请把书上的例子亲手到电脑上实践,即使配套光盘中有源文件。