Transformer网络结构解析

博主会经常分享自己在人工智能阶段的学习笔记,欢迎大家访问我滴个人博客!(都不白来!)

小牛壮士 - 个人博客https://kukudelin.top/

前言

Transformer 广泛应用于自然语言处理(如机器翻译、文本生成)等领域,是BERT、GPT等大模型的基础架构

  • 以自注意力机制为核心:让模型关注输入序列中不同位置的关联

  • 具备强并行化能力:彻底摆脱了RNN等模型的序列依赖,能并行处理输入数据

  • 采用编码器 - 解码器架构:分别负责处理输入序列为上下文表示及据此生成输出序列。

一、位置编码Position Encoding

1.1 因

自注意力机制在计算关联时,本质上是对序列中所有元素进行 “全局配对” 计算,没有办法考虑到元素的输入顺序,因此在输入之前我们需要使用位置编码使自注意力机制区分序列中不同位置的元素

1.2 果

在输入到 Transformer 模型之前,每个词的词嵌入向量(包含语义信息的原始维度数据)会与对应的位置编码向量(模型根据这个编码来区分输入特征的前后位置)进行逐元素相加,形成一个新的向量。这个新向量同时包含了词的语义信息和它在序列中的位置信息。

1.2.1 固定函数生成位置编码

对于一个长度为N,词向量维度为d的句子,他在长度索引为i,维度索引为j的位置编码计算公式如下

例如步长为5的句子“I am a handsome boy”,经过嵌入层得到4个维度的词向量,那么对应的位置编码为:

最终得到的位置编码与词嵌入向量逐元素相加,得到最终输入模型的矩阵

二、层归一化

与批归一化不同,层归一化是对神经网络某一层所有输入特征按样本计算均值和方差,再进行标准化以稳定训练的技术,他的范围是一个输入词向量在神经网络中的某一层的所有特征维度。

相当于对句子中每一个词对应的行向量求归一化,可以看看这个案例:

三、编码器Encoder

编码器主要负责对输入序列进行深度处理和信息提取,将原始输入(如一句话、一段文本)转换为包含丰富上下文信息的向量表示

