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

Transformer:现代大模型核心架构入门

Transformer 是一种让所有词同时互相"看"彼此的神经网络,而不是像之前的 RNN 那样一个字一个字地读。

一、为什么要抛弃 RNN?先看痛点

在 Transformer 出现之前,处理语言的主流方法是RNN(循环神经网络),它像人一样"一个字一个字地读"——必须处理完第1个字,才能处理第2个字,依此类推。

三大致命缺陷:

问题

具体表现

串行瓶颈

无法并行,1000个字的句子要走1000步,GPU利用率极低

梯度消失

第1个字的信息传递到第1000个字时,梯度近乎为零,"忘了开头说了什么"

长距离依赖弱

"小明……(中间500字)……他喜欢"中的"他"很难关联回"小明"

Transformer 的核心思路是:把"一个字一个字读"改成"所有字同时互相看",一步到位捕捉所有位置间的关系。

二、整体架构总览

先看整体骨架 :

三、词嵌入(Token Embedding):把文字变成数字

新手核心问题:计算机怎么理解"苹果"这个词?

计算机只认数字,所以第一步是把所有词映射成一个高维数字向量(比如 768维或 4096维的浮点数列表)。

  • 词表:把所有可能的词/子词列成一个大表(3.2万~12.8万个)
  • 每个词在表里有一个编号(Token ID)
  • 通过"嵌入层"(一张巨大的查找表),编号 → 向量

类比:就像字典,但字典里每个字的"解释"是一串768个数字,而不是文字说明。

四、位置编码(Positional Encoding):告诉模型"你在第几位"

新手疑问:Transformer既然所有词同时看,那它怎么知道"我爱你"和"你爱我"是不同的意思?

答:全靠位置编码。每个词的向量 + 该词所在位置的向量,叠加在一起,模型就能区分位置1的"我"和位置3的"我" 。

现代升级——RoPE 旋转位置编码:原始 sin/cos 位置编码有个缺点:训练时只见过512个位置,推理时遇到1000个位置就"懵了"。LLaMA、Qwen 等大模型用的RoPE通过旋转矩阵编码相对位置,外推能力更强,支持 32k、128k 甚至更长上下文。

五、核心灵魂:自注意力机制(Self-Attention)

这是整个 Transformer 最难理解、也最重要的部分。用一个生活类比来理解:

你在读"银行存了钱,然后去河岸散步"这句话。

看到"银行"时,你的大脑会自动把它和"钱"关联,而非"河岸"。这种"词与词之间的关联度计算",就是注意力机制在做的事。

三个角色——Q、K、V:

名称

全称

类比

作用

Q

Query(查询)

你想找什么

当前词发出的"提问"

K

Key(键)

档案的标签

每个词的"索引标签"

V

Value(值)

档案的内容

每个词实际携带的信息

计算步骤(5步):

  1. 用当前词的Q去和所有词的K点积 → 得到相似度分数
  2. 除以 √d(√d 是一个缩放系数,防止点积值过大导致 Softmax 梯度消失,是让 Transformer 能正常训练的关键细节。防止数值过大,梯度消失) →缩放
  3. 过 Softmax 归一化 → 得到 0~1 的注意力权重(所有词权重之和=1,把数字变成概率分布)
  4. 用权重对所有词的V加权求和 → 得到融合了上下文的新表

六、多头注意力(Multi-Head Attention):同时从多个角度"看"

新手疑问:为什么需要多个头(head)?

单头注意力一次只能聚焦一种语义关系。比如处理"小明让小红帮他做作业"时:

  • 第1个头 → 专注指代关系("他"=小明)
  • 第2个头 → 专注动作关系("让"的施受者)
  • 第3个头 → 专注实体关联(人物关系)
  • ……(通常 8~32 个头)

多个头并行计算,最后把结果拼接起来,表达能力远强于单头。

类比:用多台摄像机从不同角度拍同一场景,最后剪辑在一起,比单一视角信息更丰富。

七、掩码(Mask):GPT 类模型如何"防止作弊"

GPT 在训练时是给定前文预测下一个词——但如果训练时允许模型偷看答案(后面的词),那预测就没意义了。

掩码自注意力用一个下三角矩阵把未来的词遮住:

这就是"单向"的含义。

八、前馈神经网络(FFN):注意力之后的"深度加工"

注意力层负责收集信息(从其他词那里取来相关内容),FFN 层负责深度加工(对每个词的向量做独立变换)。

结构很简单:两层线性变换 + 一个激活函数。

组件

作用

类比

第1层线性

升维(例:768→3072)

把信息展开成更大空间

激活函数

引入非线性(GELU/SwiGLU)

筛选有用的特征

第2层线性

降维(3072→768)

压缩回原始维度

九、残差连接 + 层归一化:训练稳定性的关键

这两个组件不显眼,但极其重要——没有它们,几十层深的 Transformer 根本训练不收敛。

残差连接(Residual Connection):

输出 = 子层(x) + x ← 把输入直接加回来

好处:梯度可以直接从后面"跳回"前面,不用穿越重重非线性,有效防止梯度消失。

类比:高速公路旁边还有辅路——主干道走注意力/FFN,辅路直接走原始信号,两者汇合。

层归一化(LayerNorm):把每层的激活值归一化到均值0、方差1,防止数值爆炸,让训练更稳定。

为什么这能解决"梯度消失"?

训练时,梯度要从最后一层反向传回第一层。每经过一个子层,梯度就要乘以该层的导数——如果导数小于 1,乘几十次就接近 0 了(梯度消失)。

十、训练 vs 推理:两种完全不同的工作模式

十一、现代大模型的关键优化

优化点

