基于Transformer架构训练LLM大语言模型:Transformer架构工作原理

news2024/9/23 3:30:50

视频讲解:Transformer架构的工作原理讲解_哔哩哔哩_bilibili

一 Transformer架构总体架构

1 总体架构图

总体架构说明:

输入层

  • 词嵌入(Word Embeddings): 输入文本中的每个词都被映射到一个高维空间中的向量,这些向量捕捉到了词义信息。
  • 位置编码(Positional Encoding): 为了使模型能够区分输入序列中词的位置信息,位置编码被加到词嵌入之上。位置编码确保模型知道每个词在其所在序列中的相对或绝对位置。

编码器(Encoder)

  • 多头注意力(Multi-head Attention): Transformer使用自注意力机制让每个位置的词与序列中的所有其他位置进行交互。多头注意力意味着将注意力机制分解成多个并行的注意力函数,每个函数有不同的参数,从而模型可以从不同的表示子空间中聚合信息。
  • 前馈神经网络(Feed Forward Neural Networks): 每个编码器层后面都有一个完全连接的前馈网络,用于对信息进行进一步处理。
  • 残差连接与层归一化(Residual Connections and Layer Normalization): 在每个多头注意力层和前馈网络层之后,都添加了残差连接,并跟随一个层归一化步骤,以帮助缓解梯度消失问题,并加速训练过程。

解码器(Decoder)

  • 掩码多头自注意力(Masked Multi-head Self-Attention): 在解码器中,除了多头注意力外,还会在序列生成过程中使用掩码技术来防止解码器访问未来的目标词。
  • 编码器-解码器多头注意力(Encoder-Decoder Multi-head Attention): 解码器层还包含一个额外的多头注意力层,它允许解码器中的位置直接关注编码器中的所有位置。

输出层

  • 线性层与Softmax层: 解码器的最后一层通常是一个线性层,用于将每个位置的输出投影到目标词汇表大小的维度上。紧接着是一个Softmax层,将这些值转换为概率分布,用于生成下一个词的概率。

2 Transformer架构工作原理

2.1 目的

输入英语你好:hao are you,输出德语你好:hao bist du

【步骤分解】

步骤说明:

  1. 输入:hao are you - 这个阶段将原始文本序列(如句子或单词)转换为向量表示。每个词被映射到一个固定长度的向量,这个过程通常通过词汇表和词嵌入层完成。

  2. Positional Encoding - 在词嵌入之后,位置编码会被添加到这些向量中。位置编码是一种方法,它使模型能够理解输入序列中不同元素的位置关系,因为神经网络本身无法捕获顺序信息。

  3. Multi-Head Attention - Transformer使用多头注意力机制来计算输入序列中各个位置之间的相关性。这包括自注意力(self-attention)和交叉注意力(cross-attention),具体取决于是在编码器还是解码器中进行操作。

  4. Add & Norm - 在注意力层之后,有一个残差连接(residual connection)和层归一化(layer normalization),以帮助梯度流过深层网络并保持稳定训练。

  5. Feed Forward Network (FFN) - 接下来是一个全连接的前馈神经网络,通常由两个线性层组成,中间夹着一个激活函数(例如ReLU)。FFN对来自上一层的输出进行非线性变换。

  6. Output Probabilities - 最后,经过一系列编码器和解码器层后的输出会通过一个softmax层,生成一个概率分布,表示模型对于给定输入最可能的输出预测。

二 Transformer架构解码器解剖图

四 多头掩码注意力机制工作原理

【说明】

自注意力机制详解

自注意力机制是Transformer的核心。它允许模型在给定一个序列的情况下,计算出序列中每个元素(如单词)与其他元素之间的关系。这种关系通过一个权重矩阵来表示,这个权重矩阵决定了在生成某个位置的输出时,应该更多地考虑哪些输入位置。

具体步骤如下:

  1. 线性变换:将输入向量(如单词嵌入)通过不同的线性变换(即矩阵乘法)得到查询向量(Query)、键向量(Key)和值向量(Value)。
  2. 注意力得分:计算查询向量与所有键向量之间的点积得分,并除以键向量的平方根维度以缩放得分,避免梯度消失。
  3. 应用softmax:对每个位置的得分应用softmax函数,将得分转化为概率分布,这些概率表示了查询向量应该从其他位置获取多少信息。
  4. 加权求和:根据这些概率分布,对所有值向量进行加权求和,得到最终的注意力输出。

