注意力机制与Transformer

本文是在DataWhale的开展下的BaseLLM课程的学习笔记, 课程项目链接是:

https://github.com/datawhalechina/base-llm

本文主要是关于BaseLLM的第四章节注意力机制与Transformer这部分;

1.对于注意力机制而言,需要提前了解的是Seq2Seq(Sequence-to-Sequence)序列到序列的架构

Seq2Seq在2014年提出的,当时基于RNN和LSTM已经将一对一、多对多(严格对齐)、多对一任务处理的比较出色了,但是对于多对多(非严格对齐)的任务RNN和LSTM难以胜任,从而Seq2Seq应运而生。

Seq2Seq的原理是基于Autoencoder的。对于Autoencoder(自动编码器)存在Encoder-Decoder两部分,编码器将输入数据压缩为高阶特征向量,解码器则将这些高阶特征向量重构为与输入相似的输出,从而实现数据的重构。

Seq2Seq相较于Autoencoder而言,存在不同,因为Autoencoder希望尽量得到的输出结果和输入相似,从而去噪、降维、升维的任务,无法处理变长序列的问题,而Seq2Seq能够做到,Autoencoder是一次就生成,而Seq2Seq是逐次生成。

复制代码
传统Autoencoder: 文件 → 压缩包 → 原文件(必须完全一样)
Seq2Seq:         英文小说 → 语义摘要 → 中文小说(内容等价,形式不同)
                 ↑_________________________|
                        跨语言语义传递

2.为什么Seq2Seq能做到处理变长序列?

虽然Seq2Seq的原理基本和Autoencoder相似,但是Seq2Seq不同在于Encoder将输入序列压缩为一个向量C,而Decoder将得到的上下文向量进行解码最终输出和Encoder得到的输入序列长度不同的输出序列。 这是对于Seq2Seq整体信息流动路径的简短介绍,以下是关于每个阶段的详细介绍:

2.1Encoder信息压缩与抽象

Encoder:

复制代码
# 以LSTM Encoder为例
h_t, c_t = LSTM(x_t, h_{t-1}, c_{t-1})

# 信息流动细节:
x_t (输入token) 
→ Embedding Layer (256维词向量) 
→ LSTM Cell (遗忘门/输入门/输出门) 
→ h_t (隐藏状态,256维) 
→ c_t (细胞状态,256维)

Encoder关键的信息流向特征:

  • **单向信息流:**t时刻状态仅依赖t-1时刻,无法看到未来信息
  • **渐进式压缩:**每步将新token信息与历史状态融合,信息密度逐步提升
  • **梯度瓶颈:**反向传播时,梯度需跨越整个序列,易出现梯度消失/爆炸

2.2Decoder信息解压与生成

Decoder

复制代码
# Decoder每步生成过程
s_t = LSTM(y_{t-1}, s_{t-1}, Context Vector)
y_t = softmax(W * s_t)  # 预测下一个token概率分布

双路输入:上一时刻输出(y_{t-1}) + 解码器状态(s_{t-1}) + 上下文信息

自回归特性:当前预测依赖于自身历史预测,误差会累积

2.3Context Vector

这个Context Vector就是encoder和decoder关联的重点,信息流动的临界点:

  • 维度固定:无论输入序列多长,Context Vector维度恒定(如512维)
  • 信息密度最大化:需将整个输入序列语义压缩到固定维度向量
  • 单点故障风险:若h_T信息不足,整个模型性能崩溃

3.Seq2Seq的训练

Seq2Seq引入了教师机制,在教师强制模式下,解码器在计算第 t 步的输出时,它的输入不再是上一时刻的预测值 ,而是直接使用数据集中真实的标签值 ,构造方式就是我们前面描述的"解码器输入"序列。通过这种方式,解码器的每个时间步都能接收到正确的历史信息,避免了误差累积,能够显著提升收敛稳定性与速度。

相关推荐
布吉岛的石头10 分钟前
Java 程序员第 50 阶段14:灾难性遗忘与回放
人工智能·深度学习·transformer
不吃鱼的羊10 分钟前
诊断27解锁dll文件制作(Visual Stdio无法安装版)
人工智能
后端小肥肠23 分钟前
漫画工坊上线用户破百:公众号漫画从需求到变现全复盘
人工智能·aigc·agent
赛博山人1 小时前
字节跳动下线扣子企业版,团队已并入豆包
人工智能
isboyjc1 小时前
Lomo Agent:面向创作型、持续协作 Agent 的架构设计与工程实践
人工智能·架构·agent
小蒋观天下1 小时前
码率、I帧间隔、智能编码冲突:H.265+导致AI取流解码异常
人工智能
roman_日积跬步-终至千里2 小时前
AI 能让一个人成为团队吗?从数据中台到 OPC,重新理解软件工程能力
大数据·人工智能·软件工程
在所不辞兄2 小时前
为什么神经网络在训练集损失已接近零后继续训练,测试性能仍可能继续提升,而不是单纯地越来越过拟合?
人工智能·深度学习·神经网络·机器学习·智能仿真
AI砖家2 小时前
ChatGPT Images 2.6 正式支持 GIF 生成:一张图片也能动起来,AI 动图创作时代来了!
人工智能·chatgpt
希和20273 小时前
免费AI视频生成工具汇总(国内优先,适合做漫剧、短视频,Obsidian笔记版)
人工智能·笔记·音视频