原始设计

现代大模型改进

代表模型

位置编码

绝对正弦/余弦

RoPE 旋转位置编码

LLaMA、Qwen、GPT

激活函数

ReLU

GELU / SwiGLU

LLaMA2/3、Qwen

归一化

Post-LN LayerNorm

Pre-LN RMSNorm

LLaMA、Mistral

注意力效率

标准 MHA

GQA 分组查询注意力

LLaMA3、Qwen2

显存优化

标准注意力

FlashAttention

几乎所有主流模型

超大模型

全激活 FFN

MoE 混合专家

Mixtral、DeepSeek

几个名词解释:

  • RMSNorm:LayerNorm 的简化版,省掉均值计算,只保留方差归一化,速度更快效果相当
  • GQA(分组查询注意力):多个 Q 头共享一组 K/V,大幅减少显存,推理速度提升 2-4×
  • FlashAttention:重写注意力计算内存访问模式,减少显存读写次数,对用户透明
  • MoE(混合专家):FFN 拆成 N 个"专家网络",每次只激活其中几个,实现"万亿参数量但计算成本只有百亿"的效果

十二、复杂度一眼看懂

自注意力:O(n² × d) n = 序列长度,d = 向量维度 ↑ 瓶颈在 n²,序列加倍 → 计算量变4倍RNN:O(n × d²) ↑ 瓶颈在 d²,短序列时比 Transformer 慢

结论:

  • 短文本(<512 tokens)→ Transformer 完全碾压 RNN
  • 超长文本(>100k tokens)→ 需要滑动窗口、稀疏注意力(Mistral Sliding Window)或 FlashAttention 降低 n² 开销

十三、一句话总结各核心组件

组件

一句话理解

Token Embedding词嵌入

把文字翻译成数字向量

Positional Encoding位置编码

在向量里塞入"这个词排第几位"的信息

Self-Attention自注意力机制

每个词去问所有词"你和我有多相关",加权收集信息

Multi-Head多头注意力

同时从8/16/32个角度做注意力,并行捕捉不同语义关系

Masked Attention掩码

遮住未来的词,保证自回归生成合法

Cross-Attention

让解码器"看一眼"编码器的全局理解(翻译/多模态用)

FFN前馈神经网络

对每个词独立做非线性变换,深度加工语义

残差连接

给梯度开辟直行通道,防止训练崩掉

LayerNorm/RMSNorm

每层数值归一化,训练稳定

KV Cache

推理时缓存已算的 K/V,不重复算,提速数倍

看完之后,是不是有所收获呢?若有内容不当的地方,欢迎交流!

http://www.gsyq.cn/news/1514020.html

相关文章:

  • PrivAct框架:多智能体协同的LLM隐私保护方案
  • 细说RocketMQ双网卡问题
  • 用Arduino UNO和ULN2003驱动28BYJ-48步进电机,手把手教你做个迷你云台
  • GPT-4参数量与稀疏激活真相:1.8万亿参数和2% per token的工程本质
  • PVZ Toolkit技术架构解析:内存注入与跨版本兼容性实现
  • 组件库版本管理与语义化发布:从手动发包到自动化交付链路
  • Kimi版超级玛丽效果“惊人”,配额不足5厘米!
  • 别再手动点计算器了!用这个ArcGIS脚本工具,5分钟搞定上百个栅格批量运算
  • Fast-GitHub:彻底解决国内GitHub访问慢的创新技术方案
  • 【课程设计/毕业设计】基于 SpringBoot 的文旅出行智能规划服务系统的设计与实现 基于 SpringBoot 的旅游攻略与行程统筹系统的设计与实现【附源码、数据库、万字文档】
  • 给孩子挑增高床垫,到底哪家靠谱? - 深圳市民HLL
  • 从‘订单排期’到‘项目收益最大化’:动态规划解法在LeetCode与PTA中的实战对比
  • 从手动到AI驱动的多平台发布_我在CSDN_AI数字营销里的实操记录
  • MPC5565汽车MCU:PowerPC内核与eTPU协处理器的实时控制设计
  • QKeyMapper:Windows系统下最强大的免费开源按键映射工具终极指南
  • 2026年 干脆面品牌最新推荐榜:鲜虾/红烧牛肉/香葱/芝士/网红爆款/办公室零食/小包装/儿童可吃/猪排/海鲜味,酥脆口感与创意风味深度解析 - 品牌发掘
  • 从地理空间数据云到CesiumLab:一份完整的离线DEM地形制作与发布指南
  • Java13.0集合
  • 红米Note11系列(天玑810/920)免等168小时,保姆级BL解锁+Magisk刷入全流程
  • 混合信号控制器56F8323:DSP与MCU融合的嵌入式设计实践
  • 影刀RPA完全指南_自动化流程的监控告警系统搭建出了问题第一时间知道
  • 高频隔离型 DC-DC 变换器双有源桥开环移相控制特性与仿真研究(Simulink仿真实现)
  • DistroAV网络视频传输完整指南:如何用网络替代HDMI线进行多设备直播
  • 5分钟掌握layerdivider:从复杂插画到结构化图层的AI自动化分层实战指南
  • 终极指南:使用开源Defender Control工具完全掌控Windows Defender
  • 缓存穿透、缓存击穿、缓存雪崩的区分与完整解决方案
  • 并联Buck-boost直流微网下垂控制模型仿真研究(Simulink仿真实现)
  • MC68HC16S2总线时序深度解析:从参数表到稳定硬件设计
  • 2026美加墨世界杯新规
  • 2026年北京市场精选:五家值得信赖的多功能会议室音响服务商深度解析 - 品牌鉴赏官2026