大语言模型-GPT3-Language Models are Few-Shot Learners

一、背景信息:

GPT3是于2020 年由OpenAI 发布的预训练语言模型。
GPT3在自然语言处理(NLP)任务中表现出色,可以生成连贯的文本、回答问题、进行对话等。
GPT3的网络架构继续沿用GPT1、GPT2的是多层Transformer Decoder改的结构。
GPT3出自Language Models are Few-Shot Learners,语言模型是Few-Shot学习者。

二、整体结构:

更新改动

GPT3继续沿用在GPT2中使用的单向 Transformer Decoder 的结构。其中96层Decoder的GPT3被称作“GPT”
相较于GPT2模型结构,GPT3做了下面几项改动:

  • 模型中的Transformer采用了类似Sparse Transformer 的结构,用以节省模型训练过程中的显存占用。
  • GPT3使用的最长词向量长度为12888。
  • GPT3上下文划窗的窗口大小提升至2048个token。
  • GPT3分别使用了24、32、40、96层的Transformer Decoder。

Sparse Transformer

GPT3在 transformer 层中交替地使用稠密的(alternating Dense Attention)和局部带状稀疏(locally Band sparse Attention)的注意力模式,类似于 Sparse Transformer。
使用 sparse attention 的好处主要有以下两点:

  1. 减少注意力层的计算复杂度: 节约显存和耗时,从而能够处理更长的输入序列;
  2. 具有“局部紧密相关和远程稀疏相关”的特性: 对于距离较近的上下文关注更多,对于距离较远的上下文关注较少;
(1)Sparse Transformer 的两个模式

Sparse Transformer 原文中提到了两种不同模式stride 模式、 fixed 模式。
【stride模式】本质上也是两种基础模式的组合,即带状模式和相对的间隔模式。在多头注意力机制中,不同的头采用不同的基础模式。
【fixed模式】本质上也是两种基础模式的组合,即分块模式和固定的间隔模式。在多头注意力机制中,不同的头采用不同的基础模式。

stride模式是这样的,在二维空间中定义分解注意模式的一种自然方法是,让一个头关注位置L之前的元素(行),另一个头关注每第L个位置(列),其中L是步幅,选择接近np。

(2)Band Attention

带状稀疏注意力,也被称为滑动窗口注意力。
带状注意力假设:一个元素(或令牌、像素等)与其邻近元素的关联性通常要比与远处元素的关联性更强。因此,限制每个查询仅关注其邻近节点是一种自然且有效的方式。
因此,带状注意力通过将注意力限制在一个局部区域内,显著减少了计算量。因为它只计算和存储那些可能高度相关的元素对之间的关系。此外,这种方法还能帮助模型更加聚焦于局部上下文,这在很多任务中是非常有益的,比如在处理语言时捕捉短语层面的依赖关系,或在处理图像时关注局部特征。

(3)稀疏注意力(Sparse Attention)的理解

自注意力(Self-Attention)机制是Transformer模型核心组成部分,它允许模型在处理序列数据时动态地关注序列中的不同部分。
然而,随着序列长度的增加,标准的自注意力机制的计算复杂度和内存需求也会指数增加,这限制了模型处理长序列数据的能力。
稀疏注意力(Sparse Attention)机制的提出就是为了解决这个问题。
稀疏注意力机制的核心思想是在自注意力计算中引入稀疏性,即不是让序列中的每个位置都与其他所有位置进行注意力计算,而是仅选择部分位置进行计算。这种选择可以基于不同的策略,例如固定的模式(如局部窗口)、基于内容的选择(如与当前位置最相关的其他位置),或者是通过学习得到的模式。通过这种方式,稀疏注意力机制减少了计算量和内存占用,使得模型能够更高效地处理长序列。

dense attention:每个 token 之间两两计算 attention,复杂度 O(n²)
sparse attention:每个 token 只与其他 token 的一个子集计算 attention,复杂度 O(n*logn)
一般sparse attention 除了相对距离不超过 k 以及相对距离为 k,2k,3k,… 的 token,其他所有 token 的注意力都设为 0

三、模型评估

(1)In-context learning

(又称为few shot learning)通过少数几个例子告诉模型你想要的结果,然后模型就按照给的示例来进行执行。
GPT-3使用了“In-Context Learning”的方式,在不进行梯度更新或fine-tune的情况下,直接在上下文中进行学习。

