Transformer 模型介绍(一)——综述

Transformer 是一种完全基于注意力机制的神经网络模型,首次在2017年的论文《Attention Is All You Need》中提出。该模型最初用于机器翻译任务,并在特定任务中表现优于谷歌的其他神经网络机器翻译模型。Transformer 也是 Seq2Seq(序列到序列)结构的模型,但与之前基于 RNN(循环神经网络)的 Seq2Seq 模型相比,Transformer 具有更好的并行性,能够显著提高模型的训练和推理速度

目录

1 Transformer 的核心特点

1.1 自注意力机制(Self-Attention)

1.2 多头注意力(Multi-Head Attention)

1.3 位置编码(Positional Encoding)

1.4 编码器-解码器结构(Encoder-Decoder Architecture)

1.5 并行性

2 架构及工作流程

2.1 输入(Input)

2.2 编码器(Encoder)

2.3 解码器(Decoder)

2.4 输出(Output)

3 通俗比喻


1 Transformer 的核心特点

1.1 自注意力机制(Self-Attention)

  • Transformer 的核心是自注意力机制,它允许模型在处理输入序列时,关注序列中的不同部分。通过计算每个词与其他词的相关性,模型能够捕捉到长距离依赖关系

  • 自注意力机制的计算公式如下:

\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V

其中,Q(查询)、K(键)、V(值)是输入序列的线性变换,dk​ 是键的维度

1.2 多头注意力(Multi-Head Attention)

  • 为了增强模型的表达能力,Transformer 使用了多头注意力机制。它将输入序列分别映射到多个不同的子空间,并在每个子空间中计算注意力,最后将结果拼接起来

  • 多头注意力的计算公式如下:

\text{MultiHead}(Q, K, V) = \text{Concat}(\text{head}_1, \text{head}_2, \dots, \text{head}_h)W^O

其中,每个 headi​ 是单头注意力的计算结果,WO 是输出权重矩阵

1.3 位置编码(Positional Encoding)

  • 由于 Transformer 不使用 RNN,因此需要一种方式来表示序列中词的位置信息。Transformer 通过位置编码将位置信息注入到输入序列中。

  • 位置编码的计算公式如下:

PE_{(pos, 2i)} = \sin\left(\frac{pos}{10000^{\frac{2i}{d_{\text{model}}}}}\right), \quad PE_{(pos, 2i+1)} = \cos\left(\frac{pos}{10000^{\frac{2i}{d_{\text{model}}}}}\right)

其中,pos 是位置,是维度

1.4 编码器-解码器结构(Encoder-Decoder Architecture)

  • Transformer 由编码器和解码器两部分组成。编码器将输入序列映射为一系列隐藏表示,解码器则根据这些表示生成输出序列

  • 编码器和解码器都由多个相同的层堆叠而成,每层包含多头注意力机制和前馈神经网络

1.5 并行性

  • 由于 Transformer 不依赖于 RNN 的递归结构,因此可以并行处理整个输入序列,大大提高了训练和推理的速度

2 架构及工作流程

2.1 输入(Input)

  • 接受输入数据,通过输入 Tokenizer 和 Embedding 进行预处理

  • Tokenizer 将输入文本分割为 token,Embedding 将 token 映射为固定维度的向量表示


2.2 编码器(Encoder)

  • 编码器由多个相同的层(Nx)堆叠而成

  • 每一层包括以下两个主要组件:

    1. 多头自注意力机制(Multi-Head Attention):

      • 计算输入序列中每个 token 与其他 token 的相关性

    2. 前馈神经网络(Feed Forward):

      • 对每个 token 的表示进行非线性变换

  • 每个子层后都进行加和归一化(Add & Norm):

    • 加和(Add):将子层的输入与输出相加(残差连接)

    • 归一化(Norm):对结果进行层归一化(Layer Normalization)


2.3 解码器(Decoder)

  • 解码器也由多个相同的层(Nx)堆叠而成

  • 每层包括以下三个主要组件:

    1. 掩码多头自注意力机制(Masked Multi-Head Attention):

      • 用于处理解码器输入数据的注意力计算,通过掩码防止未来 token 的信息泄露

    2. 多头自注意力机制(Multi-Head Attention):

      • 计算解码器输出与编码器输出的相关性

    3. 前馈神经网络(Feed Forward):

      • 对每个 token 的表示进行非线性变换

  • 每个子层后同样进行加和归一化(Add & Norm)。


