当前位置: 首页 > news >正文

10 GPT-3 论文精读:Few-shot Learning 为什么会出现?

在上一篇文章中,我们精读了 GPT-2。

GPT-2 的核心思想是:

语言模型是无监督多任务学习器

也就是说,当一个语言模型在足够大、足够多样的网页文本上进行训练后,它可能会从自然语言中自动学到许多任务模式,并在没有下游任务微调的情况下完成部分 NLP 任务。GPT-2 已经开始展示 zero-shot 能力,但这种能力还比较初级。它更多是通过文本续写的方式,在某些任务上表现出“像是在做任务”的能力。

到了 GPT-3,问题进一步变成:

如果继续扩大模型规模,语言模型能否只通过任务描述和少量示例,就在不更新参数的情况下完成新任务?

这就是 GPT-3 论文的核心问题。GPT-3 对应的论文是:

Language Models are Few-Shot Learners

这篇论文由 OpenAI 在 2020 年提出。GPT-3 是一个 1750 亿参数的自回归语言模型,也是大语言模型发展史上的关键节点之一。如果说 GPT-1 证明了“生成式预训练 + 微调”可行,GPT-2 开始探索“zero-shot 任务迁移”,那么 GPT-3 则系统展示了:

模型规模扩大后,语言模型可以通过上下文中的任务描述和少量样例完成任务。

这就是 few-shot learning,也就是少样本学习。


一、GPT-3 想解决什么问题?

在 GPT-3 之前,预训练语言模型通常还需要下游任务微调。例如 BERT 和 GPT-1 都采用类似流程:

大规模无标注预训练 ↓ 下游任务有监督微调 ↓ 任务评估

这种方式虽然有效,但仍然有明显问题。

首先,每个任务都需要标注数据。

例如情感分类需要情感标签,自然语言推理需要句子关系标签,阅读理解需要问题和答案标注。对于每个新任务,都要重新构造数据集。

其次,每个任务都需要更新模型参数。

模型在任务 A 上微调后,可能就不再适合任务 B;如果任务很多,就需要保存多个任务版本的模型。

再次,这种方式和人类学习新任务的方式不太一样。

人类通常不需要几万条标注样本才能理解一个任务。比如我们只要看到几个例子:

输入:这部电影太好看了。 输出:正面 输入:剧情拖沓,我不喜欢。 输出:负面

然后再看到:

输入:演员演技很好,故事也很感人。 输出:

我们很容易判断应该输出:

正面

GPT-3 想探索的就是类似能力:

模型能不能通过上下文中的自然语言描述和少量示例,临时理解任务,而不需要更新参数?

这就是 GPT-3 论文中的 few-shot learning。


二、GPT-3 的核心思想:任务通过上下文给出

GPT-3 最大的变化不是换了一个完全不同的模型结构,而是改变了模型使用方式。

GPT-2 已经提出:

不微调,直接让语言模型 zero-shot 做任务

GPT-3 进一步提出:

不仅可以 zero-shot,还可以在 prompt 中给几个示例,让模型根据上下文学会任务格式。

例如情感分类任务。

Zero-shot

Zero-shot 是只给任务说明,不给示例:

请判断下面句子的情感是正面还是负面。 句子:这部电影非常精彩,我很喜欢。 答案:

模型需要直接输出:

正面

One-shot

One-shot 是给一个示例:

请判断句子的情感是正面还是负面。 句子:剧情拖沓,我不喜欢。 答案:负面 句子:这部电影非常精彩,我很喜欢。 答案:

模型需要根据前面一个例子理解任务。

Few-shot

Few-shot 是给多个示例:

请判断句子的情感是正面还是负面。 句子:剧情拖沓,我不喜欢。 答案:负面 句子:演员演技很好,故事也很感人。 答案:正面 句子:这部电影节奏混乱,看得很累。 答案:负面 句子:画面很美,音乐也很好听。 答案:

模型需要继续输出:

正面

这里最关键的是:

模型参数没有更新,任务信息完全通过 prompt 中的自然语言和示例提供。

这就是 GPT-3 论文中非常重要的思想:in-context learning


三、什么是 In-context Learning?

In-context learning 可以翻译为上下文学习。它指的是:

