RWKV 模型 ========= 切换语言: :doc:`../en/RWKVModel` ``M10`` 是项目中的 RWKV 风格线性递推编码器。 RWKV 带来了什么 +++++++++++++++ RWKV 有意思的地方在于它把两种设计世界混在一起了: - 递归式时间演化; - 类 Transformer 的通道混合。 它相当于提供了一种方法,在保留长序列递推建模能力的同时,又维持较强的逐位置表达能力。 项目实现特点 +++++++++++++++++++++++++++++ - 输入:投影后的 one-hot 序列 - 时间部分:带学习衰减的 time-mixing - 通道部分:逐位置前馈式 channel-mixing - 稳定化:在递推加权路径中加入 log-space 处理 如果写成示意性的递推形式,它的加权 key-value 聚合近似是: .. math:: s_t = \alpha_t \odot s_{t-1} + \beta_t \odot v_t, \qquad y_t = \frac{s_t}{z_t} 其中衰减项控制旧证据保留多少,归一化路径则负责保持递推加权的数值稳定性。 为什么它对 EPI 有意义 +++++++++++++++++++++ 增强子-启动子预测不仅需要 motif 命中,还需要对长距离上下文做累积。RWKV 提供了 一种不同于标准注意力的长程证据聚合方式。 因此 RWKV 很适合表达一种场景:真正有用的信号不是少量尖锐 token 交互,而是很多位置上的 证据在长上下文里逐步累积起来。 优势 +++ - 适合长上下文; - 是与 Mamba 对照的重要现代路线; - 同时带有递归和前馈的混合气质。 计算复杂度与适用范围 +++++++++++++++++++++ - 时间复杂度:沿序列做线性递推,同时在每个位置保留通道混合表达能力。 - 显存特征:长序列下通常优于二次注意力,因为历史是通过递归摘要积累,而不是通过完整两两矩阵保存。 - 适用范围:适合需要在很长上下文里逐步积累证据,而不是主要依赖少量尖锐 token 交互的任务。 局限 +++ - 比 BiLSTM 或标准 Transformer 更不直观; - 数值稳定性实现要求更高。 .. image:: ../img/div.png