2.4 输出(Output)

  • 解码器的输出通过以下步骤生成最终结果:

    1. 线性层(Linear):

      • 将解码器的输出映射到目标词汇表大小的维度

    2. Softmax 函数:

      • 将线性层的输出转换为概率分布

  • 最终生成输出概率分布(Output Probabilities),用于预测下一个 token 或生成目标序列

3 通俗比喻

可以用更通俗的比喻来理解Transformer:

想象你是一个国际会议的翻译员。传统的翻译系统(RNN模型)像是只能逐个单词记录的小本子,必须按顺序记录每个词,遇到长句子就容易记混重点。而Transformer则像是一支分工明确的高效团队:

1️⃣【注意力聚焦】团队成员通过"注意力放大镜"(注意力机制)同时观察整个句子,自动识别关键信息。比如翻译"那只站在树下的黑白猫吃了鱼"时,他们会同时注意到"猫-吃-鱼"的核心关系,以及"树下-黑白"的修饰信息,就像团队中有人专门记录动作,有人负责观察场景

2️⃣【并行工作流】不同于传统翻译必须逐字处理,这个团队可以多人同时工作。就像快递分拣中心同时处理多个包裹,Transformer能并行处理所有单词,训练速度比传统模型快6倍以上,这也是它迅速成为AI核心技术的原因

3️⃣【全局理解力】在翻译长文本时,传统方法像用手电筒逐字照亮,而Transformer像打开了整个房间的灯,能同时看清所有词语之间的关系。这种全局视野让它特别擅长处理需要长距离关联的任务,比如理解"虽然昨天下雨了,但是因为小明带了伞,所以..."这类复杂逻辑

正是这些突破,让Transformer不仅成为翻译利器,还成为了ChatGPT等大语言模型的核心架构。就像内燃机彻底改变了交通工具,Transformer机制正在重塑人工智能的发展方向

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】多线程 -> 从线程概念到线程控制

线程概念 在一个程序里的一个执行路线就叫做线程(thread)。更准确的定义是:线程是“一个进程内部的控制序列”。一切进程至少都有一个执行线程。线程在进程内部运行,本质是在进程地址空间内运行。在Linux系统中,在CPU眼…

.NET Web-静态文件访问目录浏览

一、Web根目录访问 创建wwwroot文件夹app.UseStaticFiles(); // 启⽤静态⽂件中间件url/路径 进行访问 二、Web根目录之外的文件 app.UseStaticFiles(new StaticFileOptions {FileProvider new PhysicalFileProvider(Path.Combine(builder.Environment.ContentRootPath,&qu…

cap1:TensorRT是什么?

文章目录 1、什么是 TensorRT?2、TensorRT 的优势3、TensorRT 加速 PyTorch 模型的基本流程3.1 训练模型和保存模型3.2 导出模型3.3 转换为 TensorRT 引擎3.4 加载与推理 4、基础环境配置4.1 安装nvidia驱动4.2 安装CUDA4.3 安装cuDNN 在软件工程领域,部…

JVM——堆的回收:引用计数发和可达性分析法、五种对象引用

目录 引用计数法和可达性分析法 引用计数法: 可达性分析算法: 五种对象引用 软引用: 弱引用: 引用计数法和可达性分析法 引用计数法: 引用计数法会为每个对象维护一个引用计数器,当对象被引用时加1&…

云计算实训室解决方案(2025年最新版)

一、中高职及本科院校在云计算专业建设中面临的挑战 随着大数据、信息安全、人工智能等新兴信息技术产业的快速发展,相关领域人才需求激增,许多本科及职业院校纷纷开设云计算及相关专业方向。 然而,大多数院校在专业建设过程中面临以下困难&…

C语言第18节:自定义类型——联合和枚举

1. 联合体 C语言中的联合体(Union)是一种数据结构,它允许在同一内存位置存储不同类型的数据。不同于结构体(struct),结构体的成员各自占有独立的内存空间,而联合体的所有成员共享同一块内存区域…

深度学习框架探秘|PyTorch:AI 开发的灵动画笔

前一篇文章我们学习了深度学习框架——TensorFlow(深度学习框架探秘|TensorFlow:AI 世界的万能钥匙)。在人工智能领域,还有一个深度学习框架——PyTorch,以其独特的魅力吸引着众多开发者和研究者。它就像一…

springcloud集成gateway

本篇文章只介绍gateway模块的搭建步骤,并无gateway详细介绍 gateway详解请查看:SpringCloudGateway官方文档详解 前置处理 父模块中已指定版本 不知道如何选择版本看这篇: 手把手教你梳理springcloud与springboot与springcloudalibaba的版本…