多头注意力

多头注意力通过将上述过程重复多次来增强模型的能力,每次使用不同的线性变换(不同的权重矩阵)。这意味着每个“头”实际上是在不同的表示空间中进行自注意力计算。最终,所有头的输出被拼接在一起,并通过一个额外的线性变换得到最终的输出。

这样做有几个好处:

  • 捕捉不同粒度的信息:每个头可以专注于不同的特征或模式。
  • 增加模型容量:多头注意力增加了模型的参数数量,提高了模型的表达能力。
  • 提高稳定性:通过在多个子空间中进行注意力计算,可以减少单一注意力头过拟合的风险。

五 多头掩码注意力机制公式

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

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

相关文章

HTML静态网页成品作业(HTML+CSS)——动漫大耳朵图图网页(4个页面)

🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,未使用Javacsript代码,共有4个页面。 二、作品演示 三、代…

智能化的知识管理:大模型在知识图谱构建中的突破性应用

转自:大模型奇点说 知识图谱是一种以图形结构组织数据的知识表示形式,其中,概念、事件、实体等知识单元通过节点呈现,而它们之间的各种关系则通过边来描述。知识图谱的显著特点在于,通过关系的定义,为节点提…

EmguCV学习笔记 VB.Net 9.3 移动检测类

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 EmguCV是一个基于OpenCV的开源免费的跨平台计算机视觉库,它向C#和VB.NET开发者提供了OpenCV库的大部分功能。 教程VB.net版本请访问…

第十一课,多分支判断

一,多分支结构 某些场景下,判断条件不止一个,可能有多个。 语法格式(下图左): *需要注意:这里仅是以5种选择作为例子, 可以根据自己的需要,在if...else的中间插入任意…

OrangePi AIpro 香橙派 昇腾 Ascend C 算子开发 与 调用 - Tiling实现

OrangePi AIpro 香橙派 昇腾 Ascend C 算子开发 与 调用 - Tiling实现 flyfish 前置知识 基于Kernel直调工程的算子开发流程图 其中有一个Tiling实现 什么是Tiling、Tiling实现 计算API,包括标量计算API、向量计算API、矩阵计算API,分别实现调用S…

51单片机-串口通信(电脑向串口助手发送数据不接收)

