ChatGPT 技术篇:智能背后的秘密

时间:2021-05-05 00:39:15
原创 | 文BFT机器人


ChatGPT 技术篇:智能背后的秘密


核心观点



ChatGPT 表现惊艳,网站流量一路狂飙式成长。



根据数据统计机构 Similarweb 的估计,chat.openai.com 网站(即 ChatGPT 官网)在2023/1/27-2023/2/3 这一周吸引的每日访客数量高达约 2500 万,在1 月 31 日的流量高峰日,该网站吸引了 2800 万次访问。并且在 1/3-2/3 这一个月里,该网站的流量平均每天增长 3.4%,增速惊人。



从 Transformer 到 ChatGPT,有哪些历史性突破?



ChatGPT 用户数高速增长的根本原因,来源于其突破性的表现,其中最突出的有两点体现:

  • ChatGPT 与人类“对齐”了偏好,其应答更适应人类习惯,并且能驳回一些反道德的提问,展现出显著优于前代的智能度。
  • ChatGPT 具备了思维链(Chain-of-Thought,CoT)能力,能够处理一定程度的复杂思维逻辑。
  • ChatGPT 在算数、国际音标转写、单词解读、问答、事实性问答、基础概念映射、多任务自然语义理解、上下文单词理解等 8 各指标上表现出全面综合的能力。



量变到质变,规模超过特定阈值后模型性能陡增。

根据谷歌发布的论文《Emergent Abilities of Large Language Models》,可以看到多个 NLP 任务随着模型规模扩大的性能变化曲线:前期性能和模型规模大致呈线性关系;然而当模型规模大到一定程度时,任务性能有了明显的“飞升”。



海量代码训练,模型习得代码背后隐含的逻辑能力。

根据熵简科技介绍,“代码”可以理解为一种具备高度逻辑性的文本语料,不具备强逻辑性的代码会无法执行,而不像普通文本语料那样有着较高的逻辑*度。模型从对大量代码的学习过程中,逐渐掌握了隐藏在代码背后的抽象能力与逻辑能力,进而涌现出我们在 ChatGPT 上感受到的“智能”。



训练过程加入了人类反馈,模型偏好向人类看齐。

通过有人类反馈的加强学习(RLHF)训练,人类手动对 AI 给出的回复进行排名,让 AI模型理解人类偏好。由于训练过程中加入了人类反馈,有别于前代 GPT-3 单纯使用海量数据的训练方法,ChatGPT 能够更好地理解用户指令,并作出反应。



01



从 Transformer 到 ChatGPT,有哪些历史性突破?



ChatGPT 流量以每日 3.4%的速度快速成长,每日用户数已超,每日用户数已超 2500 万。



根据数据统计机构 Similarweb 的估计,chat.openai.com 网站(即 ChatGPT 官网)在 2023/1/27-2023/2/3 这一周吸引的每日访客数量高达约 2500 万,在 1 月 31 日的流量高峰日,该网站吸引了 2800 万次访问。并且在 1/3-2/3 这一个月里,该网站的流量平均每天增长3.4%,增速惊人。

ChatGPT 技术篇:智能背后的秘密

ChatGPT 每日点击访问量统计


ChatGPT 用户数高速增长的根本原因,来源于其突破性的表现,其中最突出的有两点体现:



ChatGPT 与人类“对齐”了偏好,其应答更适应人类习惯,并且能驳回一些反道德的提问,展现出显著优于前代的智能度。



ChatGPT 模型比以往的人机对话模型(例如 GPT3等)更强大,例如,其敢于质疑不正确的前提和假设、主动承认错误以及一些无法回答的问题、主动给拒绝不合理的问题、提升了对用户意图的理解以及结果的准确性。



与之前的 GPT3 不同,相比于此前海量学习数据进行训练,ChatGPT 中,人对结果的反馈成为了 AI 学习过程中的一部分。初次之外,ChatGPT 甚至会主动驳回一些危险提问,例如:如果提问“如何霸凌 John”,上一代的模型 InstructGPT 会给出几种方法作为解答,而 ChatGPT 给出的答案则是“霸凌是不对的”。

ChatGPT 技术篇:智能背后的秘密

ChatGPT 会主动驳回一些具有潜在道德风险的危险提问


ChatGPT 具备了思维链(Chain-of-Thought,CoT)能力,能够处理一定程度的复杂思维逻辑 。



对于一些逻辑较为复杂的问题,直接向大规模语言模型提问可能会得到不准确的回答,但是如果以提示(prompt)的方式在输入中给出有逻辑的解题步骤(即将复杂问题拆解为多个子问题解决再从中抽取答案)的示例后再提出问题,大模型就能给出正确题解。



有时,甚至不用给示例,在输入后面接一句“Let’s think step by step”,模型的输出就是一步一步“思考”后的各个子问题的结果,再将该输出拼到输入后构造第二次输入数据,大模型就能进一步将上一步的输出整合,得出正确的复杂问题的解。

ChatGPT 技术篇:智能背后的秘密

ChatGPT 已经具备了思维链能力


