五十人的教室里,老师想让大家充分交流观点,于是规定:每个人都必须和全班所有人单独聊一遍。五十人就要配对上万次对话,一万人就要安排近五千万次——这堂“全员茶话会”根本开不下去。标准 Transformer 的自注意力就是这场茶话会:每个词都要和所有词两两打分,序列一长,计算量就平方级爆炸。 TransNormer 换了一种开会方式:全班共用一个“接力笔记本”。每个学生把想法简化成一行写进笔记本,后面的同学翻一遍笔记本就能掌握全部信息。每人写一次、读一次,总工作量随人数线性增长。为了让笔记本又快又稳,它还有三条纪律:平摊计份(简单归一化)、只翻最近几页和封面摘要(对角注意力)、组长筛选后再誊抄(门控设计)。这套思路让 AI 能一口气读完几十万字的长文本,不再被茶话会的混乱拖垮。

岗位关联

掌握 TransNormer 的线性注意力思路,你就能理解大模型处理超长序列的底层优化方向,在面对长文本、长对话和推理加速场景时做出更专业的架构选型。

目录
  1. 可视化演示
  2. 注意力瓶颈
  3. 线性注意力
  4. 归一化机制
  5. 对角注意力
  6. 门控设计
  7. 复杂度对比
  8. 长序列应用
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

展示TransNormer线性注意力三大核心:标准Softmax注意力的n×n矩阵与O(n²)复杂度瓶颈、线性注意力特征映射分解将复杂度降至O(n·d²)、不同序列长度下的显存与吞吐量性能基准对比,动态展示复杂度、序列长度、显存占用和加速比。

本节配有交互动效(进入视口后自动加载,约 3KB)。

标准注意力 标准注意力 线性注意力 性能对比 TransNormer线性注意力Transformer

注意力瓶颈

想象那场全员茶话会。组织者为了不遗漏任何观点,规定每两个同学都必须一对一聊一次。如果有 N 个人,就要安排 N(N-1)/2 场对话。五十人的班级还能硬撑,一万人就成了天文数字。Transformer 的自注意力正是这场茶话会:序列里每个词都要与其他所有词“对一次话”,记录对话热度的是一个 N×N 的打分矩阵。

具体来说,每个词都会生成三份材料:提问词 Q、介绍词 K 和内容词 V。自注意力用 Q 和所有 K 两两内积,得到关注度分数,再经过 softmax 变成权重,最后对 V 加权求和形成新的理解。这个流程表达能力很强,但代价是计算量和内存都和序列长度的平方成正比。

茶话会人数翻倍,对话数翻四倍,这就是平方级增长。当序列长到一万词,光热度表就占几十 GB 内存,训练和推理直接被卡死。所以研究者开始思考:能不能不办茶话会?

A=softmax⁡(QK⊤d)\displaystyle A=\operatorname{softmax}\left(\frac{QK^{\top}}{\sqrt{d}}\right)
softmax 前的 QKᵀ 是一张 N×N 的“对话热度表”,表里每个格子代表一对词之间的关注强度。
  1. 打分矩阵Q(每个词的提问)与 K(每个词的介绍)做内积,得到两两之间的关注度分数。
    S=QK⊤,S∈RN×NS=QK^{\top},\quad S\in\mathbb{R}^{N\times N}
  2. 缩放稳定除以 √d,避免大数让 softmax 的梯度进入饱和区。
    S′=QK⊤dS^{\prime}=\frac{QK^{\top}}{\sqrt{d}}
  3. softmax 归一对每一行做指数化再归一,把关注度变成和为 1 的概率分布。
    A=softmax⁡(S′)A=\operatorname{softmax}(S^{\prime})
  4. 加权汇总用注意力概率 A 对 V 加权求和,得到每个词的新表示。
    O=AVO=AV

线性注意力

