GPT模型训练实践(2)-Transformer模型工作机制

        Transformer 的结构如下,主要由编码器-解码器组成,因为其不需要大量标注数据训练和天然支持并行计算的接口,正在全面取代CNN和RNN:

扩展阅读:What Is a Transformer Model?

其中

编码器中包含自注意力层和前馈神经网络层;

解码器包含自注意力层、编码器-解码器注意力层、前馈神经网络层三个部分。

了解Transformer,需要了解什么是超参数,这也与稍后的代码实践相关:

超参数:事先设定的。Transformer典型的超参数有Token数量,词向量,位置向量,解码器层数,自注意力头数、注意力维度数、学习率等。

与超参数对应的还有一个词叫参数,参数是在训练过程中得到的,出厂前的训练叫预训练,会得到基础参数(最开始的参数叫原始参数,随机生成的),但在实际的使用过程中,需要经过Fine-tuning,也就是微调,类似于把一套毛坯房装修为精装房的过程,以后在使用该模型的时候,其实就等于入住了。

通常来说,微调过后的参数与基础参数是不同的,这是由模型最终使用者的应用目的有关的,比如要把一个基础模型训练为安全领域的模型,那么在训练过程中就要使用安全行业的相关语料,同时结合安全专家的经验,不断调节参数,最终使模型能够在安全领域进行推理。微调这件事情主要要关注参数是否更改、在哪一层调整以及作用形式,目前主要的微调技术包括SFT(有监督微调),Prompt(提示词微调),LORA(低秩矩阵适应微调)、RLHF(人类反馈的强化学习)等。chatGPT是基于GPT3,花了一年多时间采用SFT、RM(奖励模型)、和PPO等微调之后才产生的。【想想要花多少钱)

在GPT中,只采用了解码器,且不是Transformer中标准的解码器层因为没有编码器的输入,所以解码器也去掉了编码器-解码器注意力层,最终结构如下图所示:

其内部的结构如下图所示:

第一层自注意子层:捕捉输入序列之间相互之间的关系,能学习完整的语义依赖;

第二层前馈神经网络子层:能捕捉整改输入序列的隐藏的、复杂的关联信息。

GPT总体结构如下图所示:

下面详细介绍:本介绍主要基于合集·GPT模型详细解释课程中“我是一个人”作为输入。分词为 

我     是     一个   ,3个token

1、输入处理:输入处理主要包括分词、向量嵌入、词向量+位置向量三个处理部分,处理完毕之后输出为一个3×12288的矩阵。

2、解码器栈:两部分组成,先看自注意子层

在自注意力子层中,有自注意头,且因为没有输出,其输入主要来自自己,也就是左边的信息,所有叫做自回归自注意力机制。 此部分主要是关于q.,k,v的计算。

 自注意力子层最终输出的为一个3×12288的矩阵。

接下来看第二个部分--前馈神经网络子层。

前馈神经网络输入是3×12288的矩阵,经过一系列计算之后,输出一个3×12288的矩阵。

3、输出部分:输出为一个3×50257的概率权重矩阵

 

附图:GPT、BERT、ELMo三者对比

尤其感谢B站UP主三明2046,其作品《合集GPT模型详细解释》生动精彩,本系列文章充分吸收学习了该课程,并且在文章图片素材多有引用;

本文代码部分主要引用How to build a GPT model

如有侵权,请联系笔者删除,感谢,致敬!

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

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

相关文章

STM32速成笔记—IWDG

文章目录 一、IWDG简介二、STM32的IWDG2.1 STM32的IWDG简介2.2 喂狗2.3 IWDG框图 三、IWDG配置步骤四、IWDG配置程序4.1 IWDG初始化程序4.2 喂狗 五、应用实例 一、IWDG简介 独立看门狗(Independent Watchdog, IWDG),什么是看门狗&#xff1…

Spring Cloud 之注册中心 Eureka 精讲

🍓 简介:java系列技术分享(👉持续更新中…🔥) 🍓 初衷:一起学习、一起进步、坚持不懈 🍓 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正🙏 🍓 希望这篇文章对你有所帮助,欢…

【SpringCloud config分布式配置中心】—— 每天一点小知识

💧 S p r i n g C l o u d c o n f i g 分布式配置中心 \color{#FF1493}{SpringCloud config分布式配置中心} SpringCloudconfig分布式配置中心💧 🌷 仰望天空,妳我亦是行人.✨ 🦄 个人主页——微风撞见云的…

软考A计划-系统集成项目管理工程师-项目范围管理(四)

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列 👉关于作者 专注于Android/Unity和各种游戏开发技巧&#xff…

图像处理实战02-yolov5目标检测

yolov5 YOLOv5 是一种目标检测算法,它是 YOLO (You Only Look Once) 系列算法的最新版本。YOLOv5 采用了一种新的架构,它包括一个基于 CSPNet (Cross Stage Partial Network) 的主干网络以及一系列改进的技巧,如多尺度训练、数据增强、网络混…

chatgpt 用来取名字

Object ,array 相对 string,int 来说是什么类型, 分别用英文名称来定义他们的类型类别

自动化测试常见的三大问题及解决方案

各位小伙伴们,大家好,今天给大家带来的是关于自动化测试常见的三大问题及解决方案,希望给遇到这三大问题的你一些帮助 一,就是我们定位元素的时候,定位不到或有时定位得到,有时定位不到。 特别是喜欢复制…

Mysql数据库初体验

文章目录 MySQL数据库一.数据库的基本概念1.数据库的组成(1)数据(Data)(2)表(3)数据库(4)数据库管理系统(DBMS)(5)数据库系统 2.数据库系统发展史3.主流数据库介绍4.数据库分为关系型与非关系型(1)关系型:SQL(2)非关系…

node.js通过node-java库调用java接口(jar包)

node.js通过node-java库调用java接口 1、业务需要2、开发环境3、调用java包简单实例4、调用自定的jar包接口 1、业务需要 最近因项目需求,需要调用第三方java的打的jar包,但项目后端是用node.js写的,因此需要用node.js调用第三方jar,网上搜集…

云原生监控平台 Prometheus 的相关概念及部署

1 Prometheus简介 Prometheus 是一个开源的系统监控和报警系统,在 2012 年由 SoundCloud 公司创建,并于 2015 年正式发布。2016 年,Prometheus 正式加入 CNCF (Cloud Native Computing Foundation),成为继kubernetes之后第二个在C…

菜鸡shader:L5 fresnel、matcap和cubemap

文章目录 Fresnelshader forge实现UE4蓝图实现 Matcapshader forge实现UE4蓝图实现 CubeMapSD和PS制作所需的贴图shader forge实现unity代码实现UE4蓝图实现(未实现) Fresnel shader forge实现 个人理解是,使用观察方向和法向方向点乘,那就相当于我们的视…

聚合函数group byhaving

聚合函数&group by group by 字段名 规定依据哪个字段分组聚合 group by核心子句是可选项,使用该子句是为了依据相同字段值分组后进行聚合运算,常和聚合函数联用 不使用group by 子句时使用聚合函数,select子句中只能写聚合函数和包含聚…