PDF 物理页索引 350
文件中的第 351 页 · 印刷页码:335
GPT-1 是一种不设定下游目标任务的生成式语言模型,是使用未标记的样本数据进行无监督学习训练出来的,没有具体的目标任务,自然就谈不上什么做标记和监督学习了。请注意,“不设定下游目标任务”不等同于“所有目标任务它都能胜任”,未经额外训练的 GPT-1 模型几乎不能直接处理任何 NLP任务。OpenAI 在 GPT-1 的名字上已经特别强调了它仅是一款“ Pre-trained”的模型,使用者需要在 GPT-1 模型的基础上针对特定任务进行微调(Fine-tuning)。微调阶段进行的训练就是使用有标记样例数据的监督学习训练,样例的标记结果是与具体任务直接相关的,所以微调后的模型才能适用于对应的下游任务。
这里可以用个不太严谨的比喻来帮助读者理解 GPT-1 模型的潜在价值:假设你要培养两名智力相当的孩子从事软件开发工作,其中一名孩子生活在与世隔绝的原始部落中,对世界的认知犹如白纸般一片空白;另一名孩子成长在现代都市中,理解生活中的各种常识且接受过语文、数学等基础教育。尽管这两名孩子都没有接触过编程,生活常识和语文、数学这些基础知识也的确不会令人直接就能从事软件开发工作,但显然没人质疑通识教育将对后续的编程培训有巨大的帮助,培养他们两人的开发技能在成本、效率、效果上都有不言而喻的差别。
GPT-1 基于 BookCorpus 数据集<sup>○一</sup> 进行训练。BookCorpus 数据集中收集了大约 7000 本未出版的各类图书,这些图书中包含了大量的连续文本,有助于模型学习各种难以通过语言精确描述的语法规则,有着大范围依赖关系的文本中还潜藏着各种实体和实体之间的关系,为模型理解世界的基本常识提供了途径。从模型结构与规格来看,GPT-1 与标准 Transformer 架构的解码器部分的结构高度一致,如图 8-11 所示,GPT-1 有 12 层编码解码器和 1.17 亿个参数。
第 8 章 从学习到创造
335
○一 BookCorpus 数据集:https://paperswithcode.com/dataset/bookcorpus。
PDF 物理页索引 351
文件中的第 352 页 · 印刷页码:336
GPT-1 在学术界、工业界的反馈都很不错,展示了预训练语言模型经过微调后在各种 NLP 任务上的优秀泛化能力。不过,GPT-1 在公众影响力上相对一般。想想也是,语言模型要能够广泛传播,构筑起公众影响力,除了要有优秀的输出质量,最好还要能够下载下来开箱即用,必须经过监督微调后才能使用的语言模型,对公众来说门槛还是太高了。
2019 年,OpenAI 发布了 GPT-2 模型,第二代 GPT 模型的最大变化点是针对“零样本学习性能”(Zero-Shot Learning Performance)和“少样本学习性能”(Few-Shot Learning Performance)进行改进。零样本、少样本学习的性能指标体现了模型面对从未见过的任务或问题时,能否凭借预训练过程中学到的通用知识和推理能力提供合理的回答或解决方案。具备这种能力的 GPT-2 模型只需要很少量的微调,甚至几乎不需要微调就能执行各种 NLP 任务。
336
第三部分 第三波高潮
PDF 物理页索引 352
文件中的第 353 页 · 印刷页码:337
为了在多种 NLP 任务下都达到优秀的性能而不受到 NFLT 的打击,OpenAI在 GPT-2 的训练阶段就引入了多任务学习的方法,多任务学习并不是说要打破NFLT,找到一种万能算法来解决所有问题,而是将任务类型也作为训练的一部分,让不同的任务类型对应不同的算法,具有不同的输出。
为达到此目的,GPT-2 的训练目标里除了输入、输出外,还加入了“任务类型”的参数,如果将原来 GPT-1 的训练目标表示为“优化 P(Input|Output)”的 话, 那 GPT-2 的 目 标 就 变 成 了“优 化 P(Input|Output,Task) ”。 原 来 只 关注给定输入下模型输出与实际值的差异,现在模型会为不同任务的相同输入产生不同的输出,关注的是在特定任务中给定输入下模型输出与实际值的差异。
按设计,GPT-2 模型网络架构前端的几个层次将先对用户的意图进行识别,根据意图自动进行任务调节,再选择合适的任务输出。譬如在自然语言对话任务中,使用者可通过提示词(Prompt)驱动模型完成翻译任务,向模型输入“请将‘ How are you ?’翻译为中文”,对话模型回复“你好吗?”,即可认为它并不仅仅在对话,同时也在从事机器翻译工作。
GPT-2 的多任务目标是如此复杂,超过了当时所有的语言模型,BookCorpus数据集很难再支撑起这种规模的训练,因此 OpenAI 决定动用互联网这个人类历史上最为庞大的知识库来进行训练。它从 Reddit<sup>○一</sup>网站上根据点赞数自动抓取了 800 万份共计 40GB 的高质量文章作为训练数据,这些数据后来被称为WebText 数据集。
为了承载 WebText 众多文章中蕴含的知识,GPT-2 模型的规模也有了大幅度的膨胀,仅词向量的维度就达到了 1600 维,在维度如此之高的向量空间里,即使把地球上的所有语言、所有词汇的含义组合塞进去也会显得十分稀疏。GPT-2 的解码器层数从 GPT-1 的 12 层扩充到 48 层,模型参数数量也增加了 10 多倍,从 1.17 亿个增加到了 15 亿个。
根据 OpenAI 官方给出的测试用例,GPT-2 以零样本不进行微调的状态,使用八种不同的数据集作为测试集,在阅读、理解、总结、翻译、问答等 NLP任务上与当时执行这些任务效果最好的经典语言模型进行对比,结果是 GPT-2在大多数测试中都取得了优于传统模型的结果,仅在文本摘要任务上落后于经典模型。结果表明,在更大的数据集和更多参数上训练出能够处理多种任务的语言模型是完全可行的。
第 8 章 从学习到创造
337
○一 Reddit 是一个娱乐、社交及新闻网站。
PDF 物理页索引 353
文件中的第 354 页 · 印刷页码:338
在 GPT-2 获得巨大成功的同时,OpenAI 团队内部及其投资人对语言模型后续的发展开始出现分歧。主要的分歧点有两个:GPT 模型要不要作为公共模型继续开源供全社会使用,以及 OpenAI 要不要开始进行商业化运作。
从某种意义上说,OpenAI 愿景中的“安全”和“公开”是一对矛盾体,如果所有企业都能平等地取得最先进的人工智能技术,对全人类来说到底是好事还是坏事?由于技术上的巨大成功,这些问题当时仅仅是潜藏于暗处的隐患。经过几个月确保模型安全、不被滥用的内部讨论后,GPT-2 的完整模型和全部代码最终还是在 2019 年 11 月开源,不过当时大概没人想到这是 GPT 系列模型的最后一次开源了,“ OpenAI”这个名字仿佛成了对 GPT 模型的讽刺,OpenAI 行进的路线与“致力于人工智能公共开发”的理想渐行渐远,也许就在此时,分裂的种子已被悄然种下。
2020 年,OpenAI 仍维持着每年一个大版本的节奏,发布了 GPT-3 模型。作为 GPT-2 的继任者,GPT-3 的目标是让模型能够执行更为复杂的任务,譬如编写 SQL 语句、解读文章背后的中心思想、根据用户要求撰写说明公文,等等。OpenAI 希望能够进一步增强 GPT-3 模型的零样本学习性能,对于上述不太依赖专业领域知识的任务,以便不施加额外的处理模型就能直接为普通用户提供服务。
从模型架构来看,GPT-3 的解码器层数从 GPT-2 的 48 层膨胀到 96 层,词向量的维度从 1600 维扩展到 12888 维,模型参数数量更是膨胀了 100 多倍,从 15 亿一下子到了 1750 亿<sup>○一</sup>,这种规模的模型即使不说训练,只考虑推理计算也已经超过了民用硬件的上限,基本与大众无缘了。为了训练 GPT-3,OpenAI同 时 使 用 了 五 个 数 据 集:Common Crawl<sup>○一</sup>、WebText2(Reddit)、Wikipedia、Books1、Books2(其中 Books1 和 Books2 的数据来源未公开)。
338
第三部分 第三波高潮
○一 这里可以插入一个额外知识说明为何 1750 亿(175B)规模的模型已脱离群众了:模型的空间大小基本上等同于参数数量乘以参数进度,以 16 位半精度浮点数(Half-PercisionFloating Point, FP16, 占 2 字节存储空间)为例,一个 70 亿(7B)参数量的模型大概需要占用 14GB 显存。当前(2024 年)许多大模型都会提供 7B、30B 的参数量版本,其最主要目的就是方便个人用户在主流规格的消费级显卡(具有 16GB 显存,如 RTX 4080)和专业级计算卡(具有 64GB 显存,如昇腾 910B)中运行模型。
PDF 物理页索引 354
文件中的第 355 页 · 印刷页码:339
GPT-3 的项目目标就决定了它的规模相对 GPT-2 必将大幅膨胀,OpenAI似乎也乐得如此,因为在使用多任务学习算法对 GPT-2 模型进行训练时,科学家初步观察到了一个十分神奇的现象:当训练规模(包括参数数量、训练数据量、训练时间)达到某个临界点后,模型似乎能够自发地学会一些原本并不在多任务学习清单中的额外能力。譬如在自然语言对话任务中,模型能够进行一些两位数的简单算术运算,尽管这些新的技能大多还十分稚嫩,时常出错,甚至连“9.11 和 9.8 哪个更大”这种问题都不能正确回答,但这些算术能力的确是在训练中自发学会的,完全不在设计者的预期当中。学术界借用了复杂系统科学中的“涌现”(Emergence)一词来描述该现象。
此外,人们还发现只要将任务步骤稍微拆解一下,按照思维链<sup>○二</sup>(Chain ofThought,CoT)的方式输入模型后,模型就能够更好地利用预训练与自发涌现的能力,在提示词的引导下顺利完成原本根本无法处理的复杂工作。GPT-3的生成任务是高度依赖提示词的,除了用思维链拆解复杂任务引导模型外,约束模型输出的表达格式、添加示例提升模型表现等都要通过提示词来进行,高质量的输出结果与用户能否设计出合适的提示词引导执行特定的任务密切相关。为此,从 GPT-3 开始逐渐流行起一个新的名词—“提示词工程”(PromptEngineering),原本 GPT-2 中出现的“提示词”是指引导预训练语言模型,使其能够准确识别出用户的任务意图,准确调节到执行特定任务上,现在加上“工程”二字,成了一种在编程之外的人类驱使计算机执行任务的全新方法。提示词工程与训练模型、编写代码相比没有太高的专业或学术门槛,却又需要一定的经验,更容易被大众所接受,后来发展成为公众参与到人工智能热潮中的一门显学,人工智能准入门槛的下降也显著提升了它从社会获得资源的速度。
GPT-3 发布后,OpenAI 既看到了模型规模膨胀对计算资源的巨大压力,也看到了 GPT-3 在与人机协作共同执行复杂任务背后的巨大潜力。为此,OpenAI 以 GPT-3 的代码为基线建立了两个分支:一个分支以提升计算性能和降低资源消耗为目标,代号为“GPT-Turbo”,这部分属于工程改进,笔者就不细表了;另一个分支的代号为“ InstructGPT”,从名字上就清晰地传达了这个分支的目标是专注于改善模型对用户指令的理解和执行能力。
第 8 章 从学习到创造
339
○一 地址为 https://www.commoncrawl.org/,一个从 2008 年起就通过爬虫对互联网进行爬取,并向公众免费提供其档案的互联网数据集。
○二 这个方法旨在模拟人类的思考方式,分步解释问题的逻辑,类似于解数学问题时逐步计算的过程。CoT 使得模型能够更好地理解复杂问题并产生更准确的回答。
PDF 物理页索引 355
文件中的第 356 页 · 印刷页码:340
从模型架构层面来看,InstructGPT 与 GPT-3 是高度雷同的,均是 96 层解码器和 1750 亿参数量,但从训练层面来看,InstructGPT 采用的训练方法与数据集都与 GPT-3 有显著区别。InstructGPT 使用“人类反馈强化学习”(Reinforcement Learning from Human Feedback,RLHF)进行训练,RLHF 使模型能够在人类的指引下更好地理解复杂的指令并生成符合用户期望的输出,提高了模型对用户意图的捕捉能力。后来,InstructGPT 训练相对成熟后再与GPT-Turbo 分支融合,最终形成了代号为“ GPT-Turbo-Instruct”的分支,这四个分支(GPT、GPT-Turbo、Instruct GPT、GPT-Turbo-Instruct)便构成了当前GPT-3.5 模型的四种主要版本。
实际上,GPT-3.5 模型从来没有像 GPT-1、GPT-2 那样单独发布过,却是截至笔者落笔之时(2024 年年中)最为公众所熟知的语言模型,原因相信大家都清楚,OpenAI 在 2022 年 11 月发布了划时代的 ChatGPT 产品<sup>○一</sup>,其背后所依赖的语言模型便是 GPT-3.5 四个版本中的“GPT-3.5-Turbo”。
ChatGPT 的诞生所带来的影响比历史上任何一次人工智能事件的影响都要更加广泛,它不再是实验室里的科研突破,也不再是哪项比赛上赢了某位世界冠军的“少数人事件”,而是已经来到你我面前,普通人也能够看得见、摸得着的公开产品。ChatGPT 在短短五天内就发展了 100 万用户,展示出来的效果彻底颠覆了过去人们对人工智能助手的呆板印象。关于 ChatGPT 的故事与新闻在各大传统或网络媒体上已汗牛充栋,笔者不再重复。反正自此以后,就没有什么人再敢讥讽人工智能助手为“人工智障”了。对于普通大众来说,他们在切身感受到人工智能发展的同时,对人工智能带来威胁的忧虑情绪也积聚更深。而对于企业尤其是互联网巨头来说,则是既兴奋无比又无可奈何地进一步陷入大语言模型和大规模算力的军备竞赛当中,毕竟谁也不敢对一场大概率会比 30 年前互联网革命影响更加深远的技术变革掉以轻心。譬如谷歌在 2022 年发布用来对标 ChatGPT 的对话产品 Bard,其核心的“路径语言模型”(PathwaysLanguage Model,PaLM)的参数数量达到离谱的 5400 亿,即便谷歌动用了专用的发电站和专门为其调整的大型 GPU/TPU(Tensor Processing Units)集群,训练一次也需要耗费数月时间和数千万美元的费用,而背后那群全球顶尖科学家的人力资源成本更是不可估量。
340
第三部分 第三波高潮
○一 传言 OpenAI 本没有打算在此时发布 ChatGPT,但听到 Anthropic(一家由几位参与了GPT-2、GPT-3 开发的研究人员离职后创立的人工智能公司,这家公司的 Claude 机器人也相当有名)要发布一款聊天机器人后,就把内部用的相对完善的 ChatGPT 包装后率先发布出去,结果率先发布的 ChatGPT 一炮而红。
PDF 物理页索引 356
文件中的第 357 页 · 印刷页码:341
笔者认为在“规模定律”(Scaling Law)的驱使下,模型参数规模和算力规模上的竞争仍然会持续一段时间,但是参数规模与算力规模不会是决定模型性能的唯一因素,甚至不会成为最本质的根因。现在有一种越来越主流的观点认为,在模型结构确定的情况下,学习率、训练批次大小、序列长度、优化算法、正则化系数、Dropout 率等超参数(Hyperparameter)对最终性能的影响更大。大模型的时间和资源成本限制了它往往只能被训练一次,而一锤子买卖导致无法用反复试错和比较的方法获得最优的超参数集,这样的训练既要靠经验也要靠运气,能训练出什么结果只有训练完才能揭晓,体验真的跟“炼丹”差不了多少。
也许是受到类似的观点影响,2023 年发布的 GPT-4 模型的规模终于止住了前几代 GPT 模型以每年十倍、百倍膨胀的势头,尽管 GPT-2 之后版本的代码、模型和具体技术细节没有再公开过,但 OpenAI 关键成员的公开演讲透露了 GPT-4 的规模仅略大于 GPT-3<sup>○一</sup>,不过表现出来的能力仍然有明显飞跃,这要归功于 GPT-Turbo 对降低成本、提升资源利用效率的工程贡献。
GPT-4 的项目目标也发生了较大的变化,一改前几代专注于文本生成领域,开始从单纯的文本走向多模态(Multimodal),每种模态代表一种不同类型的数据,譬如文本、图像、视频、声音、手势,等等。因此,GPT-4 不仅能接收用户的文字内容,还能接收用户上传的语音与图片,听懂音频中的语气和语调,理解图片中的表情和物体间关系;它不仅能用文本回答用户的问题,还能根据用户的要求,绘制图片、生成语音、作曲、绘画等。
第 8 章 从学习到创造
341
○一 在 GPT-4 发布之前,网传 GPT-4 的参数数量将膨胀 1000 倍,从 1750 亿膨胀到 100 万亿。为了使这个对当前硬件和训练规模缺乏基本常识的谣言看起来可信,造谣者还伪造了一张 OpenAI 的推特消息截图。后来 OpenAI 多次辟谣,明确说 GPT-4 的规模仅比GPT-3.5 略大。
PDF 物理页索引 357
文件中的第 358 页 · 印刷页码:342
为了训练好 GPT-4,OpenAI 足足动用了 2.5PB 数据,这些数据包括代表人类互联网信息的 Common Crawl 和 WebText2 数据集、代表人类百科知识的 Wikipedia 数据集、代表人类书籍的 BooksCorpus 数据集、开放的图片数据集 Open Images<sup>○一</sup>、开放语音数据集 LibriSpeech<sup>○二</sup>,以及 YouTube 上十几TB 的视频。如此大规模的训练,让 GPT-4 进化成多模态模型,进一步超越了GPT-3.5 的性能,维持住了 OpenAI 世界上最先进的人工智能组织地位,也消耗了大量 OpenAI 的资金与人力资源。此时此刻,OpenAI 内部涌动了很长时间的暗潮终于浮上水面,让表面光鲜无限的 OpenAI 一下子陷入风雨飘摇的境地。
8.7 现实与理想
将时间稍微回退到 2017 年 3 月,这是 OpenAI 创立的第 15 个月,它撰写了一篇名为《OpenAI 宪章》<sup>○三</sup>(OpenAI Charter,以下简称《宪章》)的文章,向世界陈述 OpenAI 这个组织的使命。《宪章》中明确提到了几项原则:非盈利—OpenAI 承诺不会与它的干系人产生任何利益冲突;安全—OpenAI承诺会采取一切措施保证人工智能造福人类而非给人类带来威胁;开放—OpenAI 承诺要公开提供研究所得的产品以协助全社会走向智能化道路。
作为一个愿景是推动人工智能造福人类的组织,以上每条原则都透露着它的雄心壮志与崇高品格,不过,这家拥有全世界顶尖人工智能技术的公司要在现实社会中生存下来,仅凭理想与品格恐怕是办不到的,《宪章》中的这些原则将对 OpenAI 的发展产生怎样的影响呢?
342
第三部分 第三波高潮
○一 https://github.com/openimages/dataset。
○二 https://www.openslr.org/12。
○三 《 OpenAI 宪章》(https://openai.com/charter)对外公开其实是在 2018 年 4 月,但资料显示,在 2017 年 3 月,OpenAI 内部就已经有这篇文章了。
PDF 物理页索引 358
文件中的第 359 页 · 印刷页码:343
- 非盈利
哪怕在 2023 年经历了一轮快速扩张,人员翻倍后的 OpenAI 也仅有 700多名员工,这与动辄以 10 万人计的其他人工智能巨头相比是相当精简的组织。在这个组织里,CEO 奥特曼分文不取,CTO 布罗克曼也只领取 17.5 万美元的非盈利机构年薪<sup>○一</sup>。按正常初创企业来估算,无论是高达 10 亿美元的启动资金,还是后来微软追加的 130 亿美元投资,都应该够 OpenAI 持续运作很长一段时间才对。但是现实情况恰恰相反,资金一直是困扰 OpenAI 的首要问题。早在2017 年,OpenAI 的董事会就已经意识到如果未来不能获得每年数十亿美元的稳定资金,OpenAI 就不可能发展成世界顶级的人工智能研究机构。这个数字远远超过了作为非盈利组织可能筹集到的资金上限。后来的事实证明了商业和技术天才的眼光之准确,根据资料显示<sup>○二</sup>,2024 年 OpenAI 的总运营成本达到了85 亿美元,其中推理和训练的算力费用占主要部分,分别耗费 40 亿美元和 30亿美元。
2018 年 2 月,马斯克向苏茨克维和奥特曼发了一封电子邮件,提议将OpenAI 并入特斯拉公司,只有特斯拉这种体量且需要人工智能的企业才可能为 OpenAI 提供持续的资金支持。马斯克在邮件中写道:“特斯拉是唯一有希望令 OpenAI 与谷歌比肩的公司。即便有特斯拉支持,OpenAI 与谷歌抗衡的可能性也依然很小,但它至少不再是零。”
并入特斯拉意味着 OpenAI 将从此变成一个商业组织,特斯拉提供大量资金支持也意味着马斯克将获得 OpenAI 的绝对控制权。该提议遭到 OpenAI 董事会里多数成员的反对,合并的交易最终未能达成,马斯克也为此愤然退出了OpenAI 董事会,从此与 OpenAI 交恶。
马斯克离开了,资金的困局仍在,OpenAI 技术方面的进展一日千里,但经济方面的泥潭却越陷越深,在最困难的时刻,原本只担任兼职董事的奥特曼决定辞去 YC Combinator 的总裁职务,全职参与 OpenAI 工作来挽救危局,布罗克曼随即为他让出 CEO 的职位,自己退居 CTO 一职。
第 8 章 从学习到创造
343
○一 数据来源是 OpenAI 公开的报税表。
○二 https://wallstreetcn.com/articles/3721008。
PDF 物理页索引 359
文件中的第 360 页 · 印刷页码:344
拒绝马斯克和特斯拉的并购后,奥特曼请来的“救世主”是微软公司,微软同意在未来五年时间内向 OpenAI 注入 130 亿美元,当然,不可能是捐款,只能是投资。为了能够给予微软投资回报,同时也守住 OpenAI 非盈利的性质,双方最终想出了一个办法<sup>○一</sup>:OpenAI 设立一家有利润上限(Capped-Profit)的盈利性子公司“ OpenAI LP”来推进商业计划,将 OpenAI 的所有产品和大多数员工转入其中。不得不说西方确实擅长金融和商业创新,能想出这样的办法把使命驱动型研究和商业实用主义有机地结合起来。
“有利润上限”是指当利润额超过投资额的一定比例以后,超额的利润将归属母公司 OpenAI 用于人工智能的研究。这听起来很合理,但如果细读OpenAI LP 的招商文件,你会发现这个比例居然是投资额的 100 倍。根据协议,微软第一阶段将获得 OpenAI LP 利润总额的 75%,直到其 130 亿美元投资得到全额偿还,之后继续获得 OpenAI LP 的 49% 利润,直至达到 100 倍的理论上限。笔者对 OpenAI 这种马上就能实现盈利而且达到世界 500 强级别的盈利能力(2024 年世界 500 强企业的平均年利润约 54 亿美元),也要给微软打工几百年才能完成投资协议的做法感到难以理解<sup>○二</sup>。无论如何,这样的商业化对OpenAI 来说大概未必算是好事,可是对 OpenAI 的员工来说倒不见得是坏事,OpenAI LP 给员工预留了股份,且允许员工通过出售股份获得有限额的财务回报—限额为每位员工 1000 万美元。因而,便可以理解为什么微软对 OpenAI的投资没有像特斯拉那样遭到抵制,反而扮演了救世主的角色了。
- 开放
马斯克出走 OpenAI 后自己成立了一家名为“ xAI”的人工智能公司,推出了与 ChatGPT 竞争的智能机器人 Grok,还向旧金山高等法院提起诉讼,理由是奥特曼违背了 OpenAI 成立时承诺的为造福人类而不是追求利润的约定,要求禁止 OpenAI 和微软公司从人工智能技术中获利,还要求 OpenAI 恢复开源。马斯克在推特上宣称只要奥特曼愿意把 OpenAI 的名字改为 ClosedAI,他就立刻撤销诉讼,毫无疑问这是在讽刺 OpenAI 的不开放行为。
344
第三部分 第三波高潮
○一 事实上,创建盈利性子公司这个想法最早是马斯克自己提出的,只是没能用在特斯拉身上,而被微软得利了。OpenAI 甚至还把马斯克相关邮件放到其官网上用作证明。
○二 业界传闻微软与 OpenAI 专门协商过,不可能真的按 100 倍利润上限让 OpenAI 给微软打工几百年,微软获取的利润上限应该在 10 倍至 15 倍投资额,不过 OpenAI 和微软都没有公开这方面的资料。