元学习(meta-learning):
元学习的核心思想在于通过少量的数据寻找一个合适的初始化范围,使得模型能够在有限的数据集上快速拟合,并获得不错的效果。

MAML(Model-Agnostic Meta-Learning)是一种元学习算法,正常的监督学习是将一个批次的数据打包成一个batch进行学习。但是元学习是将一个个任务打包成batch,每个batch分为支持集(support set)和质询集(query set),类似于学习任务中的训练集和测试集。

MAML的迭代涉及两次参数更新,分别是内循环(inner loop)和外循环(outer loop)。内循环是根据任务标签快速的对具体的任务进行学习和适应,而外循环则是对参数进行更新。
直观的理解,我用一组MAML的参数权重去学习多个任务,如果每个任务都学得比较好,则说明这组参数是一个不错的初始化值,否则我们就去对这组参数进行更新。

GPT-3中据介绍的in-context learning(情境学习)是元学习的内循环,而基于语言模型的SGD则是外循环:

(2)性能评估

对于每个任务,在以下3种条件下评估GPT-3:
少样本学习(few-shot learning),除了任务描述外,模型还看到了一些任务示例。不执行梯度更新。
单样本学习(one-shot learning),除了任务描述外,模型会收到任务的单个示例。不执行梯度更新。
零样本学习(zero-shot learning),仅根据任务的自然语言描述来预测答案。不执行梯度更新。

发展历程

模型规模

在这里插入图片描述

Reference

1、Language Models are Few-Shot Learners
2、The ChatGPT Models Family
3、Generating Long Sequences with Sparse Transformers
4、Transformer综述(一):稀疏注意力
5、大模型结构基础(五):注意力机制的升级
6、大师兄-预训练语言模型之GPT-1,GPT-2和GPT-3

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

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

相关文章

大数据技术之Flume 企业开发案例——自定义 Sink(10)

目录 自定义 Sink 1)介绍 2)需求 3)编码 4)测试 自定义 Sink 1)介绍 Sink 不断地轮询 Channel 中的事件并批量地移除它们,随后将这些事件批量写入到存储或索引系统,或者发送到另一个 Flu…

jenkins 开启控制台详细日志

1、开启控制台详细日志,查看真正报错原因 开启后生成流水线语句: 2、根本问题 使用jenkins再次构建,查看控制台日志 报错: 意思是在执行ssh命令的时候, /root/apps/jenkins/portal/portal-server/Dockerfile 路径下没…

极狐GitLab 如何管理 Kubernetes 集群?

极狐GitLab 是 GitLab 在中国的发行版,专门面向中国程序员和企业提供企业级一体化 DevOps 平台,用来帮助用户实现需求管理、源代码托管、CI/CD、安全合规,而且所有的操作都是在一个平台上进行,省事省心省钱。可以一键安装极狐GitL…

【计算机网络】电路交换、报文交换、分组交换

电路交换(Circuit Switching):通过物理线路的连接,动态地分配传输线路资源 ​​​​

《机器学习》 SVM支持向量机 推导、参数解析、可视化实现

目录 一、SVM支持向量机 1、什么是SVM 例如: 2、SVM的主要特点是: 二、SVM方程 1、超平面方程 2、标签问题 3、决策函数: 符号函数: 整合: 4、距离问题 1)点到直线距离 2)点到平面…

关于喷墨打印:液滴喷射及基材影响的那些事儿

大家好,今天我们来探讨一篇关于液滴喷射在生物应用中相关知识的文章——《Understanding droplet jetting on varying substrate for biological applications》是发表于《International Journal of Bioprinting》。在生物打印领域,了解液滴在不同基材上…

【Pytorch】Linear 层,举例:相机参数和Instance Feaure通过Linear层生成Group Weights

背景 看论文看到这个pipeline,对于相机参数和Instance Fature 的融合有点兴趣,研究如下: Linear 层 Linear 层是最基本的神经网络层之一,也称为全连接层。它将输入与每个输出神经元完全连接。每个连接都有一个权重和一个偏置。…

elasticsearch快照存储到linux本地路径或分布式存储系统mioio

