Cointime

扫码下载App
iOS & Android

ChatGPT背后的语言模型简史

自然语言

想必很多人对ChatGPT涌现出的多领域能力感到震撼,尤其是它能很好使用人类的语言与人类沟通,光这一点就已经足以让很多人感到恐怖了。机器会使用自然语言与我们沟通,为什么会让我们感觉到恐怖?

想象一下,某天我们的宠物突然会说话,会不会让我们感到难以接受?这是因为从数万年前我们的祖先智人走出非洲并统领地球开始,我们就一直是地球上唯一会使用语言的物种,这是我们与其他物种的巨大差异,也是我们独特的优势所在。但现在这种优势被我们创造出的智能掌握了,这是我们感到恐怖的原因。

人类文明的高科技

人类从掌握语言,并以语言创造出文字,靠着这种超越其他物种的能力,人类从个体的单打独斗产生了复杂的协作关系,从而进入文明社会,这意味着我们靠语言与文字创造了可延续的文明。

现代经济、国家、法律、文化等都是人类集体共同想象的产物,这是智人与其他物种一个巨大的差异,而语言又是想象的载体,正是有了语言,我们才能够将想象力传递给其他人,从而创造出璀璨的人类文明。

从这个角度看,语言是人类最先掌握的高科技,也是人类文明存在的基础。

人工智能的一颗明珠

在人工智能发展之前,人类是地球上甚至宇宙中唯一拥有智慧的生物,但我们的智慧只能通过繁衍后代的方式传递给下一代,老实说这种方式太过低效。在人类发明计算机后,人类智慧从碳基生物传递给硅基生物成为了可能。

于是人工智能诞生了,人工智能是一门研究如何使机器能够像人一样智能的学科,这也是人类探索自身智慧的一门学科。

如何让机器拥有类人一样的智慧?第一步就是让机器能够理解人类的语言,这样机器才能够通过语言学习人类文明的知识,能与人类进行沟通,这也是人工智能领域的一个重要分支,这个分支被称为自然语言处理(Natural Language Processing,简称NLP),它是人工智能领域的一颗明珠。

如果机器能理解人类的语言,配合计算机视觉(Computer Vision),再给这个系统一套机器人的机械身体,那人类相当于可以像神一样创造新物种了。照这个方向继续发展,机械飞升也不是不可能。

而现在,我们创造出的智能也掌握了人类自然语言,这也许是我们进入智能文明的标志。

从神经网络到深度学习

要让机器能理解人类的语言,当然要从机器学习开始。传统的机器学习是以人工标记数据去让机器学习训练数据的特征,然后再用训练好的模型去预测新的数据,这种方法的缺点是需要大量的人工标记数据,而且人工标记数据的过程也是非常耗时的。

在机器学习的路线中,有一个分支是深度学习(Deep Learning),它是一种以神经网络为基础的机器学习方法,它的特点是可以自动学习数据的特征,不需要人工标记数据,这样就可以大大减少人工标记数据的工作量。

机器学习一开始有很多路线,不过逐渐人们发现深度学习的效果非常好,很多机器学习领域要解决的问题都可以用深度学习解决。

神经网络

神经网络是一种模拟人脑神经元网络的机器学习模型,它最早于1943年被提出,它使用数学模型对神经元进行建模,神经元是人脑的基本单元,它接收输入信号,经过处理后产生输出信号,神经元之间通过突触连接,突触可以增强或抑制神经元之间的连接强度。

最简单的感知器模型如下所示:

如果用数学公式来表达如下所示:

$$ y=\begin{cases} 0 & w_1x_1+w_2x_2\leq \theta \1 & w_1x_1+w_2x_2>\theta \end{cases} $$

看起来不可思议,人类的智慧竟然可以用这么简单的公式来表达。这个公式的意思是,如果输入的两个信号的加权和大于阈值,那么输出1,否则输出0。这个公式就是感知器的数学模型,它是最早的神经网络模型。

单个的神经元很简单,但通过多个神经元的组合,就可以构成复杂的神经网络,这样的神经网络就可以解决复杂的问题。如下图所示是一个简单的神经网络:

如何理解这个神经网络呢?首先,这个神经网络有3层,第一层是输入层,第二层是隐含层,第三层是输出层。输入层有两个神经元,隐含层有两个神经元,输出层有一个神经元。每个神经元都有一个阈值,每个连接线都有一个权重,这些权重和阈值都是需要训练的参数。

这个简单的神经网络通过叠加多个隐含层,就可以完成复杂的人工智能任务,比如识别图片中的手写数字,这个流程如下:

  1. 第一层输入层接收图片的像素点作为输入信号,比如图片的大小是28x28,那么输入层就有784个神经元;
  2. 隐含层将输入信号进行处理,层层传递后给输出层产生信号;
  3. 输出层的信号就是图片的内容,比如输出层有10个神经元,那么输出层的信号就是10个数字,每个数字代表图片识别的概率,概率最大就代表整个神经网络的识别结果。

这个流程看起来很简单,但是神经网络的训练过程非常复杂,需要大量的数据和计算资源,所以在神经网络被提出后,很长一段时间没有得到应用。而且为了取得好的效果,神经网络的层数就需要很多,深度学习就是指神经网络的层数很多,所以深度学习的训练过程更加复杂。

深度学习

深度学习就是加深神经网络的层数,当然在特定领域的处理中,除了加深层数还需要处理特定的问题,比如在自然语言处理领域,就需要处理文本的序列问题,这个时候就需要采用RNN、LSTM、GRU、seq2seq、Transformer等模型。

这些模型并不是独立的,而是相互关联的,比如seq2seq模型就是由RNN和LSTM组成的,Transformer模型就是由seq2seq模型演变而来的。

和大家也许想的不同,当ChatGPT与人交流时,它会根据上下文不断预测并生成下一个单词。这个上下文包括了之前生成的所有单词,而不是一次性生成整个句子。我们可以通过如下数学公式来表示这个过程:

该公式表示生成整个句子�1,�2,…,��w1​,w2​,…,wn​的概率等于每个单词的生成概率之积(联合概率),其中每个单词的概率都是基于其前面所有单词来计算的。以上公式能给出单词序列发生的概率,这意味着语言模型可以通过概率来评估一个单词序列发生的可能性,也意味着可通过此概率评估一个句子在多大程度上是自然的单词序列。通过这种概率的计算,让ChatGPT这类语言模型能够产生连贯而自然的对话回复。

从文本到词向量

从上面神经网络的例子中,我们可以看到神经网络的输入和输出都是数字,而且神经网络的每个神经元都是一个数字,这些数字都是浮点数,所以神经网络的输入和输出都是浮点数。

但自然语言处理的输入输出都是文本,所以需要将文本转换为数字,这个过程就是文本的向量化,也就是将文本转换为向量。文本向量化的方法有很多,比如one-hot、TF-IDF、word2vec等。

word2vec是一种用于生成词向量的神经网络模型,它最早于2013年被提出。该模型主要用于自然语言处理任务中,如文本分类、文本生成等。相比于one-hot和TF-IDF,word2vec可以将文本中的每个单词转换为一个固定长度的向量,这个向量可以用于神经网络的输入。

有趣的是,词向量表示只是word2vec模型的副产品,word2vec模型的主要目的是通过训练神经网络来学习词向量,而不是生成词向量。word2vec模型通过训练神经网络来预测输入文本序列中下一个单词,当模型训练的能成功预测下一个单词时,说明神经网络已经学习到了文本中单词的语义信息,这个时候神经网络的隐含层(输入权重)就是输入文本序列的词向量,这也意味着在不同的语料库中,相同单词的词向量是不同的,但是相似的单词的词向量是相似的。

循环处理文本序列

将文本转换为词向量后,另一个问题是目前神经网络都是前馈神经网络,它们都是将输入数据从输入层传递到输出层,而没有反馈,所以无法处理序列数据,比如文本序列。于是就有了循环神经网络(RNN)。

RNN模型指的是循环神经网络(Recurrent Neural Network),它最早于1982年被提出。该模型主要用于自然语言处理任务中,如文本分类、文本生成等。循环神经网络通过使用循环结构,将当前时刻的输出作为下一时刻的输入,从而实现对序列数据的处理。