模型在不进行梯度更新的情况下,仅根据输入上下文中的任务描述和示例,临时适应一个新任务。

这和传统微调非常不同。传统微调是:

给模型很多任务样本 ↓ 计算损失 ↓ 反向传播 ↓ 更新模型参数 ↓ 得到适配任务的新模型

而 in-context learning 是:

把任务描述和示例写进 prompt ↓ 模型读取上下文 ↓ 模型根据上下文模式直接输出答案 ↓ 模型参数不变

也就是说,GPT-3 的 few-shot learning 不是传统机器学习中的“少量样本微调”。它不是用少量样本更新参数,而是把少量样本作为上下文的一部分,让模型在当前输入中“看懂”任务。

这点非常重要。很多初学者看到 few-shot learning,会误以为 GPT-3 用几个样本做了微调。实际上,GPT-3 论文强调的是:

没有梯度更新 没有任务特定微调 只有文本形式的任务描述和示例

所以 GPT-3 的 few-shot 更准确地说是:

few-shot prompting

或者:

in-context few-shot learning

四、GPT-3 的模型结构:更大的 Decoder-only Transformer

GPT-3 没有彻底改变 GPT-2 的结构。它仍然是 Decoder-only Transformer,仍然使用自回归语言建模目标。整体流程可以写成:

输入 token 序列 ↓ Token Embedding + Position Embedding ↓ Transformer Decoder Block × N ↓ 输出隐藏状态 ↓ LM Head ↓ 预测下一个 token

它的训练目标仍然是:

对应的负对数似然损失可以写成:

其中:

  • 是当前位置 token;

  • 表示当前位置之前的所有 token;

  • 模型目标是让真实下一个 token 的概率尽可能高。

也就是说,GPT-3 依然是在做最基本的 next-token prediction。但 GPT-3 的规模大幅增加。论文中训练了多个不同大小的模型,从 125M 参数一直到 175B 参数。最大模型 GPT-3 175B 包含 96 层 Transformer,隐藏维度为 12288,注意力头数为 96,上下文长度为 2048 tokens。可以简单对比一下:

模型参数量主要特点
GPT-1约 117M验证生成式预训练 + 微调
GPT-2最大约 1.5B探索 zero-shot 任务迁移
GPT-3最大 175B系统展示 zero-shot / one-shot / few-shot 能力

GPT-3 相比 GPT-2 最大版本大约扩大了两个数量级。这也是 GPT-3 能力变化的重要原因之一。


五、GPT-3 的训练数据:更大、更混合的文本语料

GPT-3 使用了混合文本数据进行训练。主要来源包括:

Common Crawl WebText2 Books1 Books2 Wikipedia

其中 Common Crawl 是网页抓取数据,规模非常大,但质量参差不齐。为了提高质量,GPT-3 对 Common Crawl 进行了过滤和去重。WebText2 可以看作 GPT-2 WebText 思路的延续,来自经过用户筛选的网页文本。Books1 和 Books2 提供了更长、更连贯的书籍文本。Wikipedia 提供了百科式知识和规范文本。这些数据来源的组合让 GPT-3 能够接触到非常多样的语言形式:

网页文章 百科知识 书籍叙事 问答格式 教程文本 代码片段 新闻内容 论坛讨论

为什么数据多样性很重要?因为 GPT-3 的 few-shot 能力不是来自任务微调,而是来自预训练时见过的大量自然文本模式。如果训练语料中包含大量类似下面的格式:

Question: ... Answer: ...

模型就可能学会问答模式。如果训练语料中包含:

English: ... French: ...

模型就可能学到翻译模式。如果训练语料中包含:

Input: ... Output: ...

模型就可能学会根据上下文推断输入输出映射。所以 GPT-3 的 few-shot 能力和训练数据中的任务模式密切相关。


六、GPT-3 如何评估 Zero-shot、One-shot 和 Few-shot?

GPT-3 论文非常系统地定义了三种评估方式。

1. Zero-shot

Zero-shot 指模型只看到任务描述,不看到任何示例。例如:

Translate English to French: cheese =>

模型需要直接输出:

fromage

这种方式最接近“直接听懂任务指令”。但是 GPT-3 不是经过 instruction tuning 的模型,因此它的 zero-shot 能力并不像今天的 ChatGPT 那么稳定。

