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

GPT-3(Language Models are Few-shot Learners)简介

GPT-3(Language Models are Few-shot Learners)

一、GPT-2

1. 网络架构:

GPT系列的网络架构是Transformer的Decoder,有关Transformer的Decoder的内容可以看我之前的文章。

简单来说,就是利用Masked multi-head attention来提取文本信息,之后利用MLP和softmax来预测当前序列后应该接什么字符,以此来生成长的文本。注意:与传统的softmax不同,GPT会根据生成字符的概率,随机在概率高的几个字符中进行挑选,这就保证了同一个问题每次的回答都不相同。

对于不同版本的GPT的架构,无非就是在Decoder的基础上提高Masked multi-head attention layer的”多头“数与层数来增大模型的参数量以提高模型的拟合能力。

2. 核心思想:

使用无监督的预训练模型做有监督的任务。
作者认为,当一个语言模型的容量足够大时,它就足以覆盖所有的有监督任务,也就是说所有的有监督学习都是无监督语言模型的一个子集。这一点在之后的chatGPT中得到了很好的体现。

简单理解就是,在大量的训练样本中肯定存在某些样本是关于英语到法语翻译的。在训练完GPT-2后,模型本身已经凭借海量的训练数据学会了英语到法语的翻译,这时只要向模型发出”英语翻译成法语“这个任务指令,模型就可以进行翻译任务而不需要对模型进行微调。这便有了GPT-3中"In-context learning"的雏形。

3. 总结:

GPT-2最大的贡献是提出了通过海量的数据进行大规模的无监督训练,可以使模型直接完成下游任务而不需要对模型本身进行任何调整。在不少语言模型任务中仅仅通过向GPT-2”发出指令“,模型就有良好的性能。但是,很多实验表明,GPT-2的无监督学习还远没有头达到瓶颈,这就诞生了模型更大、数据集更”海量“的GPT-3。

二、GPT-3—力大砖飞

1

GPT-3的模型非常巨大,如图,GPT-1的模型大小为第一个红色矩形,GPT-2的模型大小为第二个红色矩形,而GPT-3的模型大小为175B的参数。对一般实验室来说训练是不可能的。

三、zero-shot / few-shot learning

1. 预训练—微调

1

如图,对于普通的NLP模型如BERT和GPT-1,模型的使用方法是:

  1. 对成熟的NLP模型进行有监督的预训练。
  2. 根据特定的下游任务(文本分类、问答等)对当前NLP添加MLP。
  3. 根据特性下游任务的数据集对整个模型进行微调。

2. “In-context” learning

1

GPT-3采用"In-context" learning来完成特定的下游任务。简单来说,用户通过对话向GPT-3发出任务描述,GPT-3在”理解“用户的任务后直接就可以完成任务而无需对模型进行微调。整个过程都是在与用户的对话中完成的,模型本身没有任何改变。

如图,

  1. 给GPT进行任务说明,如图为:Translate English to French.

  2. few-shot learning中,给GPT不止一个样例,在one-shot learning中,给GPT一个样例,在zero-shot learning中,不给GPT样例。样例是在对话框中由用户直接给出的。

    注意:在此过程中,GPT不进行梯度下降(无fine tune)。直观的理解就是GPT理解了你发出的任务的目的而不是对GPT本身进行模型优化。

  3. 输入一个英文单词,之后输入一个=>。该符号的意思是:符号前的内容是我输入的,符号后的内容是GPT输出的。

3. 总结:

GPT的1、2和3系列都是采用Transformer的Decoder架构,在模型结构上没有新意,但是凭借微软平台的支持,其可以对普通人无法想象的巨大模型海量的训练数据进行训练从而产生令人惊叹的效果。甚至在训练GPT-3时出现了一个bug,OpenAI自己也没有资金重新训练了。

但是,GPT-3也不是万能的,其在一些任务上也存在不少问题,这就催生了InstructGPT和最近爆火的ChatGPT。

相关文章:

GPT-3(Language Models are Few-shot Learners)简介

GPT-3(Language Models are Few-shot Learners) 一、GPT-2 1. 网络架构: GPT系列的网络架构是Transformer的Decoder,有关Transformer的Decoder的内容可以看我之前的文章。 简单来说,就是利用Masked multi-head attention来提取文本信息&a…...