循环神经网络的每个神经元都有两个输入,一个是当前时刻的输入,一个是上一时刻的输出,这样就可以将序列数据的信息传递到下一时刻。循环神经网络的结构如下图所示:

如上图所示,循环神经网络可以从输入序列�X中逐个读取输入��Xt​,并将当前时刻的输入��Xt​和上一时刻的输出��−1Ht−1​作为输入,然后输出当前时刻的输出��Ht​,这样就可以将序列数据的信息传递到下一时刻。

不过原始的RNN模型存在梯度消失和梯度爆炸的问题,所以后来又有了LSTM和GRU模型。梯度消失是指在反向传播过程中,梯度值越来越小,导致模型无法训练;梯度爆炸是指在反向传播过程中,梯度值越来越大,导致模型无法训练。LSTM和GRU模型通过使用门控结构,解决了梯度消失和梯度爆炸的问题。

反向传播是指在神经网络中,通过使用梯度下降算法,更新神经网络的参数,从而使神经网络的输出尽可能地接近真实值。

从序列到序列

有了RNN模型,就可以处理序列数据了,但是RNN模型只能处理单个序列,而不能处理两个序列之间的关系,于是就有了seq2seq模型。

seq2seq模型指的是序列到序列模型(Sequence-to-Sequence Model),它最早于2014年被提出。该模型主要用于自然语言处理任务中,如机器翻译、对话系统等。

在传统的机器翻译方法中,通常采用基于短语或句法分析的方法将源语言句子转化为目标语言句子。这种方法存在大量的人工特征工程和规则定义,效果依赖于语言专家和领域知识,难以适应不同的语言和领域。

seq2seq模型通过使用编码器-解码器架构,将两个序列之间的关系转化为两个向量之间的关系,从而实现对两个序列之间的关系进行建模。在不需要手工特征工程的情况下,自动地学习源语言到目标语言之间的映射关系。其中,编码器将源语言序列映射到一个固定长度的向量表示,解码器利用这个向量表示生成目标语言序列。这种端到端的训练方式具有很强的可扩展性和泛化能力,并且随着数据量的增加,模型表现也会逐渐提升。

因此,seq2seq模型既解决了传统机器翻译方法中需要注重规则和特征工程的缺陷,同时也支持了更加复杂和灵活的自然语言处理任务。

它的架构如下所示:

如上图所示,这是一个翻译汉语到英文的语言任务,输入的是汉语句子你好,输出的是英文句子Hello。首先,将输入的汉语句子经过编码器,得到一个固定长度的向量表示,然后将这个向量表示输入给解码器,解码器将这个向量表示转化为英文句子。

以下是Seq2Seq模型在生成文本时的训练与生成流程:

1.输入数据预处理

首先,需要将输入的原始文本经过分词、去除停用词等预处理步骤,并将其转化为词向量表示,得到输入序列(x1,x2,…,xT)

2.编码器

将输入序列X输入给编码器(Encoder),编码器使用RNN(通常采用LSTM或GRU)将词向量序列转化为单个上下文向量z,即最后一个时间步的隐藏状态。这个向量包含所有输入信息的综合表示,它将被用于之后的解码器中。

3.解码器

解码器(Decoder)通过读取上下文向量z,并且使用另一个RNN来生成输出序列Y=(y1​,y2​,…,yT′​)。这里的输出序列长度不一定和输入序列相同。例如,在翻译中,从英语到意大利语的句子长度可能会改变。

4.训练

对于每个目标输出序列′Y′(即参考答案),训练的目的是尽可能地使生成的输出序列Y最大程度地接近′Y′。因此,我们需要定义一个损失函数,用来衡量以Y作为输出时产生的误差,通常使用交叉熵损失函数。

5.生成

在生成时,我们使用训练好的编码器和解码器来处理新的输入,并生成一个输出序列。具体地,首先将输入字符串经过相同的预处理转化为词向量序列X。然后,将X拿去给编码器,得到上下文向量z。最后,利用解码器对z进行解码,即可得到生成的输出序列Y。

