# 日报380期 ChatGPT为什么这么强 **文章**: - **[万字拆解:ChatGPT为什么这么强?](https://readwise.io/reader/shared/01grqb03h7qeczrh2z55zrnady)** **关键词** :AI技术分析、GPT-3、ChatGPT、算力、算法、数据 **熊导读**: > 本文从技术层面分析了ChatGPT为何如此强大的原因。对于这种偏技术性文章,咱们普通读者,不求甚解,但求了解。本文主要从ChatGPT的模型架构、训练数据、评估方法和应用场景四个方面,介绍了ChatGPT的各项能力和特点。ChatGPT的成功源于其利用了大量的高质量的对话数据,采用了有效的训练策略,设计了合理的评估指标,以及探索了多种有趣的应用场景。 > **延展阅读**: - **[18万美元offer!ChatGPT通过谷歌L3入职测试,人类码农危?](https://readwise.io/reader/shared/01gre66ps9t4xxqyxgdhfbgbx8)** ### **今日份的费曼** 请费曼你对此问题的思考: **Q1 2020年发布的GPT-3的主要能力是什么?** GPT-3有三个主要的能力: 1. 语言生成能力,用3000亿的世界知识作为训练数据,使用深度神经网络模型(Transformer架构,1750亿参数的模型)进行预训练,使计算机能够产生类似于人类使用的自然语言文本。 2. 上下文学习,通过分析文本中的上下文来理解和学习自然语言的过程。GPT-3通过大规模的语料库,采用预训练技术进行无监督学习,这种方法通过预测上下文中的单词或句子来训练模型。 3. 世界知识,包括[[事实性知识 factual knowledge#^be85d1|事实性知识]](factual knowledge) 和常识 (commonsense)。 用3000亿的世界知识作为训练数据,采用预训练技术训练拥有1750亿参数的模型。 **Q2 从2020年的GPT-3,到2022年11月的ChatGPT,发展过程是怎样的?** 1. 泛化到没有见过的任务 模型可以在没有见过的指令上生成有效的回答。这对chatGPT的上线非常重要,因为用户总会提出新的问题。 1. 具备推理能力 code-davinci-002 和 text-davinci-002 是两个拥有足够强的思维链推理能力的模型。 1. 公正的回应 像维基百科那样 1. 代码生成和代码理解 2. 拒绝不当问题 3. 拒绝其知识范围之外的问题 拒绝 2021 年 6 月之后发生的新事件,因为它没在这之后的数据上训练过 --- ## 原文摘录 当用于调整模型的指令数量超过一定的规模时,模型就可以自动在从没见过的新指令上也能生成有效的回答。这种能力对于上线部署至关重要,因为用户总会提新的问题,模型得答得出来才行。 一、2020 版初代 GPT-3 与大规模预训练 初代 GPT-3 展示了三个重要能力: - **语言生成**:遵循提示词(prompt),然后生成补全提示词的句子。这也是今天人类与语言模型最普遍的交互方式。 - **上下文学习** (in-context learning): 遵循给定任务的几个示例,然后为新的测试用例生成解决方案。很重要的一点是,GPT-3虽然是个语言模型,但它的论文几乎没有谈到“语言建模” (language modeling) —— 作者将他们全部的写作精力都投入到了对上下文学习的愿景上,这才是 GPT-3的真正重点。 - **世界知识**:包括事实性知识 (factual knowledge) 和常识 (commonsense)。 那么这些能力从何而来呢? 基本上,以上三种能力都来自于大规模预训练:在有3000亿单词的语料上预训练拥有1750亿参数的模型(训练语料的60%来自于 2016-2019 年的 C4 + 22% 来自于 WebText2 + 16% 来自于Books + 3% 来自于Wikipedia)。 其中: - **语言生成的能力来自于语言建模的训练目标 (language modeling)**。 - 世界知识来自 3000 亿单词的训练语料库(不然还能是哪儿呢)。 - 模型的 1750 亿参数是为了存储知识,Liang et al. (2022) 的文章进一步证明了这一点。他们的结论是,知识密集型任务的性能与模型大小息息相关。 - 上下文学习的能力来源及为什么上下文学习可以泛化,仍然难以溯源。 直觉上,这种能力可能来自于同一个任务的数据点在训练时按顺序排列在同一个 batch 中。然而,很少有人研究为什么语言模型预训练会促使上下文学习,以及为什么上下文学习的行为与微调(fine-tuning)如此不同。 虽然初代的 GPT-3 可能表面上看起来很弱,但后来的实验证明,初代 GPT-3 有着非常强的潜力。这些潜力后来被代码训练、指令微调(instruction tuning)和基于人类反馈的强化学习(reinforcement learning with human feedback, RLHF)解锁,最终体展示出极为强大的突现能力。 二、从 2020 版 GPT-3 到 2022 版 ChatGPT 从最初的 GPT-3 开始,为了展示 OpenAI 是如何发展到ChatGPT的,我们看一下 GPT-3.5 的进化树: 2020.7月 davinci的初代GPT-3 2021.7月 Codex的论文发布,120亿参数的GPT-3变体进行微调。120亿参数的模型看出OpenAI API中的cushman-001 2022.3月,OpenAI 发布指令微调论文,监督微调的部分对应了`davinci-instruct-beta` 和 `text-davinci-001` 2022年4月-7月 OpenAI 开始对 `code-davinci-002`  模型进行 Beta 测试,也称其为 Codex。然后`code-davinci-002`、`text-davinci-003` 和 `ChatGPT`都是从 `code-davinci-002` 进行指令微调得到的。 (`code-davinci-002`可能是最强大的针对自然语言的GPT-3.5 变体(优于 `text-davinci-002`和 `-003`)。`code-davinci-002`很可能在文本和代码上都经过训练,然后根据指令进行调整(将在下面解释)。) 2022 年 5-6 月发布的 `text-davinci-002` 是一个基于 `code-davinci-002` 的有监督指令微调 (supervised instruction tuned) 模型。 2022年11月发布`text-davinci-003` 和 `ChatGPT`是使用的基于人类反馈的强化学习的版本指令微调 (instruction tuning with reinforcement learning from human feedback) 模型的两种不同变体。 总的来说,在 2020 - 2021 年期间,在 `code-davinci-002`  之前,OpenAI 已经投入了大量的精力通过代码训练和指令微调来增强 GPT-3。 能力: **泛化到没有见过的任务** :当用于调整模型的指令数量超过一定的规模时,模型就可以自动在从没见过的新指令上也能生成有效的回答。这种能力对于上线部署至关重要,因为用户总会提新的问题,模型得答得出来才行。 **利用思维链 (chain-of-thought) 进行复杂推理** :初代 GPT3 的模型思维链推理的能力很弱甚至没有。code-davinci-002 和 text-davinci-002 是两个拥有足够强的思维链推理能力的模型。 **代码生成和代码理解** **响应人类指令** :以前,GPT-3 的输出主要训练集中常见的句子。现在的模型会针对指令 / 提示词生成更合理的答案(而不是相关但无用的句子)。 看到这里:另外还要注意一些细节差异: • text-davinci-003 和 ChatGPT 是基于人类反馈的强化学习的指令微调 (Instruction tuning with Reinforcement Learning from Human Feedback RLHF)。这是它们之间最显着的区别。 - **公正的回应**:ChatGPT 通常对涉及多个实体利益的事件给出非常平衡的回答。这也是RLHF的产物。 - 拒绝不当问题:这是内容过滤器和由 RLHF 触发的模型自身能力的结合,过滤器过滤掉一部分,然后模型再拒绝一部分。 - **拒绝其知识范围之外的问题**:例如,拒绝在 2021 年 6 月之后发生的新事件(因为它没在这之后的数据上训练过)。这是 RLHF 最神奇的部分,因为它使模型能够隐式地区分哪些问题在其知识范围内,哪些问题不在其知识范围内。 总结当前阶段 GPT-3.5 的进化历程: - 语言生成能力 + 基础世界知识 + 上下文学习都是来自于预训练(`davinci`)。 - 存储大量知识的能力来自 1750 亿的参数量。 六、GPT-3.5 目前不能做什么 **实时改写模型的信念**:当模型表达对某事的信念时,如果该信念是错误的,我们可能很难纠正它: 我最近遇到的一个例子是:ChatGPT 坚持认为 3599 是一个质数,尽管它承认 3599 = 59 * 61。另外,请参阅Reddit上关于游得最快的海洋哺乳动物的例子。 **形式推理** :GPT-3.5系列不能在数学或一阶逻辑等形式严格的系统中进行推理: **从互联网进行检索**:GPT-3.5 系列(暂时)不能直接搜索互联网。 •GPT-3.5 的两个重要但不同的能力是 知识 和 推理。一般来说,如果我们能够 将知识部分卸载到外部的检索系统,让语言模型只专注于推理,这就很不错了。 **结论** 初代GPT-3模型通过预训练获得生成能力、世界知识和in-context learning。然后通过instruction tuning的模型分支获得了遵循指令和能泛化到没有见过的任务的能力。经过代码训练的分支模型则获得了代码理解的能力,作为代码训练的副产品,模型同时潜在地获得了复杂推理的能力。结合这两个分支,code-davinci-002似乎是具有所有强大能力的最强GPT-3.5模型。接下来通过有监督的instruction tuning和RLHF通过牺牲模型能力换取与人类对齐,即对齐税。RLHF使模型能够生成更翔实和公正的答案,同时拒绝其知识范围之外的问题。