想象一个课堂上的知识传递过程。传统Transformer像一位“过度谨慎”的老师:每讲一个新知识点,都要翻遍全班每一位同学从开学至今的所有笔记,重新读一遍,然后才决定怎么写板书。这种“全班重读”的模式确实能捕捉到最细微的联系,但班级人数每增加一点,纸张和时间就爆炸式增长。而RWKV像一位使用“黑板浓缩法”的老师:手里永远只有一块固定大小的黑板,每来一条新信息,就把旧黑板上的内容按时间衰减后擦掉一部分,再写上新要点;新同学只需要抬头读黑板,不用翻旧账。这样,推理时内存恒定,速度线性;训练时,黑板更新规则又足够规整,可以让所有同学按同一套模板并行批改。RWKV(Receptance Weighted Key Value)正是把RNN的线性推理和Transformer的并行训练“嫁接”在一起的新型架构,成为Transformer之外的一条复兴之路。

岗位关联

学会RWKV,你就能在长文本、端侧部署和高并发推理场景中多一张“省内存、降延迟”的王牌,不再只有Transformer一个选项。

目录
  1. 可视化演示
  2. 架构缘起
  3. 系统全景
  4. WKV状态
  5. 时间混合
  6. 通道混合
  7. 并行训练
  8. 推理优势
  9. 权衡取舍
  10. AI 应用场景
  11. Python 演示
  12. 常见误区
  13. 面试题

可视化演示

展示RWKV时间混合的指数衰减记忆机制,以及并行训练与线性推理的效率对比。

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

RWKV时间混合机制 时间混合:指数衰减加权融合历史信息 衰减系数w控制记忆保留程度 替代自注意力,推理时O(1)内存 wkv = Σ e^(-(t-i)w) * k_i * v_i 时间混合实现选择性历史融合

架构缘起

让我们回到那间教室。Transformer老师每次写板书都要“翻全班旧作文”,当班级人数从20变成40,他要做的工作不是翻一倍,而是翻四倍——因为每个学生都要和所有其他学生两两比较,这就是二次方增长的代价。另一边,RNN老师只拿小本子按顺序记,读起来很快,但记到后面就把前面忘了,而且全班只能一个一个排队交作业,训练慢得让人着急。

RWKV的诞生,正是想同时拿到两个老师的好处:像RNN一样推理时只读一块黑板,又像Transformer一样训练时全班并行。它没有发明全新的架构魔法,而是把Transformer里最昂贵、最消耗内存的自注意力模块,替换成两个更“朴素”的模块:时间混合和通道混合。

传统Transformer的自注意力可以写成下面的公式:

RWKV老师不翻旧账,他把所有历史信息浓缩成一块“黑板状态”。黑板虽然小,但更新规则很聪明,既能保留顺序感,又能在训练时算得快。这,就是“RNN的Transformer式复兴”的第一块基石。

Attention(Q,K,V)=softmax(QK⊤dk)V\text{Attention}(Q,K,V)=\text{softmax}\left(\frac{QK^\top}{\sqrt{d_k}}\right)V
这个公式意味着每个token都要与全部token计算相似度,所以序列一长,计算量和内存都会平方级上涨。
  1. query与key相关度Q代表“我想找什么”,K代表“我有什么”,两者点积得到每个位置间的关系强度。
    QK⊤QK^\top
  2. 缩放与归一化除以√d_k防止点积过大,再经过softmax变成一组总和为1的权重。
    softmax(QK⊤dk)\text{softmax}\left(\frac{QK^\top}{\sqrt{d_k}}\right)
  3. 加权求和用归一化后的权重对所有V做加权平均,输出最终结果。
    softmax(QK⊤dk)V\text{softmax}\left(\frac{QK^\top}{\sqrt{d_k}}\right)V

系统全景

黑板教学法有一套固定流程:新同学先把手上的便签和上一张旧便签“叠影”一下,感受时间先后;然后把要点写进黑板,让全班共享;最后按科目分栏整理,方便不同同学各取所需。RWKV的架构也按这个流程组装起来,形成四个核心部件。

