Transformer 是一种革命性的**深度学习架构**,由 Google 团队在 2017 年论文《Attention is All You Need》中提出。它彻底改变了自然语言处理(NLP)领域,并逐渐扩展到计算机视觉、语音识别等多模态任务。其核心创新在于**完全依赖自注意力机制(Self-Attention)**,摒弃了传统的循环(RNN/LSTM)或卷积(CNN)结构,实现了高效的并行计算与强大的长距离依赖建模能力。

 

---

 

### **一、核心设计目标**

1. **解决 RNN 的瓶颈**:  

   - RNN 无法并行处理序列(必须逐词计算),且难以捕捉长距离依赖。

2. **提升计算效率**:  

   - 利用自注意力机制实现序列的全局并行计算。

3. **增强语义理解**:  

   - 通过注意力权重动态学习词与词之间的关联强度。

 

---

 

### **二、Transformer 核心架构**

Transformer 由 **编码器(Encoder)** 和 **解码器(Decoder)** 堆叠而成(原始论文中均为 6 层)。以下是其关键组件:

 

#### **1. 输入嵌入(Input Embedding)**  

   - 将输入词(如 "apple")转换为稠密向量(如 512 维)。

   - **添加位置编码(Positional Encoding)**:  

     - 因为 Transformer 没有循环或卷积结构,需显式注入序列顺序信息。

     - 公式:  

       $$PE_{(pos,2i)} = \sin\left(\frac{pos}{10000^{2i/d_{\text{model}}}}\right)$$  

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

     - 其中 `pos` 是位置,`i` 是维度索引。

 

#### **2. 自注意力机制(Self-Attention)**  

   - **核心思想**:每个词通过加权聚合所有词的信息来更新自身表示,权重由相似度决定。  

   - **计算步骤**:  

     1. **生成 Q, K, V 矩阵**:  

        - 输入嵌入 $X$ 乘以可训练矩阵 $W^Q, W^K, W^V$,得到 **Query(查询)**、**Key(键)**、**Value(值)**。  

        $$Q = X W^Q, \quad K = X W^K, \quad V = X W^V$$  

     2. **计算注意力分数**:  

        - $Q$ 与 $K$ 点积,衡量词与词之间的相关性。  

        $$\text{Scores} = Q K^T$$  

     3. **缩放与 Softmax**:  

        - 缩放(除以 $\sqrt{d_k}$,防止梯度消失),再 Softmax 归一化为概率分布。  

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

 

   - **多头注意力(Multi-Head Attention)**:  

     - 并行运行多个自注意力机制(如 8 个头),捕获不同子空间的语义关系。  

     - 结果拼接后线性变换:  

       $$\text{MultiHead} = \text{Concat}(\text{head}_1, \dots, \text{head}_h) W^O$$  

 

#### **3. 残差连接与层归一化(Add & Norm)**  

   - 每层的输出:`LayerNorm(X + Sublayer(X))`  

   - **残差连接**:缓解梯度消失,保留原始信息。  

   - **层归一化**:稳定训练过程。

 

#### **4. 前馈神经网络(Feed-Forward Network)**  

   - 每个注意力层后接一个全连接网络:  

     $$\text{FFN}(x) = \text{ReLU}(xW_1 + b_1)W_2 + b_2$$  

   - 作用:引入非线性变换,增强模型表达能力。

 

#### **5. 解码器(Decoder)的特殊设计**  

   - **掩码自注意力(Masked Self-Attention)**:  

     - 预测第 `t` 个词时,只能看到前 `t-1` 个词(防止信息泄露)。  

   - **编码器-解码器注意力(Encoder-Decoder Attention)**:  

     - 解码器的 `Q` 来自自身,`K` 和 `V` 来自编码器输出,实现跨语言对齐(如翻译中对齐源语与目标语)。

 

---

 

### **三、Transformer 工作流程示例(以机器翻译为例)**

1. **编码器处理源序列**(如英文句子):  

   - 输入词嵌入 + 位置编码 → 多头自注意力 → 前馈网络 → 输出上下文向量。  

2. **解码器生成目标序列**(如中文句子):  

   - 输入:已生成词(起始符 `<sos>`) + 位置编码。  

   - **步骤**:  

     - **掩码自注意力** → **编码器-解码器注意力**(关联源语信息)→ **前馈网络** → 线性层 + Softmax 输出下一个词概率。  

   - 重复直至生成结束符 `<eos>`。

 

---

 

### **四、为何 Transformer 如此强大?**

| **特性** | **优势** |

|-------------------|-------------------------------------------------------------------------|

| **并行计算** | 自注意力可同时处理整个序列,大幅提升训练速度(远超 RNN)。 |

| **长距离依赖** | 任意两个词的关联直接计算,不受序列长度限制(解决了 RNN 的梯度消失问题)。 |

| **多头注意力** | 从不同子空间学习多样化的语义关系(如语法结构、指代关系)。 |

| **可扩展性** | 通过堆叠更多层和增大隐藏维度,构建超大规模模型(如 GPT-3、BERT)。 |

 