容器安全风险and容器逃逸漏洞实践

本文博客地址:https://security.blog.csdn.net/article/details/128966455 一、Docker存在的安全风险 1.1、Docker镜像存在的风险 不安全的第三方组件:用户自己的代码依赖若干开源组件,这些开源组件本身又有着复杂的依赖树,甚至…...

2023年美赛B题-重新想象马赛马拉

背景 肯尼亚的野生动物保护区最初主要是为了保护野生动物和其他自然资源资源。肯尼亚议会于2013年通过了《野生动物保护和管理法》提供更公平的资源共享,并允许替代的、以社区为基础的管理工作[1]。此后,肯尼亚增加了修正案,以解决立法中的空…...

Docker常用命令总结

目录 一、帮助启动类命令 (1)启动docker (2)停止docker (3)重启docker (4)查看docker (5)设置开机自启 (6)查看docker概要信息…...

mac环境,安装NMP遇到的问题

一 背景 项目开发中,公司项目需要使用本地的环境运行,主要是php这块的业务。没有使用docker来处理,重新手动撸了一遍。记录下其中遇到的问题; 二 遇到的问题 2.1 Nginx的问题 brew install nginx后,启动nginx,报错如下:nginx: [emerg] no "ssl_certificate" …...

Web Worker 与 SharedWorker 的介绍和使用

目录一、Web Worker1 Web Worker 是什么2 Web Worker 使用3 简单示例二、SharedWorker2.1 SharedWorker 是什么2.2 SharedWorker 的使用方式2.3 多页面数据共享的例子一、Web Worker 1 Web Worker 是什么 Web Worker是 HTML5 标准的一部分,这一规范定义了一套 API…...

React:Redux和Flux

React,用来构建用户界面,它有三个特点: 作为view,构建上用户界面虚拟DOM,目的就是高性能DOM渲染【diff算法】、组件化、多端同构单向数据流,是一种自上而下的渲染方式。Flux 在一个React应用中,UI部分是由无数个组件嵌套构成的,组件和组件之间就存在层级关系,也就是父…...

TypeScript 学习之Class