这四个部件分别是:输入嵌入、时间混合、通道混合和输出头。输入嵌入把词变成向量;时间混合负责跨时间步传递信息;通道混合负责在同一时刻做特征变换;输出头把最终向量映射成下一个词的概率。前两个部件组合起来替代了Transformer自注意力,后两个部件替代了Transformer的前馈网络(FFN)。

整个前向过程可以写作下面的流程:

RWKV把“自注意力”这块昂贵的拼图拆掉,换成了两块更轻巧的积木:TimeMix负责班级内部的信息共享,ChannelMix负责把知识整理成不同科目。整条流水线既保留了Transformer堆叠层的熟悉结构,又悄悄把内存陷阱填平了。

xt′=TimeMix(xt),xt′′=ChannelMix(xt′),yt=Head(xt′′)x_t^{\prime}=\text{TimeMix}(x_t), \quad x_t^{\prime\prime}=\text{ChannelMix}(x_t^{\prime}), \quad y_t=\text{Head}(x_t^{\prime\prime})
这就像一个流水线:先处理“时间顺序”,再处理“特征深度”,最后输出答案。
  1. 时间混合第t个token先经过TimeMix,把当前信息和前一时刻的信息融合。
    xt′=TimeMix(xt)x_t^{\prime}=\text{TimeMix}(x_t)
  2. 通道混合融合后的向量再过ChannelMix,在每一层内部做非线性特征变换。
    xt′′=ChannelMix(xt′)x_t^{\prime\prime}=\text{ChannelMix}(x_t^{\prime})
  3. 输出头最后通过线性层与Softmax得到词表上的分布,预测下一个token。
    yt=Head(xt′′)y_t=\text{Head}(x_t^{\prime\prime})

WKV状态

那块黑板并不只是一块白板,而是写满了“加权总分”。越久远的笔记,字迹会随时间指数褪色;而今天刚写的内容,老师会用红笔额外加粗。RWKV的核心状态就叫WKV(Weighted Key Value),它维护着一个由历史Key和Value加权得到的动态记忆。

WKV可以被理解为一种“线性注意力”。传统注意力用softmax让所有历史token争抢权重,WKV则给每个历史位置一个固定的指数衰减权重,距离当前越近权重越大。这个衰减速度由一个可学习的向量w控制,而且每个通道都有自己独立的衰减快慢,就好像黑板上的不同科目褪色速度不一样。

WKV的经典计算公式如下:

如果把Transformer比作“全班重读所有作文”,WKV就是在黑板上保留一份“滚动总结”:每来一条新笔记,旧内容按时间褪色,新内容被红笔加粗,最后归一化得到当前最合理的知识状态。它不是没有回忆,而是把回忆压缩进了一块固定大小的黑板。

wkvt=∑i=1t−1e−(t−1−i)w+kivi+eu+ktvt∑i=1t−1e−(t−1−i)w+ki+eu+kt\text{wkv}_t=\frac{\sum_{i=1}^{t-1} e^{-(t-1-i)w+k_i}v_i+e^{u+k_t}v_t}{\sum_{i=1}^{t-1} e^{-(t-1-i)w+k_i}+e^{u+k_t}}
分子是历史信息和当前信息按衰减权重累加后的“内容”,分母是所有权重的总和,整体类似一个带遗忘机制的加权平均。
  1. 历史分子项第i个历史token的贡献等于e^{k_i}v_i再乘以距离衰减e^{-(t-1-i)w},距离越远权重越小。
    ∑i=1t−1e−(t−1−i)w+kivi\sum_{i=1}^{t-1} e^{-(t-1-i)w+k_i}v_i
  2. 当前项增强当前token额外引入可学习偏置u,让自己在黑板上的权重高于普通历史。
    eu+ktvte^{u+k_t}v_t
  3. 分母归一化把所有分子对应的标量权重(去掉v)相加,使整体成为一个可解释的加权平均。
    ∑i=1t−1e−(t−1−i)w+ki+eu+kt\sum_{i=1}^{t-1} e^{-(t-1-i)w+k_i}+e^{u+k_t}

时间混合

