隋唐演义

隋唐演义

open ai研发用了多久

双十一 0

手机淘宝搜:天降红包55 5月20日开始,每天领红包。
京示搜:天降红包369,5月28日开始


在 GPT-2 发布 1 年零 3 个月后的 2020 年 5 月,OpenAI 团队发布 GPT-3,从其论文《Language Models are Few-Shot Learners》可以看到,其最大亮点是数据规模、参数规模都比 GPT-2 大 100 倍。这么简单粗暴的办法,带来的是 GPT-3 表现上的炸裂。而其论文标题也点出了本文的主题:语言模型就是要无监督预训练 + Few-Shot Prompt。

首先要明白 OpenAI 在技术开放上的收紧策略,自 GPT-2 发布时就已经给公众打了预防针了,参见《人工智能 LLM 革命破晓:一文读懂当下超大语言模型发展现状》的 8.5.2 小节。因此我们能看到 GPT 系列上 OpenAI 变得越来越 Closed:GPT-1、GPT-2 发布时,OpenAI 都在其官网发布了 blog,到了表现远超过 GPT-1、GPT-2 的 GPT-3 时,OpenAI 反而连一篇博客都没写。而其论文更是对关键的训练、模型、数据做了哪些重要工程表现得轻描淡写,花大篇幅着墨于实验及结果上。

GPT-3 没有放出源码、预训练好的模型参数等等,俨然变成了各国网友们调侃的 ClosedAI 了。

对于模型架构,OpenAI 声称 GPT-3 与 GPT-2 是一样的。GPT-3 依然延续了此前 GPT-2 的基本架构和预训练方法:构建基于 Transformer Decoder 的自回归语言模型,然后进行无监督预训练,无针对特定任务的微调。

我们可以看到共 8 个参数规模的模型如下。

Model Name参数量层数词向量长度注意力头数注意力头长度Batch SizeLearning Rate
GPT-3 Small125M1276812640.5M6.0E-4
GPT-3 Medium350M24102416640.5M3.0E-4
GPT-3 Large760M24153616960.5M2.5E-4
GPT-3 XL1.3B242048241281M2.0E-4
GPT-3 2.7B2.7B32256032801M1.6E-4
GPT-3 6.7B6.7B324096321282M1.2E-4
GPT-3 13B13.0B405140401282M1.0E-4
GPT-3 175B175.0B9612288961283.2M0.6E-4

在模型参数规模的军备竞赛方面,可以看到 GPT-3 Small 是与 GPT-1(1.17 亿参数)、BERT-Base(1.1 亿参数)对应的;GPT-3 Medium 是与 BERT-Large(3.4 亿参数)对应的;其余六个的参数规模都直接超过了这些大模型,尤其 GPT-3 1750 亿参数的版本,直接从 GPT-2 最大的 15.4 亿版本基础上拉升了 100 多倍规模!也比以往任何一个非稀疏模型至少大 10 倍!

模型的 Transformer decoder block 的层数,也常叫模型深度。可以看到随着模型参数规模的急速拉升,OpenAI 团队并没有把模型深度急剧增加,与 【【微信】】 版本相比,比它大一百多倍的 GPT-3 175B 的层数也只不过是其两倍(96 vs. 48)。

模型的词向量长度,也常叫模型宽度,一般表示为 ,区分于注意力头的宽度dheaddhead?。与 GPT-2 对比就能看到,类似层数的模型情况下,GPT-3 要宽很多,可以说整体 GPT-3 的模型要胖一些,而不是在提升规模时更多去加深(加层数)。

GPT-3 的 <【【微信】】 都非常大,哪怕 Small 版本也有 0.5M,175B 版本更是达到 3.2M,这对内存要求非常高。如果 batch 处理并行的话,那么内存就是就是 3.2M 除以并行的数量。注意一般 batch 指的是每次训练迭代中模型处理的样本数,而不是具体的数据量,即 3,200,000 个样本,而不是 3.2MB 数据。把 【【微信】】 做大的好处是,降低模型训练时的通讯量。不过对于小模型,【【微信】】 太大的话很容易过拟合。对于参数量大的模型,【【微信】】 自然也要相匹配的变大。

