ChatGPT原理解析
文章目录
- Transformer
- 模型结构
- 构成组件
- 整体流程
- GPT
- 预训练
- 微调模型
- GPT2
- GPT3
- 局限性
- GPT4
- 相关论文
Transformer
Transformer,这是一种仅依赖于注意力机制而不使用循环或卷积的简单模型,它简单而有效,并且在性能方面表现出色。
在时序模型中,2017年最常用的模型是循环神经网络(RNN),RNN是一种序列模型,通过将之前的信息存储在隐藏状态中,使得它能够有效地处理时序信息。然而,由于RNN是按照时间步骤逐个计算的,因此它不易并行化,导致它在计算性能上存在缺陷。
Transformer模型完全基于注意力机制,而不再使用循环神经网络。由于注意力机制可以并行化,因此Transformer具有更好的并行性能和更好的实验结果。
模型结构
构成组件
- 编码器和解码器:图中左侧为编码器,右侧为解码器。
- 注意力机制:注意力函数是将一个query和一系列key-value映射成一个output的函数,这里的query、key、value、output都是一些向量。权重是由value对应的key和query的compatibility function(相似度)计算得来的,Transformer里面用的注意力算法是“Scaled Dot-Product Attention”。
- 多头注意力(Multi-Head Attention):把query、key、value投影到一个低维,投影h次,然后再做h次的注意力函数,将每个函数的输出并在一起,再投影回来,得到最终的输出。
- 带掩码自注意力层(Masked Multi-Head Attention): 因为在解码器中,算第n个query对应的输出的时候,是不能看到后面内容的值的,所以后面所有内容的权重要通过这种方式设置成0。
- 前馈网络(fully connected feed-forward network):可以理解为一个MLP(多层感知器),会利用它来进行语义空间的转换;Attention层用于抓取整个序列的信息并进行汇聚。
- Embeddings:输入是一个个的词,或者叫词源(token),需要把它映射成一个个向量。Embeddings就是给定任何一个词,用长为d的一个向量来表示它。
- Positional Encoding:Attention机制缺乏时序信息。Positional Encoding可以将每个词在句子中的位置信息加入到嵌入层中,从而为Attention机制提供了时序信息。
整体流程
- 输入数据生成词的嵌入式向量表示(Embedding),生成位置编码(Positional
Encoding,简称PE)。 - 进入Encoders部分。先进入多头注意力层(Multi-Head Attention),是自注意力处理,然后进入全连接层(又叫前馈神经网络层),每层都有ResNet、Add &Norm。
- 每一个Encoder的输入,都来自前一个Encoder的输出,但是第一个Encoder的输入就是 Embedding+ PE。
- 进入Decoders部分。先进入第一个多头注意力层(是Masked自注意力层),再进入第二个多头注意力层(是 Encoder-Decoder 注意力层),每层都有ResNet、Add&Norm。
- 每一个Decoder 都有两部分输入。
Decoder的第一层(Maksed多头自注意力层)的输入,都来自前一个Decoder的输出但是第一个Decoder是不经过第一层的(因为经过算出来也是0)。
Decoder 的第二层(Encoder-Decoder 注意力层)的输入,Query都来自该Decoder的第一层,且每个Decoder的这一层的Key、Value都是一样的,均来自最后一个Encoder。 - 最后经过 Linear、Softmax归一化。
GPT
论文作者取了标题中“generative pre-training”,将模型命名为GPT。
在自然语言理解中,存在许多不同的任务,但标记数据相对较少。因此,针对这个问题,一种解决方法是在没有标注的数据上训练一个预训练模型,然后在有标记的数据上进行微调。
GPT模型基于Transformer架构。与循环神经网络(RNN)相比,Transformer在迁移学习方面更加稳健,因为它具有更结构化的记忆,可以处理更长的文本,并从句子和段落层面提取更好的语义信息。
预训练
该模型从输入的K个单词和模型参数中预测下一个单词的出现概率。将每个单词的预测概率加起来,就得到了目标函数。目标就是通过训练模型,使其能够输出与给定文本类似的文章。
微调模型
在微调任务中有两个目标函数。一个是预测下一个单词,另一个是预测给定完整序列的标签。通过对它们的加权平均来平衡这两个目标函数。
自然语言处理任务的多样性也导致了需要为每个任务构建不同的模型,GPT采用的解决方案是改变输入的形式而不是改变模型本身。
NLP中四种常见的用户任务:
- “分类”(classification),例如对一段文本进行情感分类,判断其是正面还是负面。
- “蕴含”(entailment),即判断一段文本是否蕴含某种假设。
- “相似”(similarity),即判断两段文本的相似程度。
- “多选题”(multiple choice),即从多个答案中选择正确的答案。
在GPT模型中,它们都可以表示为一个序列和对应的标签。
GPT2
在进行下游任务时,使用一个称为“zero shot”的设置。也就是说,在进行下游任务时,不需要下游任务的任何标注信息,也不需要再次训练模型,然后得到了差不多的结果。这种方法的好处是只需训练一个模型,便可以在任何地方使用。
GPT3
GPT3是为了解决GPT2的有效性而设计的。因此,它回到了GPT一开始考虑的few-shot学习的设置,即不再追求太过极致的性能表现,而是在有限的样本上提供有用的信息。
few-shot是指通过提供一些样例来学习,而不是像传统的训练方式那样需要大规模的数据集进行训练。
这样做的好处在于,无需耗费大量的时间和成本来收集和标注数据集,而且模型可以更加关注于样例之间的共性,从而提高模型的泛化能力。
在GPT3的微调设置里,他是要求不做梯度更新的。
在 Meta Learning 中,模型不仅要学习如何解决特定的任务,还要学习如何快速适应新的任务。这样的训练方法有助于提高模型的泛化能力,使得模型在新的领域中表现更好。
in-context learning 是另一种训练模型的方法。它指的是在给定一个任务的上下文中,让模型从少量样本中学习如何解决这个任务。in-context learning 只会对给定的任务产生影响,不会改变模型的权重。
局限性
- 在人类语言中,有些词是必须要记住的,而有些则不是。但GPT3无法区分它们的重要性。
- 由于训练数据来自整个网络上的文章,其有效性可能不高。对于人类来说,这种方式可能不可靠。
- 像许多深度学习模型一样,GPT3无法解释。
GPT4
主要是功能性描述介绍。
- GPT-4是一个大型多模型,它在某些困难的专业和学术基准测试中具有人类水平的表现。
- GPT-4 的一个重点是构建可预测扩展的深度学习堆栈。
- OpenAI在GPT-4的开发和部署过程中实施了各种安全措施和流程,减少了它产生有害内容的能力。
相关论文
《Attention is all you need》[J]. Advances in neural information processing systems, 2017.
《Improving language understanding by generative pre-training》[J]. 2018.
《Language models are unsupervised multitask learners》[J]. OpenAI blog, 2019.
《Language models are few-shot learners》[J]. Advances in neural information processing systems, 2020
《GPT-4 Technical Report》
《GPT-4 System Card》
相关文章:
![](https://img-blog.csdnimg.cn/0e1a90a39ff44180b44cd22c8576af58.png)
ChatGPT原理解析
文章目录Transformer模型结构构成组件整体流程GPT预训练微调模型GPT2GPT3局限性GPT4相关论文Transformer Transformer,这是一种仅依赖于注意力机制而不使用循环或卷积的简单模型,它简单而有效,并且在性能方面表现出色。 在时序模型中&#…...
![](https://www.ngui.cc/images/no-images.jpg)
常用算法实现【必会】:sort/bfs/dfs
文章目录常用排序算法实现(Go版本)BFS 广度优先遍历,利用queueDFS 深度优先遍历,利用stack前序遍历(根 左 右)中序遍历(左根右)后序遍历(左 右 根)BFS/DFS 总…...
![](https://img-blog.csdnimg.cn/e8fde48a027242279a4cf5e8838914a7.png)
瑟瑟发抖吧——用了这款软件,我的开发效率提升了50%
一、前言 开发中,一直听到有人讨论是否需要重复造轮子,我觉得有能力的人,轮子得造。但是往往开发周期短,用轮子所节省的时间去更好的理解业务,应用到业务中,也能清晰发现轮子的利弊,一定意义上…...
![](https://image-1305421143.cos.ap-nanjing.myqcloud.com/image/76f5c092e753e7e745fca85efc1f5106.gif)
笔记本只使用Linux是什么体验?
个人主页:董哥聊技术我是董哥,嵌入式领域新星创作者创作理念:专注分享高质量嵌入式文章,让大家读有所得!近期,也有朋友问我,笔记本只安装Linux怎么样,刚好我也借此来表达一下我的感受…...
![](https://img-blog.csdnimg.cn/img_convert/9017f9900d4c694a743e3a91b9f3f85d.png)
pipeline业务发布
业务环境介绍公司当前业务上线流程首先是通过nginx灰度,dubbo-admin操作禁用,然后发布上线主机,发布成功后,dubbo-admin启用,nginx启用主机;之前是通过手动操作,很不方便,本次优化为…...
![](https://img-blog.csdnimg.cn/0f0e9633d9254098a0d2dec0873b88fb.png#pic_center)
【巨人的肩膀】JAVA面试总结(七)
💪MyBatis 1、谈谈你对MyBatis的理解 Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,加载驱动、创建连接、创建statement等繁杂的过程,开发者开发时只需要关注如何编写SQL语句,可以…...
![](https://img-blog.csdnimg.cn/096ff30d2b364ab3a9cccb4331c4179b.gif)
Python满屏表白代码
目录 前言 爱心界面 无限弹窗 前言 人生苦短,我用Python!又是新的一周啦,本期博主给大家带来了一个全新的作品:满屏表白代码,无限弹窗版!快快收藏起来送给她吧~ 爱心界面 def Heart(): roottk.Tk…...
![](https://img-blog.csdnimg.cn/ff4881b79aed49f9b0add8098201819a.png#pic_center)
Spring学习流程介绍
Spring学习流程介绍 Spring技术是JavaEE开发必备技能,企业开发技术选型命中率>90%; Spring有下面两大优势: 简化开发: 降低企业级开发的复杂性 框架整合: 高效整合其他技术,提高企业级应用开发与运行效率 Spring官网: https://spring.io/ Spring发展…...
![](https://img-blog.csdnimg.cn/img_convert/b5985be0868d6971d35ad86d70629f67.png)
杭银消金基于 Apache Doris 的统一数据查询网关改造
导读: 随着业务量快速增长,数据规模的不断扩大,杭银消金早期的大数据平台在应对实时性更强、复杂度更高的的业务需求时存在瓶颈。为了更好的应对未来的数据规模增长,杭银消金于 2022 年 10 月正式引入 Apache Doris 1.2 对现有的风…...
![](https://img-blog.csdnimg.cn/8c52dc928bc2414a9a793303726ca5b2.png)
Flink学习笔记(六)Time详解
一、Flink中Time的三种类型: Stream数据中的Time(时间)分为以下3种: 1.Event Time(事件产生的时间): 事件的时间戳,通常是生成事件的时间。Event time 是事件本身的时间,…...
![](https://img-blog.csdnimg.cn/1f458a33ceec43fd869e7d6dddce93cb.png#pic_center)
「Vue面试题」在项目中你是如何解决跨域的?
文章目录一、跨域是什么二、如何解决CORSProxy一、跨域是什么 跨域本质是浏览器基于同源策略的一种安全手段 同源策略(Sameoriginpolicy),是一种约定,它是浏览器最核心也最基本的安全功能 所谓同源(即指在同一个域&…...
![](https://img-blog.csdnimg.cn/f00796f5ca07470185b68a164cd2091f.png)
java八股文--数据库
数据库1.索引的基本原理2.聚簇和非聚簇索引的区别3.mysql索引的数据结构以及各自的优劣4.索引的设计原则5.事务的基本特性和隔离级别6.mysql主从同步原理7.简述MyISAM和InnoDB的区别8.简述mysql中索引类型及对数据库性能的影响9.Explain语句结果中各个字段分别表示什么10.索引覆…...
![](https://www.ngui.cc/images/no-images.jpg)
vue中名词解释
No名称略写作用应用场景其他1 单页面应用 (Single-page application) SPA 1,控制整个页面 2,抓取更新数据 3,无需加载,进行页面切换 丰富的交互,复杂的业务逻辑的web前端一般要求后端提供api数据…...
![](https://img-blog.csdnimg.cn/d3518ccf233a4cccaccbd7c02e41d23f.png)
基于Java+SSM+Vue的旅游资源网站设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】
博主介绍:专注于Java技术领域和毕业项目实战 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟 Java项目精品实战案例(200套) 目录 一、效果演示 二、…...
![](https://img-blog.csdnimg.cn/8b6116b0ccfa40fda8fc27a9eb35c026.png)
用于人工智能研究的开源Python微电网模拟器pymgrid(入门篇)
pymgrid是一个开源Python库,用于模拟微型电网的三级控制,允许用户创建或自行选择的微电网。并可以使用自定义的算法或pymgrid中包含的控制算法之一来控制这些微电网(基于规则的控制和模型预测控制)。 pymgrid还提供了与OpenAI Gy…...
![](https://img-blog.csdnimg.cn/2fadd18ffbd94c2d89296dc52005b165.png)
运算放大器:电压比较器、电压跟随器、同相比例放大器
目录一、单限电压比较器二、滞回电压比较器三、窗口电压比较器四、正点原子直流电机驱动器电路分析实战1、电压采集电路2、电流采集电路3、过流检测电路Ⅰ、采用分压后的输入电压:Ⅱ、采用理想电压源的输入电压:Ⅲ、同相输入电压采用的是非理想电压源&am…...
![](https://img-blog.csdnimg.cn/img_convert/95da39be32eb4ba0bd972511e3e5a653.png)
Vector - CAPL - 实时时间on *(续2)
继续继续。。。四、键盘事件这个键盘事件是我个人起的名字,为了方便与其他事件进行区分,为什么要把这一个单独拉出来说呢,因为它的用处实在是太广泛了,基本只要是使用CANoe做一些基本的自动化测试小工具,都会用到它&am…...
![](https://www.ngui.cc/images/no-images.jpg)
数据质量管理的四个阶段
然而,我们需要按照什么流程来对数据质量进行有效的管控,从而提升数据质量,释放数据价值?一般来讲,数据质量控制流程分为4个阶段:启动、执行、检查、处理。在管控过程中这4个阶段需不断循环,螺旋…...
![](https://img-blog.csdnimg.cn/20200403212201923.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2NoYWl0b3VkYXJlbg==,size_16,color_FFFFFF,t_70)
Spring源码面试最难问题——循环依赖
前言 问:Spring 如何解决循环依赖? 答:Spring 通过提前曝光机制,利用三级缓存解决循环依赖(这原理还是挺简单的,参考:三级缓存、图解循环依赖原理) 再问:Spring 通过提前…...
![](https://img-blog.csdnimg.cn/71f4f6b1faa04c5db8deb2cca64a7d20.png)
【计组】RAM的深入理解
一、存储机理 RAM的实现逻辑有种,分别是触发器和电容。 SRAM(Static)DRAM(Dynamic)存储方式触发器电容破坏性读出否(触发器具有稳态,能够锁住0或1两种状态)是(电容需要…...
![](https://www.ngui.cc/images/no-images.jpg)
JavaScript 之数据交互
在前后端交互中,前端通常需要对接口返回的数据进行格式转换、遍历、循环等;通常会用到以下函数和方法: forEach()、map()遍历数组(map返回新的数组);forEach()只能使用try catah终止循环;for in…...
![](https://img-blog.csdnimg.cn/7a977ddfae134cfaad14f109c5ea2543.png)
Python 十大开源Python库,看看你熟悉几个?
嗨害大家好鸭!我是芝士❤ 对于码农来说, 关注的永远是新近有什么流行的、 既能解决问题又好用的利器。 本文就为你盘点十大开源Python库。 1、Pipenv 第一名非它莫属, 这个工具2017年初才发布, 但它已经能够影响每个Python开发…...
![](https://img-blog.csdnimg.cn/img_convert/adf3e49affe79ebb80ca965122a0cdf6.png)
不愧是阿里开发的SpringBoot实战文档:入门+基础+进阶+项目,应有尽有
SpringBoot SpringBoot毋庸置疑,在Java开发中会因为项目流量太大需要切换到SpringCloud(SpringBoot)也会极为顺利。而且现在越来越多的公司都在采用SpringBoot,对SpringBoot关注和使用的开发者也越来越多了! SpringB…...
![](https://img-blog.csdnimg.cn/a8bf9f1aafbb40d5b35994a8aa6392f7.png)
Vue(3)-vue中的Ajax、Vuex、路由及UI组件库
课程链接 目录4.Vue中的Ajax4.1.vue脚手架配置代理4.1.1.方法一4.1.2.方法二4.2.插槽5.Vuex5.1.理解Vuex5.1.1.概念5.1.2.何时使用?5.1.3.vuex原理5.2.vuex使用5.2.1.搭建vuex环境5.2.2.基本使用5.2.3.getters的使用5.2.4.四个map方法的使用5.2.5.模块化命名空间6.路…...
![](https://img-blog.csdnimg.cn/9b33b45aa2d640d69afdf5eb58b2f869.jpeg)
jwt 学习笔记
概述 JWT,Java Web Token,通过 JSON 形式作为 Web 应用中的令牌,用于在各方之间安全地将信息作为 JSON 对象传输,在数据传输过程中还可以完成数据加密、签名等相关处理 JWT 的作用如下: 授权:一旦用户登…...
![](https://img-blog.csdnimg.cn/img_convert/318ac336be65c17cddb22606bd90e6b0.png)
网络安全实战从 0 到 1 彻底掌握 XXE
0x01 什么是 XXE个人认为,XXE 可以归结为一句话:构造恶意 DTD介绍 XXE 之前,我先来说一下普通的 XML 注入,这个的利用面比较狭窄,如果有的话应该也是逻辑漏洞。既然能插入 XML 代码,那我们肯定不能善罢甘休…...
![](https://www.ngui.cc/images/no-images.jpg)
如何安装 Composer
下载 Composer 安装前请务必确保已经正确安装了 PHP。打开命令行窗口并执行 php -v 查看是否正确输出版本号。 打开命令行并依次执行下列命令安装最新版本的 Composer: php -r "copy(https://install.phpcomposer.com/installer, composer-setup.php);"p…...
![](https://img-blog.csdnimg.cn/img_convert/4eae411deef1fc51788e621e055c3c81.png)
WPF 常用控件
WPF六种常用控件:布局控件、内容控件、带标题内容控件、条目控件、带标题条目控件和特殊内容控件(如:TextBox,TextBlock,Image等)。实例链接:WPF常用控件实例Window(窗体)Winodw窗体派生自ContentControl,有一个Content属性,里面可…...
![](https://img-blog.csdnimg.cn/7ed7eff4050943fdb0b7a771575ea7fc.png)
河南工程学院蓝桥培训(2.21)
1,金币 461. 金币 - AcWing题库 #include <iostream> using namespace std; int n,a,ans,s; int main(){cin>>n;while(n--){if(a0)as;anss,a--;}cout<<ans;return 0; }...
![](https://img-blog.csdnimg.cn/786d74459ed24945a33a71e4de6d10b0.png)
新人使用Git获取远程仓库项目
前言 这篇git技术篇非常的简单基础,写它的原因很简单,因为现在很多的年轻人都很浮躁,刚入门就想学最牛x的,看不起基础的一些技术,比如说git操作、Linux基础命令,编程基础啥的。我身边有很多这样的年轻人&a…...
![](https://img-blog.csdnimg.cn/img_convert/4d0ef2f3a71d1575f4e2a68058666866.png)
wordpress主题屋/进入百度app查看
E此浏览器不支持画布C G Am G F梨花香 缠着衣角掠过熙攘 复悄入红帘深帐C F G听枝头黄鹂逗趣儿 细风绕指淌C G Am G F坐船舫 兰桨拨开雾霭迷茫 不觉已一日过半C G C过眼的葱郁风光 悉数泛了黄Dm G Em褪尽温度的风 无言牵引中 便清晰了在此的眉目F Dm Em暮色的消融 隐约了晦朔葱…...
![](https://s1.51cto.com/attachment/201010/003157434.jpg)
哈尔滨做网站seo的/如何进行网站推广?网站推广的基本手段有哪些
故事是这样发生的:前几天和同事在公司吃饭,同事讲起他早年间相亲的故事。女方是某IT公司的HR,研究生学历,两人第一次见面的一段对话,觉得非常的有意思。 两人是共同的朋友介绍的,第一次见面地点商定在一家餐…...
培训机构网站模板/湖南网站设计外包服务
今天给大家科普:什么是傅里叶变换?什么是红黑树?希望能帮助到大家啦~下方图片可以单独保存收藏,也可以分享给朋友哦每日福利 点击公众号菜单:今日福利即可免费获得课程<玩转Linux:常用命令…...
![](/images/no-images.jpg)
win主机 wordpress静态/推广app佣金平台正规
刑法规定,公司、企业和其他单位的工作人员利用职务上的便利,非法侵占单位的财产,处五年以下有期徒刑或者拘役;情节严重的,可以并处五年以上有期徒刑。关于侵吞公司财产的会被判多少年的问题,合肥律师已经整…...
![](/images/no-images.jpg)
潍坊网站的公司电话/seo查询seo
一,利用网站浏览器F12键,利用谷歌浏览器插件找到视频的.m3u8文件,并打开。 二,打开m3u8文件后,里面有很多.ts的链接,和key的链接。 三,保存为html文件,下载ts文件,代码如…...
![](https://img-blog.csdnimg.cn/img_convert/cef4e24a5e386394d44922fc89d765e9.png)
网站建设哪家好公司/西地那非片能延时多久
虽说接触了好久的单片机或者说嵌入式开发,不过对于有些概念还是比较模糊,因此此系列将会从一些零碎的小知识点出发,慢慢的遍历整张嵌入式开发的地图。这次先来看一下中断向量表。至于为什么会提到中断向量表,主要是因为我自己在学…...