首页 > 其他分享 >Transformer图解以及相关的概念解析

Transformer图解以及相关的概念解析

时间:2024-09-08 21:53:28浏览次数:16  
标签:Transformer 解析 self Attention Encoder 解码器 图解 Self 向量

前言

transformer是目前NLP甚至是整个深度学习领域不能不提到的框架,同时大部分LLM也是使用其进行训练生成模型,所以transformer几乎是目前每一个机器人开发者或者人工智能开发者不能越过的一个框架。接下来本文将从顶层往下去一步步掀开transformer的面纱。

transformer概述

Transformer模型来自论文Attention Is All You Need

在论文中最初是为了提高机器翻译的效率,它使用了Self-Attention机制和Position Encoding去替代RNN。后来大家发现Self-Attention的效果很好,并且在其它的地方也可以使用Transformer模型。并引出后面的BERT和GPT系列。

大家一般看到的transformer框架如下图所示:

Transformer图解以及相关的概念解析_全连接

transformer模型概览

首先把模型看成一个黑盒,如下图所示,对于机器翻译来说,它的输入是源语言(法语)的句子,输出是目标语言(英语)的句子。

Transformer图解以及相关的概念解析_全连接_02

把黑盒子稍微打开一点,Transformer(或者任何的NMT系统)可以分成Encoder和Decoder两个部分,如下图所示。

Transformer图解以及相关的概念解析_迭代_03

再展开一点,Encoder由很多结构一样的Encoder堆叠而成,Decoder也是一样。如下图所示。

每一个Encoder的输入是下一层Encoder输出,最底层Encoder的输入是原始的输入(法语句子);Decoder也是类似,但是最后一层Encoder的输出会输入给每一个Decoder层,这是Attention机制的要求。

Transformer图解以及相关的概念解析_迭代_04

每一层的Encoder都是相同的结构,它由一个Self-Attention层和一个前馈网络(全连接网络)组成,如下图所示。

Transformer图解以及相关的概念解析_全连接_05

每一层的Decoder也是相同的结构,它除了Self-Attention层和全连接层之外还多了一个Attention层,这个Attention层使得Decoder在解码时会考虑最后一层Encoder所有时刻的输出。它的结构如下图所示。

Transformer图解以及相关的概念解析_迭代_06

transformer流程串联

transformer的串流需要tensor的加入,输入的句子需要通过Embedding把它变成一个连续稠密的向量,如下图所示。

Transformer图解以及相关的概念解析_全连接_07

Embedding之后的序列会输入Encoder,首先经过Self-Attention层然后再经过全连接层

Transformer图解以及相关的概念解析_全连接_08

我们在计算

标签:Transformer,解析,self,Attention,Encoder,解码器,图解,Self,向量
From: https://blog.51cto.com/u_15641375/11953029

相关文章

  • 深度解析卡尔曼滤波:原理、作用与应用
    目录一、卡尔曼滤波的基本概念二、卡尔曼滤波的数学原理三、卡尔曼滤波的作用四、卡尔曼滤波的应用五、扩展:扩展卡尔曼滤波和无迹卡尔曼滤波六、总结卡尔曼滤波(KalmanFilter)是一种用于动态系统状态估计的数学算法,尤其适用于存在噪声和不确定性的环境。其广泛应用于......
  • freeRTOS源码解析4--task.c 3
    4.2.6任务删除--vTaskDelete这个接口并不复杂,主要是在判断是否要放到xTasksWaitingTermination列表里,还是直接处理。1voidvTaskDelete(TaskHandle_txTaskToDelete)2{3TCB_t*pxTCB;4BaseType_txDeleteTCBInIdleTask=pdFALSE;5BaseTyp......
  • PostgreSQL分区功能深度解析及代码样例
    PostgreSQL分区功能深度解析及代码样例引言PostgreSQL(简称PG)是一款功能强大的开源关系型数据库管理系统,广泛应用于各种企业级应用中。随着数据量的不断增长,数据库的性能和可管理性成为开发者关注的焦点。PostgreSQL的分区功能正是为了解决这些问题而设计的,它允许将一个大表分割成......
  • Linux主流系统的优缺点深度解析
    Linux主流系统的优缺点深度解析Linux,作为开源和免费的操作系统,以其高度的稳定性、安全性、灵活性以及丰富的软件生态系统,在服务器、嵌入式系统和桌面计算等多个领域得到广泛应用。本文将深入探讨几种主流的Linux发行版——RedHat、CentOS、Ubuntu、Debian和Fedora,并详细分析它们的......
  • C++万字解析类和对象
     1.类的定义class为定义类的关键字,Stack为类的名字,{}中为类的主体,注意类定义结束时后面分号不能省略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数。为了区分成员变量,一般习惯上成员变量会加一个特殊标识,如成员变量前面......
  • 【Java】Word题库解析2
     初稿见:https://www.cnblogs.com/mindzone/p/18362194一、新增需求在原稿题库之后,还需要生成一份纯题目+ 纯答案答案放在开头,题目里面去掉答案在检查题型时还发现部分内容略有区别: 所以在判断是否为答案的时候需要兼容这种答案二、关于老版本支持doc2000版需要追加......
  • Go语言中的RPC协议原理解析
    Go语言中的RPC协议原理解析在分布式系统中,不同的服务或组件通常运行在不同的计算机或进程上。为了实现这些服务之间的通信,我们可以使用RPC(RemoteProcedureCall,远程过程调用)协议。RPC允许我们像调用本地函数一样调用远程服务,从而简化了分布式系统中的通信复杂性。本文将详......
  • 【C#生态园】构建交互式界面利器:C#命令行解析库全方位评测
    C#命令行利器:选择最适合你的命令行解析器前言在现代软件开发中,命令行解析器库是不可或缺的工具,它们为开发人员提供了简单、高效地处理命令行参数和构建交互式命令行界面的方法。本文将介绍几个用于C#的优秀命令行解析器库,分别探讨它们的核心功能、使用场景、安装配置以及A......
  • 深入解析多智能体强化学习算法的训练效率
    深入解析多智能体强化学习算法的训练效率在多智能体强化学习(MARL)领域,不同算法的训练效率和最终性能差异显著。本文将深入分析几种主流MARL算法的训练特性,探讨影响其效率的关键因素。1.算法概览我们将讨论以下几种典型的MARL算法:VDN(ValueDecompositionNetworks)QM......
  • 面试必备:从源码解析 Promise 方法的核心实现
    前言手写Promise相关经常是各大公司手撕代码环节会被问到的问题,本文手把手带你实现一遍Promise的核心功能和方法。基础功能实现consttest=newPromise((reslove,reject)=>{reslove("siu");});test.then((res)=>{console.log(res);......