news 2026/7/2 2:24:20

LLM 学习笔记 Day 3:Transformer Block 详解与 RNN 对比

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LLM 学习笔记 Day 3:Transformer Block 详解与 RNN 对比

一、RNN 的两个缺陷

1. 串行计算:无法并行

RNN 的计算依赖于上一个时刻的隐藏状态(Hidden State):h_t = f(W * x_t + U * h_{t-1})

什么是 Hidden State? 是 RNN 在当前位置输出的“记忆向量”,压缩了从开头到当前位置的全部信息,就像一个读完半句话后大脑里的“语义摘要”

2. 梯度消失与长距离遗忘

RNN 在反向传播时,梯度经过多次连乘会趋近于 0(梯度消失),导致模型无法学习远距离的依赖关系。同时,Hidden State 容量有限,早期信息在长序列中逐渐被“冲淡”,造成遗忘。

二、Transformer 如何解决这两个问题

1. 并行计算能力(Attention + Multi-Head)

  • Self-Attention 让每个 token 直接与整个序列中所有 token 计算相似度,这些计算互不依赖,可以完全并行。

  • Multi-Head Attention 的进一步优化:

    • 随机初始化多个不同的参数矩阵(W_Q、W_K、W_V)
    • 每个“头”独立训练,模型在训练中自动学会关注不同维度的关系(如语法、语义、指代等)
    • 最后将所有头的输出拼接,用一个线性层融合
  • Multi-Head Attention 允许模型从多个表示子空间同时关注不同位置的信息,不同的头可以捕捉不同类型的关系。

2. 直接建立长距离依赖(Attention)

RNN 的 token 之间路径长度为 O(n),信息需要一步步传递;而 Attention 让任意两个 token 直接相连,路径长度恒为 O(1)。所以“遗忘前面信息”的问题从根本上被解决。

3. 残差连接(Residual Connection)解决梯度消失

公式:输出 = 模块(输入) + 输入
反向传播时,梯度可以通过“+ 输入”这条高速通道直接传到前层,有效缓解了深层网络的梯度消失。同时,每一层学习的只是对输入的“修正增量”,原始信息一直保留。

4. LayerNorm 稳定训练

LayerNorm 对单个样本的所有特征维度做标准化(均值 0,方差 1),让每一层输入的数据分布保持稳定。这加速了收敛,也让训练更稳定。

三、Transformer Block 完整结构

输入 → Multi-Head Self-Attention → 残差连接 → LayerNorm → FFN → 残差连接 → LayerNorm → 输出

  • 残差连接:保留原始输入,防止梯度消失
  • LayerNorm:标准化数据分布,稳定训练
  • FFN:对聚合后的信息做非线性深度加工(知识存储和推理)

四、Transformer vs RNN 对比总结

维度RNNTransformer
计算方式串行并行
长距离依赖弱(梯度消失 + 信息遗忘)强(Attention 直接连接)
训练效率
位置信息天然有序需要 Positional Encoding 显式注入
并行能力
核心机制循环 Hidden StateSelf-Attention + FFN
稳定性梯度易消失残差 + LayerNorm 保证稳定
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/2 2:20:23

AIOps 根因诊断:先建立证据链,再让模型给结论

AIOps 根因诊断:先建立证据链,再让模型给结论 一、AIOps 不是把告警丢给模型猜答案 AIOps 根因诊断的价值,不是让模型看几行日志后直接宣布“数据库慢了”,而是把指标、日志、Trace、发布记录和拓扑关系组织成可验证证据链。运维排…

作者头像 李华
网站建设 2026/7/2 2:20:15

C++ 线程优雅退出终极避坑

1、前言:99% 业务代码的「伪优雅退出」陷阱 在 Linux C 后台服务开发中,几乎所有新手和老旧项目都在用同一套线程退出模型:原子 bool 标记循环 析构置位 false join 等待退出 // 其实没有阻塞的话,线程知识做计算,这…

作者头像 李华
网站建设 2026/7/2 2:20:06

C++ 结构体与结构体数组详解:定义、排序与实战应用

导读: 在实际开发中,我们经常需要把多个不同类型的数据绑定在一起表示一个实体——比如一个学生的学号(int)、姓名(string)、成绩(double)。C 的 struct 就是做这件事的。本文从结构…

作者头像 李华
网站建设 2026/7/2 2:19:35

AI 辅助:独立创作:工具应放大作者,而不是替代作者

AI 辅助:独立创作:工具应放大作者,而不是替代作者 一、创作工具的边界是保留人的选择权 AI 辅助独立创作很容易走向两个极端:一种把 AI 当成万能写手,期待它一键生成完整作品;另一种完全排斥 AI&#xff0c…

作者头像 李华
网站建设 2026/7/2 2:19:25

InfiniBand与以太网页故障处理机制对比分析

1. InfiniBand与以太网页故障处理机制概述在现代高性能计算和分布式系统中,虚拟内存管理和网络通信是两个至关重要的基础组件。当这两个领域交汇时,页故障(Page Fault)处理机制的设计直接影响到系统的性能和可靠性。页故障是指当进…

作者头像 李华
网站建设 2026/7/2 2:18:48

AI 边缘推理部署:先算清内存,再谈模型效果

AI 边缘推理部署:先算清内存,再谈模型效果 一、边缘 AI 最先卡住的不是算法 在服务器上跑模型,很多问题可以靠显存和算力兜住;到了边缘设备,第一堵墙通常是内存。Flash 放不下权重,SRAM 放不下中间张量&…

作者头像 李华