chatgpt模型详解系列–chatgpt、gpt4

前言

这篇文章将是这个系统最后一篇文章,后续将出一些神经网络基础知识以及如何训练神经网络系列。 本系列以及后续相关文章将同步发布至个人公众号欢迎公众号搜索 AI研究小学僧 查看

2022年11月30日,OpenAI发布了一款强大的大模型ChatGPT,它在不到一周的时间内就吸引了100万注册用户,这标志着通用人工智能(AGI)的时代已经来临。接下来,我们将详细介绍ChatGPT的原理和应用。

有监督微调SFT

ChatGPT是在GPT-3的基础上进行了改进的大模型,它可以与人类进行自然语言交互。要想了解 ChatGPT的核心,我们需要先明白GPT-3有哪些问题,以及ChatGPT是如何解决这些问题的。
GPT-3的最大问题是它的训练目标和用户意图不一致。也就是说,GPT-3并没有真正理解用户的意图,而只是根据语言的统计规律来生成文本。GPT-3本质上是一个语言模型,它的优化目标是最大化下一个词出现的概率。给定一个词序列作为输入,GPT-3模型要预测序列中的下一个词。例如,如果给模型输入句子:“猫坐在”,它可能会预测下一个词是“垫子”、“椅子”或“地板”,因为这些词在前面的上下文中出现的概率较高。
GPT-3目标函数的优点是,它们可以让模型学习语言的统计结构,例如常见的词序列和词使用模式。这通常有助于模型生成更自然、更流畅的文本,并且是每个语言模型预训练阶段的必要步骤。然而,这些目标函数也有缺点,那就是它们无法区分重要错误和不重要错误。例如,如果给模型输入句子:“罗马帝国[掩码]奥古斯都的统治” 它可能会预测掩码位置应该填入“开始于”或“结束于”,因为这两个词出现的概率都很高。但是对于历史知识来说,这两个答案有着天壤之别。
更一般地说,这些训练策略可能导致语言模型在一些需要更深入地理解语言含义的任务或上下文中出现偏差。因此,这样的模型很难泛化到不同类型和风格的问题上,并且很难理解用户的真实意图。经常会出现答非所问的情况。
因此,ChatGPT要解决的核心问题就是如何让模型和用户对齐。也就是说,如何让模型能够理解用户提出的不同类型和风格的问题,并且能够生成优质、有用、无害、不歧视的答案。
ChatGPT的核心方法就是引入“人工标注数据+强化学习”来不断微调预训练语言模型。在“人工标注数据+强化学习”框架下,训练ChatGPT主要分为以下三个阶段。
第一阶段使用标准数据(提示和对应的回答)进行微调,也就是有监督微调(Supervised Fine-Tuning, SFT)。
第二阶段,训练奖励模型(Reward Model, RM)。给定提示(大约3万左右),使用微调后的模型生成多个回答,人工对多个答案进行排序,然后使用成对学习(pair-wise learning)来训练奖励模型,也就是学习人工标注的顺序(人工对模型输出的多个答案按优劣进行排序)。
第三阶段,使用强化学习,微调预训练语言模型。利用奖励模型的打分结果来更新模型参数,从而使模型更加符合用户的期望。
为了让ChatGPT能够理解用户提出的问题中所包含的意图,首先需要从用户提交的问题中随机抽取一部分,由专业的标注人员给出相应的高质量答案,然后用这些人工标注好的<提示, 答案> 数据来微调 GPT-3模型,如图所示。
                在这里插入图片描述
通过这个过程,我们可以认为ChatGPT已经具备了一定的能力,能够理解用户问题中的意图,并且根据意图生成相对高质量的答案。但是由于标注数据太少,模型的效果还不够理想。我们来看一下这部分标注数据包含了哪些任务类型,如下表所示。

问题类型 占比(%)
生成任务(Generation) 45.6%
开放问答(Open QA) 12.4%
头脑风暴(Brainstorming) 11.2%
聊天(Chat) 8.4%
重写(Rewrite) 6.6%
摘要(Summarization) 4.2%
分类(Classification) 3.5%
其它(Other) 3.5%
封闭问答(Closed QA) 2.6%
抽取(Extract) 1.9%

其中最主要的是生成任务,例如生成故事、诗歌、歌词、代码等。其次是一些问答任务,例如回答历史、科学、文化等方面的问题。还有一些头脑风暴任务,例如给出创意、建议、想法等。下面是一些具体的例子。有监督微调就是使用这些问题和答案来微调GPT-3模型。

问题类型 Prompt
头脑风暴(Brainstorming) 列出5个方法用于重新对职业充满热情
生成任务(Generation) 编写一个短篇故事,讲述一只熊前往海滩,结识了一只海豹,然后返回家中的经历
重写(Rewrite) 将下面一段话翻译成法语:English sentence