换个思路:不办茶话会,改用接力笔记本。每个同学进场后,先把自己的关键想法写进公共笔记本,然后翻一遍笔记本就能跟上全班的讨论。每人写一次、读一次,全场工作量只有 2N,随人数线性增长。这就是线性注意力的精神:把“N 个人两两对话”改成“各自写、统一读”。

数学上,标准注意力的 softmax(QKᵀ) 无法拆开,必须先把 N×N 矩阵算出来。线性注意力引入一个核函数 φ,把打分近似成 φ(Q)φ(K)ᵀ,再利用矩阵乘法的结合律,先算 φ(K)ᵀV,得到一张与 N 无关的 d×d“笔记状态”,再让每个 Q 去读取。这样 N×N 的矩阵从头到尾都不会出现。

笔记本方案把时间从 N² 降到了 N 量级,但新问题来了:笔记越积越多,数值会越来越大,大家翻笔记的耐心也有限。所以 TransNormer 给这本笔记本立了三条纪律,接下来逐条展开。

LinearAttn⁡(Q,K,V)=ϕ(Q)(ϕ(K)⊤V)ϕ(Q)(ϕ(K)⊤1L)\displaystyle \operatorname{LinearAttn}(Q,K,V)=\frac{\phi(Q)\left(\phi(K)^{\top}V\right)}{\phi(Q)\left(\phi(K)^{\top}\mathbf{1}_{L}\right)}
分子是把历史压缩成状态再读取,分母是每个词读到的“总份量”,用来做归一化,替代 softmax 的分母。
  1. 核函数映射φ 把 Q、K 映射到非负空间,让打分能拆成两个独立向量的乘积。
    softmax⁡(QK⊤)≈ϕ(Q)ϕ(K)⊤\operatorname{softmax}(QK^{\top})\approx\phi(Q)\phi(K)^{\top}
  2. 压缩状态先算 φ(K)ᵀV,得到 d×d 的笔记状态,与序列长度 N 无关。
    S=ϕ(K)⊤VS=\phi(K)^{\top}V
  3. 份量统计φ(K)ᵀ1 统计所有位置的“份量”,作为归一化分母。
    z=ϕ(K)⊤1Lz=\phi(K)^{\top}\mathbf{1}_{L}
  4. 读取输出每个 Q 用 φ(Q) 读取状态并除以份量,得到最终结果。
    O=ϕ(Q)Sϕ(Q)zO=\frac{\phi(Q)S}{\phi(Q)z}

归一化机制

茶话会时代,softmax 像一场人气投票:用指数函数放大分数,谁嗓门大谁拿到的注意力就多。投票还特别敏感——分数稍微波动,结果就剧烈抖动。接力笔记本则提倡“平摊计份”:记了多少条,就除以多少,谁也不吃亏,数值也稳稳当当。

TransNormer 的 NormAttention 干脆把 softmax 整个去掉,用简单的除法做归一化。通用线性注意力还要费心选核函数 φ,TransNormer 连核函数都不要:直接用朴素的 QKᵀ 打分,只保留一个全局除法。这既省掉了指数运算,也让计算可以拆开、按线性顺序执行。

平摊计份让笔记本算得快、数值稳,但“一视同仁”也有隐患:全部历史被平均对待,重点不突出。于是第二条纪律登场:翻笔记要有重点。

NormAttn⁡(Q,K,V)=QK⊤Vn\displaystyle \operatorname{NormAttn}(Q,K,V)=\frac{QK^{\top}V}{n}
n 是序列长度。除以一个全局常数,用来控制输出的量级不随长度爆炸,替代 softmax 的逐行归一化。
  1. 去掉指数不再用 exp,避免分数敏感和大数溢出。
    S=QK⊤S=QK^{\top}
  2. 先算汇总利用结合律先算 KᵀV,得到 d×d 状态。
    SKV=K⊤VS_{KV}=K^{\top}V
  3. 全局均摊除以序列长度 n,控制输出量级;自回归场景下分母换成该位置实际读到的笔记数。
    O=QSKVnO=\frac{Q S_{KV}}{n}
  4. 线性复杂度全程不出现 N×N 矩阵,时间降为 O(Nd²)。
    T=O(Nd2)T=O(Nd^{2})