---

 

### **五、Transformer 的变体与应用**

1. **仅编码器模型(Encoder-Only)**:  

   - **任务**:文本分类、命名实体识别(NER)。  

   - **代表**:BERT、RoBERTa。  

2. **仅解码器模型(Decoder-Only)**:  

   - **任务**:文本生成(如故事、代码)。  

   - **代表**:GPT 系列、LLaMA、ChatGPT。  

3. **编码器-解码器模型**:  

   - **任务**:机器翻译、摘要生成。  

   - **代表**:T5、BART。  

4. **视觉 Transformer(ViT)**:  

   - 将图像分块为序列,直接用 Transformer 处理,媲美 CNN。

 

---

 

### **六、图解 Transformer 架构**

```mermaid

graph LR

A[输入序列] --> B[嵌入层 + 位置编码]

B --> C[编码器层 x N]

C -->|多头自注意力| D[Add & Norm]

D --> E[前馈网络]

E --> F[Add & Norm]

F --> G[编码器输出]

G --> H[解码器层 x N]

H -->|掩码自注意力| I[Add & Norm]

I -->|编码器-解码器注意力| J[Add & Norm]

J --> K[前馈网络]

K --> L[Add & Norm]

L --> M[线性层 + Softmax]

M --> N[输出序列]

```

 

---

 

### **总结**

Transformer 的核心是通过**自注意力机制**动态学习序列中元素的依赖关系,结合**位置编码**保留顺序信息,利用**残差连接**和**层归一化**保障训练稳定性。其设计打破了序列建模的传统范式,成为当代大语言模型(如 GPT-4、Claude)的基石,并持续推动 AI 技术的边界。

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

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

相关文章

opencv 锁页内存的使用

在OpenCV的CUDA编程中&#xff0c;cv::cuda::HostMem类用于管理锁页内存&#xff08;Page-Locked Memory&#xff09;​&#xff0c;这种内存能显著提升主机&#xff08;CPU&#xff09;与设备&#xff08;GPU&#xff09;间的数据传输效率。而.createMatHeader()正是将HostMem…

亚远景-ASPICE与ISO 26262:理解汽车软件质量保障的双标体系

在汽车行业向智能化、电动化转型的背景下&#xff0c;ASPICE&#xff08;Automotive SPICE&#xff09;与ISO 26262作为汽车软件质量保障的两大核心标准&#xff0c;分别从过程能力与功能安全两个维度构建了完整的开发管理体系。以下从标准定位、核心差异、协同实践及行业价值四…

数组的应用

Java数组的基本概念 数组是Java中一种重要的数据结构&#xff0c;用于存储固定大小的相同类型元素。数组在内存中连续分配空间&#xff0c;可以通过索引快速访问元素。数组的声明和初始化是使用数组的基础&#xff0c;声明时需要指定数据类型和数组名称&#xff0c;初始化可以…

基础RAG实现,最佳入门选择(七)

增强型RAG系统的查询转换 采用三种查询转换技术&#xff0c;以提高RAG系统中的检索性能&#xff0c;而无需依赖于像LangChain这样的专门库。通过修改用户查询&#xff0c;我们可以显著提高检索信息的相关性和全面性。 关键转换技术 1.查询重写&#xff1a;使查询更加具体和详…

企业应用观测中枢建设

本文来自腾讯蓝鲸智云社区用户: CanWay 运维挑战加剧 新时代技术背景下&#xff0c;运维面临的挑战加剧&#xff1a; 1、业务数量日益增加、业务规模日益庞大 随着科技发展进步、民众生活富足&#xff0c;线下业务线上化、线上业务复杂化趋势愈演愈烈&#xff0c;各行各业投…

Python实例题:基于边缘计算的智能物联网系统

目录 Python实例题 题目 问题描述 解题思路 关键代码框架 难点分析 扩展方向 Python实例题 题目 基于边缘计算的智能物联网系统 问题描述 开发一个基于边缘计算的智能物联网系统&#xff0c;包含以下功能&#xff1a; 边缘设备管理&#xff1a;连接和管理大量物联网…

一,python语法教程.内置API

一&#xff0c;字符串相关API string.strip([chars])方法&#xff1a;移除字符串开头和结尾的空白字符&#xff08;如空格、制表符、换行符等&#xff09;&#xff0c;它不会修改原始字符串&#xff0c;而是返回一个新的处理后的字符串 chars&#xff08;可选&#xff09;&…

私有 Word 文件预览转 PDF 实现方案

私有 Word 文件在线预览方案&#xff08;.doc/.docx 转 PDF&#xff09; 前言 由于 .doc 和 .docx Word 文件 无法在浏览器中直接预览&#xff08;尤其在私有 API 场景下&#xff09;&#xff0c;常见的 Content-Disposition: inline 并不能生效。因此&#xff0c;本方案通过…

Alpine Docker 容器中安装包缓存与 C/C++ 运行问题