训练奖励模型

这个阶段的主要目的是通过人工标注数据来训练奖励模型(Reward Model, RM)。具体而言,从用户提交的问题中随机抽取一部分(大部分和第一阶段的相同),使用第一阶段微调好的模型,对每个问题生成K个不同的答案(这里K是4到9之间的一个数)。这样就得到了<问题, 回答1>, <问题, 回答2>,…,< 问题, 回答K>数据。然后,标注人员根据多个标准(例如相关性、信息量、有害性等)综合考虑,对K个回答进行排序,给出K 个回答的排名顺序,这就是这个阶段人工标注的数据。
接下来,利用这个排序数据来训练奖励模型,采用的训练方法是成对学习(pair-wise learning)。对于K个排序结果,两两组合,形成Ck2个训练数据对,ChatGPT采用成对学习损失值来训练奖励模型。奖励模型接受一个输入<问题, 回答>,输出一个评价答案质量高低的分数(score)。对于一对训练数据<回答1, 回答2>,假设人工排序中回答1排在回答2前面,那么损失函数就鼓励奖励模型对<问题, 回答1> 的分数要高于<问题, 回答2>的分数。具体过程见图所示。
               在这里插入图片描述
              在这里插入图片描述

其中
rθ(x,y)表示奖励模型的输出,x是给定的 prompt,y表示对于的回答。yw和y1 表示回答 w排在回答l前面 ,类似上面的回答1排在回答2前面。
总结第二阶段的过程,首先,监督模型根据每个提示生成K个回答,并按照质量从高到低排序。然后,人工将这些回答作为训练数据,采用成对学习的方法来训练奖励模型。最后,对于训练好的奖励模型,它可以接收<问题, 回答>作为输入,输出回答的质量得分。得分越高,说明回答的质量越高。

使用强化学习微调预训练模型

第三阶段是使用强化学习微调预训练模型,无需人工标注数据,只需借助上一阶段训练好的奖励模型作为奖励函数。具体步骤如下:首先,从用户提交的问题中随机抽取一些新的命令(即与前两个阶段不同的问题),并用第一阶段经过监督微调的模型初始化近端策略优化(Proximal Policy Optimization, PPO)模型的参数。然后,对于每个抽取的问题,用近端策略优化模型生成回答,并用奖励模型评估回答的质量得分。这个得分就是奖励模型给出的回答的整体收益。整个过程如图所示。
             在这里插入图片描述
强化学习的优化目标可以表示为如下形式。
              在这里插入图片描述
公式(8)中的第一项是最大化奖励模型的得分,第二项是让强化学习的输出不要偏离有监督微调(SFT)太多,最后一项是保证微调效果的同时,原有语言模型的效果不会变差。
经过强化学习的微调,13亿参数模型在某些任务上甚至超过了经过有监督微调的1750亿 GPT-3模型的效果。

最强大模型——GPT-4

2023年3月14日,OpenAI的首席执行官山姆·奥尔特曼(Sam Altman)宣布了他们最新的人工智能系统:GPT-4。他表示,GPT-4是OpenAI迄今为止开发的最强大的大型语言模型,它可以处理各种自然语言处理任务,如文本生成、文本理解、问答、对话等。GPT-4相比于前一代的ChatGPT,实现了以下几个方面的飞跃式提升。
强大的识图能力。GPT-4可以直接处理图像和文字的混合输入,理解图表中数据的含义,并做进一步计算。甚至可以直接把论文截图发给它,GPT-4可以按像素处理其中的文字和图片,并给出对整篇论文的总结摘要。
文字输入限制提升至2.5万字。GPT-4可以接受更长的输入文本,从而处理更复杂的问题和任务。例如,在修改代码方面,用户只需要把1万字的程序文档一股脑扔给GPT-4就行,格式也不用管,GPT-4会自动识别并修正代码中的错误和缺陷。
回答准确性显著提高。GPT-4在模拟律师考试中,取得了前10%的好成绩,相比之下ChatGPT是倒数10%。在美国高考SAT试题中,GPT-4也在阅读写作中拿下710分高分、数学700分(满分800)。
能够生成歌词、创意文本,实现风格变化。GPT-4可以根据用户的指令或者示例,创造各种内容,如歌词、故事、诗歌、名人模仿等,并且可以根据用户的喜好调整风格和语气。
OpenAI还在为机器学习模型设计的传统基准上评估了GPT-4。结果显示,GPT-4大大优于现有的大型语言模型,以及大多数最优模型。接下来我们具体介绍下GPT-4做了哪些不一样的事,这个最强大模型是如何诞生的。
GPT-4的涌现能力
复杂系统学科已经对“涌现”现象进行了深入的研究。涌现现象是什么呢?它指的是当一个复杂系统由许多微观个体组成,这些个体相互作用并达到一定的数量时,就会在宏观层面上表现出一些微观个体无法解释的特性。我们可以把这种特性称为涌现现象。
在我们的日常生活中,也有很多涌现现象的例子,比如雪花、堵车、动物迁徙、涡流等。以雪花为例,它是由水分子构成的,水分子非常小,但是当大量的水分子在外界温度变化的影响下相互作用时,就会在宏观层面上形成一个对称、规则、美丽的雪花。
那么,我们可以问一个问题:超级大模型是否会产生涌现现象呢?很多人可能已经知道答案了,那就是肯定的。
我们来看看大语言模型的规模发展情况。如果要总结近几年来大语言模型最大的技术进步,那可能就是模型规模的快速增长了,如图3-12所示。目前,大规模模型通常超过了1000亿个参数。 例如,在2022年11月,OpenAI发布了ChatGPT,它有1750亿个参数。而在今年3月发布的GPT-4则有万亿级别的参数。
               在这里插入图片描述
