Chat GPT

ChatGPT 其实本质上非常简单,它没有理解你的问题,也没有去真正查阅什么资料来回答你,它的本质就是一个词语接龙。

比如它先输出一个"很"字,然后它根据"很"作为上下文,计算出下一个字是"高"。

然后它又用"很高"作为上下文,计算出下一个字是"兴"。以此类推,直到输出一段完整的话,比如"很高兴见到你"。

所以它实际上并没有理解你的问题,也没有构思出回答你问题的解答思路,它就是一个字一个字地往下猜,直到拼接成一句话或一段话。这也是 Copilot 的实现原理。

它是怎么做到一个字一个字往下猜,却能如此像人说的话呢?一个是模型,一个是数据,数据是用来训练模型的,这个大家都知道。

而训练过程分为三个阶段,第一阶段是投喂给它大量杂乱无章的信息,这叫做无监督学习。第二阶段是给它一些规范的对话范本,这叫做监督学习。第三阶段是让他自己回答问题,然后人们给出每个答案的评分,让它根据评分再次调整模型参数,这个叫做强化学习

无监督学习虽然可以吸收海量的知识,但回答问题的时候可能会少了点规矩,因此需要监督学习给它提供格式规范的回答范本。但这些都是投喂固定的信息,可能导致少了创造性的答案,因此需要强化学习来让 AI 看起来真正掌握这些知识。ChatGPT 的聪明之处就在于,它把第三阶段开放给公众,公众在对话的同时,实际上也在帮 OpenAI 进行强化学习。

它的回答,只是根据给它投喂的材料训练出的模型计算出来的,根本没有所谓的数据库,也不会去查阅哪些资料。

数据量和模型参数的数量,在一定程度上决定了 AI 的上限。下面是 GPT-1 到 GPT-3 的数据量和模型参数。

GPT-1 5GB 1.17亿 GPT-2 40GB 15亿 GPT-3 45TB 1750亿

最新出来的 GPT-4 的模型参数据说达到了 10 - 100 万亿。

当数据量和模型参数比较少的时候,你还能看出它是根据已有的资料强行训练出的结果,但现在的数据量和模型已经只能用超大模型来描述了,模型的参数已经大到让人无法想象,也无法真正理解模型的计算结果。

所以看似产生了学习新知识的能力,但其实仍然是模型根据已有的信息训练出的结果,在数据量足够大的时候,产生了质变,似乎产生了智能。

ChatGPT中的GPT是什么

1982年,深度学习模型中有一个非常经典的模型叫做RNN,即 Recurrent Neural Networks(循环神经网络)1。RNN 的出现是为了更好地处理序列信息,RNN 隐藏层的值不仅受到当前输入的影响,还取决于上一次隐藏层的值。比如:“我 爱 你”三个字,“爱”不仅仅是“爱”,还包含了“我”的语义信息。但是对于较长的序列或者句子,RNN的机制会出现梯度消失的问题,简单说就是当句子是:“我爱你中国,我爱你春天蓬勃的秧苗,我爱你秋日金黄的硕果,我爱你青松气质,我爱你红梅品格,我爱你家乡的甜蔗,好像乳汁滋润着我的心窝。”最后一个“心窝”已经没有办法包含太多的第一个“我”的语义信息了。

而后,最早在计算机视觉里应用的 Attention机制被拿来用在了自然语言处理。该机制的思想就是把注意力集中在重要的信息上,而忽视不重要的信息(可见Attention图解2)。2017年,Google的研究人员发表了《Attention Is All You Need》3,这篇文章中的 Transformer 模型是 GPT的基石,整个网络结构是由Attention 机制组成4,并且将序列中的任意两个位置之间的距离缩小为一个常量,其次 Transformer 具有好的并行性,符合现有的GPU框架。这里必须要提一下:Transformer设置了一种“位置编码”(position encoding)机制,用来向序列数据添加位置信息,进而让模型学到“顺序”。做法简单巧妙:用正弦、余弦函数生成沿时间轴变化的波形,然后把这种波形叠加到 Transformer 的输入中。

GPT 是基于 Transformer 的模型,全称 Generative Pre-Training Transformer。去掉了Transformer的多头注意力(Multi-head Attention),然后在进行模型输出时,利用特定的下游任务进行微调(分类任务、自然语言推理、语义相似度、问答和常识推理)。具体而言,GPT采用了Hinton等人2006年提出的一种经典的神经网络训练策略:“预训练+微调”的二段式训练策略7。在预训练阶段,首先基于庞大的生语料训练一个生成式语言模型;在微调阶段,使用标注数据继续训练模型。

这样的生成式模型可以给他输入N个单词(也称为Token)的序列,输出是最有可能在输入序列末尾放置的单词的预测。即词语接龙

从GPT模型提出以来,OpenAI就在不断进行模型优化。GPT系列的模型结构秉承了不断堆叠Transformer的思想,通过不断的提升训练语料的规模和质量,提升网络的参数数量来完成GPT系列的迭代更新8。其中,GPT3模型是ChatGPT的基石,该模型拥有1750亿的参数,利用45TB的数据进行训练,其训练费用高达1200多万美元

InstructGPT 是 ChatGPT 最初始的模型了,而后,模型又加入了RLHF策略(Reinforcement Learning from Human Feedback,基于人工反馈的强化学习)

参考

闪客-人机

shutianma - 一篇不是很枯燥的ChatGPT闲谈

微软的DeepSpeed

langchain - 自动将过往会话带入 ChatGPT API 请求体中

Last updated