02



ChatGPT 背后的秘密:智能来自何方?



2.1 量变到质变,规模超过特定阈值后模型性能陡增



随着算力的不断提升,语言模型已经从最初基于概率预测的模型发展到基于 Transformer 架构的预训练语言模型,并逐步走向大模型的时代。当模型规模较小时,模型的性能和参数大致符合比例定律(scaling law),即模型的性能提升和参数增长基本呈线性关系。



然而,当 GPT-3 / ChatGPT 这种千亿级别的大规模模型被提出后,人们发现其可以打破比例定律,实现模型能力质的飞跃。这些能力也被称为大模型的“涌现能力”(如理解人类指令等等)。



根据谷歌发布的论文《Emergent Abilities of Large Language Models》,可以看到多个NLP 任务随着模型规模扩大的性能变化曲线:前期性能和模型规模大致呈线性关系;然而当模型规模大到一定程度时,任务性能有了明显的“飞升”,例如在算数、国际音标转写、单词解读、问答、事实性问答、基础概念映射、多任务自然语义理解、上下文单词理解等任务上。因此,当前研究通常以百亿/千亿级别参数量作为 LLM 的分水岭。

ChatGPT 技术篇:智能背后的秘密

模型规模超过特定阈值后模型性能陡增


2.2 海量代码训练,模型习得代码背后隐含的逻辑能力



学界普遍推测,学界普遍推测,ChatGPT 的复杂思维能力(CoT 能力)来自于代码训练。



根据熵简科技介绍,ChatGPT 的背后是 Text-davinci-002 模型,但如果回溯 ChatGPT 的“模型家谱”,Text-davinci-002 模型其实是基于 Code-davinci-002 模型经过指令微调的产物。如果进一步回溯到起点,对于没有接受过代码数据训练的 GPT-3 模型,它的复杂推理能力是很弱的。



GPT-3的一个分支对代码数据进行了专项训练,Codex模型中代码数据量约为159G,基于此产生的 Code-davinci-002 模型神奇的具备了思维推理能力。由于这一能力近来才出现,学界对于它是如何产生的尚无定论,但学界普遍推测: 在模型训练的过程中,是否引入“代码数据集”,很有可能是模型是否具备复杂思维能力的关键变量。



代码是一种强逻辑性的文字,模型在学习代码的过程中习得了逻辑能力。“代码”可以理解为一种具备高度逻辑性的文本语料,不具备强逻辑性的代码会无法执行,而不像普通文本语料那样有着较高的逻辑*度。模型从对大量代码的学习过程中,逐渐掌握了隐藏在代码背后的抽象能力与逻辑能力,进而涌现出我们在 ChatGPT 上感受到的“智能”。

ChatGPT 技术篇:智能背后的秘密

ChatGPT 模型家族谱系


2.3 训练过程加入了人类反馈,模型偏好向人类看齐



通过有人类反馈的加强学习( 通过有人类反馈的加强学习(RLHF )训练,ChatGPT 能够更好地理解人类偏好,从而给出更符合人类习惯的回答。



ChatGPT 使用 RLHF 方法训练了一个初始模型:人类 AI 训练员提供对话,他们在对话中扮演双方——用户和 AI 助手,AI 训练员可以访问模型编写的对话回复,以帮助 AI 调整回复内容。



为了创建强化学习的奖励模型,该研究需要收集比较数据,其中包含两个或多个按质量排序的模型回复。该研究收集了 AI 训练员与聊天机器人的对话,并随机选择一条模型编写的消息,抽取几个备选回复,让 AI 训练员对这些回复进行排名。由于训练过程中加入了人类反馈,有别于前代 GPT-3 单纯使用海量数据的训练方法,ChatGPT 能够更好地理解用户指令,并作出反应。

ChatGPT 技术篇:智能背后的秘密

ChatGPT 使用 RLHF 方法进行训练


RLHF 具体训练步骤如下:



第一步:首先从大量的包含人类真实意图的指令集合中采样指令作为输入数据,并聘请专职标注员标注这些指令的输出,这部分相对而言是一个高质量的小数据集。数据收集完成后,使用 GPT-3.5 在该数据集上进行有监督的微调(supervised fine-tuning)。



第二步:得到上一步微调好的 GPT-3.5 之后,再次从指令集合中采样指令作为输入数据,从 GPT-3.5 得到多个不同的结果,并聘请专职标注员标注这些输出的好坏顺序,例如输出 D>输出 C>输出 A>输出 B。由于只需要标注模型不同输出的好坏,这部分标注的成本会降低很多,因此数据规模也会较大。得到这些人工标注的输出顺序之后,可以训练得到一个打分(reward)模型。



第三步,获得打分模型之后,接着从指令集合中采样一些新的指令作为输入数据,并结合打分模型,使用 PPO(一种强化学习算法)方式来训练得到最终的 ChatGPT。




更多精彩内容请关注公众号:BFT机器人

本文为原创文章,版权归BFT机器人所有,如需转载请与我们联系。若您对该文章内容有任何疑问,请与我们联系,将及时回应。