Transformer基础结构

简介: Transformer是Vaswani等人于2017年提出的基于注意力机制的神经网络,采用编码器-解码器架构,核心创新包括自注意力、位置编码、残差连接与层归一化,支持并行计算并有效捕捉长距离依赖,广泛应用于自然语言处理任务。

🎯 概述

Transformer是一种基于注意力机制的神经网络架构,由Vaswani等人在2017年提出,彻底改变了自然语言处理领域。

🏗️ 核心组件

1️⃣ 编码器-解码器架构

  • 编码器:将输入序列转换为隐藏表示
  • 解码器:基于编码器输出生成目标序列

2️⃣ 关键创新

  • 自注意力机制:并行处理序列,捕获长距离依赖
  • 位置编码:为模型提供序列位置信息
  • 残差连接:缓解深层网络训练问题
  • 层归一化:稳定训练过程

📋 架构详解

编码器结构

每个编码器层包含:

  1. 多头自注意力:计算输入序列内部关系
  2. 前馈神经网络:非线性变换
  3. 残差连接和层归一化

解码器结构

每个解码器层包含:

  1. 掩码多头自注意力:防止信息泄露
  2. 编码器-解码器注意力:关注输入序列
  3. 前馈神经网络
  4. 残差连接和层归一化

🔍 数学原理

缩放点积注意力

多头注意力

其中

🚀 代码示例

import torch
import torch.nn as nn
class TransformerBlock(nn.Module):
    def __init__(self, d_model, n_heads, d_ff, dropout=0.1):
        super().__init__()
        self.attention = nn.MultiheadAttention(d_model, n_heads)
        self.feed_forward = nn.Sequential(
            nn.Linear(d_model, d_ff),
            nn.ReLU(),
            nn.Linear(d_ff, d_model)
        )
        self.norm1 = nn.LayerNorm(d_model)
        self.norm2 = nn.LayerNorm(d_model)
        self.dropout = nn.Dropout(dropout)
    
    def forward(self, x, mask=None):
        # 自注意力 + 残差连接
        attn_output, _ = self.attention(x, x, x, attn_mask=mask)
        x = self.norm1(x + self.dropout(attn_output))
        
        # 前馈网络 + 残差连接
        ff_output = self.feed_forward(x)
        x = self.norm2(x + self.dropout(ff_output))
        
        return x


🎯 面试重点

  1. 为什么使用多头注意力?
  2. 位置编码的作用是什么?
  3. 残差连接和层归一化的作用?
  4. Transformer相比RNN的优势?
目录
相关文章
|
5月前
|
机器学习/深度学习 敏捷开发 人工智能
阿里云人工智能平台PAI和百炼有什么区别?PAI和百炼定位、功能及使用方法对比
阿里云PAI是“造模型”平台,面向算法工程师,支持从训练到部署的全周期AI开发;百炼是“用模型”平台,聚焦大模型快速应用,助力业务团队低门槛构建智能体。两者互补协同,覆盖AI开发全流程。
1370 5
|
算法 计算机视觉
图像去雨-雨线清除-图像处理-(计算机作业附代码)
图像去雨-雨线清除-图像处理-(计算机作业附代码)
|
5月前
|
人工智能 安全 前端开发
老金发现个4277星的Claude Code企业神器,看完我直接跪了
老金拆解GitHub高星项目,教你用Claude Code打造自动化开发系统:Skills规范代码、Agents智能审查、Commands一键操作、Hooks自动触发、GitHub Actions定时巡检、MCP集成外部工具。4277星实战验证,企业级AI编程提效方案,文末附免费开源知识库。
2199 12
|
数据采集 运维 数据挖掘
一文速学-Pandas异常值检测及处理操作各类方法详解+代码展示
一文速学-Pandas异常值检测及处理操作各类方法详解+代码展示
1954 0
一文速学-Pandas异常值检测及处理操作各类方法详解+代码展示
|
5月前
|
人工智能 前端开发 API
【cursor】前后端分离项目下的AI跨工程管理方案
针对前后端分离项目中AI编辑器难以跨工程协作的问题,提出通过统一文件夹管理方案,将前端与后端项目置于同一根目录下,利用AI编辑器打开根目录并结合@引用功能,实现对前后端代码的联合理解与开发,提升联调效率与代码生成准确性。
1477 0
|
3月前
|
自然语言处理 供应链 搜索推荐
2026年电商行业有哪些Agent应用
电商正加速落地AI Agent,从营销、供应链到客服、决策全面升级。瓴羊推出Dataphin(数据治理)、Quick BI小Q(智能分析)、Quick Audience(精准营销)、Quick Service(金牌导购)四大Agent,构建协同智能体矩阵,打通“人货场”全链路,助力企业实现高质量增长。(239字)
|
5月前
|
存储 缓存 NoSQL
检索技术案例:存储系统
LevelDB是Google开源的高性能键值存储系统,基于LSM树优化,通过跳表、读写分离、SSTable分层合并及Bloom Filter等技术,实现高效的数据写入与检索,广泛应用于工业级系统中。
132 0
检索技术案例:存储系统
|
5月前
|
存储 容器
开源框架:Zookeeper—Watcher机制(一)
Zookeeper的Watcher机制用于监听数据与状态变化,核心由Watcher接口、Event枚举(KeeperState/EventType)、WatchedEvent事件封装及ZKWatchManager管理器构成,实现客户端对节点变更的一次性通知与回调处理。
141 3
|
5月前
|
存储 设计模式 数据库
开源框架:Zookeeper—持久化FileTxnSnapLog
FileTxnSnapLog 是 ZooKeeper 持久化核心类,封装事务日志(TxnLog)与快照(Snapshot),通过组合模式统一管理数据恢复与快照保存。依托 DataTree 树状结构存储,支持基于 zxid 的增量恢复,提升可靠性与性能。
123 1