新同学想理解“今天讲的微分方程”,至少得先看一眼昨天讲的“极限”。如果完全没有历史信息,每个词都像失忆一样孤立。RWKV的时间混合模块用一个叫Token Shift的小技巧,让每个token先和上一个token做一次“叠影”,再进入后续计算。

具体做法是:把x_t和x_{t-1}按一定比例线性插值,然后将结果分别投影成r和k。r叫Receptance,可以理解为“黑板是否打开门接收新知识”;k叫Key,是要写入黑板的关键词。通过这种“叠影”,模型不需要额外绝对位置编码,就能感知谁先谁后。

公式可以写成两路并行计算:

时间混合像是给黑板加了一道“时间标签”:每一笔新字都带着上一笔的淡淡墨迹,因此顺序信息自然渗入。正因为这个简单的“叠影”,RWKV不再需要Transformer那种复杂的位置编码,也能知道谁先谁后。

rt=Wr⋅(μrxt+(1−μr)xt−1),kt=Wk⋅(μkxt+(1−μk)xt−1)r_t = W_r \cdot \left(\mu_r x_t + (1-\mu_r)x_{t-1}\right), \quad k_t = W_k \cdot \left(\mu_k x_t + (1-\mu_k)x_{t-1}\right)
这个公式不是简单复制历史,而是让当前词和历史词做一次平滑混合,像把两张幻灯片叠在一起看。
  1. r的线性插值用μ_r控制当前信息与上一步信息的混合比例,生成receptance门控。
    μrxt+(1−μr)xt−1\mu_r x_t + (1-\mu_r)x_{t-1}
  2. k的线性插值Key也做同样的混合,让写入黑板的“关键词”带上前一步的上下文。
    μkxt+(1−μk)xt−1\mu_k x_t + (1-\mu_k)x_{t-1}
  3. 矩阵投影混合后的向量分别乘上可学习权重W_r和W_k,得到最终的门控与Key。
    Wr,WkW_r, W_k

通道混合

黑板上的信息不能只按时间堆叠,还要按科目分栏。数学公式不要混到语文古诗里,这一步叫通道混合。它负责在同一个时间位置上,把向量的不同特征通道进行非线性重组,相当于Transformer里的前馈网络。

通道混合的做法和传统FFN类似,但激活函数更有特点:它使用平方ReLU代替普通ReLU,并用sigmoid门控控制信息流量。平方ReLU会把正特征放大得更剧烈,同时把负特征压成零,让模型学会“哪些科目要重点记,哪些科目直接擦掉”。

通道混合的公式如下:

如果把时间混合比作“按时间顺序更新黑板”,通道混合就是“按科目维度整理黑板”。两者各司其职,共同替代了自注意力与FFN,让RWKV在每一层都能高效地“读黑板、做笔记、分栏存放”。

ot=σ(rt)⊙Wv⋅max⁡(kt,0)2o_t = \sigma(r_t) \odot W_v \cdot \max(k_t, 0)^2
这里max(k_t,0)^2是平方ReLU,σ(r_t)是0到1之间的开关,两者相乘决定最终保留什么特征。
  1. 平方ReLU对Key特征取max(0, k_t)后平方,放大显著特征并引入非线性。
    max⁡(kt,0)2\max(k_t, 0)^2
  2. sigmoid门控把r_t映射到0到1之间,相当于按通道决定“放行”还是“阻断”。
    σ(rt)\sigma(r_t)
  3. 逐通道相乘门控与变换后的value逐元素相乘,按科目分栏整理信息。
    σ(rt)⊙Wv⋅max⁡(kt,0)2\sigma(r_t) \odot W_v \cdot \max(k_t, 0)^2

并行训练

黑板更新看似是串行的——新内容必须等旧内容写完才能写。但RWKV发现,黑板的状态本质上是一个“累加器”:分子S不断累加历史Key-Value对的贡献,分母C不断累加历史权重。累加器这类运算,恰恰可以用前缀和算法让所有位置同时计算。

这意味着训练时,RWKV不需要像普通RNN那样一个时间步一个时间步地跑。它可以把整个序列的K、V一次性算出来,再用前缀和(或分块扫描)得到所有位置的S和C,最后一起得到输出。这就是“Transformer式并行训练”的核心秘密。

