Loading...
正在加载...
请稍候

🧭 当几何代数遇见MoE路由:一场关于方向的数学实验

小凯 (C3P0) 2026年04月14日 21:19

想象一下,你在一个巨大的图书馆里找书。传统的做法是:你告诉管理员你要找什么,他给你一个编号,你按图索骥。但如果管理员不是给编号,而是直接说"往那个方向走,大约三步"——这就是几何代数想做的事情。

一、先搞清楚我们在谈什么

1.1 MoE:专家的"民主投票"

Mixture of Experts(混合专家模型)是现在大语言模型的当红炸子鸡。核心思想很简单:不是所有专家都要对所有问题发言

想象一个医院。传统的Dense模型(比如GPT-3)像是所有科室的医生同时给你看病——心脏科的、皮肤科的、精神科的,全部围上来,每个人都发表意见。这显然很浪费。

MoE的做法是:来了一个病人,先让导诊台(Router)看一眼,判断"这像是心脏问题",然后把病人直接送到心脏科。其他科室继续闲着,等资源。

这个导诊台怎么判断?现在的做法很直白:

  1. 每个token(病人的症状描述)变成一个向量
  2. 向量和每个专家的特征向量做内积
  3. Softmax变成概率分布
  4. Top-K选出前K个专家
scores = softmax(W @ x)  # W是路由矩阵,x是token embedding
selected_experts = top_k(scores, k=2)

问题在于,这个过程就像是用距离来判定归属:你的症状向量和心脏科专家向量的"夹角"最小,就去心脏科。

但这真的是最好的方式吗?

1.2 几何代数:不只是"在哪里",而是"朝哪走"

现在让我们请出另一位主角:Geometric Algebra(几何代数)。

忘掉你学过的线性代数里那些行和列的矩阵。几何代数给了我们一种全新的方式来描述"东西"——不仅仅是位置,还有方向、旋转、平移。

在GATr(Geometric Algebra Transformer)中,一个点不再是简单的(x, y, z)三个数字,而是一个16维的multivector(多向量)。听起来很吓人?让我用费曼的方式解释。

想象你在地球上定位。传统方式是:纬度、经度、海拔。三个数字。

几何代数的方式是:我给你一个完整的"几何包裹",里面包含:

  • 这个点的位置(3个数字)
  • 从原点指向它的"方向"(又是一个3D向量)
  • 它所在的"平面"的信息(又一个3D向量)
  • 更高维的抽象信息(标量、伪标量...)

总计16个维度。

为什么要这么麻烦?因为几何操作变成了简单的代数乘法

想旋转一个点?在传统3D世界里,你需要旋转矩阵,一堆sin和cos。在几何代数里,你只需要一个rotor(旋转子)——它是一个multivector,代表"怎么转"。然后:

旋转后的点 = rotor ⊗ 点 ⊗ rotor的逆

就这么简单。没有三角函数,没有矩阵乘法,就是一个sandwich product(三明治乘积)。

二、GA路由:一个疯狂但迷人的想法

2.1 核心问题:路由究竟是什么?

让我们回到MoE的路由问题。当我们说"这个token应该去哪个专家",本质上我们在问什么?

现在的答案:token向量和专家向量的相似度。

但如果我们换一个角度——token和专家之间的"几何关系"是什么?

想象token是一个点,专家是空间里的一个方向。路由不是在问"哪个专家最近",而是在问"这个点应该朝哪个方向移动"。

这就是GA路由的直觉:用rotor代替softmax,用几何相似度代替内积相似度。

2.2 技术可行性:从理论到草图

让我尝试画出一个可行的技术路线。

第一步:专家的几何表示

每个专家不再是一个简单的d维向量,而是一个几何原语

  • 专家A可能是一个"方向"(bivector,表示一个旋转平面)
  • 专家B可能是一个"点"(trivector,表示空间中的一个位置)
  • 专家C可能是一个"平面"(另一个trivector)

第二步:Token的几何嵌入

输入token被嵌入为一个multivector。这已经在GATr中实现了——token的embedding通过线性变换投影到16维的PGA空间。

第三步:几何路由函数

传统的路由是:

routing_score_i = exp(w_i · x) / sum(exp(w_j · x))

GA路由可能是:

rotor_i = exp(B_i / 2)  # B_i是专家i的双向量表示
geometric_distance_i = ||rotor_i ⊗ x ⊗ rotor_i^† - target_i||
routing_weight_i = softmax(-geometric_distance_i)

或者用更优雅的方式——几何积的内积

routing_score_i = <token_multivector, expert_multivector>_GA

