想象你是一座图书馆的管理员。过去,每来一本新书,你都派一名实习生把全馆藏书逐本翻一遍,找出与这本新书有关联的段落。藏书少时这没什么,但当藏书从一百本涨到十万本,这种“书与书全量对比”的做法就开始失控——工作量按藏书本数的平方爆炸式增长。这正是 Transformer 在超长文本上举步维艰的根本原因:自注意力要对序列中所有位置两两打分。 近几年,Mamba、RetNet、RWKV 等新架构纷纷登场,它们试图用“线性注意力”或“状态空间模型”来替代这个昂贵的全量对比。你可以把它们理解为不同的图书馆管理方案:有的管理员随身带一本会筛选重点的笔记本(Mamba),有的白天精确检索、晚上用台账顺序巡检(RetNet),还有的干脆建了一条带固定遗忘节奏的传送带(RWKV)。它们都把成本从“平方级”压到“线性级”,让模型能一口气读完百万字的书。 本文就用这个图书馆比喻,带你拆解每种方案的原理、优劣与适用场景,并讨论一个终极问题:它们能不能真的取代 Transformer?

岗位关联

职业价值:理解这些架构的本质差异,能帮你在长序列建模、端侧推理和流式应用中做出正确的技术选型,是迈向大模型工程化与架构创新的必修课。

目录
  1. 可视化演示
  2. 注意力瓶颈:翻遍全馆
  3. 线性注意力:摘要卡革命
  4. Mamba:选择性笔记本
  5. RetNet:双模式图书馆
  6. RWKV:传送带流水线
  7. 效率与质量:同台竞技
  8. 选型与展望:没有银弹
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

动态演示Mamba等线性注意力架构对的核心机制,通过采集/分析/决策/反馈四种模式展示关键概念与交互流程。

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

Mamba等线性注意力架构对:Tran Transformer注意力机 Mamba的选择性状态空间模型 核心机制可视化 Mamba等线性注意力架构对整体架构与关键组件

注意力瓶颈:翻遍全馆

想象一家只进新书的图书馆。管理员每读一本新书,都要求实习生把全馆藏书再翻一遍,找出与这本书有关联的所有段落。藏书包罗万象,每次“找关联”都要做“书与书”的全量对比——n 本书就要做 n² 次比对。书越多,助理跑得越勤,图书馆的运转成本迅速失控。这就是 Transformer 自注意力模型的现实困境。

在 Transformer 里,每本书被拆成三个角色:Q(当前想问的问题)、K(每本书封面的检索标签)、V(书页里的实际内容)。计算某本书的输出时,模型用 Q 与所有 K 逐一打分,得到一组权重,再按权重把每本书的 V 汇总起来。理论上这能捕捉任意两本书之间的精确关系,但代价是 n×n 的比对矩阵。

当书从几百本增加到十万本时,比对次数从几万跳到百亿,那张 n×n 的“关系表”连显存都装不下。长篇小说(长序列)因此成为 Transformer 的噩梦,这也推动整个领域去寻找更聪明的“翻书”方式。

Attention(Q,K,V)=softmax ⁣(QK⊤d)V\displaystyle \mathrm{Attention}(Q,K,V)=\mathrm{softmax}\!\left(\frac{QK^{\top}}{\sqrt{d}}\right)V
这个公式是“翻遍全馆”的数学表达:Q 与所有 K 打分,softmax 变成权重,再乘 V 汇总。
  1. 三个角色矩阵Q 是当前 token 的查询向量集合,K 是所有 token 的键向量集合,V 是值向量集合,三者都是 n×d 矩阵。
    Q,K,V∈Rn×dQ,K,V\in\mathbb{R}^{n\times d}
  2. 打分矩阵用 Q 与所有 K 做点积,得到 n×n 的相似度矩阵,第 i 行第 j 列表示“第 i 个词对第 j 个词的关注度”。
    S=QK⊤S=QK^{\top}
  3. 温度缩放除以 √d 防止点积数值过大,让 softmax 的梯度更稳定。
    S~=S/d\tilde{S}=S/\sqrt{d}
  4. 归一化权重对每行做 softmax,让所有关注度之和为 1。
    W=softmax(S~)W=\mathrm{softmax}(\tilde{S})
  5. 加权汇总用权重矩阵对 V 做线性组合,得到所有位置的新表达。
    Attention=W V\mathrm{Attention}=W\,V

