经典大语言模型解读(3):参数量更大、泛化性能更强的生成式模型GPT-2

news2024/9/23 5:04:59

概述

在GPT-1的基础上,OpenAI提出了包含15亿参数(GPT-1参数量的10倍以上)的GPT-2模型。该模型在一个更大规模的文本数据集WebText上进行预训练。与GPT-1依赖特定任务上的有监督微调来提升性能不同,GPT-2具备更强的零样本(zero shot)学习能力,能在未专门微调的任务上表现出色。

Zero shot learning(零样本学习):模型能够在没有见过特定类别训练数据的情况下识别新类别。

GPT-2框架

训练数据

大多数先前的工作都在单一文本领域上(新闻文章、维基百科等)训练语言模型。为此,本文构建了一个更大,更多样性的数据集WebText,该数据集中包含了超过800万个文档,总数据量达到了40GB。

输入表示

GPT-2采用Byte Pair Encoding(BPE)方式来对文本进行编码,BPE 是一种常用于压缩和处理自然语言的算法,它通过反复合并最频繁出现的字符对,将词汇分割为子词单元,以生成固定大小的词汇表。这种方法使模型可以处理常见词、罕见词,甚至是未见过的词。

关于BPE,维基百科给出了一个很好的示例。假定要编码的数据为:

aaabdaaabac

其中字节对aa出现的最频繁,因此它将被数据中未使用的字节替换,例如Z。替换结果如下:

ZabdZabac
Z=aa

之后可以看出ab出现的最频繁,采用同样的方式,用Y来替换它:

ZYdZYac
Y=ab
Z=aa

剩下的唯一字节对ac仅出现一次,编码可以在此处停止。或者,可以继续进行压缩编码,即将出现多次的ZYX来替换:

XdXac
X=ZY
Y=ab
Z=aa

该数据无法通过字节对编码进一步压缩,压缩过程结束。在解压时,只需按相反顺序执行替换即可。

需要注意的是,GPT-2对BPE进行了改进。文中指出,BPE 包含了许多常见单词的不同版本,比如 dog,因为它们在很多变体中出现,如 dogdog!dog?。这导致了有限词汇槽和模型容量的次优分配。为了避免这种情况,GPT-2阻止 BPE 在任何字节序列中跨字符类别进行合并。但空格例外,这显著提高了压缩效率。

模型

GPT-2的架构仍然是基于Transformer解码器,但对Transformer进行了一些的修改:

  • Layer Normalization被移动到每个子模块的输入,并在最后的自注意块之后添加额外的Layer Normalization。
  • 在初始化时按 1 / N 1/\sqrt{N} 1/N 的比例缩放残差层的权重,其中 N N N 为残差层的数量。
  • 词汇扩展到 50 , 257 50,257 50,257
  • 上下文长度从 512 512 512增加到 1024 1024 1024,这意味着GPT-2 能够处理更长的文本片段,从而在生成和理解长文本时表现更好。
  • 使用了更大的批处理大小 512 512 512

在实验中设置了4中不同容量的模型版本,具体见下图,其中参数量最小的模型相当于GPT-1,第二小的模型相当于BERT的最大模型,参数量最大的模型被称之为GPT-2。

GPT-2-Model-Size

结语

GPT-2通过将参数数量提升一个数量级,采用字节对编码(BPE)技术进行文本编码,并在更广阔的数据集上进行预训练,同时在训练过程中将上下文长度增加了一倍。这些改进显著增强了GPT-2相对于其前身GPT-1的文本生成能力。
以上便是本文的全部内容,若是觉得不错可以支持一下博主,你们的支持是博主更新的不竭动力。若是有任何问题也敬请批评指正。

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

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

相关文章

中小企业体系技术抽象沉淀-异地灾备篇

IT团队内部使用工具 系列文章:https://blog.csdn.net/caicongyang/article/details/136857045 DDL DML管控 https://github.com/hhyo/Archery/ flyway 文档编写 wiki 技术对外输出文档推荐gitbook 同城双活数据同步方案 总览: vivo 系列文章&#x…

脱离枯燥的CRUD,灵活使用Mybatis,根据mybatis动态的xml片段和接口规范动态生成代理类,轻松应付简单业务场景。

需求 需求是这样的,我们有一个数据服务平台的产品,用户先将数据源信息保存到平台上,一个数据源可以提供多个接口服务,而每个接口服务在数据库中存一个具有mybatis语法的sql片段。这样的话,对于一些简单的业务只需要编…

*C++:list

一.list简介 1. list 是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。 2. list 的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一个元素…

一文 学透 力扣—N数之和

题目一:1. 两数之和❤ 题目思路 当我们需要查询一个元素是否出现过,或者一个元素是否在集合里的时候,就要第一时间想到哈希法。 本题呢,我就需要一个集合来存放我们遍历过的元素,然后在遍历数组的时候去询问这个集合…

第一个NDK项目

新建项目 选择Native C的项目,我这里给项目的命名是NDKTest。 目录分析 新增了一个cpp目录,里面有一个CMakeLists和.cpp文件。 CMakeLists 文件是用来配置C编译过程的。 # Sets the minimum CMake version required for this project. cmake_minimum_…