seq2seq模型的优点是可以处理变长的序列,但是它也存在一些缺点:

  1. 编码器只能通过一个固定长度的向量来表示输入序列,这个向量包含了输入序列的所有信息。因此,编码器的向量表示可能会存在信息损失,这会影响到解码器的性能。
  2. 编码器和解码器都是使用RNN来实现的,因此它们都存在梯度消失和梯度爆炸的问题。这会导致模型的训练变得困难,同时也会影响到模型的性能。
  3. 编码器和解码器都是使用RNN来实现的,因此它们都是串行的结构,无法并行计算,导致训练速度较慢。

seq2seq模型的缺点主要是由于RNN的缺点导致的,因此我们需要一种新的模型来解决这些问题,这就是Transformer模型。

注意力是全部

RNN网络模型的问题主要在于,串行处理输入序列,无法并行计算,同时也无法捕捉到输入序列中的长距离依赖关系。而Transformer模型则是完全基于注意力机制来实现的,因此它不仅能够并行计算,而且能够更好地捕捉输入序列的长距离依赖关系,从而提升模型的性能。

在RNN中,序列中的每个单元都是按顺序依次进行计算的,后一个单元的计算需要等待前一个单元计算完成后才能开始,因此无法并行化计算。而在Transformer中,自注意力机制的计算可以并行计算,因为每个单词的表示向量是独立计算的,它们的计算不需要等待其它单词的计算完成,因此可以同时进行。此外,注意力权重的计算也可以并行化,因为每个单词与其它单词的相似度可以同时计算,因此Transformer的自注意力机制可以更快地处理大规模序列数据。

对比RNN,举例来解释Transformer的注意力机制:

假设我们有一组输入序列,包含5个单词: “I”, “like”, “to”, “eat”, “pizza”。

  1. 我们将每个单词转化为向量表示。可以使用词向量来表示每个单词。
  2. 将每个单词向量应用于三个全连接层,以获得表示向量。每个全连接层都采用不同的权重矩阵,用于捕捉不同方面的单词特征。
  3. 为了计算向量之间的相似性,我们将每个表示向量与相邻单词的表示向量计算点积。对于句子中的每个单词,它将与前后单词的表示向量进行点积。
  4. 我们将每组点积值传递到Softmax函数中,以得出每个单词与相邻单词的注意力权重。这个步骤计算了每个单词与相邻单词的重要性,并为序列中的每个单词分配了注意力权重。
  5. 将每个单词向量与其对应的注意力权重相乘,然后将它们相加。这将形成一个自注意力池化向量,该向量是所有输入单词的加权和。这个自注意力池化向量可以更好地捕捉单词之间的语义关系,同时维护整个输入序列的完整性。

通过这种方式,自注意力机制允许模型更加全面地考虑输入序列中不同单词之间的关系,并获取单词之间的上下文信息,从而为序列到序列转换任务提供更好的表现力和准确性。

Transformer模型的架构如下所示:

Source: Attention Is All You Need

如上图所示,Transformer模型的编码器和解码器都使用了自注意力机制,它们的输入都是整个序列,而不会像RNN那样串行处理序列。因此,Transformer模型可以并行计算,从而提升模型的训练速度。

Transformer模型将语言模型的训练带入了大语言模型时代,因为它的训练计算复杂度不会随着输入序列的长度而指数增加,因此可以训练更大的模型,从而提升模型的性能。

同时随着GPU计算能力的提升,Transformer模型的训练时间也大大缩短,因此Transformer模型的训练成本也大大降低,于是一个大语言模型的时代拉开了序幕。

Source: Harnessing the Power of LLMs in Practice: A Survey on ChatGPT and Beyond

大语言模型时代

GPT-1 (2018)预训练语言模型基于Transformer和自回归机制生成文本BERT (2018)预训练模型,通过masking预测句子中缺失的词汇GPT-2 (2019)更大的预训练模型,能够输出高质量文本GPT-3 (2020)目前最强的通用NLP语言模型,可以完成多种领域的自然语言任务Instruct GPT(2022)ChatGPT背后的语言模型通过人类指令(prompt)来调整AI生成的内容GPT-4 (2023)大型多模态语言模型接受图像和文本输入专业和学术基准上表现出人类水平的表现大语言模型

