当前位置: 首页 > news >正文

Transformer整体结构与自注意力机制的实现

都听过GPT、ChatGPT、BERT这些名称,它们的核心都基于同一个架构Transformer,Transformer是一种用于自然语言处理(NLP)和其他序列到序列(sequence-to-sequence)任务的深度学习模型架构。2017年,谷歌《Attention Is All You Need》论文提出的这一模型,彻底改变了自然语言处理的格局。下面我们将深入解析一下Transformer的内部结构与自注意力机制的实现。

一、传统序列模型的局限性

在Transformer之前,循环神经网络(RNN) 及其变体LSTM是处理序列数据的主流选择。RNN按顺序处理输入,如同人类逐字阅读:

  • 顺序依赖:必须等待前一个时间步计算完成才能处理下一个,难以并行化
  • 长期依赖衰减:信息在长序列中传递时会逐渐衰减或爆炸
  • 计算效率低下:无法充分利用现代GPU的并行计算能力

二、Transformer整体架构揭秘

Transformer采用的编码器-解码器结构,但其实现方式完全突破了序列模型的限制。
Transformer整体结构:
在这里插入图片描述

编码器(Encoder)

编码器由N个完全相同的层堆叠而成。每一层都包含两个核心子层:

  1. 多头自注意力机制(Multi-Head Self-Attention)
  2. 前馈神经网络(Position-wise Feed-Forward Network)

每个子层都采用残差连接(Residual Connection)和层归一化(Layer Normalization),即:
Output = LayerNorm(x + Sublayer(x))
在这里插入图片描述

解码器栈(Decoder)

解码器同样由N个相同层堆叠,但结构更加复杂:

  1. 掩码多头自注意力机制(Masked Multi-Head Self-Attention)
  2. 编码器-解码器注意力机制(Encoder-Decoder Attention)
  3. 前馈神经网络
    在这里插入图片描述

三、自注意力机制

自注意力是Transformer的核心创新,让我们逐步拆解其实现过程。

步骤1:输入表示与位置编码

首先,每个输入词元被转换为词嵌入向量。但由于自注意力本身不包含位置信息,我们需要加入位置编码(Positional Encoding):
位置编码transformer采用sin-cos位置编码,下面是数学公式
在这里插入图片描述
在这里插入图片描述
其中pos是位置,i是维度索引。
得到位置编码后与输入词向量相加然后输入编码器

步骤2:查询、键、值矩阵的生成

对于每个输入词嵌入矩阵,我们通过线性变换生成三个向量qkv:

  • 查询向量(Q):表示"我正在寻找什么"
  • 键向量(K):表示"我包含什么信息"
  • 值向量(V):表示"我的实际内容是什么"

数学表达:Q = XW^Q, K = XW^K, V = XW^V
其中X是输入矩阵,W^Q, W^K, W^V是可学习的权重矩阵。
在这里插入图片描述

步骤3:注意力分数的计算

计算Thinking与与其他词的关注程度,用Thinking查询向量与每个词(包含Thinking)的键向量点积后得到分数,根据点击后的得分我们可以判断向量的相关性

在这里插入图片描述

步骤4:Softmax归一化与加权求和

通过softmax函数将注意力分数转换为概率分布,然后对值向量进行加权求和:
在这里插入图片描述
最终每个词的输出向量z_i都包含了其他词的信息,每个词都不再是孤立的了,而且词与词的相关程度可以通过softmax输出的权重进行分析。如此,所有单词的自注意力计算就完成了,得到的向量就可以传给前馈神经网络。

四、多头注意力

单一注意力机制可能不够丰富,Transformer引入了多头注意力
在transformer中有多组查询/键/值权重矩阵集,输入向量可以被映射到不同的子表达空间中,在多头注意力机制下,每个头都有WQ,WK,WV的矩阵获得独立的QKV矩阵
在这里插入图片描述
每个头都独立做上面自注意力机制的计算
在这里插入图片描述
获取注意力头之后,我们无法直接传入前馈神经网络,我们需要将他拼接在一块,然后乘以一个权重矩阵,转变为与原输入词嵌入矩阵相同维度且融合了所有注意头的特征矩阵
在这里插入图片描述

多头机制让模型可以同时关注不同方面的信息,如语法结构、语义关系等。

五、前馈网络与残差连接

前馈网络(Position-wise FFN)

每个位置独立应用相同的前馈网络:
这是一个两层的全连接网络,第一层全连接后relu激活后再接一个全连接输出

残差连接与层归一化

每个子层都采用残差连接相加后批归一化。
在这里插入图片描述
在这里插入图片描述

这种设计缓解了梯度消失问题,使深层网络的训练更加稳定。

http://www.dtcms.com/a/536955.html

相关文章:

  • LeetCode 852.山脉数组的峰顶索引
  • 提升 Web 端 JavaScript 的可信度:WAICT 体系详解
  • 做公司网站图片算是商用吗建立一个网页需要多少钱
  • 广州网站制作功能春雨app直播免费版下载
  • LangGraph 官方教程:聊天机器人之四
  • 【多模态】qwen3-vl的强化微调
  • 网站开发岗位思维导图vps 网站攻击ip地址
  • python-docx 节操作
  • [nanoGPT] 文本生成 | 自回归采样 | `generate`方法
  • 【Linux专栏】shell脚本变量的取值|转换
  • [Dify 实战] 插件调试技巧(进阶篇):本地测试与部署全流程问题排查指南(Dify本地部署环境下)
  • 一、初识 LangChain:架构、应用与开发环境部署
  • 中山公司网站建设阿里云域名交易平台
  • 做flash音乐网站的开题报告做网站建设的合同范本
  • Trait与泛型高级用法
  • 解锁效率:一份关于大语言模型量化的综合技术指南
  • 网站后天添加文章不显示上海搜索优化推广哪家强
  • 前端基础之《React(3)—webpack简介-集成JSX语法支持》
  • 虚拟机之间配置免密登录(Centos)
  • 嵌入式测试的工作内容非常具体和专业化,它横跨了软件和硬件两个领域。
  • 保定网站建设团队网站备案密码 多少位
  • ZW3D二次开发_整图缩放
  • 滁州网站建设费用开发公司网签价格
  • 福州建网站公司最好的营销型网站建设公司
  • 新手入门:一篇看懂计算机基础核心知识
  • 每日算法刷题Day80:10.27:leetcode 回溯11道题,用时3h
  • 建设一个网站的规划广州seo公司如何
  • [强化学习] 第1篇:奖励信号是智能的灵魂
  • 从“看得见“到“看得懂“:监控安全管理的智能进化
  • YOLOv5 核心模块解析与可视化