LR(Learning Rate,学习率)在 GPT-3 里是随着 【【微信】】 增加而下降的,这与一些研究的结果是相反的,比如 Meta AI 在论文《》中提出 【【微信】】 增加时 LR 也要随之变大。

上面这个表格,是 GPT-3 用到的训练数据集。关于 GPT-3 的训练数据集解读,很多中文文章里说的是错的,主要是对论文中该表的数据理解错误,下面我们分别来看下各个数据集和整体数据处理做的核心工作。

GPT-3 的数据源来自五部分组成,包括一个大型的来自 数据集、扩展的 WebText 数据集、两个互联网上的书籍语料库(一般认为书籍的语料质量是非常高的)和英文的维基百科。表中各列的含义如下:

  • 第二列 【【微信】】:每个数据源本身的数据规模,单位是 tokens(根据 OpenAI 官方文档里提到的一个大概的经验是,通常英文文本里 1 token 有 4 个字母或者 0.75 个单词)。
  • 训练期间从给定数据集中提取的部分,就是第三列 Weight in training mix(数据混合训练时的权重),因为不同数据集质量不同,基于此考虑 OpenAI 结合数据质量因素做的配比。最后,GPT-3 整体上是设定了 3000 亿 tokens 的训练数据集。
  • 第四列表示各数据集在训练时出现的次数,最高的 wikipedia 是 3.4 次。这样其实是为了高质量训练,稍微接受一点点的过拟合。

说到这里,不得不提中文 LLM 的数据集问题。中文整体上是缺乏这些非营利组织语料库、高质量文本内容社区/百科平台内容的。类似 StackO【【微信】】 这种技术问答社区、WikiPedia 高质量百科。

在上述数据集基础上,GPT-3 使用如下方式提高了数据集的质量。

首先,用一个高质量数据集作为正例,用 LogisticRegression 过滤了 CommonCrawl 的数据。这个高质量数据集是什么呢?还记得 GPT-2 里采用的 WebText 数据(Reddit 外链,且 Karma 大于 3)吗?OpenAI 认为这是质量比较高的数据,就是将其作为正例来过滤的。过滤前的文本压缩规模是 45TB,过滤后的是 570GB。

其次,在文档级别上用 LSH 算法去除重复的数据。LSH 是 Locality Sensiti【【微信】】(局部敏感哈希),是信息检索领域的一个常用算法,可以快速判断一个词集合(文章就是一个词集合)和一个很大集合之间的相似度。

第三,再额外加一些高质量的数据,上面表格中 WebText2 就是基于 GPT-2 用的 WebText 扩展而来的,另外还有 English Wikipedia、两个电子书数据集。

上图展示了 GPT-3 与 BERT、RoBERTa、T5 的训练算力对比。可以看到 GPT-3 的算力开销有多么惊人。注意图标的纵轴是非线性的、指数级间隔。那么消耗这么多的算力,性能表现如何呢?我们看下面这张表。

上表中横轴是算力(对应上上表中的纵轴,注意同样是指数增长),纵轴是训练期间的验证损失(注意也是指数增长)。可以看到每一条曲线都有一个大致的拐点,在拐点之后继续增加算力并不能显著提升性能。所有这个最优拐点连起来,是完全符合 Scaling Law 的。

OpenAI 官方并没有公开讲过花了多少钱训练 GPT-3,市面上流传的说法「460 万美元」目*证来看是一家云服务厂商用其最低价格 GPU 云服务估算而写的一篇软广,并不可信。也有一些其他组织或个人做了测算,整体上都是想表达训练一次很贵。至少从 OpenAI 的论文里我们能看出来,这个训练花费已经贵到研究人员即使发现多个 bug 也没舍得重新训练的地步:

论文第 9 页:Unfortunately, a bug in the filtering caused us to ignore some o【【微信】】, and due to the cost of training it was not feasible to retrain the model. 中文翻译:不幸的是,过滤中的一个 BUG 导致我们忽略了一些重叠,而考虑到训练成本,重新训练模型是不可行的。 论文第 31 页:Unfortunately, a bug resulted in only partial removal of all detected o【【微信】】 from the training data. Due to the cost of training, it wasn’t feasible to retrain the model. 中文翻译:不幸的是,一个 BUG 导致仅删除了训练数据中检测到的所有重叠的一部分。考虑到训练成本,重新训练模型是不可行的。 论文第 44 页:Due to a bug re【【微信】】, filtering described abo【【微信】】nts such as books. Because of cost considerations it was infeasible to retrain the model on a corrected 【【微信】】 dataset. 中文翻译:由于此分析揭示的 BUG,上述过滤在长文档(比如书籍)上是失败的。出于成本考虑,在训练数据集的修正版本上重新训练模型是不可行的。

