青训营

40 阅读3分钟

尽管 ChatGPT 像是一颗核弹,突然在全世界媒体上引爆了。但是,ChatGPT 并不是 OpenAI 天降神力直接横空出世的,而是 OpenAI 历经多年,不断迭代、不断优化模型的结果。

GPT 是 OpenAI 发布的一系列模型的总称。主要经历了 GPT 初代、GPT2.0、GPT3.0、GPT3.5、ChatGPT,目前已经有了 GPT4,未来还会有 GPT-n 等等,模型之间有很强的关联。ChatGPT 中的很多技术点,都是由前几代模型设计并运用的,学习 ChatGPT 技术原理,势必要学习了解早期 GPT 模型的发展脉络。若把 ChatGPT 比作一个健康聪明的青年人,那么早期的模型就是他的婴儿时期、青少年时期,GPT 的发展历程像是朝着模拟人类发展。ChatGPT 是一个语言模型,是属于 NLP 领域的概念。那什么是语言模型呢?我们来举几个例子解释一下。

例1:请各位做一个完形填空:掘金社区是一个______的技术交流平台。

在这个例子里,上述的空格处应该填什么字呢?中文汉字总共有上万个,空格里填任何一个字,都算是完成了填这个动作,我们真正关心的,是填什么字才能让文字读起来通顺。

有的人觉得毫无疑问应该填“便捷”,而有的人觉得应该是“实用”,事实上填这两种答案都是正确的,可以让文字读起来通顺。再举一个例子:

例2:请补全这条语句:掘金社区是一个便捷的技术交流______

有的人觉得,应该填写“网站”,有的人觉得应该填写“社区”、“平台”等等,但总不太可能是其它别的答案了。

总结这两个例子,我们可以得出结论,空格处要填什么字,填几个汉字,是根据空格周围的上下文来决定的。能够正确根据上下文在空格处填入恰当的文字,表明其语言能力强,否则表示语言能力弱。 所谓语言模型,就是由计算机来实现类似于人的语言交流、对话、叙述能力,它集中体现在模型能够依赖上下文进行正确的文字输出。把上述这些预测空格内容的问题交给计算机建模来完成,就实现了语言模型的训练。换句话说,语言模型就是由上述的方式来进行训练的。在上述第 1 个例子中,空格介于一段话的中间,填写需要依赖上下文。在第 2 个例子中,空格位于一段话的末尾,句子没有讲完,需要根据前面的信息,补充后面的信息。即,例 2 的填写只需要依赖上文,例 2 中的形式就是 GPT 所采用的建模形式。假设常用汉字总共有 10000 个,空格处要填写什么汉字,可以理解为从 10000 个汉字中随机地选取一个填入其中,因此可以建立概率模型。然而在填写上述空格的时候,我们并不是直接根据三个汉字的概率进行抽取的,而是要依赖其上下文进行判断,日常生活中,接触到的新闻文本可以非常长,动辄上千字、上万字的文章随处可见。过长的文本将导致在计算语言模型的条件概率时非常复杂,因此我们通常考虑将上下文依赖局限在一个较短的范围内。通常情况下,语言模型的建模公式采用 n-gram 模型,这个词没有对应的中文翻译,其含义是就近原则,距离第 i 个字符相隔 n 个字符距离以上的,就不在考虑范围内了。