基本使用 class Greeter {// 属性greeting: string;// 构造函数constructor(message: string) {// 用this 访问类的属性this.greeting message;}// 方法greet() {return Hello, this.greeting;} } // 实例化 let greeter new Greeter(World);声明了一个Greeter类&#xff…...

doris - 数仓 拉链表 按天全量打宽表性能优化

数仓 拉链表 按天全量打宽性能优化现状描述优化现状描述 1、业务历史数据可以变更 2、拉链表按天打宽 3、拉链表模型分区字段设计不合理,通用的过滤字段没有作为分区分桶字段 4、拉链表表数据量略大、模型数据分区不合理和服务器资源限制,计算任务执行超…...

服务器虚拟化及优势

服务器虚拟化是从一台物理服务器创建多个服务器实例的过程。每个服务器实例代表一个隔离的虚拟环境。在每个虚拟环境中,都可以运行单独的操作系统。 1.更有效的资源调配 使用虚拟化技术大大节省了所占用的空间,减少了数据中心里服务器和相关硬件的数量。…...

华为ensp模拟校园网/企业网实例(同城灾备及异地备份中心保证网络安全)

文章简介:本文用华为ensp对企业网络进行了规划和模拟,也同样适用于校园、医院等场景。如有需要可联系作者,可以根据定制化需求做修改。作者简介:网络工程师,希望能认识更多的小伙伴一起交流,私信必回。一、…...

git命令篇(持续更新中)

首先介绍这个网页&#xff1a;https://learngitbranching.js.org/?localezh_CN --提交命令 git commit --创建分支 git branch <分支名> --切换分支 git checkout <分支名> --合并分支 (合并到主分支去&#xff0c;把我合并到谁的身上去) 自己写的分支合并到主线…...

用记事本实现“HelloWorld”输出

一、在任意文件夹中创建一个新的文本文档文件并写入以下代码 public class Hello{public static void main (String[] args){System.out.print("Hello,World!");} } 二、修改文件名称及文件类型为 Hello.java 特别注意&#xff1a;文件命名必须与代码中类的名称相同…...

Python基础1

1. 注释 单行注释&#xff1a;以#开头。一般建议注释和内容用空格隔开。 多行注释&#xff1a;以一对三个双引号括起来的内容是注释。“““示例注释”””。 2. 数据类型 验证数据类型的方法&#xff1a;type&#xff08;被查看类型的数据&#xff09;。 注意&#xff1a;…...

4.2 双点双向路由重发布

1. 实验目的 熟悉双点双向路由重发布的应用场景掌握双点双向路由重发布的配置方法2. 实验拓扑 双点双向路由重发布如图4-6所示: 图4-6:双点双向路由重发布 3. 实验步骤 IP地址的配置R1的配置 <Huawei>system-v…...

AcWing《蓝桥杯集训·每日一题》—— 3768 字符串删减

AcWing《蓝桥杯集训每日一题》—— 3768. 字符串删减 文章目录AcWing《蓝桥杯集训每日一题》—— 3768. 字符串删减一、题目二、解题思路三、代码实现本次博客我是通过Notion软件写的&#xff0c;转md文件可能不太美观&#xff0c;大家可以去我的博客中查看&#xff1a;北天的 …...

第五天笔记

1. 简述图片验证码使用流程&#xff1f; 1.前段生成UUID随机值&#xff0c;作为GET请求参数 2.后端试图进行判断&#xff0c;调用工具类来生成图片验证码和内容 3.将验证码内容使用redis保存到本地,前端传入的uuid作为key, 4.在前段输入获取到的图片验证码&#xff0c;想后端发…...

如何使用ArcGIS进行地理配准

1.概述 对于GIS数据而言&#xff0c;坐标信息是灵魂&#xff0c;有了坐标信息之后才能和别的数据结合使用&#xff0c;之前有介绍过矢量数据定义坐标信息的方法&#xff0c;针对栅格图&#xff0c;这里为大家介绍一下通过地理配准增加坐标信息的方法&#xff0c;希望能对你有所…...

【java基础知识】

Java中的基本数据类型是什么&#xff1f; byte&#xff1a;1字节&#xff0c;有符号&#xff0c;表示整数&#xff0c;范围为-128到127。short&#xff1a;2字节&#xff0c;有符号&#xff0c;表示整数&#xff0c;范围为-32768到32767。int&#xff1a;4字节&#xff0c;有符…...

Java提供了哪些IO方式? NIO如何实现多路复用?

第11讲 | Java提供了哪些IO方式&#xff1f; NIO如何实现多路复用&#xff1f; IO 一直是软件开发中的核心部分之一&#xff0c;伴随着海量数据增长和分布式系统的发展&#xff0c;IO 扩展能力愈发重要。幸运的是&#xff0c;Java 平台 IO 机制经过不断完善&#xff0c;虽然在某…...

【kafka】Golang实现分布式Masscan任务调度系统

要求&#xff1a; 输出两个程序&#xff0c;一个命令行程序&#xff08;命令行参数用flag&#xff09;和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽&#xff0c;然后将消息推送到kafka里面。 服务端程序&#xff1a; 从kafka消费者接收…...

Leetcode 3576. Transform Array to All Equal Elements

Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接&#xff1a;3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到&#xf…...

Spring Boot 实现流式响应(兼容 2.7.x)

在实际开发中&#xff0c;我们可能会遇到一些流式数据处理的场景&#xff0c;比如接收来自上游接口的 Server-Sent Events&#xff08;SSE&#xff09; 或 流式 JSON 内容&#xff0c;并将其原样中转给前端页面或客户端。这种情况下&#xff0c;传统的 RestTemplate 缓存机制会…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩

目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

边缘计算医疗风险自查APP开发方案

核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

系统设计 --- MongoDB亿级数据查询优化策略

系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log&#xff0c;共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题&#xff0c;不能使用ELK只能使用…...

基于Docker Compose部署Java微服务项目

一. 创建根项目 根项目&#xff08;父项目&#xff09;主要用于依赖管理 一些需要注意的点&#xff1a; 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件&#xff0c;否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

微服务商城-商品微服务

数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...

解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错

出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上&#xff0c;所以报错&#xff0c;到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本&#xff0c;cu、torch、cp 的版本一定要对…...

Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)

Aspose.PDF 限制绕过方案&#xff1a;Java 字节码技术实战分享&#xff08;仅供学习&#xff09; 一、Aspose.PDF 简介二、说明&#xff08;⚠️仅供学习与研究使用&#xff09;三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...