2. One-shot

One-shot 指模型看到一个任务示例。例如:

Translate English to French: sea otter => loutre de mer cheese =>

模型需要根据唯一示例,判断任务是英文到法文翻译,然后输出:

fromage

3. Few-shot

Few-shot 指模型看到多个任务示例。例如:

Translate English to French: sea otter => loutre de mer peppermint => menthe poivrée plush giraffe => girafe peluche cheese =>

模型继续输出:

fromage

在 few-shot setting 中,示例数量受上下文长度限制。GPT-3 的上下文长度是 2048 tokens,所以能放入的示例数量有限。注意,这些示例只是作为文本输入放进 prompt 中。模型不会对这些示例进行反向传播,也不会更新参数。这就是 GPT-3 和传统 supervised fine-tuning 的核心区别。


七、Few-shot Learning 为什么会出现?

现在我们回到本章标题:

Few-shot Learning 为什么会出现?

从 GPT-3 的角度看,few-shot learning 的出现主要来自三个因素。

1. 语言建模目标本身具有任务统一性

GPT-3 训练目标非常简单:

根据前文预测下一个 token

但自然语言中的很多任务都可以写成“前文 → 后文”的形式。例如翻译任务:

English: I love you. Chinese: 我爱你。

摘要任务:

Article: ... Summary: ...

问答任务:

Question: ... Answer: ...

分类任务:

Review: ... Sentiment: positive

这些任务本质上都可以转成条件文本生成。因此,语言模型只要足够强,就可以把这些任务统一到 next-token prediction 中。

2. 大规模数据中天然包含任务示例

互联网文本中包含大量类似“输入-输出”的结构。例如:

问题和答案 标题和正文 文章和摘要 代码注释和代码 英文和译文 教程中的示例 表格中的键值对

GPT-3 在预训练中可能见过大量这样的模式。所以当我们在 prompt 中写出几个示例时,模型可能会识别出:

这些示例描述了一个任务模式 我应该按照同样模式继续生成

3. 模型规模扩大后,上下文模式识别能力增强

小模型也能做文本续写,但它可能无法稳定理解复杂 prompt 中的任务模式。模型变大后,参数容量更强,能记住和组合更多语言模式,也能更好地利用长上下文。例如看到:

输入:3 + 5 输出:8 输入:7 + 2 输出:9 输入:9 + 6 输出:

较小模型可能只是继续生成看似合理的数字。较大模型更可能理解这是一个加法任务,并输出:

15

这就是 GPT-3 的关键观察:

随着模型规模增加,模型在上下文中识别任务并继续执行任务的能力显著增强。


八、GPT-3 的实验结果应该怎么看?

GPT-3 论文评估了非常多任务,包括语言建模、问答、翻译、完形填空、常识推理、阅读理解、自然语言推理、数学计算、词语重排、使用新词造句等。这篇论文的重点不是某一个任务的单点成绩,而是系统展示:

同一个模型 不做任务微调 只通过 prompt 可以在很多任务上表现出非平凡能力

1. 语言建模

GPT-3 在多个语言建模数据集上表现强,说明更大规模的自回归语言模型可以更好地建模文本分布。这也是后续任务能力的基础。

2. 问答任务

GPT-3 在一些问答数据集上展现了较强 few-shot 能力。当 prompt 中给出几个问答示例后,模型可以按照相同格式回答新问题。这说明模型不只是“背答案”,还能够根据上下文中的问答格式完成任务。

3. 翻译任务

GPT-3 在翻译任务上也表现出一定能力,尤其是翻译成英文时更强。这说明大规模英文主导语料中仍然包含一定跨语言模式,但其多语言能力并不均衡。

4. 算术与推理任务

GPT-3 论文中特别测试了简单算术、词语重排、使用新词造句等任务。这些任务很有代表性,因为它们不只是检索知识,还要求模型根据上下文规则进行临时适应。

例如:

A "dax" is a small animal. Use "dax" in a sentence:

模型需要根据上下文理解一个新词,并在句子中正确使用它。这说明 GPT-3 具备一定的临时任务适应能力。

5. 生成能力

