ChatGPT原理介绍

2,238 阅读5分钟

什么是GPT

GPT(Generative Pre-training Transformer)是一种模型我们经常听说的ChatGPT就是基于此模型演变而来,它可以根据输入的文本自动生成人类可以理解的自然语言输出。ChatGPT 通过 GPT 大模型训练、有监督训练初始模型、训练 Reward 模型、强化学习优化模型 等步骤实现其强大的对话功能。

网上有关 ChatGPT 的原理介绍文章一大堆,要么是从 NLP 的历史开始讲起,要么是上数 GPT 3 代,内容都相对冗长和复杂。其实 ChatGPT 的原理并不难理解,我将以最通俗易懂的方式为技术小白解读,帮助大家更好地了解这一技术。

训练模型是咋回事

GPT (Generative Pre-training Transformer)模型是一个宏观的模型,是一种大型语言模型,能够生成各种不同的文本类型,我们现在比较火的ChatGPT是针对对话场景特别优化过的,它可以根据上下文自动生成跟人类一样的文本对话。我们扒一扒 OpenAI 官方对 ChatGPT 的原理介绍,地址是:OPEN-AI

image-20230404173232443

参考以上的图例,GPT系列模型的基本思路是让AI在海量的数据上通过文字上下文对接,从而掌握基于前文内容生成后续文本的能力。这种训练方法不需要人类标注数据,只需要提供一段话的上文并遮住下文,然后将AI生成的文本与下文内容进行对比来训练AI。ChatGPT是在GPT3.5模型的基础上进行优化的,作为GPT系列的第三代,GPT3.5在万亿词汇量的通用文字数据集上进行了训练,几乎可以完成自然语言处理的绝大部分任务,例如完形填空、阅读理解、语义推断、机器翻译、文章生成和自动问答等。例如,给GPT一个句子「花谢花飞花满」,GPT就能生成最有可能是下一个字的结果。但由于下一个字有多种可能性,比如「花满天」、「花满园」等,因此GPT每次输出的结果都可能不同。

image-20230404180445346

第一种:人为干预

光靠学习文字串联,GPT 仍不知道该如何给出有用的回答。比如问 GPT 『世界上最高的山是哪座山?』,『你能告诉我么』、『珠穆朗玛峰』、『这是一个好问题』 都是上下文通顺的回答,但显然 『珠穆朗玛峰』 是更符合人类期望的回答。

所以人们采用了一种有监督学习的方法,即让人类提供一些问题和对应的人工答案,然后将这些问题和答案提供给GPT进行学习。这种方法可以引导GPT朝着人类期望的方向进行关联,并生成正确和有用的回答。需要注意的是,这种方法并不需要人类提供所有可能的问题和答案,这样做既代价高昂又不切实际。实际上,只提供了数万条数据用于训练GPT,因为GPT本身就有能力产生正确的答案,只是尚不知道哪些答案是人类所需要的。这些数据主要是为了告诉GPT人类的偏好,提供一个正确的引导,这样我们可以得到一个简化版的ChatGPT模型。如下图:

第二种:Reward 模型

为了让这个简化版的ChatGPT模型变得更强,我们可以参考其他AI模型的训练思路。例如,围棋人工智能AlphaGo通过海量的自我对弈来优化模型,最终超越了人类。那么,我们能否让GPT通过大量的对话练习来提高其回答问题的能力呢?答案是肯定的,但是缺少一个"好老师"。

与AlphaGo通过围棋规则来决定胜负不同,GPT回答问题时,没有人可以告诉它答案的好坏。我们不能让人来逐个评定GPT的回答,因为这需要大量的时间和精力。但是,AI的精力是无限的,如果有一个能够辨别GPT回答好坏的模型(即奖励模型),并根据人类的评分标准对GPT给出的答案进行评分,那么GPT的回答就能更符合人类的偏好了。

因此,让GPT对特定问题给出多个答案,由人类来对这些答案进行排序。相比直接给出答案,让人类对答案进行排序要简单得多。基于这些评价数据,研究人员训练了一个符合人类评价标准的奖励模型。如下图:

第三种:AI 指导 AI

基于上一步我们想进一步解放认为干预,那么就想到 AI 指导 AI,简单来说就是让 AI 通过不断尝试,有则改之、无则加勉,从而逐步变强。例如:

前两步训练得到的模型在这一步都能派上用场:我们随机问简易版 ChatGPT 一个问题并得到一个回答,让 Reward 模型(老师模型)给这个回答一个评分,AI 基于评分去调整参数以便在下次问答中获得更高分。重复这个过程,完整版的 ChatGPT 就训练好啦!如图:

示例:

image-20230404224942023

本文正在参加 人工智能创作者扶持计划