GPT-3
GPT-3 是 OpenAI 于 2020 年推出、拥有 1750 亿参数的语言模型。它能够根据提示词中的示例学习任务,并为 ChatGPT 铺平了道路。
GPT-3(生成式预训练 Transformer 3)是一种拥有 1,750 亿参数的大型语言模型(LLM),OpenAI 于 2020 年 5 月在论文《语言模型是少样本学习者》中对其进行了介绍。它的规模是前代 GPT-2 的 100 多倍,其最受关注的成果是上下文学习:给定任务描述和提示中的少量示例,同一个冻结模型无需任何微调,就能翻译、回答问题或进行算术运算。OpenAI 从未发布其权重,只通过于 2020 年 6 月推出的 API 提供 GPT-3。GPT-3 的指令微调后代成为 ChatGPT 背后的 GPT-3.5 模型,并于 2022 年末让GPT系列家喻户晓。
架构与训练#
GPT-3 是一种仅含解码器的Transformer,设计与 GPT-2 相同,但规模更大。最大型号有 96 层、12,288 的宽度、96 个注意力头(每个头的维度为 128),以及 2,048 个词元的上下文窗口;其各层交替使用密集注意力和局部带状稀疏注意力。它沿用了 GPT-2 的字节级 BPE 分词方式,词汇表包含 50,257 个词元。论文训练了 8 种规模的模型,从 1.25 亿到 1,750 亿参数不等;每种模型都在 3,000 亿个词元上训练,这些词元来自经过筛选的 Common Crawl(训练数据组合的 60%)、WebText2(22%)、两个图书语料库(各 8%)和英文 Wikipedia(3%),并使用 Microsoft 提供集群中的 V100 GPU。这些超参数决定了模型规模和训练成本:
# GPT-3 175B: layers, width, and context from the paper's Table 2.1, plus GPT-2's vocabulary
n_layers, d_model, vocab_size, context = 96, 12288, 50257, 2048
# Each decoder block holds 4 * d^2 attention weights and 8 * d^2 feed-forward weights (4x hidden width)
blocks = n_layers * 12 * d_model**2
embeddings = (vocab_size + context) * d_model # token and learned position embeddings
params = blocks + embeddings
print(f"Parameters: {params / 1e9:.1f} billion ({blocks / params:.1%} in the decoder blocks)")
# Training compute: about 6 FLOPs per parameter per token, over 300 billion training tokens
flops = 6 * params * 300e9
print(f"Training compute: {flops:.2e} FLOPs = {flops / (1e15 * 86400):,.0f} petaflop/s-days")它会输出 1,746 亿个参数,其中 99.6% 位于解码器块中;还会输出 3.14e+23 次浮点运算,即 3,637 petaflop/s-days,与论文附录所列的 174,600 百万个参数和 3.14e+23 次浮点运算相符。
少样本与上下文学习#
论文评估了三种提示设置。零样本只提供指令,单样本增加一个完整示例,少样本则尽可能多地加入示例,通常为 10 到 100 个,具体取决于上下文窗口容量。随着模型规模和示例数量增加,性能也会提高:在 TriviaQA 问答基准测试中,拥有 1,750 亿参数的模型在零样本、单样本和少样本设置下分别得分 64.3%、68.0% 和 71.2%;最后一项超过了相同封闭书本设置下的微调系统。少样本提示让提示工程成为使用 LLM 的标准方法,而这些结果也支持了缩放定律的观点:更大的模型能从上下文中学到更多。相同的“用提示而非重新训练”的理念也应用于 YOLOE-26中的目标检测;它的视觉提示会使用参考图像中围绕示例绘制的框来定义类别,随后模型无需更新权重,就能在新图像中查找该类别。
从 GPT-3 到 ChatGPT#
Microsoft 于 2020 年 9 月获得 GPT-3 底层模型的独家许可;OpenAI 的 Codex 是一个在公开代码上微调的 GPT-3 后代,为 2021 年首版 GitHub Copilot 提供了支持。基础版 GPT-3 擅长续写文本,却不善于遵循指令,因此 OpenAI 采用了指令微调和基于人类反馈的强化学习(RLHF)。标注人员更偏好拥有 13 亿参数的 InstructGPT模型输出,而非拥有 1,750 亿参数的 GPT-3 输出。这条发展路线最终促成了 2022 年 11 月推出的 GPT-3.5 和 ChatGPT,随后是 2023 年 3 月推出的多模态GPT-4。Meta 的 OPT-175B 和 BigScience 的 BLOOM 于 2022 年以开放权重复现了 GPT-3 规模的模型。
GPT-3 与相关模型的区别#
- GPT-2:2019 年推出的前代模型,拥有 15 亿参数,架构和分词器相同,但规模约为其百分之一,上下文长度为 1,024 个词元。
- GPT-4:2023 年推出的后继模型,除了文本还可接收图像,并且经过后训练后能更可靠地遵循指令。
- BERT:Google 于 2018 年推出的仅含编码器的模型,可双向读取文本,适用于分类和抽取任务。
局限性#
GPT-3 论文本身列出了该模型的许多弱点。它会重复内容,在较长段落中失去连贯性,也会犯基本的物理常识错误;和后来的 LLM 一样,它会自信地陈述虚假事实,这种现象如今称为幻觉。作者测量了模型输出中的性别、种族和宗教偏见,并发现一些基准测试集已泄漏到网络训练数据中。它的文本生成也很难与人类写作区分:评估人员只有在 52% 的情况下才能识别出由拥有 1,750 亿参数的模型撰写的 200 词新闻文章。OpenAI 于 2024 年 1 月 4 日关闭了原始的 ada、babbage、curie 和 davinci API 模型,并用 babbage-002 和 davinci-002 取代它们。










