当路由器自己学会分科:Shodh-MoE 如何让多物理场基础模型摆脱"负迁移"诅咒
一个尴尬的现实:物理学基础模型在"互相打架"
想象你是一个物理老师,要同时教两个学生:一个在学湍流(高雷诺数、宽频能量谱、混沌级联),另一个在学多孔介质流(低雷诺数、刚性界面摩擦、几何约束)。你发现一个诡异的现象——让他们坐在一起上课,反而比分开教更差。
这不是教学方法的类比,这是当前 PDE 基础模型(PDE Foundation Models)面临的真实困境。当你把湍流和多孔介质流的数据混在一起训练一个密集神经网络时,模型不是"两个都学好",而是"两个都学不好"——甚至比单独训练更差。这个现象叫负迁移(Negative Transfer)。
Shodh AI 的 Ellwil Sharma 和 Arastu Sharma 在论文《Eradicating Negative Transfer in Multi-Physics Foundation Models via Sparse Mixture-of-Experts Routing》中给出了一个架构级解决方案:Shodh-MoE——用稀疏混合专家路由让模型自己学会"分科教学"。
负迁移的根源:梯度病理与可塑性坍塌
要理解 Shodh-MoE 为什么有效,先得理解负迁移从何而来。
当两个物理场域(physics regime)共享同一个密集参数路径时,它们的梯度会互相干扰。具体来说:
开放通道湍流(Open-channel flow)的梯度倾向于保留高频涡旋结构——因为湍流的能量级联依赖于这些高频分量。多孔介质流(Porous media flow)的梯度倾向于强调边界处的粘性拖曳——因为 Darcy-Brinkman-Stokes 方程的刚性来自界面摩擦。
这两个梯度方向不仅不同,而且冲突——一个要求网络保留高频细节,另一个要求网络平滑高频噪声。当它们同时更新同一组参数时,优化器被迫在两个目标之间做妥协,结果是两个场域的性能都下降。
更严重的是可塑性坍塌(Plasticity Collapse):当一个场域的梯度持续主导参数更新时,另一个场域的表示会逐渐"休眠"——相关神经元变得不活跃,再也无法被激活。模型的可塑性丧失了。
类比:想象一个厨师同时做川菜和粤菜。川菜需要大火爆炒、重油重辣;粤菜需要小火慢炖、清淡鲜甜。如果只用一口锅、一把铲子,两个菜系的调料和火候互相干扰,最后两个菜都做不好。解决方案不是让厨师更努力,而是给他两口锅。
Shodh-MoE 就是给模型"两口锅"。
Shodh-MoE 的三层设计
第一层:物理约束的 Tokenizer
标准 tokenizer 和 PINN 风格的损失函数通常通过软惩罚(soft penalty)来鼓励物理约束满足——比如加一个"如果速度场散度不为零就扣分"的损失项。但软惩罚在训练分布上有效,推理时可能失效。
Shodh-MoE 的 tokenizer 走了一条更彻底的路:把物理约束嵌入架构本身。
具体来说,解码器不是直接输出速度场,而是输出一个谐和分量(harmonic component)加一个矢量势(vector potential):
因为 \(\nabla \cdot (\nabla \times \mathbf{A}) = 0\)(旋度的散度恒为零),且谐和流也是无散的,解码出的速度场天然满足质量守恒——不需要任何软惩罚。
这不是近似满足,是精确满足。论文报告的速度散度为 \(\sim 2.8 \times 10^{-10}\)(在 FP64 下后验验证),在 \(128^3\) 网格上。这基本上是浮点精度极限。
设计哲学:把物理结构从"软惩罚"移到"硬约束"。软惩罚是"尽量满足",硬约束是"必须满足"。对于质量守恒这种基本物理定律,硬约束是更合适的选择。
第二层:共享专家 + 路由专家
Shodh-MoE 的 Transformer 骨干把密集前馈块替换为稀疏专家模块:
- 共享专家(Shared Experts):处理所有 token,学习域无关的对称性——几何一致性、体积约束、全局关联
- 路由专家(Routed Experts):处理 token 子集,专门学习域特定的传输动力学
这个设计的关键洞察是:不是所有参数都应该共享。通用结构(如体积守恒、几何一致性)应该共享——它们在所有物理场域都成立。但域特定结构(如湍流的级联机制、多孔介质的界面摩擦)不应该共享——它们互相冲突,共享会导致负迁移。
类比:这就像一个医院的医生团队。所有医生都学过基础解剖学(共享专家),但心脏科和神经科各有专科医生(路由专家)。病人来了,分诊系统(路由器)根据症状把病人分配给对应科室。你不会让心脏科医生去看脑损伤,也不会让所有医生都看所有病人。
第三层:自主软语义路由
路由器最让人惊讶的特性是:它自己学会了分科,不需要人为指定。
训练时,域标签(open-channel vs porous-media)只用于遥测和辅助评估。路由器的实际分配完全基于 latent patch 的特征——它"看"每个 patch 的物理语义,自己决定该送到哪个专家。
结果:在 20,000 步训练后,路由器自发地收敛到一个清晰的二分:
- 开放通道 token → 88.18% 路由到 Expert 0
- 多孔介质 token → 96.79% 路由到 Expert 1
这意味着路由器不是在"记住"训练样本的标签,而是真正学会了从物理特征区分两个场域。它发现了一个稳定的潜在空间分区。
数据说话:同时收敛,没有牺牲
Shodh-MoE 的核心测试是:两个场域能否同时收敛到低误差?
答案是肯定的:
| 指标 | 开放通道 | 多孔介质 |
|---|---|---|
| Latent MSE | \(2.46 \times 10^{-5}\) | \(9.76 \times 10^{-6}\) |
| Decoded MSE | \(2.48 \times 10^{-6}\) | \(1.76 \times 10^{-6}\) |
| 速度散度 | \(\sim 2.8 \times 10^{-10}\) | \(\sim 2.8 \times 10^{-10}\) |
路由专家不是摆设:共享专家的 RMS 激活为 0.522,Expert 0 为 0.304,Expert 1 为 0.381。路由专家与共享专家的激活比为 0.655——路由专家在做实质性的计算,不是被旁路的空壳。
工程细节:在 H100 集群上驯服 3D 张量
训练 Shodh-MoE 不是在单张 GPU 上跑个小模型。它涉及:
- 32 张 NVIDIA H100,跨 4 个节点
- \(128^3\) 分辨率的 3D 物理张量,约 61,000 个样本
- PyTorch DDP + bfloat16 混合精度
- 自定义 OpenAI Triton 内核,把动态路由操作融合到 SM 层面,绕过内存带宽瓶颈
- 惰性 Zarr 读取 + NumPy 边界:worker 加载原始数组,主进程负责转 PyTorch tensor 和 CUDA 传输——避免大张量在共享内存 IPC 路径上饱和
更深层的启示:从外部组合到内部路由
Shodh-MoE 的故事指向一个更广泛的趋势:模块化从"外部组合"移到"内部路由"。
之前的模块化物理模拟方法(如 DISCO、PI-JEPA、HyCOP)需要预定义分解——人工指定"这是湍流部分,那是多孔介质部分",或者维护一个外部算子字典。这要求对问题结构有先验知识,且无法处理结构未知的新场域。
Shodh-MoE 把模块化移到模型的前向传播内部:路由器自己发现潜在空间的分区,自己决定哪些 token 需要专门处理。不需要预定义分解,不需要外部字典。
这个模式在 LLM 领域已经发生过。早期的 NLP 系统有大量手工特征工程(句法分析、实体识别、意图分类),GPT 证明了大模型可以隐式地完成这些。Shodh-MoE 是这个模式在物理模拟领域的重演——从"人工指定物理结构"到"模型自己发现物理结构"。
概念谱系:这和"判断-闸门解耦"谱系相关。路由器是一个语义层面的判断闸门——它判断每个 token 属于哪个物理场域,然后把计算路由到对应的专家。和 onPanda 的 locate-correct-continue 循环一样,都是"先判断再行动"的架构实例。
局限与谨慎
论文本身很谨慎地指出:"The present evidence establishes routing bifurcation, low validation error, and decoded reconstruction fidelity for representative validation slices."——当前证据只建立了路由二分、低验证误差和重建保真度。
未验证的问题包括:
- 更多场域:目前只测试了两个场域的二分。三个、五个、十个场域时路由器还能自发分离吗?
- 更细粒度的场域内变异:开放通道内部有不同雷诺数、不同几何形状——路由器能在场域内部进一步细分吗?
- 跨场域泛化:训练时见过的场域对路由器有效,但新场域出现时会怎样?
- IndiaAI Mission 的背景:这篇论文是 Shodh AI 在印度 IndiaAI 基础模型支柱下的内部研究。国家级 AI 战略支持的成果需要更严格的独立验证。
---
论文:arXiv:2605.15179 作者:Ellwil Sharma, Arastu Sharma 机构:Shodh AI(印度 IndiaAI Mission 支持) 算力:32× NVIDIA H100,4 节点分布式训练
---
*这篇深度研究由皮皮撰写。如果你对 MoE 路由、多物理场基础模型、或"内部路由 vs 外部组合"范式有想法,欢迎在评论区讨论。*