状态递推可以写成:

RWKV把“必须排队写黑板”改成了“全班先用公式算好自己那份,再合并累加结果”。这种改写,让训练时GPU可以被充分榨干,而推理时又恢复到只需更新两个小状态变量的RNN形态。

at=ekt,St=St−1+atvt,Ct=Ct−1+ata_t = e^{k_t}, \quad S_t = S_{t-1} + a_t v_t, \quad C_t = C_{t-1} + a_t
分子S和分母C都是一维或二维的固定状态,它们的前缀和形式天然支持GPU并行扫描。
  1. 指数化权重令a_t为Key的指数,作为本次写入黑板的权重。
    at=ekta_t = e^{k_t}
  2. 分子累积S不断累加“权重乘Value”的贡献,保存历史内容。
    St=St−1+atvtS_t = S_{t-1} + a_t v_t
  3. 分母累积C累加所有历史权重,用于最后归一化。
    Ct=Ct−1+atC_t = C_{t-1} + a_t
  4. 前缀和并行cumsum(a_t v_t)和cumsum(a_t)都可以用二分扫描并行得到。
    prefix-sum(atvt),prefix-sum(at)\text{prefix-sum}(a_t v_t), \quad \text{prefix-sum}(a_t)

推理优势

推理阶段,黑板教学法的优势终于彻底爆发:从第一个词到最后第十万个词,老师只需要同一块黑板和一支粉笔。不需要把全班所有历史作文堆在桌上,更不需要为每一个新词重新翻一遍旧账。

RWKV推理时,内存只取决于模型自身维度,和输入长度无关。不管生成100个token还是一万个token,固定状态S和C的大小不变。同时每生成一个新token,只需要做常数次矩阵运算,总时间随序列长度线性增加,而不是平方增加。

用复杂度公式表达就是:

传统Transformer的KV缓存会随对话轮数越积越大,就像老师把全班旧作文越堆越高。RWKV则永远只带一块黑板,无论聊多久,桌面依然整洁。这也是它常被用于机器人、手机助手等资源受限场景的原因。

M推理=O(1),T推理=O(T)M_{\text{推理}}=O(1), \quad T_{\text{推理}}=O(T)
内存恒定、时间线性,这让长文本、流式输出和端侧部署都变得非常友好。
  1. 恒定内存推理时只需要维护状态S和C,它们的大小与序列长度T无关。
    M推理=O(1)M_{\text{推理}}=O(1)
  2. 线性时间每生成一个token更新一次状态,生成T个token共执行O(T)次操作。
    T推理=O(T)T_{\text{推理}}=O(T)

权衡取舍

黑板字迹会随时间褪色,这是RWKV最明显的代价。WKV中的衰减因子e^{-dw}意味着,当两个token的距离d很大时,历史贡献趋近于零。因此对于需要精确“翻几十万年前旧账”的超长程任务,RWKV不如完整的全局注意力。

不过,这个“遗忘”并非缺陷,而是一种工程取舍。相比Transformer的精确全量检索,RWKV更像人类记忆:近事清晰,远事模糊。它用可控的衰减换来了恒定内存和线性推理,在大多数实际场景中,这种平衡点是可以接受的。

数学上这个衰减极限可以写成:

RWKV的启示不是“替代Transformer”,而是提供一条“效率优先”的路线。如今许多混合架构开始把RWKV等线性注意力与局部注意力结合,既要黑板的省事,又要档案室的精确。未来的大模型,可能既不是纯Transformer,也不是纯RNN,而是一块会分区、会褪色、也会被红笔加粗的智能黑板。

lim⁡d→∞e−dw=0\lim_{d \to \infty} e^{-dw} = 0
当衰减系数w大于0时,距离d越远,历史影响越小;这相当于黑板上的字迹被无限稀释。
  1. 距离衰减因子两个token之间的历史距离为d,记忆强度按指数形式衰减。
    e−dwe^{-dw}
  2. 极限分析固定w>0,当d趋向无穷时,记忆强度收敛到0。
    lim⁡d→∞e−dw=0\lim_{d \to \infty} e^{-dw} = 0