作为对比,我们看下:

  • Meta AI 在同样参数规模的《OPT: Open Pre-trained Transformer Language Models》 模型上,用约 1000 个 80G A100 GPU 上训练至少两个月时间,就可想而知这花费有多高昂了。
  • 2022 年 7 月,为了训练拥有 1760 亿个参数的开源模型 Bloom,Hugging Face 的研究人员耗时三个月,使用了 384 个英伟达 A100 GPU,数据来自其论文《BLOOM: A 176B-Parameter Open-Access Multilingual Language Model》

OpenAI 在 GPT-3 发布中显式地提出了 In-Context Learning,即在无监督训练好的 GPT-3,使用时用少量示例就可以得到有较好的输出反馈,这就叫 Few-Shot Prompt。只有 1 个示例的时候就叫 One-Shot Prompt,没有示例的时候就叫 Zero-Shot。对于在使用时出现在输入中的这些示例,模型是不会更新其参数来做 fine-tune 的。那么模型是怎么从这些示例学到东西的呢?我们把这样的学习方法叫 In-Context Learning,即模型从无监督的训练文本上下文里,完成了非显性的学习。

In-Context Learning 与 Fine-Tune 两者区别在于是否更新模型参数。In-Context Learning 这种神奇的能力为什么会 work,船长将和你在本文的《人工智能 LLM 革命破晓:一文读懂当下超大语言模型发展现状》一起来初步探索下(目前这个领域还没有完全清晰明确的理论证明)。OpenAI 评估模型性能时,对示例不同做了区分:

Few-Shot Learning,对每个子任务提供 10-100 个样本。

One-Shot,Few-Shot 一个特殊情况是只给 1 个样本,我们叫 One-Shot Learning。

Zero-Shot Learning 顾名思义无样本。

对位对比,Fine-Tune 如下图示例,能看到要进行多次梯度更新。

GPT-3 得出了一些与 ICL 有关的一些实验结论。模型性能表现,随着示例样本数增加而增加,如下图所示。

无论是 Few-Shot、One-Shot 还是 Zero-Shot,模型的性能表现都随着参数规模的增加而增加,如下图所示。

关于 Few-Shot Prompt,沿着 Few Shot 的方向,机器学习的过程有点类似于人类的学习:大量无监督输入,针对特定任务只需极少量有监督输入。

更多与 In-Context Learning 有关的探讨,船长在《人工智能 LLM 革命破晓:一文读懂当下超大语言模型发展现状》探讨如何利用好 ICL 的能力、ICL 能力的底层是什么、为什么 LLM 具备 ICL 能力、ICL 具体是如何起作用的。

具体大家可以查看 OpenAI GPT API 文档,但是这里船长罗列几个值得一提的点。

关于 prompt 和 completion:OpenAI 提到一个理念:「设计提示语,就相当于在用一些指令和少量例子给模型编程」。另外 OpenAI 还强调了在目标任务上的区别,就是 OpenAI 的 NLP 模型与其他 NLP 模型很大的一个区别是,它不是设计用来解决单一类型任务的,而是可以解决几乎各种类型的 NLP 任务,包括但不限于文本生成(content generation)、代码生成(code generation)、总结(summarization)、扩写(expansion)、对话(con【【微信】】)、创意写作(creati【【微信】】)、风格转换(style transfer)等。

关于 token:我们理解和处理文本,是把文本先打碎成 token。以英文文本为例,token 可以是单词,也可以词根(一些字母组合),比如单词「hamburger」可能会被打碎成「ham」、「bur」、「ger」这几个 tokens。再比如「pear」这个单词,可能就会单独作为一个 token 不再打碎了。还有些 token 可能会以「空格」开头,比如「 hello」、「 bye」。一个大概的经验是,通常英文文本里 1 token 有 4 个字母或者 0.75 个单词。使用时的一个限制是,最好你的提示(prompt)或生成内容,不要超过 2048 个 tokens,大概相当于 1500 个单词。