80C52中的串口通过SCON寄存器配置波特率位可变的,因此,需要通过计算定时器1的参与,在定时器配置过程中选择定时器的相关寄存器TMOD来配置定时器的模式为模式2(8位自动重装定时器,如上图,TL1为计数器&#x…

SpringBoot动态配置Nacos

重要知识点 Nacos属性的简单使用 将SpringBoot中的所有配置全部放入到Nacos中 开发人创建单独的命名空间,修改互不影响 Nacos经常变动的配置抽离到外部文件中 将项目中的所有配置全部放到到 1. 首先引入包 <!-- nacos 接入--><!-- https://mvnrepository.com/artifact…

网络安全服务基础Windows--第14节-数字签名

散列函数&#xff08;Hash Function&#xff09;&#xff0c;也称为哈希函数&#xff0c;是密码学中⼀个重要的⼯具。它能够将任意⻓度的输⼊数据转换为固定⻓度的输出&#xff08;散列值或哈希值&#xff09;。这种转换过程具有单向性&#xff0c;即很难从输出推断出输⼊&…

uniapp scroll-view滚动页面

页面滚动固定距离&#xff08;scrollTop&#xff09; <template><view><button click"Test">测试</button><scroll-view style"height: 100px;" :scroll-top"scrollTop" scroll-y"true" class"scrol…

大数据-116 - Flink DataStream Sink 原理、概念、常见Sink类型 配置与使用 附带案例1:消费Kafka写到Redis

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…

Cadence Virtuoso添加工艺库、转换工艺库格式

系统环境&#xff1a;Red Hat 操作软件&#xff1a;Virtuoso 工艺库&#xff1a;tsmc18rf 1、准备好工艺库文件&#xff0c;放在任意文件夹内&#xff0c;记住文件路径&#xff1a; 2、打开Virtuoso软件&#xff1a; 在桌面右键打开终端&#xff0c;输入&#xff1a; virtuo…

Web3D 技术发展瓶颈在哪里?

Web3D 技术的发展瓶颈主要集中在以下几个方面&#xff1a; 1、性能和优化&#xff1a;尽管现代浏览器和硬件逐步提高了性能&#xff0c;但高质量的3D渲染仍可能导致性能瓶颈。特别是在移动设备上&#xff0c;图形渲染和计算可能会受到限制。建议合理控制好项目资源量&#xff…

DataGridView用法合集【精品】

1.当前的单元格属性取得、变更 [VB.NET] Console.WriteLine(DataGridView1.CurrentCell.Value) Console.WriteLine(DataGridView1.CurrentCell.ColumnIndex) Console.WriteLine(DataGridView1.CurrentCell.RowIndex) DataGridView1.CurrentCell DataGridView1(0, 0) [C#] Con…

毕业设计选题系统

一、项目概述 Hi&#xff0c;大家好&#xff0c;今天分享的项目是《毕业设计选题系统》。 毕业论文选题是大学教学管理中的重要环节&#xff0c;关系到高校的教学质量。传统的手工管理方式工作效率低下、管理繁琐&#xff0c;浪费教师和学生的时间与精力的问题。本系统以提高…

鸿蒙HarmonyOS使用地图服务

1. 生成签名证书指纹 按照步骤生成签名证书指纹 步骤1&#xff1a; 步骤2&#xff1a; 步骤3&#xff1a;Key store file为生成的*.p12文件的存储路径&#xff0c;可以自己选择路径并自定义文件名&#xff0c;输入并确认密码后&#xff0c;点击确认 步骤4&#xff1a;Key s…

代码随想录算法day28 | 动态规划算法part01 | 理论基础、509. 斐波那契数、70. 爬楼梯、 746. 使用最小花费爬楼梯

理论基础 什么是动态规划 动态规划&#xff0c;英文&#xff1a;Dynamic Programming&#xff0c;简称DP&#xff0c;如果某一问题有很多重叠子问题&#xff0c;使用动态规划是最有效的。 所以动态规划中每一个状态一定是由上一个状态推导出来的&#xff0c;这一点就区分于贪…

关于位结构体及位操作总结

#include <stdio.h> #pragma pack(1) struct stu{char a:4; // a占用char的低4位 char b:4; // b占用char的高4位&#xff08;注意&#xff0c;这里实际上是与a共享同一个char的空间&#xff09; }; #pragma pack(4) int main() {struct stu s{.a2, //a:0010.b3, …

如何对单片机程序进行加密(防止别人破解)

单片机程序的破解无非就是非法途径获得源代码或者可执行文件&#xff08;hex文件&#xff09;。本文主要介绍两个方法防止别人从单片机fash中获取可执行文件&#xff08;hex文件&#xff09;。一方面保证别人不能获取你的hex文件&#xff0c;另一面就算别人非法获取你的hex文件…

Windows下的Redis启动报错Redis service failed to start

报错原因&#xff1a;Redis服务没有找到log文件 解决方案&#xff1a; 1、在Redis目录下打开redis.windows-service.conf文件 2、找到logfile存放目录&#xff0c;一般默认为Logs/redis_log.txt 3、在Redis目录创建Logs文件夹&#xff0c;在Logs文件夹下创建redis_log.txt文件…

工业图像输出卡设计原理图:FMC214-基于FMC兼容1.8V IO的Full Camera Link 输出子卡

FMC214-基于FMC兼容1.8V IO的Full Camera Link 输出子卡 一、板卡概述   基于FMC兼容1.8V IO的Full Camera Link 输出子卡支持Base、Middle、Full Camera link信号输出&#xff0c;兼容1.8V、2.5V、3.3V IO FPGA信号输出。适配xilinx不同型号开发板和公司内部各FMC载板。板…