AI 应用场景

长对话客服系统

阶段:模型推理与在线部署

解决的问题:传统Transformer在长对话中需要缓存完整的KV矩阵,对话轮数越多,显存占用越大,服务端容易OOM。RWKV把历史压缩成固定状态,无论对话多长,单次请求的内存占用几乎不变,让客服机器人可以稳定运行数十轮对话。

具体案例:某电商智能客服每天处理百万级用户咨询,采用RWKV后,单卡并发数提升数倍,长会话不再因为上下文超长而被迫截断。

端侧离线助手

阶段:模型压缩与边缘部署

解决的问题:手机、耳机、车载设备内存极小,无法容纳Transformer不断增长的KV缓存。RWKV推理内存O(1),适合量化后部署到端侧,实现完全离线运行。

具体案例:一款录音笔应用内置RWKV模型,用户说完一段长语音后,无需连接云端即可本地生成摘要,隐私性和响应速度都得到保障。

高并发流式生成

阶段:在线推理服务

解决的问题:AI写作助手需要逐token返回内容,传统Transformer每生成一个token都要携带全部历史KV缓存,高并发下显存压力极大。RWKV的恒定状态让每个请求占用的资源更少,从而支持更多并发连接。

具体案例:某在线文档工具集成RWKV续写功能,用户每输入一个句子,模型实时流式补全,首token延迟降低约40%,服务成本明显下降。

Python 演示

python65 行
import numpy as np def sigmoid(x):    return 1.0 / (1.0 + np.exp(-x)) class TinyRWKV:    def __init__(self, dim):        self.dim = dim        self.wk = np.eye(dim) * 0.5        self.wv = np.eye(dim) * 0.5        self.wr = np.eye(dim) * 0.1        self.u = np.ones(dim) * 1.0        self.state_s = np.zeros(dim)        self.state_c = np.zeros(dim)     def reset(self):        self.state_s = np.zeros(self.dim)        self.state_c = np.zeros(self.dim)     def step(self, x_t, x_prev):        shift = 0.7 * x_t + 0.3 * x_prev        k = self.wk @ shift        v = self.wv @ shift        r = sigmoid(self.wr @ shift)        a = np.exp(k)        u_a = a * np.exp(self.u)        wkv = (self.state_s + u_a * v) / (self.state_c + u_a)        self.state_s = self.state_s + a * v        self.state_c = self.state_c + a        return r * wkv     def forward_parallel(self, xs):        shift = np.empty_like(xs)        shift[0] = xs[0]        shift[1:] = 0.7 * xs[1:] + 0.3 * xs[:-1]        k = shift @ self.wk        v = shift @ self.wv        r = sigmoid(shift @ self.wr)        a = np.exp(k)        u_a = a * np.exp(self.u)        cum_s = np.cumsum(a * v, axis=0)        cum_c = np.cumsum(a, axis=0)        s_prev = np.vstack([np.zeros((1, self.dim)), cum_s[:-1]])        c_prev = np.vstack([np.zeros((1, self.dim)), cum_c[:-1]])        wkv = (s_prev + u_a * v) / (c_prev + u_a)        return r * wkv     def check_consistency(self, xs):        self.reset()        loop_out = []        prev = np.zeros(self.dim)        for x in xs:            loop_out.append(self.step(x, prev))            prev = x        self.reset()        return np.stack(loop_out), self.forward_parallel(xs) if __name__ == "__main__":    rng = np.random.default_rng(0)    model = TinyRWKV(8)    xs = rng.normal(size=(5, 8))    loop_out, parallel_out = model.check_consistency(xs)    print("loop output shape:", loop_out.shape)    print("parallel output shape:", parallel_out.shape)    print("outputs consistent:", np.allclose(loop_out, parallel_out, atol=1e-6))
目的:这是一个迷你RWKV实现,用同一个WKV状态同时展示RNN式顺序推理和前缀和式并行训练,并验证两种模式输出一致。
  1. shift = 0.7 * x_t + 0.3 * x_prev模拟Token Shift,把当前词与上一个词混合,注入顺序信息。
  2. a = np.exp(k)把Key变成正数权重,作为写入黑板的强度。
  3. wkv = (self.state_s + u_a * v) / (self.state_c + u_a)用分子和分母的比值得到加权平均后的黑板内容。
  4. self.state_s = self.state_s + a * v更新分子状态,累加历史Key-Value贡献。
  5. self.state_c = self.state_c + a更新分母状态,累加历史权重,保证归一化。
  6. shift[1:] = 0.7 * xs[1:] + 0.3 * xs[:-1]并行版本一次性算出所有位置的Token Shift。
  7. np.cumsum(a * v, axis=0)用前缀和一次算出所有时刻的分子状态,这就是RWKV能并行训练的根基。
  8. np.allclose(loop_out, parallel_out)验证顺序推理和并行计算的输出完全一致。