GPT-3 还展示了强大的长文本生成能力。论文中提到,人类评估者在区分 GPT-3 生成新闻和人类写作新闻时并不总是容易。这说明 GPT-3 的语言流畅性和篇章生成能力相比 GPT-2 有明显提升。


九、GPT-3 和 GPT-2 的核心区别

现在可以把 GPT-2 和 GPT-3 放在一起看。

对比维度GPT-2GPT-3
论文标题Language Models are Unsupervised Multitask LearnersLanguage Models are Few-Shot Learners
最大参数量约 1.5B175B
核心能力zero-shot 任务迁移初步出现zero-shot / one-shot / few-shot 系统展示
是否微调不针对任务微调不针对任务微调
任务形式通过文本提示续写通过任务说明和示例进行上下文学习
关键意义证明语言模型可无监督多任务证明规模化模型可 few-shot 适应任务

GPT-2 关注的是:

模型能不能在没有任务训练的情况下直接做任务?

GPT-3 进一步关注:

如果在上下文中给模型几个示例,它能不能临时学会任务?

所以,GPT-3 是从 zero-shot 走向 in-context few-shot 的关键节点。


十、GPT-3 和传统微调有什么区别?

GPT-3 的 few-shot learning 和传统 supervised fine-tuning 很容易混淆。我们用表格对比一下。

对比维度传统微调GPT-3 Few-shot Prompting
是否更新参数更新参数不更新参数
是否需要训练过程需要反向传播不需要反向传播
样本使用方式作为训练数据作为 prompt 上下文
任务适配方式修改模型参数修改输入文本
模型副本每个任务可能一个模型一个模型处理多个任务
成本需要训练资源主要消耗上下文长度和推理成本

传统微调像是:

把任务知识写进模型参数里

GPT-3 few-shot prompting 更像是:

把任务规则写进上下文里,让模型临时遵循

这就是两者最大的区别。这也是为什么 GPT-3 改变了大家使用语言模型的方式。以前我们更关心:

如何微调模型?

GPT-3 之后,大家开始更关心:

如何设计 prompt? 如何提供示例? 如何让模型在上下文中理解任务?

这就是 prompt engineering 和 in-context learning 兴起的原因。


十一、GPT-3 的局限性

GPT-3 非常重要,但并不完美。

1. Few-shot 能力不稳定

GPT-3 的 few-shot 表现受到 prompt 格式、示例选择、示例顺序、任务表述方式影响。

同一个任务,换一种 prompt,结果可能明显不同。

这说明 GPT-3 还没有真正稳定地“理解任务”,而是很依赖上下文模式。

2. 仍然容易产生幻觉

GPT-3 的训练目标是预测高概率文本,而不是保证事实真实。

因此它可能生成看起来合理但实际上错误的内容。

例如编造不存在的引用、错误解释事实、给出不可靠答案。

3. 推理能力有限

GPT-3 在简单算术和推理任务上表现出一定能力,但复杂多步推理仍然容易出错。

后来 Chain-of-Thought、Self-Consistency、Tool Use、RL 推理模型等工作,都是在继续解决这个问题。

4. 数据污染和评测问题

GPT-3 使用大规模网页语料训练,很难完全避免训练数据与评测数据重叠。

论文也讨论了一些数据污染和 benchmark 评估相关问题。

这提醒我们:大模型评测并不简单,尤其是当训练数据来自大规模互联网时。

5. 缺少指令对齐

GPT-3 原始模型并不是 ChatGPT。

它没有经过后来的 SFT、RLHF 或 DPO 对齐训练。

因此,它虽然具备很强的文本生成能力,但不一定能稳定遵循用户指令,也不一定安全可靠。

这也是为什么后面会出现 InstructGPT。


十二、GPT-3 在大语言模型发展中的位置

GPT-3 是大语言模型发展史上的关键转折点。

它把研究重点从:

预训练模型如何微调到下游任务?

推进到:

大模型能否通过上下文直接完成任务?

这带来了三个重要变化。

1. 从 Fine-tuning 到 Prompting

GPT-3 之后,prompt 成为模型使用方式中的核心概念。

很多任务不再首先考虑微调,而是先尝试通过自然语言指令和示例完成。

2. 从任务专用模型到通用接口

GPT-3 展示了一个模型可以通过不同 prompt 适配多种任务。

