---
title: MA-RMSNorm-frasm3.7
canonical_url: "https://www.modelscope.cn/models/dfytensor/MA-RMSNorm-frasm3.7"
md_url: "https://www.modelscope.cn/models/dfytensor/MA-RMSNorm-frasm3.7.md"
repository: dfytensor/MA-RMSNorm-frasm3.7
last_updated: 2026-07-28
license: "MIT License"
pipeline_tag: text-generation
tasks:
  - text-generation
library_name:
  - pytorch
frameworks:
  - Pytorch
language:
  - cn
domain:
  - nlp
downloads: 0
stars: 0
tags:
  - normalization
  - rmsnorm
  - ssm
---

# MA-RMSNorm-frasm3.7

> MA-RMSNorm-frasm3.7 - dfytensor 在 ModelScope 开源的模型。MA-RMSNorm 在 frsmash3.7 上的验证 (30M, minimind)

dfytensor/MA-RMSNorm-frasm3.7 是 ModelScope 魔搭社区上的text-generation模型，采用 MIT License 许可。

- **Repository**: dfytensor/MA-RMSNorm-frasm3.7
- **License**: MIT License
- **Tasks**: text-generation
- **Tags**: normalization, rmsnorm, ssm
- **Downloads**: 0
- **Stars**: 0
- **Last updated**: 2026-07-28

Source: https://www.modelscope.cn/models/dfytensor/MA-RMSNorm-frasm3.7

---

# MA-RMSNorm 在 frsmash3.7 上的验证 (30M, minimind)

> **对照实验**:在真实架构 (frsmash3.7 多槽 SSM) + 真实数据 (minimind 三问过滤) + 30M 规模上,
> 把标准 **RMSNorm** 替换为 **MA-RMSNorm (Magnitude-Aware RMSNorm)**,证明其达到(且优于)同等能力。

源自 [MA-RMSNorm 论文](https://github.com/...) 的方法,原论文仅在 NumPy 玩具模型+合成数据上验证;
本仓库在**生产级 SSM 架构 + 真实中文语料**上完成严格对照。

## 方法

```
标准 RMSNorm:   y = (x / RMS(x)) * γ
MA-RMSNorm:     y = (x / RMS(x)) * γ * s + α * log(RMS(x)) * W
```
- `s = 2.0`:主路幅度放大
- `α = 0.1`:幅值注入强度
- `W`:可学习 per-dim 权重(D 参数/归一化点),把标准 RMSNorm **丢弃的幅度信息**经 `log(σ)` 注回

## 核心结论

同架构 (H=320 L=6 heads=8 = 31.8M)、同数据 (minimind)、同种子 (42)、同超参,**唯一变量是归一化**:

| 阶段 | RMSNorm | MA-RMSNorm | Δ |
| :-- | --: | --: | --: |
| 预训练 (120k, 3ep) | 3.6934 | **3.5116** | **−4.92%** |
| SFT (指令对话, 2ep) | 2.9906 | **2.8534** | **−4.59%** |

**MA-RMSNorm 在预训练与 SFT 两个阶段 loss 均比 RMSNorm 低约 4.6%**——验证有效(且优于)。
全程 MA 持续领先(非末尾偶然波动)。代价:每 step 慢 ~22%(额外 log/乘法),但收敛 loss 更低。

## 仓库结构

```
MA-RMSNorm-frasm3.7/
├── model.py              # frsmash3.7 + MARMSNorm 类 + _norm() 工厂 (NORM_TYPE 切换)
├── train_ma.py           # 预训练对照 (--norm rms/ma)
├── train_sft.py          # SFT 对照 (--norm rms/ma)
├── run_compare.py        # 预训练对照 runner (顺序跑 rms+ma, 对比)
├── run_sft_compare.py    # SFT 对照 runner
├── checkpoints/          # 4 个权重 (LFS)
│   ├── frsm37_30m_rms_final.pth       # RMSNorm 预训练
│   ├── frsm37_30m_ma_final.pth        # MA-RMSNorm 预训练
│   ├── frsm37_30m_rms_sft_final.pth   # RMSNorm SFT
│   └── frsm37_30m_ma_sft_final.pth    # MA-RMSNorm SFT
└── README.md
```

## 复现

**环境**:`F:\rwkv\.venv` (torch 2.13+cu126, fla, triton, jieba) + OpenASHVoc 词表。
Windows 需 `PYTHONUTF8=1`(脚本已内置)。

```bash
# 预训练对照 (各 ~35min on 4090)
python run_compare.py          # 顺序训 rms + ma, 输出 final_loss 对比

# SFT 对照 (各 ~70min, 需先有预训练 ckpt)
python run_sft_compare.py
```

**数据**(不随仓库分发):复用 `frsmash3.7` 项目的 minimind 三问过滤数据:
- 预训练:`pretrain_filtered.jsonl`
- SFT:`sft_filtered.jsonl`
- 词表:`open_ash_voc_agent.json` (OpenASHVoc)

## 配置

```python
HIDDEN=320, LAYERS=6, HEADS=8   # 31.8M (~30M)
VS=23006 (OpenASHVoc)
SEQ_pretrain=512, SEQ_sft=768
norm_type: 'rms' (nn.RMSNorm) 或 'ma' (MARMSNorm, s=2.0, α=0.1)
```

MA-RMSNorm 仅在每个归一化点多 `mag_w[D]` 参数(全模型 +~7k 参数,可忽略),其余完全一致。

## 诚实 caveat

- **单种子**(seed=42):4.6% + 两阶段一致已显著;严谨论文可加 3-5 种子取均值±方差。
- MA 每 step 慢 ~22%(log/乘法开销),换取更低收敛 loss。
- 仅 30M 规模验证;更大规模的行为待后续。

## 引用

- frsmash3.7 架构: [github.com/dfytensor/frsmash3.7](https://github.com/dfytensor/frsmash3.7)
- MA-RMSNorm 方法: "MA-RMSNorm: Breaking the Scale-For-Intelligence Trade-off"
- 数据/词表: minimind + OpenASHVoc