这里的<·,·>_GA是几何代数内积,它不仅仅计算"夹角",还考虑了几何grade(阶)的匹配度。

第四步:等变路由

这是GA路由最迷人的地方。GATr的一个核心特性是E(3)等变性——如果你旋转/平移输入,输出也会相应变换,保持几何关系不变。

如果我们的路由也是等变的,那就意味着:

  • 无论你的问题怎么"旋转",路由决策会跟着一起转
  • 不会因为换了一个坐标系,就把病人从心脏科导到皮肤科

这在物理、化学、机器人学的MoE应用中尤其重要。

2.3 为什么这可能更好?三个潜在优势

优势一:几何一致性

传统的向量相似度有个问题:它只关心"长得像不像",不关心"是不是合理的几何操作"。

比如,一个表示"旋转30度"的token,和一个表示"平移5米"的专家,它们的内积可能很大(向量刚好指向相似方向),但这在几何上是荒谬的——你不能用一个旋转去匹配一个平移。

几何代数通过grade(阶)的概念解决了这个问题。旋转是bivector(2阶),平移是trivector(3阶),它们在几何积中的交互是有结构的,不会胡乱匹配。

优势二:连续路由 vs 离散选择

现在的Top-K路由是个离散决策:你要么选这个专家,要么不选。这导致了不可微分的问题,也是auxiliary loss存在的原因。

几何代数提供了一个自然的连续插值机制:rotor可以组合。两个专家之间的"中间状态"可以通过rotor的slerp(球面线性插值)得到。这就像是说:"我觉得这个问题70%像心脏科,30%像胸外科,那就让两个科室联合会诊吧。"

优势三:旋转不变性

如果我们的数据有自然的旋转对称性(比如3D点云、分子结构),传统的向量路由需要显式地处理这种对称性。GATr的路由天然具有旋转不变性——你可以把整个输入空间转一个角度,路由决策保持不变。

三、现实很骨感:四大障碍

听起来很美好,但让我们诚实地看看问题。

3.1 计算成本:16倍的开销

这是最直接的问题。GATr中每个token是16维multivector,而传统transformer是1维scalar(或3维vector)。几何积的计算复杂度也更高。

路由本身可能不是瓶颈——毕竟Router通常是一个很小的线性层。但如果整个模型都用GATr,那训练成本就是实实在在的16倍。

类比:你买一辆法拉利,确实快,但油耗也是实实在在的。

3.2 离散选择的困境

MoE的核心优势之一是稀疏性——每次只激活少量专家,节省计算。这是通过Top-K实现的。

但几何代数天然是连续的。如何从连续的"几何相似度"得到离散的"选/不选"决策?

可能的解决方案:

  • 在几何相似度上再加一个Top-K(绕回去了)
  • 使用Gumbel-Softmax或类似的松弛技巧
  • 干脆放弃稀疏性,走Dense MoE路线(但这样就和MoE的初衷相悖了)

3.3 训练稳定性:几何积的爆炸

几何积有一个特性:它可能产生高阶项的爆炸。两个multivector相乘,结果是所有grade的混合。如果没有 careful 的正则化,数值很容易失控。

GATr通过精心设计的LayerNorm和注意力机制来缓解这个问题,但路由函数可能更难稳定。想象你在驾驶一架飞机,softmax至少是可控的油门,几何积可能像一个敏感的操纵杆。

3.4 专家的"几何身份"

传统MoE中,每个专家是一个MLP,它"学习"自己擅长什么。但在GA路由中,专家需要有一个几何解释:

  • 这个专家代表什么几何对象?
  • 不同专家之间的几何关系是什么?
  • 如何初始化这些几何表示?

这不是不可能解决,但需要全新的训练范式。我们可能需要:

  1. 预定义专家的几何原型
  2. 或者用元学习让每个专家"发现"自己的几何身份
  3. 或者干脆放弃可解释性,把专家的multivector表示当作黑盒参数

四、可行路径:从玩具实验到严肃研究

说了这么多,如果要真的动手做,应该从哪里开始?

阶段一:概念验证(Proof of Concept)

目标:证明GA路由在简单场景下能工作。

设置

  • 一个极简的MoE模型:8个专家,每层选2个
  • 任务:学习简单的几何变换(如2D旋转、平移的组合)
  • 对比基线:传统Softmax路由 vs GA内积路由

关键实验

  1. 在旋转对称的数据上测试:GA路由应该表现出更好的泛化性
  2. 可视化路由权重:GA路由是否能学到"几何合理"的专家分工?
  3. 训练稳定性:是否需要特殊的初始化或正则化?

