【论文阅读】Language Models are Few-Shot Learners(GPT-3)

本文探讨了GPT-3模型在无需大量标注数据的meta-learning和in-contextlearning中的应用,特别是在zero-shot,one-shot和few-shot设置下,展示其在自然语言处理任务中的适应性和性能。GPT-3在某些任务上能与微调的SOTA模型媲美,且大模型在few-shot学习中表现出更强的泛化能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

本文简要介绍了GPT-3的背景,模型架构,训练数据以及训练方式部分。具体训练细节,实验结果很多,可以在用到的时候再看

Intro

本文剖析了pretrain-finetune架构存在的问题:

  • 对于每个新的任务,都需要大量的标注数据
  • 将表达能力更强的模型(预训练阶段要求用大模型)在比较窄的数据(微调阶段是在narrow数据分布上进行的)上训练是不合理的。大模型的效果并不能泛化到OOD数据上
  • 人类在接触一个下游任务时不需要大量的训练样本,只需要对任务的描述或者几个例子就可以。我们希望NLP模型也能有这种多任务之间无缝衔接的能力

解决上述问题可行的方案:

  • meta-learning:模型在预训练阶段就学到了一系列方法,具备一系列能力。在预测阶段,我们利用这种能力来快速适配到下游任务中。

    • 已经有人通过in-context learning这样做过了,但是效果不好

    在这里插入图片描述

  • LLM: Transformer语言模型参数的每一次增大都会让文本理解能力和其他的NLP下游任务的性能得到提升,而且有证据显示,log损失函数,在模型规模增大后,保持平稳趋势。我们认为:in-context learning的能力也会随着模型参数的增大而增强

我们训练了一个175B的模型GPT-3,在3种设定下测试GPT-3的性能:

  • few-shot learning(in-context learning): 允许一些样例(一般10到100个)出现在模型输入中
  • one-shot learning: 只允许一个样例
  • zero-shot learning: 不允许提供样例,只提供一个自然语言形式的指令

下图展示了在移除单词中多余符号任务上,模型的表现

在这里插入图片描述

  • GPT-3在zero-shot和one-shot设置下能取得不错的结果,在few-shot设定下有时能比得上甚至超过微调的SOTA模型
  • zero-shot和one-shot设置的GPT-3能在快速适应和即时推理任务(单词整理、代数运算和利用只出现过一次的单词)中拥有卓越表现。
  • few-shot设定下,GPT-3能生成人类难以区分的新闻稿
  • few-shot设定下,GPT-3在一些自然语言推理任务(ANLI dataset),阅读理解(RACE, QuAC)上的性能有待提高
  • 不同benchmark上的整体表现如下图所示

在这里插入图片描述

我们还训练了一些小模型(从125 million到13 billion),用于与GPT-3对比。对于大多数任务,在3种设定下,模型性能随大小相对平滑地增加。但是随着模型容量增大,few-shot相较于one,zero-shot的领先幅度变得更大,这说明大模型可能更适合作为meta-learners(larger models are more proficient meta-learners)

Approach

本文的预训练方式GPT-2类似,只不过用了更大的模型,数据量,多样性以及训练时长,in-context learning的方式也相似。不过本文系统分析了不同设置对利用上下文学习的影响,这些设置可以看作对任务相关数据的依赖程度。

  • Fine-tuning:本文并没有训练GPT-3的微调版本,因为主要关注的是task-agnostic性能
  • Few-shot:在预测阶段提供一些样本,但并不进行参数更新。样本的数量是10到100(window size内可容纳的样本数目)
  • One-shot:仅提供一个样本
  • Zero-shot:不提供样本,只给一个用于描述任务的自然语言指令

下图是一个将英文翻译成法语任务的不同设定下的输入形式展示

在这里插入图片描述

本文的不同设定并不是为了相互比较,相互替代。而是在特定基准上,提供性能与采样效率之间权衡的不同问题设定。