这让语言模型逐渐从“某个 NLP 任务的模型”变成“通用语言接口”。

3. 从模型结构创新到规模效应

GPT-3 没有提出全新架构,而是主要通过扩大模型规模、数据规模和计算量来提升能力。

这让研究者更加重视 scaling law,也为后来的 Chinchilla、PaLM、LLaMA、DeepSeek 等模型提供了重要背景。

可以这样理解:

GPT-1:生成式预训练可以迁移 GPT-2:语言模型可以 zero-shot 做任务 GPT-3:大语言模型可以 few-shot 上下文学习 InstructGPT:大语言模型需要对齐用户意图 ChatGPT:对齐后的大语言模型成为通用对话接口

GPT-3 是从“预训练语言模型”走向“大语言模型”的标志性节点。

http://www.rkmt.cn/news/1420880.html

相关文章:

  • 南通婚纱照推荐:这两家领衔 五大热门品牌测评+外景场地指南 - 江湖评测
  • 分析 Taotoken 用量看板数据优化个人开发者的 Token 消耗习惯
  • 【字节跳动】山西大同塞外风电水冷超算母港 极致精细化逐条全拆解
  • 告别Everything界面!用Python 3.10+ctypes打造你的专属文件搜索命令行工具
  • HslCommunication测试工具隐藏玩法:除了测通断,还能当简易数据监控器和协议学习器
  • 泉城翡翠变现指南:从手镯到挂件,2026年本地回收商成色判定全揭秘 - 合扬奢侈品交易中心
  • 2026年青岛液氧液氮液氩供应商怎么选?一文对标工业气体全产业链 - 年度推荐企业名录
  • 全户型精工整装 金螳螂家宜昌店满足宜昌各类家装需求 - 速递信息
  • MFAC无模型自适应控制入门:从理论到Matlab仿真,如何调节λ等参数让系统响应又快又稳?
  • 2026年山东工业气体供应商选型指南:如何找到真正靠谱的液氧液氮液氩一站式服务商 - 年度推荐企业名录
  • 2026年全国十大焊接机器人服务商推荐!2026山东最新排名出炉,赛铂数控实力领先 - 十大品牌榜
  • 2026北京海淀区公司注销哪家靠谱?3家机构实测,首选志鸿润达财税! - 小柏云
  • 2026年全国十大激光切割焊接设备服务商推荐!2026最新排名出炉,赛铂数控优势突出 - 十大品牌榜
  • 从零开始组装电脑:核心硬件选型与装机全流程实战指南
  • 新手必看通过curl命令快速测试大模型API连通性
  • 终极指南:5分钟找回遗忘密码,开源压缩包密码恢复工具完全手册
  • 金螳螂家郑州店以人性化家装焕新中原人居 - 速递信息
  • 京东秒杀神器:3步实现自动化抢购,告别手速焦虑
  • 别再瞎存经纬度了!用Python实测不同小数位对距离计算的影响(附完整代码)
  • 2026年重卡充电桩排行榜横评:功率覆盖、液冷稳定性与重载场景认证体系全对比 - 科技焦点
  • Windows和Office智能激活终极指南:KMS_VL_ALL_AIO一键解决方案
  • 告别假货水货!CH站Cigarhome欧洲多国lacasa行货直供,古巴非古雪茄一站式选购(2026) - damaigeo
  • 轨迹数据太稀疏?试试TRACLUS的‘分段+聚类’两步法,5分钟讲清MDL与密度聚类怎么结合
  • OpenCore Legacy Patcher终极指南:三步让老Mac重获新生
  • 从零制作电磁铁:原理、材料与实操指南
  • 202 郑州名包回收指南:正规渠道怎么选、估价逻辑与安心变现要点 - 薛定谔的梨花猫
  • Claude商业分析报告交付延迟率高达47%?——3大架构级瓶颈诊断工具+实时流式响应改造方案(已验证于金融/零售双行业)
  • 手把手复现RRT*优化过程:用Python可视化理解‘重布线’与椭圆采样
  • 2026年国产瓶盖自动生产线厂家选型攻略:三步锁定最适合你的那家 - 品牌2025
  • 5分钟从零开始:用RVC-WebUI实现专业级AI语音克隆转换