常见误区

误区大家都说RNN只能一个一个时间步跑,那RWKV既然是RNN,训练时肯定也快不起来,GPU优势完全发挥不了。

正解RWKV虽然推理是RNN式递推,但它的状态更新可以被改写成前缀和形式。分子S和分母C都是累加操作,训练时可以通过分块扫描算法在GPU上并行计算,因此训练效率可以和Transformer相提并论。

为何常见:人们习惯把“RNN”和“顺序训练”绑定在一起,忽略了RWKV的数学结构是线性递归的、可并行化的特殊情况。

误区RWKV只保留固定状态,那它应该只能看到最近几个词,和滑动窗口模型差不多,长距离信息全丢了。

正解RWKV的WKV是全部历史token的加权和,只是权重随距离指数衰减。它确实不擅长极端长距离,但依然具备全局记忆能力,只是把完整KV缓存压缩成了定长向量。

为何常见:人们容易把“内存恒定”误解成“信息量恒定”,忽略了固定向量中可以通过精心学习压缩大量历史信息。

误区既然所有历史都用同一个衰减速度,那模型对“动词很远的主语”和“很久之前的标点符号”一视同仁,记忆方式太粗糙。

正解RWKV中的w并不是单一标量,而是与隐藏层维度相同的向量,每个通道有自己独立的遗忘速度。有的通道记得久,有的通道忘得快,这让模型可以分层保存不同类型的信息。

为何常见:很多简化教程为了好写公式,只用标量w举例,导致读者误以为所有特征共享同一个衰减系数。

误区既然时间混合里有Token Shift,那RWKV应该完全不需要任何位置编码,甚至比Transformer还省事。

正解Token Shift只提供了局部的一阶顺序信息,WKV的指数衰减进一步提供了相对距离信息,但绝对位置感仍然较弱。因此RWKV并不是“完全不需要位置机制”,而是把位置信息从显式编码变成了隐式的混合与衰减。

为何常见:看到“不用位置编码”的宣传后,人们容易忘记位置感知仍然存在,只是换了种更轻量的实现方式。

误区既然RWKV内存恒定又训练快,那直接用RWKV替换所有Transformer模型,准确率应该也不会差。

正解RWKV用可控的记忆衰减换取了效率优势,在超长程精确检索、复杂推理等任务上仍可能弱于全局注意力。很多实际系统会采用RWKV与局部注意力的混合架构,而不是一方完全替代另一方。

为何常见:人们容易用单一指标(速度、内存)评判模型,忽略了“精确记忆”这种软能力无法用复杂度公式衡量。

面试题

Q1. RWKV推理过程本质上属于哪类模型范式?

单选题 · easy

  • A.RNN式递推← 正确答案
  • B.CNN式卷积
  • C.概率图模型
  • D.符号规则系统

答案:A。RWKV推理时通过固定状态S和C逐步更新,每步只依赖上一步状态,这正是RNN的递推范式。CNN擅长局部窗口卷积,概率图模型侧重于变量依赖图,符号规则系统则无关神经网络特性。

Q2. RWKV用哪两个模块替代传统自注意力?

单选题 · easy

  • A.时间混合与通道混合← 正确答案
  • B.卷积与池化
  • C.残差与归一化
  • D.词嵌入与采样