关于 model:目前 OpenAI 有基于 GPT-3.5 的基础模型 Turbo 和这些基于 GPT-3 的基础模型 【【微信】】、Curie、【【微信】】、Ada 开放 API,另外 Codex 系列是 GPT-3 的后代,是用「自然语言 + 代码」训练的。

注意:因为 2023.3 OpenAI 发布了 GPT-3.5 支持的 API,所以原有的模型已经有一些变化了,此处列出的并非 GPT 全部 API,详细信息可以看船长的一份入门解读《AI 应用第一次大爆发来了:一文入门 ChatGPT 官方 API 文档解读》

先介绍下基础模型系列如下:

  • 【【微信】】:目前已经有 GPT-3.5 版本的 【【微信】】 了,但 【【微信】】 在 GPT-3 中就已经存在,是最有能力的模型系列,可以执行其他模型(Ada、Curie 和 【【微信】】)可以执行的任何任务,而且通常只需要很少的 instruction。 对于需要对内容有大量理解的应用程序,例如针对特定受众的 summarization 和创意内容生成,【【微信】】 将产生最佳结果。 这些增加的功能需要更多的计算资源,因此 【【微信】】 每次 API 调用更贵,并且不如其他模型那么快。【【微信】】 的另一个亮点是理解文本的意图。【【微信】】 擅长解决多种逻辑问题和解释人物的动机。 达芬奇已经能够解决一些涉及因果关系的最具挑战性的人工智能问题。适合:复杂的意图、因果分析、Summarization for Audience
  • Curie:Curie 在 GPT-3 中就已经存在,也非常强大,速度也比较快。 虽然 【【微信】】 在分析复杂文本方面更强大,但 Curie 能够胜任许多细微的任务,例如情感分类和摘要。 Curie 还非常擅长回答问题和执行问答以及作为通用服务聊天机器人。适合:机器翻译、复杂分类任务、情感分析、Summarization
  • 【【微信】】:同样是 GPT-3 里就存在的。【【微信】】 可以执行简单的任务,例如简单的分类。在语义搜索方面,它也非常有能力对文档与搜索查询的匹配程度进行排名。适合:适度分类、语义搜索分类
  • Ada:也是 GPT-3 时期就有的。Ada 通常是最快的模型,可以执行解析文本、地址更正和不需要太多细微差别的某些分类任务等任务。 Ada 的性能通常可以通过提供更多上下文来提高。适合:解析文本、简单分类、地址修正、关键词。需要注意的是:由像 Ada 这样更快的模型执行的任何任务都可以由像 Curie 或 【【微信】】 这样更强大的模型执行。

基于这些基础模型系列,目前 GPT-3 目前可用的模型包括下面这些,与 InstructGPT 背后的模型是一样的,它们的最大请求都是 2048 tokens,训练数据也都是 up to 2019 年 10 月:

  • text-curie-001:比 davinci 要弱一点,但是速度更快、更便宜。
  • text-babbage-001:一些比较直接的任务(straightforward tasks),比 text-curie-001 更快、更便宜。
  • text-ada-001:一些非常简单的任务,这些模型里最快、最便宜的。
  • davinci:目前最强的 GPT-3 模型,任何其他模型能做的任务,davinci 都可以做。
  • curie:就是 text-curie-001。
  • babbage:就是 text-babbage-001。
  • ada:就是 text-ada-001。
  • GPT-3 比较充分展示了训练范式上不用微调的可信性。
  • GPT-3 跟很多深度学习模型一样,都是无法解释的。
  • LMM 一定是下一个军备竞赛打卡点。LMM 即 Large Multimodal Models(大型多模态模型),目前的 LLM 只是在读书(读文本),缺少其他体验,比如视频到底是什么鬼,比如真实物理世界的交互;而 LMM 就不同了,可以与人类进行不同模态的交互,可以读懂人类给它的文本、视频、语音等等模态内容,也能根据需要给人类生成文档、图片、视频等等。
  • GPT-3 论文试图重新定义 Meta Learning,但发表后并没有引起大家的认同。