在Transformer模型出现后,这种架构启发了OpenAI的研究人员,于是他们在2018年提出了GPT-1模型,这是一个基于Transformer的预训练语言模型,它使用了自回归机制来生成文本。

生成式预训练

Generative Pre-Training (GPT)语言模型的训练过程是半监督的,使用了无监督预训练和有监督微调的组合方法,旨在学习一个通用的表征,以便在各种任务中进行迁移学习。

该模型使用Transformer架构,在无标签数据上使用语言建模目标进行初始参数学习,然后使用相应的监督目标来适应目标任务。在转移过程中,使用从遍历式方法推导出的特定于任务的输入适应进行微调,以实现最小的对预训练模型架构的更改。该模型在自然语言推理、问答、语义相似性和文本分类等四个类型的语言理解任务上都获得了优异的表现。

大力出奇迹

人类的大脑神经元数量大约是1000亿个,这些神经元能产生数万亿个连接,而GPT-1模型的参数数量只有1.17亿个,这意味着GPT-1模型的参数数量只有人类大脑神经元数量的0.1%。

不知道OpenAI是否受到了这个启发,于是他们在2019年提出了GPT-2模型,这是一个更大的预训练模型,它的参数数量是GPT-1模型的10倍,达到了15亿个,在2020年发布的GPT-3模型的参数数量是GPT-2模型的100倍,达到了1750亿个,从数量上来看,GPT-3模型的参数数量已经超过了人类大脑神经元的数量。

于是,奇迹出现了,GPT-3模型在专业和学术基准上表现出了人类水平的表现。这个奇迹的出现是因为GPT-3模型使用了深度学习和大规模预训练技术,它被训练了海量的自然语言数据,并利用自监督学习方法进行强化,使其能够产生惊人的语言表达能力。此外,GPT-3还具有令人难以置信的创造力,它能够生成准确、流畅的文章、诗歌和音乐,甚至在游戏、绘画等其他领域也能发挥出惊人的创作能力。

虽然GPT-3模型已经展示了令人瞩目的性能,但它仍然存在一些局限性,比如对于某些特定领域知识的理解还不够深入,同时语言模型的运行需要庞大的计算资源和存储空间,这也增加了该技术应用的成本。未来,我们可以期待更加智能、灵活、高效的语言模型的出现,它们将会给我们带来更多新的可能性和优秀的应用场景。

然而,GPT-3的强大并非仅凭借大力出奇迹而来,因为许多其他参数数量超过人类大脑神经元数量的语言模型却没有表现出比GPT更好的效果。可见,GPT-3之所以拥有如此巨大的影响力,是由于其强大的表现和开创性的技术贡献所决定的。

未来展望

未来的研究方向之一将会是让机器学习模型在只有少量数据输入和能量消耗的情况下能够像人脑一样进行新知识的学习。尽管深度学习在自然语言处理领域的进展已经非常显著,但我们仍需寻找更高效、节能的方法来应对大规模的学习任务。为了降低成本,未来的人工智能发展可能需要从更深层次上改变算法和计算架构,在保证高效性的同时实现更低的能耗。

另一个重要的趋势是尝试统一语言理解和语音、图片、视频等多模态内容。Transformer模型在这个方面已经起到至关重要的作用,并使得GPT-4拥有了多模态的能力。未来的研究将集中在设计更加灵活、适应性更强的模型,使其能够跨越不同类型的内容和媒体形式。

泛化及可解释性问题也是未来研究的重要方向。随着技术的不断进步,我们期望机器能够像人类一样具备广泛的推理和应用能力,同时也能够给出解释和原因,以便更好地理解机器的决策和思维过程。

同时,安全问题也是未来研究中必须考虑的因素。随着人工智能在社会生活中的广泛应用,越来越多的机器学习算法和模型将牵涉到重要的决策过程,例如医疗、金融等领域。因此,对机器学习的安全性进行更加深入的探究,并开发相应的安全技术,将是未来研究的一个重要方向,以确保机器学习的应用是可靠和安全的。

