Self-Attention 为何利于并行训练,与 RNN 相比有哪些局限?

考查重点:并行依赖与长序列代价。Attention 的各位置可矩阵并行计算,RNN 依赖前一隐藏状态;代价是密集注意力的长序列计算和显存压力

本题目录

参考答案

核心回答

Self-Attention在同一层内,可以把所有位置的Q、K、V及相关性计算写成矩阵运算,训练时沿序列维并行。普通RNN的隐藏状态满足h_t=f(h_{t-1},x_t),当前位置必须等待上一步,序列内有递推依赖,因此难以获得同样的并行度。

Self-Attention还让相距很远的位置直接交互,缩短信息传递路径;代价是密集注意力的计算随序列长度平方增长,长文本的状态和访存也很重。流式、固定内存或端侧场景仍可能适合循环或状态空间结构,不能只凭训练并行性断言所有任务更优。

因果掩码为何不破坏训练并行

教师强制训练时,完整正确序列已知。例如输入[BOS,A,B],不同位置可以在同一前向里分别预测A、B、C;因果掩码把各位置的未来分数设为负无穷,softmax后权重为0,阻止标签泄漏。

掩码规定“允许看哪些信息”,并不要求按时间逐位置执行。同层各位置都使用上一层的表示,能同时计算;不同网络层之间仍有依赖,不能把整个模型理解为一次无依赖运算。

生成时则不同:C尚未选出,就不能把它作为下一步输入。因此普通自回归解码仍逐token推进,KV Cache减少前缀重算,却不会消除生成顺序依赖。批处理和投机解码可以改善效率,但属于不同层面的优化。

复杂度和适用边界

长度N、隐藏维度d的标准密集注意力,其token两两交互约O(N²d),朴素实现会存N×N分数矩阵;投影和前馈还有约O(Nd²)等成本。RNN常见单层序列计算约O(Nd²),但包含N步递推。哪种实际更快,还受N、d、硬件和实现影响。

FlashAttention可避免保存完整注意力矩阵,降低显存读写,却通常不改变密集两两交互的二次计算阶数。普通Transformer流式解码还需要随上下文增长的KV,循环模型则可用固定维度状态压缩过去信息,代价是历史细节可能丢失。

追问:一跳连接就一定学得到长依赖吗?

不是。一跳降低了架构上的路径长度,但能否利用远处证据仍取决于训练数据、位置机制、注意力分配和任务难度;长上下文里找到信息与正确使用信息也不同。

参考资料

相关面经

2 篇

米哈游

Agent 开发工程师
一面
查看原面经 →
为什么 Self-Attention 比 RNN 更适合大规模并行训练,但不意味着它在所有场景都更优?

米哈游

AI 应用 / Agent 开发
查看原面经 →
为什么attention比rnn好

收录题集

6 个来源,共11 份题集

大模型基础

AMIT SHEKHAR · ai-engineering-interview-questions · 1 条原题

查看题集 →

LLM、VLM 与 Agent 面试题

Datawhale · hello-agents · 1 条原题

查看题集 →

八股集锦(高频问题)

小熊饼干_ · 个人整理 · 1 条原题

查看题集 →

公司案例问答汇编

阿东玩 AI · AgentGuide · 1 条原题

查看题集 →

深度学习基础汇编

阿东玩 AI · AgentGuide · 5 条原题

查看题集 →
展开其余 2 条原题
展开剩余 6 份题集

相关题目

4 题