模块组成部分:

  • Multi-Head Attention:多头注意力机制

  • Feed Forward:前馈神经网络,就是一个线性层

  • Add&Norm:残差连接和归一化(经过注意力机制和归一化后的输出和最初输入进行逐元素相加,输入→处理→输出 + 输入

四、掩蔽多头自注意力Masked Multi-Head

4.1、掩码Mask

在文本生成任务中,由于模型需按顺序生成内容且遵循“仅基于历史内容预测下一个词”的自回归逻辑,生成第n个词时只能受前n-1个词影响,因此需引入掩码来限制模型对后续未生成内容的关注

掩码操作是加在QK转置相乘后的原始注意力得分矩阵(每个元素表示 “查询向量 Q 对键向量 K 的关联强度”),从而限制模型关注范围,下图所示的掩码矩阵中绿色部分值为0,按位相加后原得分矩阵值不变,表示模型需要关注的范围,黄色部分为-∞,按位相加后仍为-∞,模型不关注这部分

  • 第一步

最终得到的掩码得分矩阵再与V进行加权求和,得到最后Z矩阵,他 “融合了上下文的语义向量”(比如第 0 行 Z 融合了第 0 个位置能关注到的信息)

  • 第二步

以第0行为例,掩码得分举证只显现了第一个词的语义信息,那么当Z处理第 0 个位置的词时,模型只能看到自己的语义,然后把‘自己的语义’作为输出

而对比第1行,Z处理第 1 个词时,模型可以参考‘第 0 个词(历史)’和‘自己(第 1 个词)’的语义,融合后输出

五、解码器Decoder

Transformer 通过编码器输出的全局语义信息结合自回归机制(通过掩码限制仅关注历史生成内容),逐词生成目标序列

注意在解码器的第二个多头注意力机制上融合了编码器的信息依据 Encoder 输出 ( C ) 得到 ( K )、( V ),并以上一个 Decoder block 输出 ( Z ),构建注意力交互基础 。

六、预测输出

始终通过前一个词来预测后一个词,保持模型的自回归属性

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

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

相关文章

gateway进行接口日志打印

打印需求:对所有的接口打印:请求方式,请求路径,请求参数,用户id,访问IP,访问时间对增删改操作的接口打印:接口响应打印方案:给GET设置一个白名单(因为get请求…

MATLAB实现图像增强(直方图均衡化)

直方图均衡化是一种常用的图像增强技术,它通过重新分布图像的像素强度值来增强图像的对比度。以下是MATLAB中实现直方图均衡化的详细方法。%% 直方图均衡变换 clc;close all;clear all;warning off;%清除变量 rand(seed, 100); randn(seed, 100); format long g;%% …

java15学习笔记-密封类

360:Sealed Classes (Preview) 封闭类(预览) 总结 使用密封类和接口增强Java编程语言。密封类和接口限制了哪些其他类或接口可以扩展或实现它们。这是JDK 15中的预览语言功能。 目标 允许类或接口的作者控制负责实现它的代码。 提供一种比访问…

西门子PLC通过稳联技术EtherCAT转Profinet网关连接baumuller伺服器的配置案例

西门子PLC用稳联技术的EtherCAT转Profinet网关,连上baumuller伺服器的配置例子本案例实现西门子S71200 PLC通过EtherCAT转Profinet网关对baumuller(Baumller)伺服器的实时控制,适用于高精度运动控制场景(如精密机床、自…

Ansible 详细笔记

Ansible 详细笔记 一、Ansible 基础概述 1.1 定义与定位 Ansible 是由 Red Hat 主导开发的开源自动化运维工具,基于 Python 语言实现,专注于简化 IT 基础设施的配置管理、应用部署、任务编排等操作。它采用无代理架构,通过 SSH 协议与被控节点…

【Java 后端】Spring Boot 集成 JPA 全攻略

Spring Boot 集成 JPA 全攻略 一、前言 在 Java Web 开发中,数据库访问是绕不开的话题。 传统方式使用 JDBC 编写 SQL,维护困难、可读性差。后来有了 MyBatis 这种半自动 ORM 框架,再到 JPA(Java Persistence API)这…

pytorch学习笔记-加载现有的网络模型(VGG16)、增加/修改其中的网络层(修改为10分类)

写在前面:有些地方和视频里不一样的是因为官方文档更新了,一些参数用法不一样也很正常,包括我现在的也是我这个时间节点最新的,谁知道过段时间会不会更新呢 建议大家不要一味看视频/博客,多看看官方文档才是正道&#…

RocketMQ 4.9.3源码解读-NameServer组件启动流程分析

作者源码阅读笔记主要采用金山云文档记录的,所有的交互图和代码阅读笔记都是记录在云文档里面,本平台的文档编辑实在不方便,会导致我梳理的交互图和文档失去原来的格式,所以整理在文档里面,供大家阅读交流 【金山文档 | WPS云文档】 namesrv 启动流程 相关重要类介绍说明…

《嵌入式 C 语言编码规范与工程实践个人笔记》参考华为C语言规范标准

《嵌入式 C 语言编码规范与工程实践个人笔记》参考华为C语言规范标准 前言 在电子系统开发领域,C 语言作为底层开发的核心语言,其代码质量直接关系到系统的稳定性、可维护性和扩展性。良好的编码规范不仅是团队协作的基础,更是降低生命周期成…

纯半精度模型和全精度模型的耗时分别为248微秒和1400微秒。混合精度模型371微秒比原始模型快大约四倍!

不过有一点需要注意:在上下文管理器内部生成的任何输出,必然会采用该上下文管理器的数据类型。因此,之后我们必须将这些输出转换回FP32(例如,使用float()函数)。 with torch.autocast(device_type="cuda", dtype=torch.float16): res16 = mixed32(torch.randn…

一款开源的远程桌面软件,旨在为用户提供流畅的游戏体验,支持 2K 分辨率、60 FPS,延迟仅为 40ms。

软件介绍 CloudPlayPlus(云玩加)是一款令人惊艳的开源远程桌面、串流软件,云玩加由个人开发者开发者,具有四大特征:开源、免费、低延迟、安全。 软件使用 客户端支持多个平台,包括 Windows、Mac OS、安卓…

MySql——binlog和redolog的区别

目录一、binlog和redolog的区别一、binlog和redolog的区别 binlog和redolog都是存储修改的新数据,是否保留binlog和redolog中的一个即可。 binlog属于整个mysql,是所有引擎共用的,不是只属于innoDB引擎。而redolog属于InnoDB存储引擎。binlo…

软件著作权产生与登记关键点

知识讲解一、 软件著作权的核心特征与权利内容自动产生原则: 这是软件著作权最核心、最重要的特征。产生时间: 软件著作权自软件开发完成之日起自动产生。法律依据: 《中华人民共和国著作权法》第二条及《计算机软件保护条例》第五条明确规定…

什么是主成分分析(PCA)和数据降维

主成分分析(PCA)和数据降维是机器学习和统计学中处理高维数据的核心工具。下面用清晰的结构解释其概念、原理和应用: 一、数据降维(Dimensionality Reduction) 1. 是什么? 目标:将高维数据&…

图论(4)单源赋权最短路径算法实现(BFS实现)

目录 1. 什么是赋权最短路径 2. 赋权最短路径中的关键概念 3. Dijkstra 算法的基本思想 4. Dijkstra 算法实现(Java) 1. 什么是赋权最短路径 在图论中,最短路径问题是指在图中寻找两点之间路径总权重最小的路径问题。如果图的每条边都带…

【Lua】题目小练9

题目:实现一个简单的“银行账户”类要求:使用 元表 模拟面向对象。支持以下功能:Account:new(owner, balance) 创建账户(初始余额可选,默认为 0)。deposit(amount) 存款(不能为负数)…

【二分图】染色问题

核心思想&#xff1a;为每一个未染色的&#xff0c;对它自己和它的邻居进行染色&#xff0c;看是否会出现冲突时间复杂度O&#xff08;nm&#xff09;#include<bits/stdc.h> using namespace std; using lllong long; const int N200010; int n,m; vector<int>edge…

报数游戏(我将每文更新tips)

今日tips&#xff1a;报数游戏题目描述报数游戏的游戏规则如下&#xff1a;对一个区间内的整数进行报数&#xff0c;若遇到的数字是质数或个位数是 1&#xff0c;则不报数&#xff0c;输出 pass。 给定开始游戏的第一个整数 a&#xff0c;及结束游戏时的最后一个整数 b&#xf…

大模型开发 - 基于Spring AI 借助MCP Client 通过STDIO和SSE协议调用MCP Server (上)

文章目录概述MCP协议&#xff1a;为AI应用连接外部世界的桥梁MCP Server&#xff1a;上下文与能力的提供者基于Spring AI 1.0.0的开发之路1. 使用Spring AI构建MCP客户端2. 使用Spring AI构建MCP服务器Mcp Client 实战整体架构概览技术栈Codepom配置mcp servers(sse&stdio)…

分析三个文件--启动文件、链接文件、map文件

目录 启动文件 链接文件 部分map文件内容 FLASH物理地址(0x08000000开始)的映射关系 0x08000000 之前地址空间 启动文件 ;******************** (C) COPYRIGHT 2016 STMicroelectronics ******************** ;* File Name : startup_stm32f40_41xxx.s ;* Author…