GPT-3 的局限性也很明显:

  • 训练成本太高。算力能耗太高,不环保。当然一开始大型计算机出来的时候也是很夸张的用电量和占地空间。
  • 样本有效性差,目前训练方法还是让 GPT-3 看了太多数据了(相比人类一生能看的文本量,GPT 看的量太大了)。未来提高样本有效性也是一个重要工作。
  • 缺少 Alignment,可能导致被用来撒布不实消息、生成垃圾邮件或者钓鱼、造假论文;内容可能带有性别偏见、种族评价、宗教歧视;缺少对政治敏感的兼容,但这也是最复杂的。
  • GPT 在 few-shot learning 时到底是现学的,还是找到原来学过的相似的东西找出来。如果是后者,那真的是在拼训练数据大小了。但是对比人类,我们应该要做到前者才对。
  • 如果要补全一段,还可以。如果要一直续写小说,GPT 可能不太行。
  • 训练学习时,对每个词都是一样对待的,就不像人类其实是有重点的。
  • 这里也有问题:1)当你在下游任务真有一大组样本(比如 1 万条)想给模型时,Few-Shot 真的给模型那么多数据么,那每次使用都要带着也太麻烦了,效率也不高。2)哪怕只有 1 条样本想 Prompt,不用它效果就不好,但是每次使用模型都要把这一条带着也不优雅。
人工智能 LLM 革命前夜:一文读懂横扫自然语言处理的 Transformer 模型人工智能 LLM 革命破晓:一文读懂当下超大语言模型发展现状AI 应用第一次大爆发来了:一文入门 ChatGPT 官方 API 文档解读麦克船长:Meta 推出开源 LLaMA,用 1/10 参数规模打败 GPT-3,群"模"乱舞的 2023 拉开序幕
  • 【【网址】】/abs/2205.01068
  • https://jalammar.github.io/how-gpt3-works-【【微信】】tions/
  • https://lifearchitect.ai/chatgpt/
  • https://platform.openai.com/docs/api-reference/
  • 【【网址】】/abs/2211.05100
  • 【【网址】】/abs/2005.14165
  • https://www.microsoft.com/en-us/research/blog/turing-nlg-a-17-billion-parameter-language-model-by-microsoft
  • https://bmk.sh/2020/05/29/GPT-3-A-Brief-Summary/
  • https://openai.com/blog/gpt-3-apps/


openai发布gpt4


Better Language Models and Their Implications

我们回到 GPT-2 推出前的那个时间看,GPT-2 出来后几个月 Google 就跟进了一个 BERT。虽然 BERT 似乎在结果上「打败」了 GPT-1,但是用 Transformer Encoder(更容易)并且数据规模和参数规模都显著提升,在 【【微信】】 看来多少有点「胜之不武」,【【微信】】 自然不服。BERT 发布后又过了 4 个月,【【微信】】 发布了比 BERT 更大的 GPT-2,俨然进入了军备竞赛。船长在《人工智能 LLM 革命破晓:一文读懂当下超大语言模型发展现状》介绍 GPT-1 时仍以结构理念、训练方法为主,现在介绍这个扩展自 GPT-1 的 GPT-2,则我们主要以它在结构、方法、数据等方面改进了什么为讲解线索。

在 2018 年 6 月,Salesforce Research 团队在论文《The Natural Language Decathlon: Multitask Learning as 【【微信】】》中提出「通用 NLP 模型是无法诞生于一个只着眼在单一度量、数据集和任务的范式中的」,同时提出将 NLP 的十项全能任务(Natural Language Decathlon,【【微信】】),主张所有 NLP 任务可以转换成问答任务,并且提出了一个基于该思路的实验模型 MQAN 来挑战 【【微信】】,尽管性能表现还有差距。

DeepMind 团队对 Salesforce Research 提出的假设非常认同,并在 2019 年 1 月发表的论文《Learning and E【【微信】】uistic Intelligence》中提到:

A perfect language model should in theory be able to do any linguistic task. 理论上,完美的语言模型应该能够执行任何语言任务。 We belie【【微信】】ess on generative language models will dri【【微信】】inguistic intelligence. 我们相信,对生成式语言模型的持续进展,将推动通用语言智能的发展。

【【微信】】 也认同这些理念假设,所以期待构建出能解决任何 NLP 任务的语言模型。【【微信】】 在 GPT-2 的工作中,把这些理念假设概括为「由于(所训练的)这些任务是通用语言建模的子集,因此我们可以预期随着更多算力和训练数据的使用,性能将进一步提高。」