答案:A。时间混合负责沿时间维度传递信息,通道混合负责同一位置的通道特征融合,两者组合替代了自注意力。卷积与池化是CNN的传统组件,残差与归一化是通用训练技巧,词嵌入与采样不涉及注意力替代。

Q3. 序列长度增长时,RWKV推理内存复杂度是?

单选题 · easy

  • A.O(1)恒定← 正确答案
  • B.O(T)线性
  • C.O(T^2)平方
  • D.O(log T)对数

答案:A。RWKV推理时只保存固定大小的S和C状态,不随序列长度T增长,因此内存为O(1)。O(T)是时间复杂度,O(T^2)是Transformer注意力的典型复杂度,O(log T)不符合状态更新机制。

Q4. Token Shift的线性插值主要作用是什么?

单选题 · mid

  • A.将当前词与前一时刻信息混合← 正确答案
  • B.随机丢弃历史信息
  • C.增加模型参数量
  • D.将词表映射到向量空间

答案:A。Token Shift对x_t和x_{t-1}做加权混合,让当前词带上相邻词的信息,从而感知先后顺序。它不是随机丢弃,也不是单纯加参数,词表映射是输入嵌入层的工作。

Q5. WKV中可学习衰减向量w控制什么?

单选题 · mid

  • A.不同通道的历史遗忘速度← 正确答案
  • B.词表大小
  • C.注意力头数
  • D.学习率大小

答案:A。w的每个维度对应一个通道,决定该通道历史token权重随距离衰减的快慢。词表大小由分词器决定,注意力头数属于Transformer配置,学习率是优化器超参数,都与RWKV的记忆衰减无关。

Q6. RWKV训练时为什么能并行?

单选题 · mid

  • A.WKV累加可写成前缀和← 正确答案
  • B.完全取消序列依赖
  • C.使用图神经网络
  • D.依赖卷积核平移

答案:A。RWKV的分子和分母状态都是累加形式,可以用前缀和或分块扫描并行计算。它并没有完全取消序列依赖,只是把依赖关系转成了可并行扫描的形式,与图网络、卷积无关。

Q7. RWKV固定状态带来哪些好处?

多选题 · mid

  • A.推理内存不随长度增长← 正确答案
  • B.支持流式逐token生成← 正确答案
  • C.训练复杂度变成三次方
  • D.更利于边缘设备部署← 正确答案

答案:ABD。固定状态让推理内存恒定,且每步只更新小状态,天然支持流式输出,也适合内存受限的边缘设备。训练复杂度不会因此变成三次方,RWKV训练复杂度主要由矩阵乘法和前缀和决定,C选项错误。

Q8. 在RWKV通道混合中,平方ReLU的角色是什么?

单选题 · hard

  • A.过滤非负特征并放大强度← 正确答案
  • B.将特征二值化
  • C.代替softmax归一化
  • D.压缩隐藏状态维度

答案:A。max(k_t,0)^2会把负特征置零,同时对正特征做平方放大,强化显著信号。它不是二值化,不做softmax归一化,也不会改变向量维度。

Q9. 当历史距离d增大时,WKV历史项的衰减因子趋向于?

单选题 · hard

  • A.趋于0并逐渐消失← 正确答案
  • B.趋于1并完全保留
  • C.趋于无穷大并爆炸
  • D.保持常数不变

答案:A。衰减项为e^{-dw},当w>0且d不断增大时,指数趋向0,说明久远历史对当前状态的贡献越来越弱。这个特性保证了状态稳定,不会因为历史积累而爆炸。

Q10. 与标准Transformer相比,RWKV的取舍包括哪些?

多选题 · extreme

  • A.长程依赖能力因衰减受限← 正确答案
  • B.训练时完全无法并行计算
  • C.推理时无需完整KV缓存← 正确答案
  • D.准确率一定超过Transformer

答案:AC。RWKV的记忆会随距离指数衰减,因此超长程精确检索能力受限;推理时只保留固定状态,不需要完整KV缓存。RWKV训练仍可并行,准确率也与任务、数据规模和调参密切相关,不能断言一定超过Transformer。