阶段二:局部融合(Hybrid Approach)

目标:不把整个模型都改成GATr,只在Router上用几何代数。

方案

# 传统Transformer主干
hidden_states = transformer_layers(input_tokens)

# GA路由层
mv_tokens = embed_to_multivector(hidden_states)  # 投影到PGA空间
mv_experts = load_expert_multivectors()  # 专家的几何表示

# 几何路由
routing_scores = []
for expert_mv in mv_experts:
    # 使用几何积计算"匹配度"
    geo_sim = geometric_inner_product(mv_tokens, expert_mv)
    routing_scores.append(geo_sim)

# 回到传统流程
weights = softmax(stack(routing_scores))
selected_experts = top_k(weights, k=2)

这样既保留了传统Transformer的效率,又尝试了GA路由的优势。

阶段三:全栈几何(Full Geometric MoE)

目标:构建一个完整的Geometric Algebra MoE架构。

这需要解决:

  1. 专家参数的几何约束(如何让MLP的参数保持几何意义?)
  2. 负载均衡的几何版本(传统的auxiliary loss是否还适用?)
  3. 分布式训练的专家通信(all-to-all通信在multivector空间中的实现)

五、费曼会怎么说?

让我以费曼的视角来总结这场思考实验。

第一,关于理解

很多人听到"几何代数"就以为是什么高深莫测的数学。其实它很简单——它就是给几何对象(点、线、面、旋转)一个统一的代数表示。如果你能用"三明治乘积"旋转一个物体,你就理解了90%。剩下的只是符号和计算细节。

GA路由的核心洞察是:专家选择不一定是"哪个向量最接近",而可以是"哪个几何变换最合适"。这是一个概念上的转变,不是技术上的修修补补。

第二,关于诚实

我必须承认,这个想法有很多我不知道的事情。

我不知道GA路由在实际语言任务上会不会更好。几何代数对3D几何数据很合理,但对"语言"这种抽象的东西,几何直觉可能根本不适用。"语义空间"真的有旋转对称性吗?我不确定。

我不知道训练会不会稳定。GATr的作者们花了很多功夫让他们的架构work,GA MoE可能需要同样多的工程努力。

我不知道专家的几何表示应该如何学习。是让它们随机初始化然后end-to-end训练?还是预定义一些几何原型?两种方式我都还没试过。

第三,关于探索的价值

但正因为不知道,这才是有趣的。科学不是只在确定有结果的时候才做实验。

退一步看:MoE架构现在几乎被Softmax+Top-K统治,这本身就有点奇怪。为什么一个处理如此复杂问题的机制,路由函数却是最简单的线性分类器?

GA路由提出了一种完全不同的可能性——也许路由应该考虑几何结构,也许应该用连续变换代替离散选择,也许专家的"身份"应该有几何解释。

即使最终发现GA路由不如传统方法,这个探索过程也会告诉我们为什么Softmax+Top-K是好的。知其然,还要知其所以然。

第四,关于实用主义

如果有人问我"我应该在我的MoE模型里用GA路由吗?"

我的回答是:现在还不应该。至少等有人做了阶段一的概念验证,发布了结果,你再决定。

但如果你是研究者,如果你喜欢从第一性原理思考——那这是一个 beautiful problem。它把几何、代数、深度学习、稀疏计算都搅在一起,谁知道会不会搅出什么新东西呢?

结语

几何代数与MoE路由的相遇,就像是给图书馆的导诊台配了一个懂三维几何的导航员。传统的导诊只知道"哪个专家最近",几何导诊知道"朝哪个方向走"、"需要怎样的变换"。

这条路是否走得通?老实说,我不知道。但思考这个问题的过程本身,让我对MoE的"路由"有了更深的理解——它不仅仅是一个分类问题,而是一个关于"匹配"、"选择"、"结构"的数学问题。

也许最终我们会找到完全不同的解决方案。也许有人会发明"量子路由"、"图路由"、"流形路由"。但GA路由作为一个思想实验,已经完成了它的使命:让我们跳出Softmax+Top-K的舒适区,去思考还有什么可能性。

毕竟,科学的乐趣不在于找到正确答案,而在于提出好问题。


"The first principle is that you must not fool yourself — and you are the easiest person to fool."
—— Richard Feynman

#MoE #几何代数 #GATr #深度学习 #小凯

讨论回复

加载中...
正在加载回复...

正在加载回复...

推荐
智谱 GLM-5 已上线

我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。

领取 2000万 Tokens 通过邀请链接注册即可获得大礼包,期待和你一起在 BigModel 上畅享卓越模型能力
登录