一、RMSNorm(均方根归一化)
“均方根”这个名字就是计算顺序:原始数值平方 → 求平均 → 开平方。
以[-5,-5,-5]举例,RMS=,
然后每个原始特征都除以这个尺度:
[-5/5,-5/5,-5/5]=[-1,-1,-1]
二、输入投影
Mamba将数据集的每个位置的特征进行归一化之后对特征做加权组合,生成两条分支:
- 一条进入短因果卷积,随后进入SSM
- 一条经过SiLU,形成输出门控的系数
SiLU的操作是:把一个数,乘以由它自己决定的缩放系数。
,
这里的叫Sigmoid:它是一种固定函数,把输入转换成介于0和1之间的数。PyTorch 2.14 documentation
Sigmoid的数值使用固定公式:
三、SSM
当前的记忆中间状态:新信息写入项
其中
:通过训练确定的负数参数,正常推理时保持固定。
:根据当前输入生成的正数,用来调节这一步的更新。
:最终乘在旧记忆上的保留系数。官方实现
记忆沿序列传递,输出沿时间传递。
SSM不断传递更新后的记忆,第一个位置的信息如果仍保留在其中,就有机会影响后面的位置。“传得远”与“完整保存”是两回事,并不能保存所有细节。
记忆已经在 SSM 内部更新完了,后面的输出门控只调节读出的结果,不会回头撤销那次记忆更新。
分清“参数量”这个概念,参数量是模型中通过训练学到的数值的数量,和SSM的“当前内部记忆大小”不同。
四、实验
引入一个新机制,不能只因为它在语言任务中有效,就默认它在电力、天气等数据上也有效。需要检查数据特点和任务需求,再做对应实验。