2019 年的情人节,【【微信】】 在其官方发布了一篇 blog《Better Language Models and Their Implications》,后又发布了介绍 GPT-2 的论文《Language Models are Unsuper【【微信】】rs》。GPT-2 是 GPT-1 的直接扩展,因此还是基于 Transformer Decoder 架构,但是参数扩 10 倍左右,训练数据集扩 10 倍左右。GPT-2 的训练目标也很简单,就是基于一段文本中前面的所有词,预测下一个词。训练方法上,GPT-2 没有对任何任务的任何数据集做针对性的训练,都是直接评估并作为最终结果。

GPT-2 模型的基本信息如下表,其中可以看出 117M 参数版本的 GPT-2 是对标 BERT-Base,15 亿参数版本的 GPT-2 是对标 BERT-Large。

Model Name参数量层数词向量长度注意力头数
GPT-1117M1276812
GPT-2 Small117M1276812
GPT-2 Medium345M24102416
GPT-2 Large762M36128016
GPT-2 Extra Large1542M48160024
BERT-Base110M1276812
BERT-Large340M24102416

在 AI2 网站上可以在线试用基于 GPT-2 的 Next-Token 的语言模型:。

GPT-2 模型架构在 GPT-1 做了一些优化,如下几点:

  • 【【微信】】 移到了输入部分,并在自注意力之后也加了 【【微信】】。
  • 残差层(Residual Layers)的初始化权重用
  • 词汇表扩展至 50,257.
  • 上下文窗口从 512 扩展至 1024.
  • GPT-2 的 batch size 是 512.

但更重要的亮点在于其对更先进训练方法的成功验证。

GPT-2 的核心亮点,都体现在其论文标题「Language Models are Unsuper【【微信】】rs」中。第一个亮点即「Unsupervised」,可不只是预训练过程无监督,整个学习过程都可以无监督。第二个亮点是「Multitask」,在无监督的情况下还可以把多种不同的任务混合起来学。

GPT-2 的首个重要改进,就是其论文摘要中的前两句话总结:

Natural language processing tasks, such as 【【微信】】, machine translation, reading comprehension, and summarization, are typically approached with super【【微信】】specific datasets. We demonstrate that language models begin to learn these tasks without any explicit super【【微信】】 new dataset of millions of webpages called WebText.

GPT-1 及当时所有语言模型的局限性在于,即便采取无监督预训练,仍然需要对特定任务进行监督微调。而 【【微信】】 在 GPT-2 上验证了基于数以百万计网页上的无监督学习后就可以执行多种语言任务,比如问答、及其翻译、阅读理解、文本摘要。

*梅隆大学 Rich Caruana 在 1997 年提出了 Multitask Learning(多任务学习) 这样一个提升模型泛化能力的学习框架,但是经过了二十年发展,NLP 在多任务的训练探索上仍然不成熟。

不过有两个取得了一定突破的技术路线,值得关注。一个是,2018 年 【【微信】】 提出的 GPT-1 与 Google 提出的 BERT 都验证了「不需针对特定任务而只需要增加自注意力即可」的架构可行性。但是这样的技术方案,依然需要用到监督学习,泛化性依然受局限。另一个是,在无监督或极少量监督数据的情况下,在特定任务上也都能取得很好表现,例如常识推理(华盛顿大学几位学者于 2017 年在《Story Cloze Task: UW NLP System》研究中验证)、情感分析(【【微信】】 团队 2017 年在《Learning to Generate Re【【微信】】entiment》研究中验证)。

【【微信】】 团队受到两条研究路线的启发并采用更通用的迁移方法,实现无监督预训练后,在 Zero-Shot 情况下完成多任务,多有任务共享更新同一个 Transformer Decoder 架构之上的模型参数。

GPT-1 是拿一堆书预训练的,其实很明显多样性是不足的,尤其只用了小说。

GPT-2 则用了 40GB 的 WebText 语料(800 万个网页)。具体地,这些网页都是来自 Reddit 的网页中包含的出站链接(【【淘密令】】),并且获得了至少 3 个 karma,这两点门槛让 【【微信】】 认为得到了一些比较高质量的网页(明显质量比 CommonCrawl 整来那些乱七八糟的要高不少)。而且这样得到的数据集,具有非常好的多样性,因此很多任务的示例会自然地被学习到。【【微信】】 在论文中提到:

…… These findings suggest a promising path towards building language processing systems which learn to perform tasks from their naturally occurring demonstrations. …… 这些发现为构建语言处理系统指明了一条道路,就是从文本语料中自然出现的样本示例来学习并完成任务。

当 【【微信】】 在研发 GPT-2 时这样认为,已经预示着两点:1)ICL(In-Context Learning),甚至 Prompt Engineering,势必会在语言模型通用性变得更强后,成为一个人人都能参与的研究热点。2)如果各类任务的模式是「隐式」出现在语料中的,那么大规模训练数据就意味着可以覆盖更多任务类型,进而暴力军备竞赛有了理论上的动力。

从实验表现上,用 WebText 预训练的 GPT-2 优于在 Wikipedia、新闻或书籍上训练的其他语言模型,而无需使用这些训练数据集。

对于预训练数据集的处理,GPT-2 采用了最简单直接、符合我们目标期待的方式:不作任何处理,直接喂生数据(raw text)。

GPT-2 直接从原始文本开始学习,而不需要针对任务准备的训练数据,也不需要任何微调,尤其对于问答、阅读理解、summarization、translation 这些任务上,只需要以正确的方式提示经过训练的模型就能得到令人惊讶的结果。当然离 SOTA 还有区别,但作者们表示,从实验表现上看,如果有足够大的未标记数据集和算力,模型在这些任务上也会取得领先表现。

↑ 标注 (+) 的项,表示分数越高越好;标注 (C) 的项,表示分数越低越好。

这里已经基本预示着,投喂生文本数据,让模型「囫囵吞枣」地学会了不少东西,就像一个小孩子到父亲的书房里翻了很多很多书,知识都学杂了。但是如果启发教育问的好,给一些上下文提示语,模型就能给出很不错的响应。这也就引出了 In-Context Learning、Prompt Engineering 等一系列话题。关于这些的探讨,我们将在文章《人工智能 LLM 革命破晓:一文读懂当下超大语言模型发展现状》中「In-Context Learning」那一章详细介绍这方面的研究发展和技术尝试。

但是显然在 GPT-2 这个阶段,其表现还没有让 【【微信】】 这么笃定这件事。比如整体看,【【微信】】 发现需要对 GPT-2 多尝试几次才能获得好的样本,尝试的次数取决于模型对上下文的熟悉程度:1)当提示数据中有非常具体的主题(比如英国脱欧、指环王等)时,GPT-2 能在一半的时间内生成合理的样本。2)对于高度技术性或深奥类型的内容,GPT-2 就表现不太行了。比如对于数据集 Natural 【【微信】】 上,【【微信】】 给出测试问答的例子:

任务【【微信】】
数据集Natural 【【微信】】
示例Who wrote the book the origin of species?Correct answer: Charles DarwinModel answer: Charles DarwinWhat is the largest state in the U.S. by land mass? Correct answer: Alaska Model answer: California

整体来看,GPT-2 在以下这些数据集上执行的对应任务,虽然很多没到 SOTA,但效果还可以,毕竟是没有针对性的任务数据拿来训练的。还是上面提到的那句,【【微信】】 认为「由于(所训练的)这些任务是通用语言建模的子集,因此我们可以预期随着更多算力和训练数据的使用,性能将进一步提高」。这也为 GPT-3 留下了巨大的空间:

任务数据集
Summarization: summarize news articlesCNN and Daily Mail dataset
Machine Translation: translate French sentences to EnglishWMT-14 Fr-En
Reading Comprehension: answer 【【微信】】assagesCoQA
Common Sense Reasoning: resolution of an ambiguous pronounWinograd Schema Challenge
【【微信】】Natural 【【微信】】
Language Modeling of Broad Contexts: predict the last word of a passageLAMBADA

在 GPT-2 的开发与公布阶段,【【微信】】 就已经跃跃欲试 LLM 下一阶段的可能范式:基于扩展性极好的 Transformer Decoder 架构上(撑得起巨量参数规模)构建模型,并投喂足够多的数据(海量数据已经潜在包括各种任务模式)进行无监督预训练(所有任务都「隐式」地变成从左至右的生成训练) ―― 从而拉开了「大模型、大数据、大算力」的军备竞赛大幕。