Model and Architectures

模型结构,初始化方法,预归一化方法,tokenize方法与GPT-2相同,但在transformer中使用与Sparse Transformer中类似的注意力模式,不同模型参数设定如下表所示

在这里插入图片描述

  • 所有模型的上下文窗口大小都是2048个tokens

Training Dataset

Common Crawl dataset包含近万亿单词,遍历一遍数据集就足够训练我们最大的模型。

  • 然而,不进行数据清洗的数据集质量不高,采用以下三步清洗数据
    • 下载数据集的一个版本,根据与一系列高质量参考语料库的相似性过滤了掉部分语料
    • 在文档级别、数据集内部和数据集之间执行了模糊重复数据消除,以防止冗余,并保持我们的作为过拟合的准确度量的验证集的完整性。
    • 将已知的高质量参考语料库添加到训练组合中,以增强Common Crawl并增加其多样性

使用训练数据的比例入下表所示

在这里插入图片描述

  • 训练时数据不是按比列采样的,高质量的数据集会被采样更多次
  • CommonCrawl和Books2采样少于一次,其他数据集被采样2-3次

Training Process

  • 有研究表明,更大的模型通常用更大的batch size,但是需要更小的学习率。本文在训练中评估梯度噪音的大小来选择batch size

  • 利用矩阵乘法与网络不同层的并行性来进行分布式训练

  • 在V100上训练

### 关于论文 'Language Models are Few-Shot Learners' 下半部分的翻译与解析 #### 2.4 评估 在这一章节中,作者详细探讨了如何对大规模语言模型(如 GPT-3)进行性能评估。具体而言,该章节讨论了几种不同的配置及其对应的实验设计。 1. **Zero-shot、One-shotFew-shot 设置** 论文定义了三种主要的评估场景:zero-shot、one-shotfew-shot。这些设置分别对应于模型在没有任何额外示例、一个示例或少量示例的情况下完成任务的能力[^3]。这种设定允许研究人员分析模型在未见过的任务中的泛化能力,同时也揭示了其内在的知识存储方式。 2. **实验设计** 实验涵盖了多种自然语言处理任务,包括但不限于问答、文本补全、分类和逻辑推理等。对于每种任务,作者提供了详细的提示模板,并确保所有任务描述、示例和提示的具体措辞均记录在附录 G 中。这种方法不仅提高了实验的可重复性,还使得结果更具可信度。 3. **模型表现分析** 结果表明,在某些情况下,GPT-3 即使是在 zero-shot 或 one-shot 场景下的表现也能媲美甚至超越经过 fine-tuning 的专用模型[^1]。这进一步证明了超大语言模型具备强大的上下文学习能力和潜在的通用性。 4. **技术实现细节** 在实际训练过程中,为了应对计算资源的挑战,作者采用了模型并行性和分布式训练策略。此外,他们通过监控梯度噪声尺度动态调整批量大小和学习率,从而优化了训练效率[^4]。所有的训练过程和技术细节都被详尽地记录在附录 B 中。 以下是代码片段的一个简化版本,用于演示如何加载预训练的语言模型: ```python from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("gpt3-model-name") model = AutoModelForCausalLM.from_pretrained("gpt3-model-name") def generate_text(prompt, max_length=50): inputs = tokenizer.encode(prompt, return_tensors="pt") outputs = model.generate(inputs, max_length=max_length) text = tokenizer.decode(outputs[0], skip_special_tokens=True) return text ``` --- #### 解读与总结 通过对这篇论文下半部分内容的研究可以看出,GPT-3 不仅是一个强大的生成工具,更是一种全新的范式转变。它展示了无需大量标注数据即可解决复杂任务的可能性,为未来的 NLP 应用开辟了新的方向。然而,尽管取得了显著进展,仍需注意的是,few-shot learning 是否真正代表了一种新型的认知机制仍有待验证[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

长命百岁️

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值