总之,人工智能的发展让我们拥有了像神一样创造新物种的能力。希望未来的人工智能能够成为人类的好朋友,而不是敌人。

评论

所有评论

推荐阅读

  • 伊朗向以色列发射第五轮导弹

    当地时间6月14日清晨,以色列军方称,监测到伊朗发动第五轮导弹攻击,以军正展开拦截。

  • 美军“爱国者”与“萨德”导弹防御系统参与以色列防空行动

    匿名美国国防官员发布消息称,由美军人员操作、最早在拜登政府时期部署的“爱国者”和“萨德”导弹防御系统,参与了以色列的防空行动。相比去年美方在伊朗两次报复性袭击中出动空中和海上力量协助拦截导弹的广泛介入,此次行动的规模明显较小。

  • 伊朗新一轮导弹射向以色列

    当地时间6月14日凌晨,据以色列军方称,伊朗向以色列发射新一轮导弹,以军正展开拦截,以色列全国多地响起防空警报。

  • 白宫正在审查SpaceX合同

    四位知情人士透露,在特朗普与马斯克公开吵架后,白宫已指示国防部和美国航空航天局(NASA)收集有关SpaceX数十亿美元合同的详细信息。 知情人士表示,政府方面已启动相关审查,要求有关机构仔细审视马斯克及其公司所获得的合同,以为可能采取的报复措施做好准备。五角大楼也在评估是否应削弱SpaceX在美国新一代导弹防御系统项目中的参与程度。

  • 美联储的新利率预测有可能影响市场

    LBBW 资深固定收益分析师 Elmar Voelker 在一份报告中说,在美联储下周的会议上,最大的市场波动潜力是新的关键利率预测。迄今为止,所谓的「点阵图」暗示美联储今年将降息两次,而货币市场定价几乎与美联储的预测完全一致。在我们看来,调整点阵图可能会让一些市场参与者措手不及。

  • 以色列的袭击未能突破伊朗核设施的保护层

    早期迹象表明,以色列的袭击没有穿透保护伊朗核储备设施的防护层。国际原子能机构(IAEA)说,没有迹象显示伊朗主要铀浓缩设施的辐射水平增加。伊朗当局告诉国际原子能机构,他们没有在位于德黑兰以南约300公里的纳坦兹设施观察到更高的辐射。以色列当局说,以色列没有对伊朗位于波斯湾沿岸的布什尔(Bushehr)核电站实施任何袭击。尽管如此,以色列总理内塔尼亚胡表示,袭击“将持续多少天,直到消除威胁”。只有最强大的常规弹药才能穿透伊朗的铀浓缩设施。纳坦兹核设施建在地下40多米处,有钢筋混凝土外壳保护,研究人员估计外壳厚约8米。而在福尔多核设施,浓缩大厅建在山里边。国际原子能机构总干事格罗西最近访问后估计,铀浓缩大厅位于地下半公里处。

  • 伊朗要求联合国安理会召开紧急会议

    伊朗常驻联合国代表团向安理会轮值主席致信,请求召开紧急会议,以应对以色列对伊朗的公然侵略。信中强烈谴责以色列在美国的支持下,对伊朗和平核设施和高级军事官员的侵略,呼吁安理会立即召开紧急会议,并对这些犯罪和挑衅行为采取果断行动。信中表示,以色列鲁莽、非法且有预谋地对伊朗的核设施和民用基础设施发动了一系列攻击。这些行动被认为明显违反了《联合国宪章》和国际法基本准则,其危险后果严重威胁着地区和国际和平与安全。

  • 伊朗方面称以色列总理专机已离开本-古里安机场

    当地时间13日,有消息称以色列总理内塔尼亚胡的专机已离开本-古里安机场。消息称,该专机由两架战斗机护航,正前往未知目的地。

  • 发布1周年,一文理清ChatGPT时间线

    AI 元年,历史上的今天。

  • ChatGPT语音功能向所有用户免费开放

    OpenAI宣布,ChatGPT语音功能已向所有用户免费开放,用户可下载手机App使用该功能。