其实如果大家对 2019 年的科技新闻还有印象的话,一定记得当时说有一家美国公司搞了个 AI 模型编造假新闻给大家忽悠得一愣一愣的,也就是 GPT-2。另外 GPT-2 在发布时只放出来一个小模型,所以也就是从这时开始 【【微信】】 被人调侃为 ClosedAI 的。

当时 【【微信】】 认为 LLM 正变得越来越可扩展、可定制、生成连贯,而这可以给各行各业带来很大积极价值,也能拿来作恶。因此 【【微信】】 最初发布博客和论文时没有放出完整的模型,只给出了一个用于研究的实验小版本:。具体地,GPT-2 没有放出数据集、训练代码、GPT-2 模型参数。【【微信】】 认为那些可能的危害是必须预防的,所以要预期到。

It is not possible to control research in these domains without slowing down the progress of AI as a whole. 如果管控这些领域的研究,就不可能不减缓整个人工智能的进展。

【【微信】】 希望大家对此要有预期,不要抵触可能出现的管控。甚至 【【微信】】 早在 GPT-2 出现的 2019 年这个时间点就提出倡议:

政府应考虑扩大或启动更系统地监测 AI 技术的社会影响和扩散,并要能够量化 AI 系统能力的迭代发展情况。

这其实就预示着后来关于「对齐(Alignment)」这个议题被更重视的提出,顺带必然要面对的「对齐税(Alignment Tax)」,也因此有为了 Alignment 而出现的 InstructGPT,进而孕育出 ChatGPT。

同年 5 月,【【微信】】 公开发布了 GPT-2 的 3.45 亿参数版本,因为 【【微信】】 认为很多机构已经能够训练同等能力的模型,所以风险不大。

另外,对那些致力于促进社会为 LLM 的广泛影响做好准备的合作伙伴与安全社区,【【微信】】 开放了 7.62 亿参数和 15 亿参数的版本。这里 【【微信】】 提到:

These research partnerships will be a key input to our decision-making on larger models. 这些研究方面的合作关系将是我们在决定发布更大模型时的关键因素。

这个在 2019 年时间节点上的表态,暗示了此后 【【微信】】 与 Microsoft 的合作关系,对于 【【微信】】 后续模型的公开程度的影响,给各方在打预防针。后来在 2023 年 1 月 23 日 【【微信】】 博客上也发布了《【【微信】】 与 Microsoft 扩大合作伙伴关系》一文提到 Microsoft 从 2019 年开始对 【【微信】】 的投资。

而在 5 月这次发布的内容,还包括GPT-2 output dataset

GPT-2 的亮点和洞察:

  • 自回归语言模型虽然难但正确,可以隐式地从语料中学到各类任务概念(有研究认为其包含隐式马尔科夫模型,详见本篇《人工智能 LLM 革命破晓:一文读懂当下超大语言模型发展现状》第 14 节),继续显著提高性能及泛化能力的方法,就是加大训练数据规模、模型参数规模。
  • 无需监督微调阶段:处理下游任务时不需要 fine-tune,预示未来在 LLM 上以 Prompt 方式完成任务可能成为一种新范式。
人工智能 LLM 革命前夜:一文读懂横扫自然语言处理的 Transformer 模型人工智能 LLM 革命破晓:一文读懂当下超大语言模型发展现状AI 应用第一次大爆发来了:一文入门 ChatGPT 官方 API 文档解读麦克船长:Meta 推出开源 LLaMA,用 1/10 参数规模打败 GPT-3,群"模"乱舞的 2023 拉开序幕
  • 【【网址】】/blog/better-language-models/
  • https://jalammar.github.io/illustrated-gpt2/
  • https://github.com/openai/gpt-2
  • https://github.com/openai/gpt-2-output-dataset
  • https://demo.allennlp.org/next-token-lm
  • 【【网址】】/blog/openai-and-microsoft-extend-partnership/
  • https://link.springer.com/article/10.1023/A:1007379606734
  • https://arxiv.org/abs/1806.08730
  • https://arxiv.org/abs/1901.11373
  • https://maartensap.com/pdfs/schwartz2017story.pdf
  • https://arxiv.org/abs/1704.01444