[OpenCV] 数字图像处理 C++ 学习——16直方图均衡化、直方图比较 详细讲解+附完整代码

文章目录 前言1.直方图均衡化的理论基础(1)什么是直方图(2)直方图均衡化原理(3)直方图均衡化公式 2.直方图比较理论基础(1)相关性 (Correlation)——HISTCMP_CORREL(2)卡方 (Chi-Square)——HISTCMP_CHISQR(3)十字交叉性 (Intersection) ——HISTCMP_INTERSECT(4)巴氏距离 (Bha…

缓存的思考与总结

缓存的思考与总结 什么是缓存缓存命中率数据一致性旁路模式 Cache aside双写模式直写模式 write through异步写 Write Behind 旁路和双写 案例 新技术或中间的引入,一定是解决了亟待解决的问题或是显著提升了系统性能,并且这种改变所带来的增幅&#xff…

Mysql删库跑路,如何恢复数据?

问题 删库跑路,数据还能恢复吗? 我们经常听说某某被领导训斥了,对领导心生痛恨,然后登录 Mysql 删库跑路。对于闲聊中经常听说过的一个段子,在现实生活中是否真的发生过,如果发生了,我们该如何解…

基于单片机的智能小车的开发与设计

摘要:本文论述了基于 STC89C52 单片机的智能小车的开发与设计过程。该设计采用单片机、电机驱动及光电循迹等技术,保证小车在无人管理状态下,能按照预先设定的线路实现自动循迹功能。在电路结构设计中力求方便,可操作,…

go webapi上传文件

一、导入依赖 import "net/http" 我这里用到了Guid所以安装依赖 go get github.com/google/uuid 二、main.go package mainimport ("fmt""github.com/jmoiron/sqlx""github.com/tealeg/xlsx""log""path/filepath&q…

七彩云南文化旅游网站设计与实现

摘 要 传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装七彩云南文化旅游网站软件来发挥其高效地信息处理的作用&am…

解决RabbitMQ设置x-max-length队列最大长度后不进入死信队列

解决RabbitMQ设置x-max-length队列最大长度后不进入死信队列 问题发现问题解决方法一:只监听死信队列,在死信队列里面处理业务逻辑方法二:修改预取值 问题发现 最近再学习RabbitMQ过程中,看到关于死信队列内容: 来自队…

计算机组成原理——存储系统

计算机组成原理——存储系统 存储器层次结构 存储器层次结构如下: 寄存器(CPU)Cache(高速缓冲存储器)主存磁盘磁带、光盘等 按照上述层次结构,自下而上速度依次增快、容量相对依次渐小、造价越来越高昂…

OpenHarmony(鸿蒙南向开发)——小型系统内核(LiteOS-A)【文件系统】上

往期知识点记录: 鸿蒙(HarmonyOS)应用层开发(北向)知识点汇总 鸿蒙(OpenHarmony)南向开发保姆级知识点汇总~ 子系统开发内核 轻量系统内核(LiteOS-M) 轻量系统内核&#…

锂电池基础知识

1. 电池的发展史 电池是将化学能转变为电能的装置,通过电池内部的化学反应向外部提供直流电能 1800年Vote伏打电堆 1835年英国Daniel丹尼尔电池 1859年法国Plante铅酸蓄电池 1866年法国Leclanche锌锰电池 1899年瑞典Jungner镍镉电池 1950年Urry碱性电池 1990年索尼…

鸿蒙OpenHarmony【轻量系统内核扩展组件(C++支持)】子系统开发

C支持 基本概念 C作为目前使用最广泛的编程语言之一,支持类、封装、重载等特性,是在C语言基础上开发的一种面向对象的编程语言。 运行机制 C代码的识别主要由编译器支持,系统主要对全局对象进行构造函数调用,进行初始化操作。…

【漏洞复现】用友 NC-Cloud queryStaffByName Sql注入漏洞

免责声明: 本文内容旨在提供有关特定漏洞或安全漏洞的信息,以帮助用户更好地了解可能存在的风险。公布此类信息的目的在于促进网络安全意识和技术进步,并非出于任何恶意目的。阅读者应该明白,在利用本文提到的漏洞信息或进行相关测…

智能农业系统——作物生长模型

橙蜂智能公司致力于提供先进的人工智能和物联网解决方案,帮助企业优化运营并实现技术潜能。公司主要服务包括AI数字人、AI翻译、AI知识库、大模型服务等。其核心价值观为创新、客户至上、质量、合作和可持续发展。 橙蜂智农的智慧农业产品涵盖了多方面的功能&#x…

windows 驱动实例分析系列-COM驱动案例讲解

COM也被称之为串口,这是一种非常简单的通讯接口,这种结构简单的接口被广泛的应用在开发中,几乎所有系统都能支持这种通讯接口,它有RS232和RS485等分支,但一般我们都会使用RS232作为常见的串口,因为它足够简单和高效。 几乎所有的开发板,都会提供用于烧录、调试、日志的…

《Pyramid Vision Transformer》论文笔记

原文笔记 What 为了解决VIT在视觉任务上的局限性并且探究Transformer模型在视觉任务上的应用,这项工作提出了一种纯 Transformer 主干,称为 Pyramid Vision Transformer (PVT),它可以作为 CNN 主干在许多下游任务中的替代方案,包…