hetero-moe-router — 路由实验三合一(全部失败或半成功)

已合并两个实验仓库:hetero-moe-router-unfrozen、hetero-moe-shared-routed 的内容现在在子目录里,原仓库已归档删除。

目录(本仓库已合并)

路径 原来在 内容

| unfrozen/ | hetero-moe-router-unfrozen | 专家解冻实验 | | shared-routed/ | hetero-moe-shared-routed | 共享专家 + 路由专家 | | 根目录 | 本仓库原有 | 专家冻结实验(v33 原设定) |

三个实验对照

实验 task loss 专家负载 探针 判定
根目录(冻结) 52.97 → 13.09 — 0.390 / 0.296 路由没学
**unfrozen/**(解冻) 52.97 → 0.112 [0.295,0.814,0.890,0.001] 0.256 / 0.266 塌缩
**shared-routed/**(共享+路由) 52.97 → 0.10 [0.001,0.999,0.9997,0.0001] — 融合成功,路由塌

unfrozen/report.json 自带声明:

"INDEPENDENT EXPERIMENT: expert weights UNFROZEN and randomly initialized — NOT the project v33 setting."

shared-routed/ 的结构:y = x + SharedExpert(fusion) + routed experts(dispatch)。 它的融合部分是成功的:跨模态余弦 0.029 → 0.107,正相关比例 73.8% → 96.7%。 这是本系列第一次把跨模态融合做成功。路由部分仍失败。

共同结论

根因是目标函数只跟模态有关、不跟内容有关 —— 路由拿不到内容梯度。

这直接导致 v62 的两个改变:

  1. 任务换成真实分类(交叉熵 + 真实标签)
  2. 融合层从 256 维扩到 1024 维(= Σ 子空间)

v62 后续:held-out 0.9076(v62.3),负载均衡 0.612 —— 不塌缩。

⚠️ 更正一条历史说法:v62.0 当时报的「held-out 0.9016 / 负载均衡 0.8774 / 路由熵 0.5016」 不能作为「v62 不塌缩」的证据。那组数字里,proj_space.router 是 lazy 创建的 —— 既没被 load_state_dict 加载上,也从未进入 optimizer,所以它统计的是一个 随机初始化的模块(0.8774 尤其误导)。v62.1/v62.2 的同一组数字同样作废。 作废的是槽门控那部分;专家的数字有效(fusion.W_router 是 nn.Parameter, 从 __init__ 起就在 trainable 里),所以「换成真实分类任务后专家不再塌缩」 这个结论本身站得住 —— 只是支撑它的数字得换成 v62.3 的。

重要

这三个是实验记录,report.json 的 loss 曲线不能当性能指标引用。

⚠️ 均为裸 state_dict(torch.save),不是 from_pretrained 格式。

完整模型:HeteroMoEProjSpace-v2

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Collection including redmingwei/hetero-moe-router