注意力机制与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 步的输出时,它的输入不再是上一时刻的预测值 ,而是直接使用数据集中真实的标签值 ,构造方式就是我们前面描述的"解码器输入"序列。通过这种方式,解码器的每个时间步都能接收到正确的历史信息,避免了误差累积,能够显著提升收敛稳定性与速度。

相关推荐
“AI国潮设计-小江”7 分钟前
Python实战 | SDXL精准控制“普宁英歌舞×星空蛋糕”IP落地,附核心Prompt与商用授权思路
开发语言·人工智能·python·prompt·aigc
basketball61611 分钟前
AI Infra 配置 Conda + CUDA + LibTorch + PyTorch 开发环境:解决版本漂移、编译报错的完整指南
人工智能·pytorch·conda·libtorch
AI技术新视界14 分钟前
符号诞生之前:视觉通用智能如何开启 AGI 的物理进化之路
人工智能·llm·agi
Henry-SAP20 分钟前
GPT-6Astra开启AI自主执行新时代
人工智能·云原生·sap·erp
手写码匠36 分钟前
华为云Flexus+DeepSeek征文|DeepSeek 应用监控告警体系实战:从“用户投诉才知道“到“故障前就发现“
人工智能·深度学习·算法·aigc
小宋102142 分钟前
大模型成本怎么控制:Token统计、缓存与模型路由实战
人工智能·缓存
阿里云大数据AI技术43 分钟前
DataWorks Data Agent 实战课堂(七):数据治理 Agent——AI 驱动的自动化治理
人工智能·agent
天一生水water44 分钟前
基于重构的无监督/单类时间序列异常检测
人工智能·深度学习·重构·transformer
知识分享小能手1 小时前
深度学习学习教程,从入门到精通,数值计算 — 知识点详解(4)
人工智能·深度学习·学习
三声三视1 小时前
审计清单函数名写成 def?tri-checklist 的 diff 解析在 Python 改名场景下悄悄翻车
人工智能·ai·skillhub·tri-checklist·tri-skills