Re65:读论文 GPT-3 Language Models are Few-Shot Learners

诸神缄默不语-个人CSDN博文目录
诸神缄默不语的论文阅读笔记和分类

论文全名:Language Models are Few-Shot Learners
ArXiv网址:https://arxiv.org/abs/2005.14165
2020 NeurIPS:https://papers.nips.cc/paper/2020/hash/1457c0d6bfcb4967418bfb8ac142f64a-Abstract.html

官方GitHub项目:openai/gpt-3: GPT-3: Language Models are Few-Shot Learners(模型没开源,但是如果对人造数据集感兴趣可以看看)

GPT-3没有开源,只能通过API调用。OpenAI官方没有明确说现在哪些API是GPT-3的,我猜测https://platform.openai.com/docs/models/gpt-base这两个文本生成模型应该是GPT-3的,但是官方也不建议继续使用GPT-3的API了,建议大家用3.5和4。因此GPT-3的主要价值就是承前启后、了解GPT系列模型的发展史了。

Re45:读论文 GPT-1 Improving Language Understanding by Generative Pre-Training
Re62:读论文 GPT-2 Language Models are Unsupervised Multitask Learners

GPT-3的框架跟GPT-1、2的差不多,但是扩大了网络参数规模,使用了更多的高质量训练数据,就使得其模型效果实现了显著提升,可以不用微调,直接通过少样本学习/上下文学习的方式,在prompt中给出任务示例,就能在新的预测样例上得到想要的结果。有些少样本学习效果比微调的SOTA模型还好。