在使用 Docker 容器部署应用时&#xff0c;基于 Alpine 镜像能带来轻量化的优势&#xff0c;但过程中也会遇到不少问题。今天就来分享下我在 Alpine 容器中解决安装包缓存与 C/C 程序运行问题的经验。 一、Alpine 安装包缓存到本地目录 Alpine Linux 默认使用apk作为包管理工…

[2-02-02].第59节:功能函数 - 函数基础

服务器端操作学习大纲 一、函数基础 需求场景 在shell脚本的编写过程中&#xff0c;我们经常会遇到一些功能代码场景&#xff1a;多条命令组合在一起&#xff0c;实现一个特定的功能场景逻辑、一些命令在脚本内部的多个位置频繁出现。在这些场景的代码量往往不多&#xff0c;…

RA4M2开发涂鸦模块CBU(6)----RA4M2驱动涂鸦CBU模组

RA4M2开发涂鸦模块CBU.6--RA4M2驱动涂鸦CBU模组 概述视频教学样品申请参考程序硬件准备接口生成UARTUART属性配置R_SCI_UART_Open()函数原型回调函数user_uart_callback0 ()变量定义按键回调更新按键状态DP-LED 同步长按进入配网涂鸦协议解析主循环任务调度 概述 本方案基于瑞…

MiniMax-M1: Scaling Test-TimeCompute Efficiently with I Lightning Attention

我们推出了MiniMax-M1&#xff0c;这是全球首个开源权重、大规模混合注意力推理模型。MiniMax-M1采用了混合专家系统&#xff08;Mixture-of-Experts&#xff0c;简称MoE&#xff09;架构&#xff0c;并结合了闪电注意力机制。该模型是在我们之前的MiniMax-Text-01模型&#xf…

Appium+python自动化(二十六) -Toast提示

在日常使用App过程中&#xff0c;经常会看到App界面有一些弹窗提示&#xff08;如下图所示&#xff09;这些提示元素出现后等待3秒左右就会自动消失&#xff0c;那么我们该如何获取这些元素文字内容呢&#xff1f; Toast简介 Android中的Toast是一种简易的消息提示框。 当视图…

【信号与系统三】离散时间傅里叶变换

上一讲我们讲述了连续时间傅里叶变换&#xff0c;这一讲同理来个离散时间傅里叶变换。 和上讲模块类似 5.1离散时间傅里叶变换 这一式子就是离散时间傅里叶变换对 5.2周期信号的傅里叶变换 同理&#xff0c;由于之前第一讲讲到&#xff1a; 可以推出&#xff1a; 举个例子&am…

Python应用石头剪刀布练习初解

大家好!作为 Python 初学者&#xff0c;寻找一个既简单又有趣的项目来练习编程技能是至关重要的。今天&#xff0c;我将向大家介绍一个经典的编程练习——石头剪刀布游戏&#xff0c;它可以帮助你掌握 Python 的基本概念&#xff0c;如条件语句、随机数生成和用户输入处理等。 …

私有规则库:企业合规与安全的终极防线

2.1 为什么企业需要私有规则库?——合规与安全的最后防线 真实案例:2023年某跨境电商因员工泄露内部检测规则,导致黑产绕过风控系统,损失1200万+ 企业规则库的三大刚需: 行业合规: 金融行业需符合《个人金融信息保护技术规范》 医疗行业需满足HIPAA患者数据脱敏要求 业…

长尾关键词优化SEO核心策略

内容概要 本文旨在系统解析长尾关键词在搜索引擎优化中的核心地位&#xff0c;为读者提供从理论到实践的全面指南。文章首先探讨长尾关键词的基础作用&#xff0c;帮助理解其在提升网站流量质量中的价值。接着&#xff0c;深入介绍精准定位低搜索量、高转化率关键词的策略&…

腾讯云事件总线:构建毫秒级响应的下一代事件驱动架构

摘要 事件总线&#xff08;EventBridge&#xff09;作为云原生架构的核心枢纽&#xff0c;其性能与可靠性直接影响企业系统弹性。腾讯云事件总线基于TGW云网关底层能力重构&#xff0c;实现单节点吞吐量提升125%、故障恢复时间降至4秒级&#xff08;行业平均>30秒&#xff0…

PyTorch 中mm和bmm函数的使用详解

torch.mm 是 PyTorch 中用于 二维矩阵乘法&#xff08;matrix-matrix multiplication&#xff09; 的函数&#xff0c;等价于数学中的 A B 矩阵乘积。 一、函数定义 torch.mm(input, mat2) → Tensor执行的是两个 2D Tensor&#xff08;矩阵&#xff09;的标准矩阵乘法。 in…

Qt 解析复杂对象构成

Qt 解析复杂对象构成 dumpStructure 如 QComboBox / QCalendarWidget / QSpinBox … void Widget::Widget(QWidget* parent){auto c new QCalendarWidget(this);dumpStructure(c,4); }void Widget::dumpStructure(const QObject *obj, int spaces) {qDebug() << QString…