随着大语言模型规模的不断扩大,它们对下游任务的影响也有所不同。根据任务的类型,我们可以将它们分为以下三类。

  1. 第一类任务遵循伸缩法则:这类任务通常是知识密集型的,需要大量的常识和事实。因此,当模型规模增加时,任务的效果也会持续提升,说明这类任务对模型中蕴含的知识有很高的需求。
  2. 第二类任务呈现出饱和现象:这类任务一般是技能型的,需要一定的逻辑和推理能力。当模型规模达到一定程度时,任务的效果就会趋于稳定,说明这类任务对模型中蕴含的技能有一定的限制。
  3. 第三类任务较为少见,呈现出U形曲线:这类任务通常是创造性的,需要一定的想象力和创新能力。当模型规模增加时,任务的效果先会下降,然后再上升。当模型规模不够大时,效果会受到噪声和偏差的影响,但当模型规模足够大时,效果会因为涌现现象而提升。如果对这类任务使用思维链(Chain of Thought, CoT)技术,就可以将它们转化为第一类任务,使得效果随着模型规模增加而持续上升。

因此,我们可以认为模型规模增加是一种必然的趋势,它会带来涌现现象的出现,从而提高任务的效果。
目前有两种被认为具有涌现能力的任务,第一种是上下文学习(少样本提示),用户只需要给出几个例子,大模型就可以在不调整参数的情况下处理好任务。 第二种具有涌现能力的技术是思维链。思维链本质上是一种特殊的少样本提示,它要求用户把一个复杂问题的推导过程写出来,并提供给大语言模型,这样大语言模型就可以完成一些相对复杂的推理任务。那么,一个模型要达到多大的规模才能具备涌现能力呢?这个问题很难有一个确定的答案。不同类型的任务,在上下文学习方面,需要多大的模型才能具备涌现能力,这与具体的任务有关。例如三位数加法任务,只要模型达到130亿参数,就可以具备涌现能力;但是对于数学推理任务来说,需要千亿模型才能做到这一点。我们只能说,在上下文学习方面,如果一个模型达到1000亿参数,那么它就可以在大多数任务上具备涌现能力。
如今GPT-4的模型规模已经达到了万亿级别,是ChatGPT的10倍以上。这样巨大的规模带来了显著的效果提升,在小学数学应用题GSM8K 上,准确率从57%提升到了92%,显示出了“涌现”能力。
当然,除了模型规模之外,还有很多其他因素会影响涌现现象的出现,比如数据、模型结构、微调、强化等。接下来,我们将介绍GPT-4在这些方面做了哪些优化。

大模型预测扩展

GPT-4项目的一个重要目标是构建一个能够支持多任务预测的深度学习技术栈。这是因为对于像GPT-4这样的超大规模的训练,进行特定任务的微调非常困难。为了克服这个挑战,OpenAI开发了一套基础设施和优化方法,使得GPT-4可以适应多种任务。这些改进让我们可以使用更小的模型(计算成本降低了1000到10000倍)。

  1. 损失值预测
    为了训练LLM模型,OpenAI用一个幂律函数来近似表示最终的损失函数和计算成本的关系。为了验证优化方法是否具有可扩展性,OpenAI使用一个缩放定律来预测GPT-4的最终损失,表示为如下的形式。
            在这里插入图片描述
    这个预测是基于使用与GPT-4相同的方法训练的模型,但是计算资源只有GPT-4的1/10000。这个预测是在训练开始后不久就做出的,没有借助任何中间结果。拟合的缩放定律能够非常精确地预测GPT-4的最终损失,如下图所示
                  在这里插入图片描述
    为了提升大模型的预测扩展,OpenAI开发了一系列的基础设施和优化方法,使得GPT-4可以在不同规模下表现出可预测的性能。为了验证这种可扩展性,OpenAI提前准确地预测了GPT-4在内部代码库(不属于训练集)上的最终损失。
    在GPT-4技术报告里提到大模型的“能力预测(Capability Prediction)”是一个非常有价值的新研究方向。它可以用小模型来预测大模型在某些参数组合下的某种能力,如果预测足够精确,就可以大大缩短训练周期,同时大大降低试错成本,所以这个方向无论从理论价值还是实际价值都很高,非常值得深入研究具体技术方法。

