ChatGPT的本质可以简单地理解为一个“单词接龙”游戏,也就是你给出上半句,ChatGPT帮你预测下一句。
正如我们使用的各种智能输入法软件一样,当我们输入完一个字词后,输入法会自动帮我们联想出你接下来可能要输入的字词。
ChatGPT是在GPT(GenerativePre-trainingTransformer)模型的基础上通过改进优化得到的。GPT是一种大型语言模型,能够生成各种不同的文本类型,而ChatGPT则是针对对话场景特别优化过的,它可以根据上下文自动生成跟人类一样的文本对话。下图是OpenAI官方对ChatGPT的原理介绍,我也将分这几步为大家讲解~
比如告诉GPT“花谢花飞花满”,GPT就能生成最有可能是下一个字的结果。但由于下一个字有各种可能性,比如“花满天”、“花满地”、“花满园”都说得通,所以GPT模型每次输出的结果是不同的。
光靠学习文字接龙,GPT仍不知道该如何给出有用的回答。比如问GPT“世界上最高的山是哪座山?”,“你能告诉我么”、“珠穆朗玛峰”、“这是一个好问题”都是上下文通顺的回答,但显然“珠穆朗玛峰”是更符合人类期望的回答。
因此研究人员让人类就一些问题写出人工答案,再把这些问题和答案丢给GPT学习。这便是有监督训练,即对于特定问题告诉AI人类认可的答案,让AI依葫芦画瓢。这种方法可以引导AI往人类期望的方向去做文字接龙,也就是给出正确且有用的回答。通过这种有监督训练的方法,我们可以得到一个简易版的ChatGPT模型。
需要注意的是,这里并不需要人类穷举出所有可能的问题和答案,这既代价高昂又不甚现实。实际上研究人员只提供了数万条数据让AI学习,因为GPT本来就有能力产生正确答案,只是尚不知道哪些是人类所需的;这几万条数据主要是为了告诉AI人类的喜好,提供一个文字接龙方向上的引导。
如何让这个简易版的ChatGPT模型变得更强呢?我们可以参考其他AI模型的训练思路,前几年轰动一时的围棋人工智能AlphaGo,是通过海量的自我对弈优化模型,最终超越人类;能不能让GPT通过大量对话练习提升其回答问题的能力呢?可以,但缺少一个“好老师”。
于是研究人员让GPT对特定问题给出多个答案,由人类来对这些答案的好坏做排序(相比直接给出答案,让人类做排序要简单的多)。基于这些评价数据,研究人员训练了一个符合人类评价标准的Reward模型。
“你们已经是成熟的AI了,该学会自己指导自己了”。要实现AI指导AI,得借助强化学习技术;简单来说就是让AI通过不断尝试,有则改之、无则加勉,从而逐步变强。
从原理看,ChatGPT是一个擅长对话的文字接龙高手,它看似能生成自然流畅的回答,但实际上这些回答往往欠缺逻辑性和正确性的考虑,从某种意义上说都是“一本正经地胡说八道”,因而闹出很多笑话。
不过总的来说,ChatGPT是一种极具前途的自然语言生成技术,在对话系统、聊天机器人、虚拟助手等领域有着广泛的应用前景。