FRSMASH 全维度消融实验报告

实验设计

核心假设:记忆与逻辑是两个独立可调的维度

复制代码
记忆能力 ← d_model(状态向量宽度), 越宽记住越多历史
逻辑能力 ← OpenASH 层数(L), 越深推理链越长
Fast 层   ← 替代 OpenASH 的轻量线性递推(快但逻辑弱)

实验矩阵(5组 × 20项, 每组 3000 步 ~110M tokens)

实验组 固定 变量 验证问题
A. 逻辑轴 H=512, NS=1 L=2,4,6,8 层数增加,loss 下降多少?
B. 记忆轴 L=4, NS=1 H=256,384,512,640 d_model 增大,loss 下降多少?
C. 组件消融 H=512 完整/去OpenASH/去Slow 哪个组件贡献更大?
D. 快慢比 d=512(HybridFRSM) 3F+1S/2F+2S/1F+1S/0F+1S 快慢最优比例?
E. 混合比 H=512,L=4(FRSMASH) 4F/3F+1A/2F+2A/1F+3A/0F+4A Fast 替代 OpenASH 掉多少 loss?

实验条件

  • GPU: RTX 4090 D 24GB
  • 数据: minimind_data pretrain_t2t_mini.jsonl, 30000 行缓存
  • 序列: T=384, B=64
  • 训练: 3000 steps × 64 × 384 ≈ 74M tokens/组
  • 优化器: AdamW, lr=5e-4, cosine decay
  • 总共: 20 组 × 74M tokens ≈ 1.5B tokens, 预估时间 3-4 小时

已有数据(400 步预测试)

E. 混合比(400 步, H=512, L=4)

配置 浅层 深层 loss(400步) tok/s
0F+4A --- 4×OpenASH 4.50(最优) 117K
2F+2A 2×Fast 2×OpenASH 4.82(+0.32) 118K
3F+1A 3×Fast 1×OpenASH 4.80(+0.30) 119K
4F+0A 4×Fast --- 5.01(+0.51) 121K

结论:每多一层 OpenASH,loss 降 ~0.15;每多一层 Fast,速度微涨但 loss 涨 ~0.1。

FRSMASH-F vs FRSMASH-A 训练速度对比

B FRSMASH-F(Fast) FRSMASH-A(OpenASH) 加速比
32 21.8K tok/s 51.4K tok/s 0.42x
64 63.2K tok/s 61.9K tok/s 1.02x
88 52.7K tok/s 8.3K tok/s 6.33x

FRSMASH-F vs FRSMASH-A 推理速度

模型 tok/s ms/token
FRSMASH-F 324 3.1ms
FRSMASH-A 247 4.1ms

预测结果

A. 逻辑轴(预测)

L 参数 预测 loss(3000步) 趋势
2 ~27M ~5.2 弱逻辑
4 ~33M ~4.5 中等
6 ~39M ~4.0 强逻辑
8 ~45M ~3.7 推理深度最强

预测: OpenASH 层数每增加2层,loss 下降约 0.4-0.5,呈对数递减趋势。

B. 记忆轴(预测)

H 参数 预测 loss(3000步) 趋势
256 ~14M ~5.5 窄记忆
384 ~22M ~5.0 中等
512 ~33M ~4.5 宽记忆
640 ~47M ~4.1 最强记忆

预测: d_model 每增加 128,loss 下降约 0.3-0.4,线性递减。

C. 组件消融(预测)

配置 预测 loss 说明
完整 ~4.5 基准
去Slow(纯OpenASH) ~4.8 缺长程记忆
去OpenASH(纯Slow) ~5.5 缺逻辑推理

预测: OpenASH 贡献约 0.7 loss ,Slow 贡献约 0.3 loss

D. 快慢比(预测)

配置 预测 loss(3000步)
0F+1S(纯慢=V6) ~5.5
1F+1S ~5.2
2F+2S ~5.0
3F+1S ~4.9

预测: 3F+1S 最优------1 个 Slow 尺度足够选择性记忆,多 Fast 尺度增加即时预测能力。

E. 混合比(预测,3000 步)

配置 预测 loss
4F+0A ~5.2
3F+1A ~4.8
2F+2A ~4.7
1F+3A ~4.6
0F+4A ~4.5(最优)

预测: 2F+2A 性价比最高------loss 比 0F+4A 仅高 0.2,但大 batch 稳定性好得多。


实验代码 (ablation.py)

文件: F:\OpenASH2605\frsm_v6_moe\ablation.py

运行

powershell 复制代码
F:\OpenASH\.venv\Scripts\python.exe F:\OpenASH2605\frsm_v6_moe\ablation.py

代码结构

python 复制代码
# 数据: cached pretrain 30000 lines, T=384, B=64
# 训练: 每组 3000 steps, AdamW lr=5e-4, cosine warmup

# A. 逻辑轴: H=512, L=2,4,6,8
for L in [2, 4, 6, 8]:
    m = build_frsmash(vs, 512, L, K=8)
    train_one(m, ...)

# B. 记忆轴: L=4, H=256,384,512,640
for H in [256, 384, 512, 640]:
    m = build_frsmash(vs, H, 4, K=8)
    train_one(m, ...)

# C. 组件消融: 完整/去ASH/去Slow
configs = [完整, OpenASH_only, Slow_only]
for cfg in configs:
    train_one(cfg, ...)

# D. 快慢比(HybridFRSM): d=512, 3F+1S,2F+2S,1F+1S,0F+1S
for nf, ns in [(3,1),(2,2),(1,1),(0,1)]:
    m = build_hybrid(vs, 512, nf, ns, K=8)
    train_one(m, ...)

# E. 混合比(FRSMASH Hybrid): H=512, L=4
for nf, na in [(4,0),(3,1),(2,2),(1,3),(0,4)]:
    m = build_hybrid_ash(vs, 512, nf, na, K=8)
    train_one(m, ...)

结果输出

训练结果自动保存到 ablation_results.json,包含每组的:

  • final_loss: 最后 log interval 的平均 loss
  • losses: 所有 log interval 的 loss 列表(画图用)
  • time: 训练耗时
  • params: 参数量
  • config: 配置描述

辅助构建函数

函数 用途
build_frsmash(vs,H,L) 标准 FRSMASH(OpenASH backbone + Slow)
build_ash_only(vs,H,L) 纯 OpenASH, 无 Slow memory
build_slow_only(vs,D) 纯慢尺度, 无 OpenASH(≈V6)
build_hybrid(vs,D,nf,ns) HybridFRSM(Fast/Slow 尺度比)
build_hybrid_ash(vs,H,nf,na) FRSMASH Hybrid(Fast/OpenASH 混合)

附录: 关键模型文件索引

文件 内容
frsm_v6a_fast.py 原始 V6: 4尺度全内容门控,串行
frsmash.py FRSMASH: OpenASH cummax + Slow 记忆
frsmash_f.py FRSMASH-F: Fast 线性递推替换 cummax
frsm_linear.py HybridFRSM: 快慢尺度分离
frsm_vs_transformer_report.md Dense MoE vs Transformer 全维度对比
frsm_evolution_report.md 架构演进路线与速度对比
frsm_v6_moe/ablation.py 消融实验脚本