线性注意力:摘要卡革命

一个机灵的实习生提出:与其每次都全馆对翻,不如先把每本书做成一张“摘要卡”,之后所有查询只读摘要卡。这就是线性注意力的思路——把“内容与内容”的两两对比,换成“累积摘要”的反复利用。

技术上,softmax(QK^T) 这个非线性步骤可以被核函数 φ 近似:把 Q 和 K 映射到新空间后做内积,近似原来的 softmax 相似度。于是计算顺序可以调换——先算 φ(K)^T V(把 V 汇总成一张“摘要卡”),再让每个 Q 去乘这张卡。复杂度从 O(n²) 降到 O(n)。

但摘要卡是“浓缩”而不是“原文”:用一个低维向量去代表一本书,必然丢失细节。所以线性注意力在需要逐字精确对齐的任务上(例如翻译、代码补全中的精确变量引用)会明显掉点。这是“快”与“准”之间的第一场交易。

o~i=ϕ(qi)∑j=1iϕ(kj)⊤vjϕ(qi)∑j=1iϕ(kj)⊤\displaystyle \tilde{o}_i=\frac{\phi(q_i)\sum_{j=1}^{i}\phi(k_j)^{\top}v_j}{\phi(q_i)\sum_{j=1}^{i}\phi(k_j)^{\top}}
这是“因果线性注意力”的公式:每个位置只关注它之前的历史,分子是累积的 KV 摘要,分母负责归一化。
  1. 核函数映射φ 把 q、k 映射到新特征空间,使内积近似 softmax 的相似度。
    ϕ(x)∈Rd′,ϕ(qi)⋅ϕ(kj)≈exp⁡(qi⋅kj)\phi(x)\in\mathbb{R}^{d'},\quad \phi(q_i)\cdot\phi(k_j)\approx \exp(q_i\cdot k_j)
  2. 分子摘要卡先把所有历史的 K 和 V 的乘积累加成一张摘要卡,这一步对每个历史位置只做一次。
    Si=∑j=1iϕ(kj)⊤vjS_i=\sum_{j=1}^{i}\phi(k_j)^{\top}v_j
  3. 分母归一化数累加所有历史 K 的映射和,用于把加权和变成加权平均。
    zi=∑j=1iϕ(kj)⊤z_i=\sum_{j=1}^{i}\phi(k_j)^{\top}
  4. 最终查询每个 q_i 只需拿摘要卡 S_i 和归一化数 z_i 做一次运算,复杂度降为 O(n d' d)。
    o~i=ϕ(qi)Siϕ(qi)zi\tilde{o}_i=\frac{\phi(q_i)S_i}{\phi(q_i)z_i}

Mamba:选择性笔记本

Mamba 的管理员不再依赖固定的摘要卡,而是随身带一个“笔记本”(隐藏状态 h)。每读一本新书,他就在笔记本上增删几句。关键是“记什么”完全由当前在读的书决定:如果这本书信息量大就重点记录,如果只是无关紧要的一本就快速翻过。这种“挑重点记”的能力,来自选择性的状态空间模型(SSM)。

SSM 的递推公式非常朴素:旧状态先衰减(乘以 A),再把新书内容写进去(加上 B 乘当前输入),然后从状态里读出一个答案(乘以 C)。把连续时间的微分方程离散化后,就得到:

Mamba 与朴素 SSM 最大的不同,是 A、B、C(以及采样步长 Δ)都变成当前输入的函数,让模型能动态决定“遗忘什么、记住什么”。配合硬件感知的并行扫描算法,训练时不用维护 n×n 矩阵,推理时状态只有固定大小。代价是笔记本容量有限——记了十万本之后,早期的细节早被冲淡。它擅长“把握大局”,不擅长“精确引用第 357 页那句话”。

ht=Aˉ ht−1+Bˉ xt,yt=Cˉ ht\displaystyle h_t=\bar{A}\,h_{t-1}+\bar{B}\,x_t,\qquad y_t=\bar{C}\,h_t
这是状态空间模型的“记账”三步:遗忘旧账、写入新账、读出答案。Mamba 的特殊之处在于 A、B、C 都会随当前输入变化。
  1. 状态向量h_t 是 t 时刻的“笔记本”——固定维度的历史摘要。
    ht∈Rdsh_t\in\mathbb{R}^{d_s}
  2. 遗忘旧状态离散化后的系统矩阵 A_bar 乘以旧状态,决定过去信息保留多少。
    Aˉ ht−1\bar{A}\,h_{t-1}
  3. 写入新信息B_bar 乘以当前输入 x_t,决定新 token 以多大力度影响状态。
    Bˉ xt\bar{B}\,x_t
  4. 读出答案C_bar 从状态中提取当前任务需要的信息作为输出。
    yt=Cˉ hty_t=\bar{C}\,h_t

RetNet:双模式图书馆

RetNet 的设计更像一座“双模式图书馆”:白天,资深导览员在馆内巡视,有人提问就立刻把所有书架与已知信息做精确匹配(并行注意力);晚上,导览员下班,一个保安按固定路线巡逻,把当天情况一笔笔记在值班簿里(递归状态)。白天模式可以多人并行服务很多读者,晚上模式只有一条路线,但不需要开灯照亮全馆。

RetNet 的数学核心叫 Retention,它同时提供三种表示:并行表示用于训练——拿 QK^T 算相似度矩阵,再乘一个按距离衰减的位置矩阵 D;递归表示用于推理——像 RNN 一样逐 token 更新状态;分块表示介于两者之间,块内并行、块间递归,兼顾训练速度与精度。

因为 D 矩阵给“距离很远的书”天然打折,历史信息按固定比例指数衰减。这让 RetNet 推理时彻底丢掉 KV 缓存,显存恒定;训练时又能用并行表示吃满 GPU。如果把 Transformer 比作“精确但昂贵的灯”,RetNet 就是“白天全灯 + 夜间省电”的组合方案。

Retention(X)=(QK⊤⊙D)V,Dij=γi−j (i≥j)\displaystyle \mathrm{Retention}(X)=\bigl(QK^{\top}\odot D\bigr)V,\qquad D_{ij}=\gamma^{i-j}\ (i\ge j)
这个式子看起来和 Transformer 很像,但多了 D 矩阵这把“距离尺子”:越远的书被天然打了越大的折扣。
  1. 相似度矩阵与 Transformer 相同,先算 Q 和 K 的点积。
    P=QK⊤P=QK^{\top}
  2. 距离衰减矩阵D 矩阵第 i 行第 j 列在 i≥j 时为 γ^{i-j},γ∈(0,1),越远的值越小。
    Dij=γi−j (i≥j)D_{ij}=\gamma^{i-j}\ (i\ge j)
  3. 逐元素按位乘⊙ 把相似度矩阵的每个元素乘上对应距离折扣,实现“越旧越淡”。
    (P⊙D)ij=Pij⋅γi−j(P\odot D)_{ij}=P_{ij}\cdot\gamma^{i-j}
  4. 加权输出最后乘 V,得到每个位置的输出。
    Retention(X)=(QK⊤⊙D)V\mathrm{Retention}(X)=(QK^{\top}\odot D)V

RWKV:传送带流水线

如果说 RetNet 是“双模图书馆”,RWKV 更像一条传送带流水线。所有书按顺序经过一个工位,工位上有两块固定面板:时间混合面板负责“把当前词与历史记忆按固定衰减比例混合”,通道混合面板负责“对单个词做信息加工”。每个 token 经过工位时,只能看到“过去整体”的一个压缩快照——严格单向、严格线性。

RWKV 的时间混合公式把 Transformer 的注意力矩阵完全改写成 RNN 式递推:

由于衰减权重是预先算好的、不依赖输入,RWKV 的训练可以高效并行(类似线性注意力),推理时永远维护一个固定大小的状态。代价是“遗忘节奏”被钉死:它对所有任务都按同一速度遗忘过去,无法像 Mamba 那样根据内容动态调整。

WKVt=∑j≤te−(t−j)w+kj vj∑j≤te−(t−j)w+kj\displaystyle \mathrm{WKV}_t=\frac{\sum_{j\le t} e^{-(t-j)w+k_j}\,v_j}{\sum_{j\le t} e^{-(t-j)w+k_j}}
距离越远的信息,衰减 e^{-(t-j)w} 越强烈;而每个历史 token 的“内容重要度”由 k_j 调节——这就是“时间混合”的含义。
  1. 固定衰减律w 是每个通道可学习的衰减率,距离 t-j 越远对当前影响越小。
    atj=e−(t−j)wa_{tj}=e^{-(t-j)w}
  2. 内容调权k_j 是第 j 个 token 的“键得分”,决定它在当前时刻的重要度。
    bj=ekjb_j=e^{k_j}
  3. 分子加权历史所有历史 token 的 v_j 先按 a_{tj}·b_j 加权再求和。
    Nt=∑j≤te−(t−j)w+kj vjN_t=\sum_{j\le t}e^{-(t-j)w+k_j}\,v_j
  4. 分母归一化除以所有权重之和,得到类似注意力的加权平均。
    WKVt=Nt∑j≤te−(t−j)w+kj\mathrm{WKV}_t=\frac{N_t}{\sum_{j\le t}e^{-(t-j)w+k_j}}

效率与质量:同台竞技

现在把三种方案放回同一座图书馆进行年度考核。考核指标有五项:训练效率(建馆速度)、推理吞吐(读者服务量)、显存占用(库房面积)、生成质量(回答准确度)、长序列能力(藏书规模上限)。传统 Transformer 在推理质量和短文本上仍然最稳;但长序列一拉满,它的平方级开销立即爆表。

实际测试中,Mamba 在中长期依赖任务上逼近 Transformer,但在需要精确指代和复杂推理的任务上仍有差距;RetNet 训练速度接近 Transformer、推理开销大幅下降;RWKV 在算力受限设备上表现亮眼。没有谁全面胜出,只有场景适配的取舍。

C自注意力=O(n2d),C线性/SSM=O(nd2)\displaystyle C_{\mathrm{自注意力}}=O(n^2 d),\qquad C_{\mathrm{线性/SSM}}=O(n d^2)
两种复杂度的核心差异:n 是序列长度,d 是特征维度。当 n 远大于 d 时,线性架构的“摘要卡”策略全面占优。
  1. 两个关键数字n 为序列长度(书本数量),d 为特征维度(每本书摘要的长度)。
    n, d∈Nn,\ d\in\mathbb{N}
  2. 自注意力代价n×n 的相似度矩阵与 V 相乘,复杂度为 O(n²d)。
    C1=O(n2d)C_1=O(n^2 d)
  3. 线性架构代价先做 KV 摘要再查询,矩阵乘法的内维由 n 换成 d。
    C2=O(nd2)C_2=O(n d^2)
  4. 何时线性占优当 n≫d 时两者之比约为 n/d,序列越长差距越悬殊。
    C1C2≈nd\frac{C_1}{C_2}\approx\frac{n}{d}

选型与展望:没有银弹

最后回到馆长最关心的问题:到底该买哪一套系统?答案是看读者群体。社区图书馆的读者多是短阅读,纯 Transformer 就够;国家档案馆要处理百年卷宗,Mamba/RWKV 更适合“扫一遍记住要点”;对外提供实时检索问答的图书馆,RetNet 的双模方案最均衡。

业界趋势也印证了“没有银弹”:越来越多模型采用混合架构,例如 Jamba 把 Mamba 层与注意力层交错堆叠,既保留线性推理的低开销,又让少数注意力层承担精确关联任务。混合公式可以看作一个可学习的门控开关:

未来三五年,Transformer 不太可能被全面取代,但也不再是唯一答案。线性注意力与状态空间模型已经在长序列、端侧、流式场景站稳脚跟。对工程师来说,关键不是争“谁替代谁”,而是学会根据任务复杂度、成本预算和硬件条件,选择最合适的管理员。

y=σ(λ)⊙Attention(x)+(1−σ(λ))⊙SSM(x)\displaystyle y=\sigma(\lambda)\odot\mathrm{Attention}(x)+(1-\sigma(\lambda))\odot\mathrm{SSM}(x)
门控 σ(λ) 在 0 到 1 之间,模型自己决定每个位置应该更依赖“精确检索”还是“高效压缩”。
  1. 门控标量σ 是 sigmoid 函数,λ 是可学习参数,让模型自己决定偏向哪条路径。
    λ∈R,σ(λ)∈(0,1)\lambda\in\mathbb{R},\quad \sigma(\lambda)\in(0,1)
  2. 注意力分支保留精确的两两关联能力,负责细节与推理。
    Attention(x)\mathrm{Attention}(x)
  3. 状态空间分支提供高效的长程信息压缩,负责速度与显存。
    SSM(x)\mathrm{SSM}(x)
  4. 加权融合按比例混合两路输出,互补优劣。
    y=σ(λ)⊙Attention(x)+(1−σ(λ))⊙SSM(x)y=\sigma(\lambda)\odot\mathrm{Attention}(x)+(1-\sigma(\lambda))\odot\mathrm{SSM}(x)

AI 应用场景

超长文档智能问答

阶段:模型推理与部署

解决的问题:传统 Transformer 处理十万字合同、代码仓库或历史判例时,注意力矩阵平方增长导致显存耗尽、推理超时。Mamba 等线性架构按序列长度线性扫描,状态缓存恒定,让超长上下文在单卡上成为可能。

具体案例:某法律科技公司用基于 Mamba 的模型对 300 万字的历史判例做检索增强问答。他们将模型从 7B 的 Transformer 换成同等规模的 Mamba 后,推理显存占用从 80GB 降到 24GB,单张 A100 即可部署,平均问答延迟从 12 秒降到 4 秒。

实时语音转写与流式交互

阶段:在线推理与流式处理

解决的问题:语音助手需要“边说边听边答”,传统双向注意力必须等完整句子才能计算,首字延迟高。RWKV 与 RetNet 的递归模式可以逐 token 更新状态,天然支持流式解码。

具体案例:一款会议纪要 App 将麦克风音频切成秒级 chunk,流式推送给 RWKV 模型。相比旧方案要等整段话结束才出字,新方案实现边说边出字,首 token 延迟从 3 秒降到 0.3 秒,且长会议的显存占用基本不变。

边缘设备上的本地大模型

阶段:模型压缩与端侧部署

解决的问题:手机和嵌入式设备内存小,Transformer 的 KV 缓存随对话长度线性增长,多轮对话后容易 OOM。线性注意力与 SSM 的固定大小状态非常适合端侧。

具体案例:某智能硬件公司把 Mamba-2B 部署到树莓派上,上下文 1 万 token 只占几十 MB 缓存,实现了完全离线的聊天助手,功耗控制在 3W 以内,在弱网环境中也能流畅对话。

Python 演示

python45 行
import numpy as np def phi(x):    # 用 elu+1 作为线性注意力的核函数    return np.where(x > 0, x + 1.0, np.exp(x)) def softmax_attention(Q, K, V):    d = Q.shape[-1]    scores = Q @ K.T / np.sqrt(d)    scores = scores - scores.max(axis=-1, keepdims=True)    weights = np.exp(scores) / np.exp(scores).sum(axis=-1, keepdims=True)    return weights @ V def linear_attention(Q, K, V):    Qp, Kp = phi(Q), phi(K)    kv = Kp.T @ V          # 先算馆藏摘要卡    z = Kp.sum(axis=0)     # 归一化分母    out = Qp @ kv    denom = Qp @ z    return out / denom[:, None] def ssm_scan(A, B, C, xs):    state = np.zeros_like(B)    ys = []    for x in xs:        state = A * state + B * x   # 笔记本更新:遗忘 + 写入        ys.append(float(C @ state)) # 从状态读出答案    return np.array(ys) if __name__ == "__main__":    rng = np.random.default_rng(0)    n, d = 16, 8    Q = rng.normal(size=(n, d))    K = rng.normal(size=(n, d))    V = rng.normal(size=(n, d))    y1 = softmax_attention(Q, K, V)    y2 = linear_attention(Q, K, V)    print("linear_attention_mse:", round(float(np.mean((y1 - y2) ** 2)), 6))     A = np.array([0.95, 0.5, 0.2])    B = np.array([1.0, 0.6, 0.3])    C = np.array([0.9, 0.4, 0.1])    xs = np.sin(np.linspace(0, 6 * np.pi, 30))    ys = ssm_scan(A, B, C, xs)    print("ssm_first_8:", np.round(ys[:8], 3).tolist())
目的:用 NumPy 实现文章中的两个核心思想——线性注意力的“摘要卡”近似,以及状态空间模型的“笔记本”递推扫描。
  1. Qp, Kp = phi(Q), phi(K)用核函数把 Q、K 映射到新空间,近似 softmax 的相似度。
  2. kv = Kp.T @ V关键一步:先算 K 与 V 的乘积,相当于把全馆内容压成一张摘要卡。
  3. out = Qp @ kv每个查询只跟摘要卡做一次乘法,复杂度从 n² 降为 n。
  4. return out / denom[:, None]用累积的 K 映射和做归一化,防止数值漂移。
  5. state = A * state + B * xSSM 的核心递推:旧状态按 A 衰减,当前输入按 B 写入。
  6. ys.append(float(C @ state))从状态中读出当前输出,正是“选择性笔记本”的记账逻辑。

常见误区

误区初学的小白看到“替代 Transformer”就以为新架构把注意力删得干干净净,完全想不通模型怎么知道该关注哪些词。

正解它们抛弃的只是“全对全的两两相似度矩阵”,并没有抛弃“内容感知的加权聚合”。Mamba 用选择性 SSM 让网络从输入中学习如何加权历史;RWKV 用指数衰减加内容调权完成同样的聚合。变化的只是“权重怎么算”,而不是“要不要加权”。

为何常见:Transformer 把权重计算写得很直白(softmax(QK^T)),而 SSM 的加权藏在递推更新里,初学者只看到“没有注意力矩阵”,就误以为没有注意力。

误区既然复杂度是 O(n),那不管序列多短,Mamba、RWKV 都应该秒杀 Transformer。

正解复杂度优势要在 n 远大于 d 时才体现。短序列(比如几十个 token)时,Transformer 高度优化的矩阵乘法内核(FlashAttention、CUDA Graph)可能比朴素扫描更快;线性注意力还额外增加了核函数映射的开销。实际工程中一定要上 benchmark,不能只看渐近复杂度。

为何常见:只比大 O 记号、忽略常数因子和硬件优化程度,是算法理论照进工程现实时最典型的落差。

误区既然状态大小固定、扫描可以无限长,那 Mamba 应该能“过目不忘”,记住整个序列的所有细节。

正解状态维度是固定的(如 16 维),每一时刻都必须把新信息压进这有限的空间,信息论上必有遗忘。选择性机制只是决定了“优先忘掉什么、保留什么”;RetNet 的 γ<1 与 RWKV 的指数衰减更是显式地惩罚远距离信息。想要精确回忆某一句话,还得靠注意力或外部检索。

为何常见:把“能处理任意长度”误解成“能记住任意细节”,忽略了固定容量状态的压缩本质。

面试题

Q1. Transformer 自注意力中,序列长 n、特征维度 d 时,计算复杂度属于哪个量级?

单选题 · easy

  • A.线性量级
  • B.平方量级← 正确答案
  • C.恒定量级
  • D.近线性量级

答案:B。自注意力要计算 n×n 的相似度矩阵并对每个位置聚合所有位置的信息,因此是 O(n²d)(把 d 视为常数时是平方量级)。线性量级是 RNN 或新架构的目标,恒定量级不存在,近线性量级常用于排序算法而非注意力。

Q2. 线性注意力大幅降低复杂度的核心是利用了什么运算技巧?

单选题 · easy

  • A.先算 K 与 V 的乘积← 正确答案
  • B.先算 Q 与 K 的乘积
  • C.丢弃所有 V 的数值
  • D.只保留最后一个词

答案:A。线性注意力利用矩阵乘法结合律,把顺序从 (QK^T)V 改成 Q(K^T V)。先算 K^T V 相当于先做“馆藏摘要卡”,避免显式构造 n×n 矩阵。先算 QK^T 仍是传统注意力的路径,丢弃 V 或只留最后一个词则完全错误。

Q3. Mamba 的“选择性”机制最关键的判断依据是?

单选题 · mid

  • A.输入动态决定状态读写← 正确答案
  • B.输出随机决定参数冻结
  • C.梯度决定网络结构
  • D.标签决定样本筛选

答案:A。Mamba 的选择性是指 SSM 中的 A、B、C 以及步长 Δ 都变成当前输入 x_t 的函数,让模型能根据输入内容动态决定“遗忘什么、记住什么”。输出随机性、梯度剪枝、标签筛选都不属于 Mamba 的设计核心。

Q4. RetNet 训练时采用哪种表示来并行加速?

单选题 · mid

  • A.递归表示法
  • B.并行表示法← 正确答案
  • C.符号表示法
  • D.图论表示法

答案:B。RetNet 提供三种等价表示:并行表示用于训练,形式类似注意力,可以吃满 GPU 并行度;递归表示用于推理,像 RNN 一样逐 token 更新;分块表示是两者的折中。符号与图论表示与 RetNet 无关。

Q5. RWKV 对历史信息的处理方式是?

单选题 · mid

  • A.固定指数衰减← 正确答案
  • B.网络自适应遗忘
  • C.无差别长期保存
  • D.周期性随机重置

答案:A。RWKV 用 e^{-(t-j)w} 给历史信息打分,距离越远衰减越强,且衰减率 w 对每个通道是固定的可学习参数。它不像 Mamba 那样由输入动态调整遗忘策略,因此是“固定指数衰减”。

Q6. 以下哪些架构在推理阶段缓存大小不随序列增长?

多选题 · mid

  • A.标准 Transformer
  • B.Mamba 状态空间← 正确答案
  • C.RetNet 递归模式← 正确答案
  • D.RWKV 隐藏状态← 正确答案

答案:BCD。Mamba、RetNet(递归模式)、RWKV 都维护固定大小的隐藏状态,因此推理缓存恒定。标准 Transformer 的 KV 缓存随序列长度线性增长,这是它长序列推理吃显存的主要原因。

Q7. 线性注意力产生精度损失的主要原因是?

单选题 · hard

  • A.矩阵乘法数值溢出
  • B.核近似难等价softmax← 正确答案
  • C.梯度消失无法学习
  • D.参数过少表达有限

答案:B。softmax 的指数归一化不是简单线性核可以完美拟合的,φ(q)·φ(k) 只是近似 exp(q·k)。近似误差会导致注意力分布被“抹平”,失去尖锐的选择性,从而在指代、翻译等任务上掉点。数值溢出、梯度消失、参数数量都不是线性注意力特有的问题。

Q8. Mamba 在实现时用到了哪些硬件感知优化?

多选题 · hard

  • A.并行扫描更新状态← 正确答案
  • B.内核融合减少访存← 正确答案
  • C.重计算节省显存← 正确答案
  • D.稀疏矩阵近似全连接

答案:ABC。Mamba 训练时用并行扫描(parallel scan)一次算完所有状态,用内核融合把多次小算子合并成一次大算子以减少显存读写,反向传播时通过重计算状态而非保存全部历史来省显存。稀疏矩阵近似全连接是模型剪枝的做法,不是 Mamba 的核心优化。

Q9. 哪种任务场景最适合发挥线性注意力优势?

单选题 · easy

  • A.超长序列流式推理← 正确答案
  • B.十词以内的文本分类
  • C.逐字精确引用原文
  • D.离线短文本批处理

答案:A。线性注意力与 SSM 在“序列极长 + 流式输出”的场景下优势最大,因为计算量随 n 线性增长且缓存恒定。极短文本用 Transformer 更快更准;逐字精确引用恰恰是线性架构的弱项。

Q10. 关于线性架构能否替代 Transformer,下列说法正确的是?

多选题 · extreme

  • A.短文本上Transformer仍占优← 正确答案
  • B.混合架构可兼顾两方优势← 正确答案
  • C.长序列场景线性架构省显存← 正确答案
  • D.完全取代所有任务和生态

答案:ABC。短文本上 Transformer 的硬件优化和成熟生态仍有竞争力;混合架构(如 Jamba)用注意力层做精确保留、SSM 层做高效压缩,是当前主流趋势;长序列场景下线性架构的显存优势已被广泛验证。但“完全取代”过于绝对,新旧架构会长期共存。