更改

删除19字节 、 2025年6月8日 (日) 21:22
第63行: 第63行:  
</syntaxhighlight>
 
</syntaxhighlight>
 
** xk​:用于 Key;
 
** xk​:用于 Key;
−
   
** xv​:用于 Value;
 
** xv​:用于 Value;
−
   
** xr​:用于 Receptance(门控);
 
** xr​:用于 Receptance(门控);
−
   
** <code>time_decay</code> 是一个可学习的参数,用于控制历史信息的衰减;
 
** <code>time_decay</code> 是一个可学习的参数,用于控制历史信息的衰减;
−
   
** <code>time_mix_k</code> 是控制当前和前一个 token 特征混合比例的系数(同样是可学习的);
 
** <code>time_mix_k</code> 是控制当前和前一个 token 特征混合比例的系数(同样是可学习的);
−
   
** <code>x_k_prev</code> 表示前一个 token 的特征;
 
** <code>x_k_prev</code> 表示前一个 token 的特征;
−
   
** <code>k</code> 是融合后的 Key 值,用于参与后续注意力(递推)计算。
 
** <code>k</code> 是融合后的 Key 值,用于参与后续注意力(递推)计算。
   第90行: 第84行:  
** 激活函数通常使用 ReLU,公式如下:
 
** 激活函数通常使用 ReLU,公式如下:
 
<math>\mathrm{output} = \mathrm{ReLU}(W_1 \times x + b_1) \times W_2 + b_2</math>
 
<math>\mathrm{output} = \mathrm{ReLU}(W_1 \times x + b_1) \times W_2 + b_2</math>
−
   
** x:当前输入向量;
 
** x:当前输入向量;
−
   
** W1​,W2​:权重矩阵;
 
** W1​,W2​:权重矩阵;
−
   
** b1​,b2​:偏置项;
 
** b1​,b2​:偏置项;
−
   
** ReLU:常用的非线性激活函数。
 
** ReLU:常用的非线性激活函数。
   第107行: 第97行:     
<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​:当前时间步的输入向量;
 
**xt​:当前时间步的输入向量;
−
   
**xt+1​:下一时间步的输出;
 
**xt+1​:下一时间步的输出;
−
 
+
**R,K,V:分别表示 RWKV 中的 '''Receptance(门控)、Key、Value''' 投影矩阵;
−
****R,K,V:分别表示 RWKV 中的 '''Receptance(门控)、Key、Value''' 投影矩阵;
  −
 
   
**W:时间衰减常数,是可学习参数,用于模拟历史的指数衰减;
 
**W:时间衰减常数,是可学习参数,用于模拟历史的指数衰减;
−
   
**at​,bt​:前一时刻累积的加权值与归一化因子,用于递归地保留历史信息;
 
**at​,bt​:前一时刻累积的加权值与归一化因子,用于递归地保留历史信息;
−
   
**σ(Rxt​):Receptance 门控函数,控制信息是否更新,相当于 LSTM 的门结构;
 
**σ(Rxt​):Receptance 门控函数,控制信息是否更新,相当于 LSTM 的门结构;
−
   
**分数部分(分子/分母):模拟了注意力加权求和的效果,只不过是用递推形式累积,而非对整段序列做自注意力计算。
 
**分数部分(分子/分母):模拟了注意力加权求和的效果,只不过是用递推形式累积,而非对整段序列做自注意力计算。
  
201

个编辑