模型越大越好(scaling laws1
是谓大力出奇迹。
文中有很多验证不同规模模型上效果的图。

本文没有做GPT-3微调效果的实验。

我觉得前置知识我已经写够多了,本文就只写一些值得在意的点了。

文章目录

  • 1. 上下文学习
  • 2. GPT-3
    • 1. 数据集
    • 2. 实验结果
      • 1. 语言模型
      • 2. 文本补全和完形填空任务
      • 3. 开放域QA
      • 4. 翻译
      • 5. Winograd-Style Tasks
      • 6. 常识推理
      • 7. 阅读理解
      • 8. SuperGLUE
      • 9. NLI
      • 10. Synthetic and Qualitative Tasks
    • 3. 防止数据泄露问题
  • 4. 限制
  • 5. 公平性
  • 6. 资源消耗

1. 上下文学习

优势是不用大规模微调数据集。效果随模型尺寸增长而变好(但是不如微调)。而且模型不会产生微调导致的分布局限问题,在通用任务上表现能力不会下降。

示意图:
在这里插入图片描述

instruction

术语“demonstration”就是上下文中的样例(输入+输出 a context and a desired completion)

给出新输入,让模型给出输出

few-shot learning(10-100个)
one-shot learning
zero-shot learning

在这里插入图片描述

随着模型参数和数据集规模增长而效果越来越好:
在这里插入图片描述

在这里插入图片描述

前人的工作已经证明了log loss随模型变大而下降,交叉熵损失下降也会带来在下游任务上效果的提升。

2. GPT-3

模型在GPT-2的基础上增加了alternating dense and locally banded sparse attention patterns(sparse transformer2

最大的GPT-3是175B

模型越大,batch size应该越大,学习率越小1 3,用gradient noise scale来选择batch size3(我也不知道这是啥玩意儿,以后看)
在这里插入图片描述

context window:2048

在Common Crawl数据集上预训练1个epoch

在这里插入图片描述
↑这个纵轴应该大概类似于训练算力的评估指标

model parallelism

训练过程中的scale loss:
在这里插入图片描述

具体训练细节在附录,我没看。

1. 数据集

数据集清洗3步走(有噪音的效果不够好):① 靠近高质量语料 ② 去重 ③ 添加高质量语料(高质量语料抽样频率更高)

构建了一个预测高质量文本的分类器。

为了测试,删除了数据泄露的训练集数据。(文中有很大篇幅分析数据泄露问题)

数据集比例:
在这里插入图片描述

2. 实验结果

评估指标略。有些参考了T5的做法,这两个模型的思路也确实很像哈。

1. 语言模型

在这里插入图片描述

2. 文本补全和完形填空任务

类似语言模型训练任务
在这里插入图片描述

在这里插入图片描述

3. 开放域QA

Closed Book Question Answering
在这里插入图片描述
开卷(open-book)QA一般用的是信息检索方案。
↑ SSM指的是Q&A-specific pre-training procedure

在这里插入图片描述
↑ 模型越大,知识越多

4. 翻译

在这里插入图片描述

在这里插入图片描述
翻译到英文的效果比较好。

5. Winograd-Style Tasks

指代消歧

在这里插入图片描述

在这里插入图片描述

6. 常识推理

在这里插入图片描述
在这里插入图片描述

7. 阅读理解

在这里插入图片描述

在要求严格回答格式的数据集上表现最差

8. SuperGLUE

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

9. NLI

在这里插入图片描述

10. Synthetic and Qualitative Tasks

  1. 算术
    少样本:
    在这里插入图片描述
    ↑ N-digit指的是数字的最高位数
    composite是带运算符的(如Q: What is 6+(4*8)? A: 38

    所有setting:
    在这里插入图片描述

  2. 恢复单词中的字母顺序
    在这里插入图片描述

    少样本:
    在这里插入图片描述

  3. SAT-style analogy
    示例:audacious is to boldness as (a) sanctimonious is to hypocrisy, (b) anonymous is to identity, (c) remorseful is to misdeed, (d) deleterious is to result, (e) impressionable is to temptation
    感觉算是一种英语词汇量考试题?
    在这里插入图片描述

  4. 定性问题

    1. 生成新闻
      输入标题和小标题
      在这里插入图片描述
      在这里插入图片描述
      ↑95%置信度区间的幂律函数

      在这里插入图片描述
      用户正确预测出新闻是模型生成的,或者不确定是不是模型生成的,都算预测正确
      可以看到GPT-3的生成真实性用户几乎猜不出来,即使是长文本(50%基本等如瞎猜)
      用户可能用以判断新闻是否由AI生成的依据:事实错误,重复,不合逻辑的推理过程,异常短语
      在这里插入图片描述


      在这里插入图片描述
    2. 学习和使用新词:看定义后使用,或者从示例中推理词义(论文中测试的是前者)
      在这里插入图片描述
      灰色是prompt,粗体是模型生成结果,模型生成结果会塞进对话继续生成后续内容
    3. 英语语法纠错
      Poor English Input: <sentence>nn Good English Output: <sentence>
      在这里插入图片描述

3. 防止数据泄露问题

具体的我没看,就放点图吧。

在这里插入图片描述
↑ 在训练集中抽取出一个去重的验证集切片,训练集和验证集的损失函数。
说明没有过拟合。在下游任务上表现不好就是因为任务太难了。

clean benchmarks:制造去除训练集中可能泄露的样本
在clean benchmarks上和原版的表现差异 ↓
在这里插入图片描述

4. 限制

大部分我懒得写了,列举一些我认为值得在意的。

  1. 人类偏好:(2019 OpenAI) Fine-Tuning Language Models from Human Preferences
  2. 通过图片提供世界模型:(2020 ECCV 微软) UNITER: UNiversal Image-TExt Representation Learning
  3. few-shot是从0开始学习新任务,还是将新任务视作见过的任务?

5. 公平性

性别:
在这里插入图片描述

种族(用词的情感得分):
在这里插入图片描述

宗教:
在这里插入图片描述
(好地狱笑话的表)

6. 资源消耗

单位:
petaflop/s-days
kW-hr

这一块以后如果有机会了我再详细看看。


  1. (2020 OpenAI) Scaling Laws for Neural Language Models ↩︎ ↩︎

  2. 在模型结构中的注意力层,GPT3采用Sparse Transformer中的方案,相对于原始Transformer需要对一个序列中的任意两个词元都进行注意力计算,时间复杂度为 O ( n 2 ) O(n^2) O(n2) ,Sparse Transformer通过稀疏矩阵仅为每个词元计算和其他部分词元的注意力,时间复杂度为 O ( n log ⁡ n ) O(n\log n) O(nlogn) ,因此可以减少注意力计算量 from AIGC系列-GPT3论文阅读笔记 - 知乎
    理论来源原论文:(2019 OpenAI) Generating Long Sequences with Sparse Transformers ↩︎

  3. (2018) An empirical model of large-batch training ↩︎ ↩︎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/617181.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UVa1313/LA2693 Ghost Busters

UVa1313/LA2693 Ghost Busters 题目链接题意分析AC代码 题目链接 本题是2002年ICPC欧洲区域赛东北欧赛区的G题 题意 有 N ( N ≤ 100 ) N(N≤100) N(N≤100)个鬼&#xff0c;每个鬼是中心在 ( X i , Y i , Z i ) ( 1 ≤ X i , Y i , Z i ≤ 10000 ) (X_i,Y_i,Z_i) (1 ≤ X_i,Y…

Python中的回调函数和C中函数指针什么关系?

你好&#xff0c;我是安然无虞。 Python 回调 在Python中&#xff0c;‘回调函数’ (callback) 是指一个作为参数传递给其它代码的函数。 目的是在后者完成某些操作后调用这个传递进来的函数。 回调允许在执行异步操作或处理事件时通知调用者代码。 回调函数通常用于&#…

【数据结构】-- 单链表 vs 双向链表

&#x1f308; 个人主页&#xff1a;白子寰 &#x1f525; 分类专栏&#xff1a;python从入门到精通&#xff0c;魔法指针&#xff0c;进阶C&#xff0c;C语言&#xff0c;C语言题集&#xff0c;C语言实现游戏&#x1f448; 希望得到您的订阅和支持~ &#x1f4a1; 坚持创作博文…

react query 学习笔记

文章目录 react query 学习笔记查询客户端 QueryClient获取查询客户端 useQueryClient异步重新请求数据 queryClient.fetchQuery /使查询失效 queryClient.invalidateQueries 与 重新请求数据queryClient.refetchQueries 查询 QueriesuseQuery查询配置对象查询的键值 Query Key…

力扣 | 24. 两两交换链表中的节点

两两交换链表中的节点 给定一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后的链表。 你不能只是单纯的改变节点内部的值&#xff0c;而是需要实际的进行节点交换。 输入&#xff1a;head 1->2->3->4->5->NULL 输出&#xff1a;2->1-&g…

互联网轻量级框架整合之MyBatis核心组件

在看本篇内容之前&#xff0c;最好先理解一下Hibernate和MyBatis的本质区别&#xff0c;这篇Hibernate和MyBatis使用对比实例做了实际的代码级对比&#xff0c;而MyBatis作为更适合互联网产品的持久层首选必定有必然的原因 MyBatis核心组件 MyBatis能够成为数据持久层首选框&a…

【博客710】victoriametrics数据写入的pull和push模式以及优缺点

victoriametrics数据写入的pull和push模式以及优缺点 example&#xff1a; curl -d ‘{“metric”:{“name”:“foo”,“job”:“node_exporter”},“values”:[0,1,2],“timestamps”:[1549891472010,1549891487724,1549891503438]}’ -X POST ‘http://localhost:8428/api/v1…

:app debug:armeabi-v7a failed to configure C/C++

报错信息 由于刚换电脑不久&#xff0c;新建native c工程时&#xff0c;出现报错如下&#xff1a; :app debug:armeabi-v7a failed to configure C/C null java.lang.NullPointerExceptionat com.android.build.gradle.tasks.CmakeQueryMetadataGenerator.getProcessBuilder(…

成功转行Python工程师,年薪30W+,经验总结都在这!

都说郎怕入错行&#xff0c;行业对职场人的影响不言而喻。我们身边有很多和自己起点差不多的人&#xff0c;读了差不多的高中&#xff0c;差不多的大学&#xff0c;但是有的人突然一飞冲天&#xff0c;大House、移民、海外置业、全球旅行成了最常见的话题&#xff0c;出入私立医…

多模态 ——LLaVA 集成先进图像理解与自然语言交互GPT-4的大模型

概述 提出了一种大型模型 LLaVA&#xff0c;它使用 GPT-4 生成多模态语言图像指令跟随数据&#xff0c;并利用该数据将视觉和语言理解融为一体。初步实验表明&#xff0c;LLaVA 展示了出色的多模态聊天能力&#xff0c;在合成多模态指令上的表现优于 GPT-4。 在科学质量保证中…

20240327-1-评测指标面试题

评测指标面试题 metric主要用来评测机器学习模型的好坏程度,不同的任务应该选择不同的评价指标,分类,回归和排序问题应该选择不同的评价函数. 不同的问题应该不同对待,即使都是分类问题也不应该唯评价函数论,不同问题不同分析. 回归(Regression) 平均绝对误差(MAE) 平均绝对…

[lesson26]类的静态成员函数

类的静态成员函数 静态成员函数 在C中可以定义静态成员函数 静态成员函数是类中特殊的成员函数静态成员函数属于整个类所有可以通过类名直接访问公有静态成员函数可以通过对象名访问公有静态成员函数 静态成员函数的定义 直接通过static关键字修饰成员函数 静态成员函数 vs…