在HummanEval编程数据上预测损失值

如果我们能够在训练之前预测模型的能力,那么我们就可以更好地做出关于对齐、安全和部署的决策。除了预测最终损失之外,OpenAI还开发了一种方法,可以预测一些更具解释性的能力指标。其中一个指标是模型在HumanEval数据集上的通过率。HumanEval是OpenAI自己收集的一个数据集,它包含了164个原创的编程问题,涉及到语言理解、算法、简单数学和软件面试等方面。OpenAI成功地用只有1/1000计算资源的模型来预测了GPT-4在HumanEval数据集上的通过率,如下图所示。
            在这里插入图片描述
对于HumanEval中的某些问题,随着规模的增大,性能可能会下降。尽管如此,OpenAI仍然发现了一个近似的幂律关系,如下所示。
         在这里插入图片描述
其中k和α为正常数, P是数据集中的问题子集。假设这种关系对该数据集中的所有问题都成立。在实践中,由于非常低的通过率很难或不可能估计,因此只关注那些每个模型至少解决了一个问题的问题P和模型M,即使只有一些大的样本。

GPT-4性能分析

OpenAI评估了GPT-4在各种基准测试中的表现,这些测试包括一些原本是为人类设计的考试。这些考试都是从公开的材料中获取的,有选择题和非选择题两种格式。OpenAI没有对这些考试进行特殊的训练,只是让模型在训练期间看到了少数考试中的问题。OpenAI为每种格式设计了不同的提示,并在需要的时候将图像作为输入。评估方法是基于一组验证考试的表现来设计的,并在另一组测试考试上报告最终结果。综合得分是通过使用每个考试的公开可用方法来合并选择题和非选择题得分来计算的。
GPT-4在各种专业测试和学术基准上的表现达到了人类水平。例如,它通过了模拟律师考试,并且分数在前10%的范围内;相比之下,ChatGPT的分数只有后10%的水平。
GPT-4在传统的语言模型基准上也大大优于现有的大型语言模型,以及大多数最优模型。为了初步了解GPT-4在其他语言上的能力,在测试的26种语言中,GPT-4在24种语言上优于ChatGPT和其他大语言模型的英语语言性能。GPT-4还在用户意图理解方面比以前的模型有了大幅改进。在一个由5214个提示组成的数据集上,这些提示提交给了ChatGPT和OpenAI API,与ChatGPT生成的结果相比,GPT-4生成的结果在70.2%的提示上被优先选择。
除此之外,GPT-4在考试中的能力似乎主要源自预训练过程,而不受人工反馈强化学习的影响。在测试的多项选择题中,基本的GPT-4模型和人工反馈强化学习模型平均表现相同。表3-11是GPT-4在各项评测中的表现。
GPT-4的一大特点是支持图片输入,除了文字处理能力之外。GPT-4可以接受文本和图像形式的提示,新能力与纯文本设置并行,允许用户指定任何视觉或语言任务。
GPT-4 可以在任意交错排列的文本和图像输入下生成文本输出。在一系列领域中,GPT-4表现出与仅有文本输入时类似的能力。这些领域包括具有文本和照片、图表或屏幕截图的文档等。
GPT-4在各项评测中的表现

任务类型 GPT-4(少样本提示) ChatGPT 语言模型最优版 最优版
MMLU(多项选择题54个学科) 86.4%(5个样本提示) 70.0%(5个样本提示) 70.7%(5个样本提示) 75.2%
HellaSwag(常识推理) 95.3%(10个样本提示) 85.5%(10个样本提示) 84.2% 85.6%
ARC(小学多项选择题) 96.3%(25个样本提示) 85.2%(25个样本提示) 85.2%(8个样本提示) 85.6%
WinoGrande(代词消解的常识推理) 87.5%(5个样本提示) 81.6%(5个样本提示) 85.1%(5个样本提示) 85.1%
HummanEval(python编程题) 67.0%(零样本提示) 48.1%(零样本提示) 26.2%(零个样本提示) 65.8%
DROP(阅读理解和算术) 80.9%(3个样本提示) 64.1%(3个样本提示) 70.8%(1个样本提示) 88.4%
GSM8K(小学数学应用题) 92.0%(5个样本提示) 57.1%(5个样本提示) 58.8%(8个样本提示) 87.3%
Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