对角注意力

接力笔记本虽然高效,但要是笔记本有一百页,每页都逐字读,依然很累。聪明的做法是:只细读最近几页,因为最新信息最相关;再回头看看封面上的摘要,抓住全文主线。很久以前的细枝末节,草草扫过即可。这就是对角注意力的直觉。

TransNormer 的 DiagAttention 给注意力加了一个对角带掩码:位置 i 只和满足 i-j ≤ w 的最近 w 个 token 交互,同时永远保留开头 g 个“全局摘要”token。掩码矩阵 M 把注意力从“全连接”压成“带状”,计算量从 N² 降到 N(w+g),局部语义也变得更突出。在自回归累积状态里,旧信息还会随距离逐渐衰减,好比笔记本越旧的页面字迹越淡。

翻笔记有了重点,效率更高。但笔记本的质量还取决于记了什么:如果每个同学都把自己鸡毛蒜皮的小事写进去,笔记本就废了。于是第三条纪律出场:组长把关。

Mij={1,i−j≤w 或 j≤g0,其他\displaystyle M_{ij}=\begin{cases}1, & i-j\le w\text{ 或 }j\le g\\0, & \text{其他}\end{cases}
掩码决定每个位置能看到哪些历史:最近 w 条必看,开头 g 条必看,其余一律跳过。
  1. 局部窗口i-j ≤ w 表示只关注最近 w 个 token,捕获局部语义。
    i−j≤wi-j\le w
  2. 全局摘要j ≤ g 表示开头的 g 个 token 始终可见,相当于封面摘要。
    j≤gj\le g
  3. 带状掩码M 与注意力分数逐元素相乘,窗口之外全部置零。
    A⊙MA\odot M
  4. 复杂度下降每个位置只看 w+g 个历史,总量约 N(w+g),呈线性。
    T=O(N(w+g)d)T=O(N(w+g)d)

门控设计

接力笔记本最怕噪音。要是每个学生都把“今天中午吃什么”写进公共笔记,后面的人翻烂笔记本也找不到重点。TransNormer 给每一层配了一位“值日组长”——门控机制:信息先经过组长打分,重要的誊抄进公共笔记,不重要的直接划掉。

具体实现上,TransNormer 用 Gated Linear Unit(GLU)替换了标准的 FFN 前馈层。GLU 有两路:一路是主干变换 W₁x,另一路用 sigmoid 输出一个 0 到 1 的“通过率” σ(W₂x),两路逐元素相乘。通过率接近 1 的信息被保留,接近 0 的被压掉。注意力输出也经过类似的门控,帮助模型决定当前步到底采纳多少笔记信息。

三条纪律齐了:平摊计份保证稳定,有重点地翻笔记保证效率,组长把关保证质量。接力笔记本终于可以可靠运转。那么它到底比茶话会省多少?下一节来算账。

GLU⁡(x)=(W1x)⊙σ(W2x)\displaystyle \operatorname{GLU}(x)=\left(W_{1}x\right)\odot\sigma\left(W_{2}x\right)
门控让每一层都学会“挑重点记笔记”,公共笔记本的信息密度更高,训练也更稳定。
  1. 主干变换W₁x 给出待筛选的原始信息。
    h=W1xh=W_{1}x
  2. 门控打分σ(W₂x) 把打分压到 0 到 1 之间,表示信息通过率。
    g=σ(W2x)g=\sigma(W_{2}x)
  3. 逐元素相乘⊙ 按位相乘,不重要的维度被压低。
    GLU⁡(x)=h⊙g\operatorname{GLU}(x)=h\odot g
  4. 替换 FFNTransNormer 每层用 GLU 替代普通前馈,组长的把关能力贯穿整本笔记本。
    x←GLU⁡(x)x\leftarrow \operatorname{GLU}(x)

复杂度对比

开茶话会要订一个大场地,所有人的对话都要记录在案;接力笔记本只需要一块小黑板和几支粉笔。把两套方案的账算清楚:茶话会(标准注意力)的时间和场地都是 N² 量级,笔记本(线性注意力)的时间和场地都随 N 线性增长。

标准注意力要算 N×N 打分矩阵,时间和内存都是 O(N²);线性注意力只要维护 d×d 的笔记状态,时间和内存都接近 O(N)。两者的理论加速比:

班级越大,笔记本方案越显优势。但加速比里藏着条件——序列要足够长;短文本上茶话会依然能打。那么在哪些真实场景里,笔记本方案成了刚需?下一节看应用。

T标准T线性=N2dNd2=Nd\displaystyle \frac{T_{\text{标准}}}{T_{\text{线性}}}=\frac{N^{2}d}{Nd^{2}}=\frac{N}{d}
当序列长度 N 远大于隐藏维度 d 时,加速比约等于 N/d,序列越长越划算。
  1. 标准复杂度分子 N²d 来自 N×N 打分矩阵的乘加。
    T标准=O(N2d)T_{\text{标准}}=O(N^{2}d)
  2. 线性复杂度分母 Nd² 来自状态累积与读取。
    T线性=O(Nd2)T_{\text{线性}}=O(Nd^{2})
  3. 化简比值约分后得到 N/d,加速潜力由序列长度和维度共同决定。
    N2dNd2=Nd\frac{N^{2}d}{Nd^{2}}=\frac{N}{d}
  4. 代入实例N=10 万、d=512 时,理论加速约 195 倍。
    100000512≈195\frac{100000}{512}\approx 195

长序列应用

学校从五十人的小班扩张成几万人的大学,茶话会彻底办不了,接力笔记本却依然运转:每个人照样写一条、读一遍,只是笔记多翻几页而已。长序列场景正是如此——当上下文超过十万 token,标准注意力的平方开销直接让训练和推理寸步难行。

推理时还有一个关键点:标准注意力在自回归生成中要缓存所有历史的 K、V,随序列线性膨胀;线性注意力把历史压缩进 d×d 的固定状态,缓存大小与历史长度无关。这直接决定了长对话、流式生成场景下的吞吐上限。

笔记本方案不是万能的:短文本上它不一定比茶话会强,还需要对角窗口和门控来补足局部建模。但面对动辄几十万 token 的超长任务,它是当下最实用的选择之一。

M标准缓存=Θ(Nd),M线性状态=Θ(d2)\displaystyle M_{\text{标准缓存}}=\Theta(Nd),\qquad M_{\text{线性状态}}=\Theta(d^{2})
缓存的记忆体从“每个 token 都要存”变成“一张固定大小的笔记状态”,长对话不再越聊越卡。
  1. 标准缓存每层要存 N 个历史的 K、V,各为 d 维。
    M标准缓存=Θ(Nd)M_{\text{标准缓存}}=\Theta(Nd)
  2. 线性状态全部历史被压缩进 d×d 状态,与 N 无关。
    M线性状态=Θ(d2)M_{\text{线性状态}}=\Theta(d^{2})
  3. 比值约化两者之比也是 N/d,长序列省下海量显存。
    Ndd2=Nd\frac{Nd}{d^{2}}=\frac{N}{d}
  4. 选型建议超长文本、多轮对话、流式实时任务优先选择 TransNormer 类线性架构。
    N≫d⇒线性架构更优N\gg d \Rightarrow \text{线性架构更优}

AI 应用场景

超长文档理解

阶段:模型架构选型

解决的问题:法律合同、学术论文、代码仓库动辄几十万 token,标准注意力要建 N×N 打分矩阵,10 万 token 时矩阵就有百亿个格子,单卡根本放不下。线性注意力把历史压成 d×d 状态,让“一次读完全书”成为可能,不用再把文档切碎导致漏掉跨章节信息。

具体案例:某法律科技公司要一次读完整本招股书(约 30 万 token)做风险条款抽取。换成 TransNormer 类线性架构后,训练显存下降一个量级,还能直接对全文建模,跨章节的关联条款也能被模型捕捉。

多轮对话推理加速

阶段:推理优化

解决的问题:聊天机器人对话越来越长,标准注意力每轮都要把历史 K、V 缓存起来,KV cache 随轮次线性膨胀,显存和延迟双双恶化。线性注意力的缓存是固定 d×d 状态,长对话吞吐不降。

具体案例:某智能客服大模型原本 50 轮对话后响应延迟飙升,KV cache 占满显存;换用线性注意力变体后,状态固定,延迟基本平稳,同样显存能支撑的并发数翻了两倍。

实时流式转写

阶段:在线部署

解决的问题:语音转写、实时字幕是流式任务,token 不断流入,历史无限增长。标准注意力对每个新 token 都要重算与全部历史的注意力,越说越慢;线性注意力只维护一个固定状态,每来一个 token 更新一次即可。

具体案例:会议同传系统在 2 小时长会中持续转写,线性注意力状态始终恒定,单条延迟稳定在毫秒级,不会因为会议进行到一半而明显变卡。

Python 演示

python36 行
import timeimport numpy as np def softmax_attention(Q, K, V):    # 标准注意力: 先算 N x N 打分矩阵, 再逐行 softmax    d = Q.shape[-1]    scores = np.matmul(Q, K.transpose(0, 2, 1)) / np.sqrt(d)    scores = scores - scores.max(axis=-1, keepdims=True)    prob = np.exp(scores)    prob = prob / prob.sum(axis=-1, keepdims=True)    return np.matmul(prob, V) def linear_attention(Q, K, V):    # 线性注意力: 用 ReLU 核, 先算 d x d 状态再读取    Q_pos = np.maximum(Q, 0.0)    K_pos = np.maximum(K, 0.0)    state = np.matmul(K_pos.transpose(0, 2, 1), V)    out = np.matmul(Q_pos, state)    norm = np.matmul(Q_pos, K_pos.sum(axis=-2, keepdims=True).transpose(0, 2, 1))    return out / np.clip(norm, 1e-6, None) def measure(fn, Q, K, V):    t0 = time.perf_counter()    for _ in range(5):        fn(Q, K, V)    return (time.perf_counter() - t0) / 5.0 if __name__ == "__main__":    d = 64    for N in [100, 300, 600, 1000, 1600]:        Q = np.random.randn(1, N, d).astype(np.float32)        K = np.random.randn(1, N, d).astype(np.float32)        V = np.random.randn(1, N, d).astype(np.float32)        t_soft = measure(softmax_attention, Q, K, V)        t_lin = measure(linear_attention, Q, K, V)        print("N=%5d  softmax=%.4fs  linear=%.4fs  speedup=%.1fx" % (N, t_soft, t_lin, t_soft / t_lin))
目的:用 numpy 实现标准 softmax 注意力和线性注意力,对比不同序列长度下的耗时,直观验证 O(N²) 与 O(N) 的复杂度差距。
  1. scores = np.matmul(Q, K.transpose(0, 2, 1)) / np.sqrt(d)生成 N×N 打分矩阵,这正是平方复杂度的根源。
  2. prob = np.exp(scores)softmax 的指数运算无法拆开,逼着模型保留整张 N×N 矩阵。
  3. state = np.matmul(K_pos.transpose(0, 2, 1), V)关键一步:用矩阵结合律先把历史压缩成 d×d 状态。
  4. norm = np.matmul(Q_pos, K_pos.sum(axis=-2, keepdims=True).transpose(0, 2, 1))计算线性注意力的归一化分母,全程不出现 N×N 矩阵。
  5. print("N=%5d softmax=%.4fs linear=%.4fs speedup=%.1fx" % (N, t_soft, t_lin, t_soft / t_lin))观察加速比随 N 增大而增大,这就是长序列场景选线性架构的原因。

常见误区

误区把 softmax 换成简单除法就是牺牲精度换速度,模型质量一定会大幅下降,所以工业界不敢用。

正解TransNormer 不是简单替换一个公式,而是配套了对角注意力、门控线性单元和归一化等一整套改进。像接力笔记本虽然少了茶话会的“全员互动”,但组长把关和重点翻页让信息密度更高,在长序列任务上反而更稳。短序列上两者互有胜负,但长序列上线性注意力是实打实的升级。

为何常见:看到“替换 softmax”就自然联想到“近似”和“损失”,忽略了架构层面的系统性补偿设计。

误区以为线性注意力是 O(N),所以序列长度可以无限增长,完全没有代价,随便塞一百万 token 都行。

正解线性注意力时间是 O(Nd²),空间是 O(d²) 的状态加 O(Nd) 的输入,d² 这一项的常数并不小。而且对角窗口、归一化分母和门控都有各自的限制;序列过长时,表达能力、显存和训练稳定性依然会承压。笔记本虽然高效,但黑板位置和值日组长的精力都是有限的。

为何常见:只记住“从 N² 到 N”的营销话术,忽略了常数项和其他开销。

误区觉得 TransNormer 就是把 softmax(QKᵀ) 换成 QKᵀ/n,其他地方不用动,改一行代码就能复现。

正解直接换会导致训练不稳定、注意力坍缩——每个位置读到几乎相同的内容。TransNormer 的完整方案包括简单归一化、对角注意力掩码、GLU 门控和去偏置等一整套设计。光改记账规则不够,还要配上值日组长和笔记本分区才能运转。

为何常见:论文标题里的“线性注意力”让人只盯着 softmax 替换,忽略了其余架构改进。

误区把对角注意力、局部窗口等概念和线性注意力混为一谈,认为它们是一回事,都是“省着算”。

正解两者思路不同:稀疏注意力仍然是逐个 token 两两打分,只是跳过某些位置对;线性注意力则把信息压缩进 d×d 状态再广播读取,根本不产生两两打分矩阵。茶话会改成“只和邻座聊”是稀疏,改成“写笔记本统一读”才是线性。

为何常见:两类方法都面向长序列优化,经常被放在一起对比,概念边界容易被模糊。

面试题

Q1. 标准自注意力的计算复杂度是?

单选题 · easy

  • A.O(N) 时间
  • B.O(N²) 时间← 正确答案
  • C.O(log N) 时间
  • D.O(N√N) 时间

答案:B。标准注意力要计算两两之间的 N×N 打分矩阵,时间和内存都是平方级。就像全班茶话会,人数翻倍,对话数翻四倍。其余选项把复杂度记成了线性、对数或介于两者之间的量级,都不符合实际。

Q2. linear attention 降复杂度的核心数学性质是?

单选题 · easy

  • A.只保留每个词的键
  • B.利用矩阵结合律← 正确答案
  • C.丢弃所有注意力
  • D.缩小词表大小

答案:B。线性注意力的关键是矩阵结合律:先算 φ(K)ᵀV 得到 d×d 状态,再乘 φ(Q),从而避免物化 N×N 打分矩阵。就像先把笔记汇总好再让大家翻,而不是两两私聊。只保留键、丢弃注意力或缩小词表都不是它的核心思路。

Q3. 线性注意力中状态 S = φ(K)ᵀV 的形状是?

单选题 · easy

  • A.N×N 矩阵
  • B.N×d 矩阵
  • C.d×d 矩阵← 正确答案
  • D.d×V 矩阵

答案:C。K 是 N×d,V 是 N×d,Kᵀ 与 V 相乘得到 d×d。这个状态把全部历史压缩成一张“笔记汇总”,与序列长度 N 无关,这正是线性注意力缓存固定的原因。其余选项把状态想成 N×N 或与词表相关,都不对。

Q4. TransNormer 的 NormAttention 用哪种方式替代 softmax?

单选题 · mid

  • A.除以序列长度← 正确答案
  • B.除以词表大小
  • C.除以学习率
  • D.除以梯度范数

答案:A。NormAttention 直接去掉 softmax,用除以序列长度 n 做简单归一化,控制输出量级。就像接力笔记本按笔记条数平摊分量,不再搞指数投票。除以词表、学习率或梯度都不是注意力的归一化做法。

Q5. DiagAttention 对角掩码的主要作用是什么?

单选题 · mid

  • A.提升局部信息权重← 正确答案
  • B.降低词表尺寸
  • C.加速数据加载
  • D.改善梯度消失

答案:A。对角掩码让每个位置只关注最近 w 个 token,同时保留开头 g 个全局 token,计算量从 N² 降到 N(w+g),局部语义更突出。就像翻笔记本只看最近几页和封面摘要。它管的是注意力范围,与词表、数据加载、梯度都无关。

Q6. TransNormer 用 GLU 门控的主要目的是什么?

单选题 · hard

  • A.扩大参数数量
  • B.筛选重要信息← 正确答案
  • C.加速softmax
  • D.压缩序列长度

答案:B。GLU 用 σ(W₂x) 给信息打分,再逐元素乘到 W₁x 上,起到筛选作用。就像值日组长把关,重要信息才誊抄进公共笔记本。它不是为了扩大参数量、加速 softmax 或压缩序列,而是提升信息密度和训练稳定性。

Q7. 当 N=100000、d=512 时,线性注意力相对标准注意力的理论加速比约为?

单选题 · hard

  • A.2 倍
  • B.200 倍← 正确答案
  • C.20000 倍
  • D.0.5 倍

答案:B。加速比 = N²d / (Nd²) = N/d = 100000/512 ≈ 195,约 200 倍。班级越大,接力笔记本相对茶话会越省。2 倍、20000 倍、0.5 倍的量级都不符合这个比值。

Q8. 线性注意力相比标准注意力的优势有哪些?

多选题 · mid

  • A.时间线性增长← 正确答案
  • B.内存占用降低← 正确答案
  • C.效果绝对更高
  • D.支持更长的序列← 正确答案

答案:ABD。线性注意力时间 O(Nd²) 线性增长,不存 N×N 矩阵,内存显著降低,因此能处理更长序列。但“效果绝对更高”不是必然:简单归一化在短序列上可能略逊,需要对角注意力和门控来补偿,选 A、B、D。

Q9. TransNormer 为稳定线性注意力做了哪些架构改进?

多选题 · mid

  • A.简单归一化← 正确答案
  • B.对角注意力← 正确答案
  • C.门控线性单元← 正确答案
  • D.增大词表

答案:ABC。三大改进分别是简单归一化(平摊计份)、对角注意力(只翻近几页加封面摘要)和门控线性单元(组长筛选)。它们共同解决了数值稳定性、局部建模和信息筛选问题。增大词表与注意力机制无关,选 A、B、C。

Q10. 关于线性注意力的状态,下列说法正确的有?

多选题 · hard

  • A.状态形状固定为d×d← 正确答案
  • B.状态随长度线性增长
  • C.旧信息会逐渐衰减← 正确答案
  • D.状态是全局压缩摘要← 正确答案

答案:ACD。线性注意力的状态是 d×d 固定形状,相当于全班的压缩摘要,不会随序列长度线性增长;在因果累积中,旧信息会随距离逐渐衰减,也需要配合归一化防止量级失控。选 A、C、D。