从 LatentMoE 到多潜空间 MoE
最近我在想 LatentMoE 还能不能再往前走一步。
标准 MoE 只激活少量 experts,但每个 expert 通常仍在完整隐藏维度上计算。LatentMoE 先把 token 压到更低维的潜空间,再交给 expert。这样可以减少参数量、计算量和通信开销。
我的疑问是:所有 experts 共用同一个潜空间,会不会限制它们的分工?
如果所有 token 都先经过同一个投影,那么各个 experts 接收到的信息结构基本一致。expert 之间的差异主要来自后续网络。可不同 experts 可能依赖不同类型的信息,单一潜空间未必总是合适。
因此,我想到使用多个低维投影:
不同 experts 可以绑定不同投影,或者由 router 同时选择 expert 和投影。这样,expert 的差异既来自自身参数,也来自输入表示。
这个想法带来几个直接问题。
第一,多个投影可能学到重复内容。可以加入正交、去相关或其他约束,但这些约束不一定真的有利于任务。
第二,投影数量越多,额外参数和计算越大。多个潜空间能补充信息,也会削弱 LatentMoE 原本的效率优势。
第三,共享程度需要权衡。所有 experts 共用一个投影最省参数;每个 expert 使用独立投影最灵活,但成本很高。更现实的设计可能是让一组 experts 共享一个投影。
我现在最关心的问题是:多个低维空间能否学到互补信息,同时保持足够低的开销。
如果答案是肯定的,那么 LatentMoE 的设计重点就不只在压缩维度,还包括潜空间之间的分工方式。