A07 · 第 6 章 · 第三编 Transformer 与综合复习
长序列、效率与 Transformer 综合复习
从可用上下文、在线状态、并行训练、归纳偏置、稳定性、解码成本与任务约束出发,比较 RNN、LSTM、GRU、注意力和 Transformer,并用形状、缓存账本与综合案例完成可检验的方案选择。
报告页面错误本章目标
- 用状态、可并行性、归纳偏置、梯度路径和有效上下文比较RNN、LSTM、GRU、注意力与Transformer。
- 区分训练时整段并行、教师强制与部署时逐步生成,估算循环状态和KV缓存成本。
- 解释标称上下文长度为何不等于任务所需信息被可靠利用,并设计按距离分层的检验。
- 依据流式性、延迟、内存、监督量、输出形式和未来信息可用性选择序列方案。
- 用形状账本、mask不变量、长短上下文基线和端到端指标核验所选实现。
本页目录
先把序列任务写成部署合同
选择模型之前,要先确定一个时刻究竟能看到什么。对输入 ,离线分类可以使用整段甚至双向上下文;在线告警在时刻 只能依赖 ;预测未来 步还要说明是一次并行输出,还是把已生成结果继续喂回模型。若训练读取未来而部署不能读取,验证分数再高也不代表系统可用。
合同至少包括采样率、最长与典型长度、输出频率、端到端延迟、峰值内存、缺失与乱序规则、监督量、允许的未来窗口和评价指标。还要区分输入长度与依赖距离:一万个时间点的序列不一定需要一万个点全部精确交互,关键证据也可能只在最近二十步。模型宽度和窗口应由这种信息结构决定,而不是由“长序列”标签决定。
所有候选方案先共享同一数据切分。时间序列不得把同一对象相邻窗口随机分到训练与测试中,否则重叠片段会泄漏。归一化统计只能用训练段估计,padding、缺失值和真实零值要有不同语义。只有输入合同一致,结构比较才有意义。
普通RNN把历史压进固定宽度状态
循环网络按
更新。推理只需保留 ,新增一步的状态内存不随已见长度增长,天然适合流式输入。时间顺序由递推结构直接编码,不必额外加入位置向量。这种强归纳偏置在数据较少、局部动态明确时可能有效。
代价是时间轴无法在单层内完全并行: 必须等待 。训练的反向路径跨越许多递推 Jacobian,可能消失或爆炸;固定宽度状态还是信息瓶颈,早期细节必须经过反复压缩。截断反向传播只在有限片段上求梯度,能控制内存,却同时切断更远的直接学习信号。
考虑标量递推 ,初态为零。输入先为 ,则 ;第二步为 ,则 。
若顺序交换,第一步得到约 ,第二步得到 。相同元素集合产生不同末状态,说明递推已编码顺序;但只交付末状态时,中间两个输入不能从一个标量中唯一恢复,也显示固定状态的压缩边界。
LSTM与GRU用门控制保留和覆盖
LSTM维护细胞状态 和隐藏状态 。遗忘门决定旧细胞保留多少,输入门决定候选内容写入多少,输出门决定暴露多少。加法更新 给梯度提供较直接路径。GRU把长期状态与输出状态合并,以更新门在旧状态和候选状态之间插值,门和参数通常少于同宽度LSTM。
门控改善可学习性,但不保证任意远依赖都被保存。若遗忘门长期小于一,连乘仍会衰减;若状态宽度不足,多个事件仍会竞争容量。LSTM、GRU也保持时间递推,不能像整段自注意力那样一次计算同层全部位置。选择二者应比较实际延迟、参数、状态和任务分数,不应把“更复杂”当作恒定优势。
某一维旧细胞为 ,遗忘门 ,输入门 ,候选值 ,输出门 。先算保留量 ,再算写入量 ,故 ;隐藏输出为 。
若把遗忘门误当成“丢弃比例”而使用 ,会得到 ,语义和数值都改变。实现核验应分别记录门取值范围、旧状态贡献、候选贡献和更新后状态,而不能只看最终损失。
注意力把历史变成可寻址记忆
注意力不要求把全部历史塞进一个向量。查询 与各键 计算相似度,softmax 权重再对值 加权。目标位置可以直接读取较远源位置,最短信息路径不随距离线性增长。交叉注意力尤其清楚:解码查询读取一组编码记忆,查询长度和记忆长度可以不同。
注意力本身不是完整序列架构,也不天然知道先后。没有位置表示时,重排键值会相应重排权重,但聚合结果对同一集合具有置换性质。自注意力还必须根据任务使用padding、因果或局部mask;被禁止位置应在softmax前不可见。多头机制提供多个投影子空间,但头数增加不自动产生不同语义,需由任务和优化学习。
全自注意力的分数张量含 个位置对。它适合硬件上的大矩阵并行,却在长序列上带来计算和训练激活内存压力。“并行”描述的是同一层不同位置可一起算,不代表层与层之间无依赖,也不代表自回归部署能同时生成未知的未来token。
批量 、长度 、模型宽度 。单层RNN输出形状可为 ,但沿时间必须完成六次状态更新;批次和通道矩阵运算仍可并行。双头自注意力取每头宽四,Q、K、V为 ,分数为 ,六个查询可在一次批量运算中处理。
若做因果预测,注意力上三角被屏蔽。训练已知完整目标前缀时,六个位置的损失可同时计算;部署时第六个token未知,仍要先生成前五个。因而正确结论是“Transformer训练时间轴可并行,因果生成时间轴仍串行”,而不是笼统地说它没有顺序依赖。
Transformer把寻址、通道变换与稳定路径组装起来
Transformer块用多头注意力在位置间传递信息,用逐位置FFN在通道内进行非线性变换,再由残差和LayerNorm维持形状与优化路径。编码器允许有效位置双向读取,因果解码器只能读取当前与过去,编码器—解码器结构还用cross-attention读取源记忆。绝对、相对或旋转位置机制补上顺序结构,各自的长度外推假设不同。
与RNN相比,Transformer的归纳偏置更弱:任意两个允许位置可直接交互,距离本身必须由位置机制表达。这常适合大数据和异质依赖,却可能需要更多监督、正则与算力。训练稳定性也不能只归功于注意力;初始化、pre-norm或post-norm、残差尺度、学习率预热、精度和损失归约共同决定结果。
在自回归推理中,缓存每层过去token的K和V,当前步只计算新查询与缓存的键值,避免反复重算旧位置。缓存让单步计算从重新处理整个前缀下降,但缓存长度仍随生成序列增长,当前查询仍要读取越来越多键。RNN则只保留固定宽度递推状态;二者用不同方式交换可访问信息和资源。
设decoder-only模型有十二层、宽度 ,K/V总宽均为512,缓存用FP16。每个token每层保存K和V,故每个序列每token占 字节,约24 KiB;长度2048时约48 MiB。四束搜索若不能共享前缀缓存,约需192 MiB,尚未计临时张量和分配开销。
同宽十二层普通RNN只保存每层一个隐藏向量,FP16约为 KiB;LSTM同时保存 与 ,约24 KiB。这个比较只说明在线状态的数量级,不说明RNN精度更高。最终选型还要在同一任务上测依赖能力、吞吐、首token延迟和峰值内存。
七个维度必须一起比较
状态方面,RNN保存单一递推摘要,LSTM保存细胞与隐藏状态,GRU保存门控隐藏状态;注意力保存可读取的键值集合,Transformer还保存逐层表示或解码缓存。固定状态资源稳定但会压缩历史,显式记忆保留细节但资源随长度增加。
并行方面,循环模型的层内时间轴串行,自注意力训练可并行全部已知位置;自回归输出对所有模型都受未知未来约束。归纳偏置方面,循环结构偏好邻近更新与顺序,卷动状态自然适应流式;自注意力偏好内容寻址,位置与局部性需显式提供。
稳定性方面,普通RNN面临长Jacobian链,门控提供加法状态路径;Transformer缩短信号跨位置路径,但深层仍依赖残差、归一化、初始化和优化计划。上下文方面,要区分标称窗口、训练中见过的长度和真正影响输出的有效上下文。解码方面,循环状态固定,Transformer缓存增长;波束搜索会同时复制或重排各候选状态。
任务适配方面,整段分类可比较双向GRU与编码器Transformer;低延迟传感器流优先测试因果GRU或小型因果模型;源到目标转换可用编码器—解码器和cross-attention;长文本自回归生成通常使用因果Transformer,但仍受缓存和解码串行限制。没有一个结构在七个维度上无条件占优。
长上下文要用距离分层实验核验
标称窗口为8192,不等于模型可靠使用第一个token。训练长度分布、位置机制、有限精度、注意力稀释和数据中远距信号稀少,都可能让有效上下文更短。评估应把关键证据放在不同距离,保持其他内容与难度一致,报告准确率或损失随距离的曲线,而非只报告平均值。
至少设置短窗口基线、完整窗口、打乱远距证据和删除远距证据。若完整窗口不优于短窗口,可能任务无需远距信息,也可能模型没有利用;删除关键证据后仍不变,需检查数据泄漏或模型走了捷径。长度外推要单独测试超过训练范围的样本,不能由训练内插结果推断。
降低成本可以分块、滑动窗口、下采样、稀疏连接或近似注意力,但它们改变了可访问信息。分块若没有跨块状态会切断依赖;下采样可能丢失短暂事件;近似机制可能对少数尖锐匹配不准确。每个优化都应写出保留的连接、最坏复杂度和任务误差,而不是只报理论阶数。
训练目标与解码策略不能混为一谈
教师强制用真实前缀预测下一步,使因果Transformer和RNN都能计算每个位置的监督;Transformer可并行这些位置,RNN仍递推。部署时模型读到自己的输出,误差会改变后续输入分布。训练损失衡量条件预测,贪心、束搜索或随机采样则决定怎样从条件分布产生序列,二者是不同接口。
贪心每步取最大概率,便宜但不保证全序列最优;束搜索保留多个累计分数候选,需处理长度归一化、终止符和状态重排;温度、top-k或top-p采样用于控制随机生成分布。分类与回归序列不一定需要这些文本解码策略。应从输出语义选择解码,而不是因为使用Transformer就默认采样。
综合案例:按硬约束选择而不是按模型名选择
设备每秒接收100帧、每帧64个特征,必须每10毫秒更新告警;只能看过去,模型与运行状态可用内存32 MiB。标注只有两百台设备,异常通常表现为最近两秒的频率演化,部署端不得等待整段。先排除双向编码器,因为它读取未来;完整两千步自注意力既超出必要依赖,也让分数和缓存预算紧张。
候选为一层因果GRU与小型局部因果Transformer。先固定两秒即200步输入合同、按设备切分,并让两者参数量接近。测量端到端第九十五百分位延迟、峰值内存、召回率、每小时误报和从冷启动到稳定状态的时间。若GRU在设备上为4毫秒、8 MiB且达到召回要求,而Transformer为13毫秒,即使后者离线准确率稍高,也应选择GRU作为实时方案,因为Transformer违反10毫秒硬约束。
随后用状态重置、丢帧和连续运行测试确认GRU部署语义。若另有不受实时约束的维修报告分析,可独立训练长窗口Transformer作为离线辅助,但不能用它的分数替代实时模型验收。选型结论来自合同、同切分对照和真实硬件测量,而非“新架构通常更强”。
实现核验从不变量开始
第一,列出每个张量的批次、时间、头和通道轴,确认残差两端同形。第二,构造极小序列,人工验证padding和因果mask;改变被屏蔽token不得影响允许查询。第三,让模型过拟合少量样本,并比较短窗口、完整窗口与无序基线。第四,训练与评估分别记录损失、任务指标、吞吐、延迟、峰值内存和按依赖距离分组的结果。
流式模型还要测试分块运行与一次整段运行是否在允许误差内一致,明确何时清空状态。缓存解码要比较有缓存与无缓存的logits,并在截断、束重排和批次结束时正确管理缓存。固定随机种子只能帮助复现,不能代替跨种子报告;理论复杂度也不能代替目标硬件测量。
练习
查看提示
查看解答
查看提示
查看解答
查看提示
查看解答
查看提示
查看解答
查看提示
查看解答
查看提示
查看解答
概念关系
- 循环神经网络与门控机制 提供递推状态、LSTM与GRU更新。
- 序列训练、教师强制与截断反传 区分训练目标和部署输入。
- 注意力机制 解释查询对显式记忆的内容寻址。
- 多头注意力与位置表示 补充头轴、mask和顺序编码。
- 编码器、解码器与Transformer架构 连接残差块、cross-attention和KV缓存。
- 自回归模型 延伸条件分解与逐步生成。
- 深度学习工程综合复习 延伸精度、性能与部署证据。
资源
Attention Is All You Need
Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Łukasz Kaiser, Illia Polosukhin
阅读注意力机制文章时用于核对原始模型定义和实验边界。
打开官方来源Deep Learning
Ian Goodfellow, Yoshua Bengio, Aaron Courville
适合作为反向传播和优化章节的完整参考。
打开官方来源