一、使用linux本地目录做快照存储 1.编辑 elasticsearch.yml 文件,添加以下配置: path.repo: ["/path/to/your/backup/dir"]2.创建一个文件系统类型的快照仓库 PUT /_snapshot/my_local_repository {"type": "fs",&quo…

磷酸二氢钾溶液净化除杂,除重金属

磷酸二氢锂,化学式LiH2PO4,相对分子质量103.93,白色结晶或粉末。熔点大于100℃,相对密度2.5g/ml。每100毫升水中的溶解克数:126g/0℃。 锂离子二次电池在手提电脑、移动通讯、电动工具等方面具有广泛应用,在…

使用VScode的Git版本控制功能(图文版)

☁️ 前言 今天让我来手把手教你简单入门VScode自带的Git版本控制。 🎉 初始化仓库 初始化仓库之后,仓库里的文件发生了任何改动都会有相应的提示,这对于我们开发和维护项目非常有帮助。 🎉提交更改 初始化仓库之后&#xff…

基于web的停车场管理系统设计与实现-计算机毕设 附源码 16856

基于web的停车场管理系统设计与实现 目 录 1 绪论 1.1 研究背景和意义 1.2国内外研究现状 1.3论文结构与章节安排 2 系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 操作可行性分析 2.2 系统功能分析 2.2.1 功能性分析 2.2.2 非功能性分…

【自动化】考试答题自动化完成答案,如何实现100%正确呢

一、科目仿真考试不能自动答题 我的答案是可以的,电脑程序可以模拟人的操作完成所有的答题并提交结束考试 二、分析页面内容 完成一个题目,包括判断题,对与错2选1答案,单选题ABCD4选1答案,多选题大家想一想 F12查看按…

基于layui实现简单的万智牌生命计数器页面

对照手机App“旅法师营地”的万智牌生命计数器窗口(如下图所示),使用layui、jQuery等实现简单的万智牌生命计数器页面。   主要实现的功能如下:   1)点击左右两侧的-1、1、-5、5区域更新左右两侧生命值&#xff1…

【MATLAB学习笔记】绘图——自定义标记(Marker)形状,实现与MATLAB自带标记基本一致的功能(自适应缩放、自适应裁剪)

目录 前言自定义标记函数自定义标记函数的说明纵横比调整将图形大小按磅数设置平移标记点绘制标记点边界标记点不裁剪 拓展功能——标记点自适应绘图区的缩放绘图区缩放回调函数标记点大小自适应标记点裁剪自适应 示例基本绘图自定义标记函数的使用 总代码主函数自定义标记函数…

入门STM32--按键输入

上一篇博客我们介绍了如何使用GPIO配置跑马灯,根据GPIO的基本结构图,我们能够发现,他肯定不单单有输出的功能,肯定可以检测IO上的电平变化,实际上就是输入的功能。 1.按键 在大多数情况下,按键是一种简单的…

【第54课】XSS跨站Cookie盗取表单劫持网络钓鱼溯源分析项目平台框架

免责声明 本文发布的工具和脚本,仅用作测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断。 如果任何单位或个人认为该项目的脚本可能涉嫌侵犯其权利&#xff0…

1259:【例9.3】求最长不下降序列 动态规划

1259:【例9.3】求最长不下降序列 题目链接 【输入样例】 【输入样例】 14 13 7 9 16 38 24 37 18 44 19 21 22 63 15【输出样例】 max8 7 9 16 18 19 21 22 63思路: 确定状态: a[n]数组放数据, dp[n]数组放第i个位子前最长子序…

kafka发送消息-生产者发送消息的分区策略(消息发送到哪个分区中?是什么策略)

生产者发送消息的分区策略(消息发送到哪个分区中?是什么策略) 1、默认策略,程序自动计算并指定分区1.1、指定key,不指定分区1.2、不指定key,不指定分区 2、轮询分配策略RoundRobinPartitioner2.1、创建配置…

Linux网络:网络基础

Linux网络:网络基础 一、网络诞生背景及产生的诸多问题1. 1 网络诞生背景1.2 网络诞生面临的困境 二、网络协议栈(OSI七层模型、CP/IP五层模型)2.1 TCP/IP五层(或四层)模型 三、网络和系统关系四、网络传输流程4.1 同一个局域网中的两台主机进…

折腾 Quickwit,Rust 编写的分布式搜索引擎-官方教程

快速上手 在本快速入门指南中,我们将安装 Quickwit,创建一个索引,添加文档,最后执行搜索查询。本指南中使用的所有 Quickwit 命令都在 CLI 参考文档 中进行了记录。 https://quickwit.io/docs/main-branch/reference/cli 使用 Qui…