计算机网络(1)基础篇

目录 1.TCP/IP 网络模型 2.键入网址--->网页显示 2.1 生成HTTP数据包 2.2 DNS服务器进行域名与IP转换 2.3 建立TCP连接 2.4 生成IP头部和MAC头部 2.5 网卡、交换机、路由器 3 Linux系统收发网络包 1.TCP/IP 网络模型 首先,为什么要有 TCP/IP 网络模型&a…

PyInstaller在Linux环境下的打包艺术

PyInstaller是一款强大的工具,能够将Python应用程序及其所有依赖项打包成独立的可执行文件,支持Windows、macOS和Linux等多个平台。在Linux环境下,PyInstaller打包的可执行文件具有独特的特点和优势。本文将详细介绍PyInstaller在Linux环境下…

寒假2.12

题解 web:XYCTF2024-牢牢记住,逝者为大 打开环境,是源代码 看到了熟悉的preg_match函数 代码解析: 输入的cmd长度不能超过13,可以使用GET[‘cmd’]躲避长度限制 使用正则表达式过滤的一系列关键字 遍历get数组&…

如何构建有效的人工智能代理

目录 什么是 AI 代理? 何时应使用 AI 代理? 人工智能代理的构建模块 构建 AI 代理的常用方法 1. 提示链接(分步说明) 2.路由(将任务发送到正确的地方) 3.并行处理(同时做多件事) 4. 协调者和工作者 AI(团队合作) 5. 评估器和优化器(修复错误) 如何让人工…

华为云+硅基流动使用Chatbox接入DeepSeek-R1满血版671B

华为云硅基流动使用Chatbox接入DeepSeek-R1满血版671B 硅基流动 1.1 注册登录 1.2 实名认证 1.3 创建API密钥 1.4 客户端工具 OllamaChatboxCherry StudioAnythingLLM 资源包下载: AI聊天本地客户端 接入Chatbox客户端 点击设置 选择SiliconFloW API 粘贴1.3创…

mysql读写分离与proxysql的结合

上一篇文章介绍了mysql如何设置成主从复制模式,而主从复制的目的,是为了读写分离。 读写分离,拿spring boot项目来说,可以有2种方式: 1)设置2个数据源,读和写分开使用 2)使用中间件…

吊舱响应波段详解!

一、响应波段技术 可见光波段:通过高分辨率相机捕捉地面或空中目标的清晰图像,适用于白天或光照条件良好的环境下进行观测。 红外波段:利用红外辐射探测目标的温度分布,实现夜间或恶劣天气条件下的隐蔽目标发现。红外波段通常分…

AI驱动的直播带货电商APP开发:个性化推荐、智能剪辑与互动玩法

时下,个性化推荐、智能剪辑、互动玩法等AI技术的应用,使得直播电商平台能够精准触达用户、提升观看体验、提高转化率。对于希望在直播电商领域占据一席之地的企业来说,开发一款AI驱动的直播带货APP,已经成为提升竞争力的关键。 一…

ComfyUI流程图生图原理详解

一、引言 ComfyUI 是一款功能强大的工具,在图像生成等领域有着广泛应用。本文补充一点ComfyUI 的安装与配置过程遇到的问题,并深入剖析图生图过程及相关参数,帮助读者快速入门并深入理解其原理。 二、ComfyUI 的安装与配置中遇到的问题 &a…

本地部署DeepSeek集成VSCode创建自己的AI助手

文章目录 安装Ollama和CodeGPT安装Ollama安装CodeGPT 下载并配置DeepSeek模型下载聊天模型(deepseek-r1:1.5b)下载自动补全模型(deepseek-coder:1.3b) 使用DeepSeek进行编程辅助配置CodeGPT使用DeepSeek模型开始使用AI助手 ✍️相…

硬件学习笔记--40 电磁兼容试验-4 快速瞬变脉冲群试验介绍

目录 电磁兼容试验-快速瞬变脉冲群试验介绍 1.试验目的 2.试验方法 3.判定依据及意义 电磁兼容试验-快速瞬变脉冲群试验介绍 驻留时间是在规定频率下影响量施加的持续时间。被试设备(EUT)在经受扫频频带的电磁影响量或电磁干扰的情况下,在…

c++ 多线程知识汇总

一、std::thread std::thread 是 C11 引入的标准库中的线程类&#xff0c;用于创建和管理线程 1. 带参数的构造函数 template <class F, class... Args> std::thread::thread(F&& f, Args&&... args);F&& f&#xff1a;线程要执行的函数&…