更改

添加6字节 、 2025年7月20日 (日) 16:51
第84行: 第84行:  
** 激活函数通常使用 [[ReLU]],公式如下:
 
** 激活函数通常使用 [[ReLU]],公式如下:
 
** x:当前输入向量;
 
** x:当前输入向量;
−
** W1​,W2​:权重矩阵;
+
**<math>W_{1} ,W_{2}  </math>:权重矩阵;
−
** b1​,b2​:偏置项;
+
**<math>b_{1} ,b_{2}  </math>:偏置项;
 
** [[ReLU]]:常用的非线性激活函数。
 
** [[ReLU]]:常用的非线性激活函数。
 
ChannelMix 模块在 RWKV 中承担的是特征变换的职责,它不涉及时间递推,仅作用于当前 token 的维度方向。通过堆叠多个 RWKV Block(包含 TimeMix 和 ChannelMix),模型可以逐步构建复杂的时间和特征层级信息。该模块的设计让 RWKV 能够在保持推理效率的同时,具备强大的特征建模能力。
 
ChannelMix 模块在 RWKV 中承担的是特征变换的职责,它不涉及时间递推,仅作用于当前 token 的维度方向。通过堆叠多个 RWKV Block(包含 TimeMix 和 ChannelMix),模型可以逐步构建复杂的时间和特征层级信息。该模块的设计让 RWKV 能够在保持推理效率的同时,具备强大的特征建模能力。
第93行: 第93行:  
*'''注意力层简化表达'''
 
*'''注意力层简化表达'''
 
*<math>x_{t+1} = \sigma(Rx_t) \cdot \frac{\exp(Kx_t) \cdot (Vx_t) + \exp(W) \cdot a_t}{\exp(Kx_t) + \exp(W) \cdot b_t} </math>
 
*<math>x_{t+1} = \sigma(Rx_t) \cdot \frac{\exp(Kx_t) \cdot (Vx_t) + \exp(W) \cdot a_t}{\exp(Kx_t) + \exp(W) \cdot b_t} </math>
−
*xt<math>x_{t}  </math>​:当前时间步的输入向量;
+
*<math>x_{t}  </math>​:当前时间步的输入向量;
−
*xt+1<math>x_{t+1}  </math>​:下一时间步的输出;
+
*<math>x_{t+1}  </math>​:下一时间步的输出;
 
*R,K,V:分别表示 RWKV 中的 '''Receptance(门控)、Key、Value''' 投影矩阵;
 
*R,K,V:分别表示 RWKV 中的 '''Receptance(门控)、Key、Value''' 投影矩阵;
 
*W:时间衰减常数,是可学习参数,用于模拟历史的指数衰减;
 
*W:时间衰减常数,是可学习参数,用于模拟历史的指数衰减;
−
*at​,bt<math>a_{t} ,b_{t}  </math>​:前一时刻累积的加权值与归一化因子,用于递归地保留历史信息;
+
*<math>a_{t} ,b_{t}  </math>​:前一时刻累积的加权值与归一化因子,用于递归地保留历史信息;
−
*σ(Rxt​)<math>σ(Rx_t​) </math>:Receptance 门控函数,控制信息是否更新,相当于 LSTM 的门结构;
+
*<math>σ(Rx_t​) </math>:Receptance 门控函数,控制信息是否更新,相当于 LSTM 的门结构;
 
*分数部分(分子/分母):模拟了注意力加权求和的效果,只不过是用递推形式累积,而非对整段序列做自注意力计算。
 
*分数部分(分子/分母):模拟了注意力加权求和的效果,只不过是用递推形式累积,而非对整段序列做自注意力计算。
 
这个表达式体现的是 '''RWKV 用递推的方式模拟注意力机制'''。不同于 [[Transformer架构|Transformer]] 的全局注意力(需要对所有 token 做乘积和归一化),RWKV 在每一个时间步只更新当前与历史的加权平均值,用指数衰减模拟注意力分布,极大地提高了推理效率。
 
这个表达式体现的是 '''RWKV 用递推的方式模拟注意力机制'''。不同于 [[Transformer架构|Transformer]] 的全局注意力(需要对所有 token 做乘积和归一化),RWKV 在每一个时间步只更新当前与历史的加权平均值,用指数衰减模拟注意力分布,极大地提高了推理效率。
761

个编辑