Week 28: 机器学习补遗:MoE 原理与时序路由策略

文章目录

  • [Week 28: 机器学习补遗:MoE 原理与时序路由策略](#Week 28: 机器学习补遗:MoE 原理与时序路由策略)
    • 摘要
    • Abstract
    • [1. MoE(Mixture of Experts)](#1. MoE(Mixture of Experts))
      • [1.1 单一模型的局限性](#1.1 单一模型的局限性)
      • [1.2 MoE 的核心思想](#1.2 MoE 的核心思想)
    • [2. Sparse MoE](#2. Sparse MoE)
      • [2.1 Dense MoE 的计算瓶颈](#2.1 Dense MoE 的计算瓶颈)
      • [2.2 Sparse MoE与Top-K Gating](#2.2 Sparse MoE与Top-K Gating)
    • [3. 路由粒度 (Routing Level)](#3. 路由粒度 (Routing Level))
      • [3.1 Token Level MoE (Token 级路由)](#3.1 Token Level MoE (Token 级路由))
      • [3.2 Pooling Level MoE (池化级/序列级路由)](#3.2 Pooling Level MoE (池化级/序列级路由))
    • 总结

Week 28: 机器学习补遗:MoE 原理与时序路由策略

摘要

本周重点探讨了混合专家模型 (Mixture of Experts, MoE)。MoE是当前LLM中的研究热点,其思想与集成学习一脉相承,但以端到端可微的方式在深度神经网络中实现。

Abstract

This week's focus has been on the Mixture of Experts (MoE) model. MoE represents a current research hotspot within large language models (LLMs), drawing inspiration from ensemble learning while being implemented in a fully differentiable manner within deep neural networks.

1. MoE(Mixture of Experts)

1.1 单一模型的局限性

在标准 Transformer 中,FeedForward Network (FFN) 对所有的输入 Token 使用同一组参数 W W W。
FFN ( x ) = ReLU ( x W 1 + b 1 ) W 2 + b 2 \text{FFN}(x) = \text{ReLU}(xW_1 + b_1)W_2 + b_2 FFN(x)=ReLU(xW1+b1)W2+b2

为了应对各种复杂情况,我们不得不把一个需要应对全部情况的模型做得非常巨大(增加参数量),但这导致了推理成本的飙升。

1.2 MoE 的核心思想

MoE 引入了"分诊"和"专科"的概念。它包含两个核心组件:

  1. 专家网络 (Experts, E i E_i Ei):一组独立的神经网络(通常是 MLP),每个专家专注于处理输入空间的一个特定子区域。
  2. 门控网络 (Gating Network / Router, G G G) :一个轻量级的分类器,根据输入 x x x 的特征,决定派哪个(或哪几个)专家上场。

其通用数学形式为:
y = ∑ i = 1 N G ( x ) i ⋅ E i ( x ) y = \sum_{i=1}^N G(x)_i \cdot E_i(x) y=i=1∑NG(x)i⋅Ei(x)

这与XGBoost中将样本划分到不同叶子节点的思想异曲同工,区别在于 MoE 的划分是软性 (Soft)且动态 (Dynamic)的,并且全程通过梯度下降联合训练。

2. Sparse MoE

2.1 Dense MoE 的计算瓶颈

在原始的 MoE 定义中,门控网络 G ( x ) G(x) G(x) 输出的是一个针对所有 N N N 个专家的概率分布(Sum = 1)。这意味着对于每一个输入,所有的 专家都要进行前向传播计算。

当专家数量扩展到成百上千时,计算量将线性增长,这违背了我们想通过增加参数来提升模型容量的初衷。

2.2 Sparse MoE与Top-K Gating

为了解决这个问题,Sparse MoE引入了稀疏性约束。核心思想是条件计算 (Conditional Computation)。即对于每个样本,我们只激活一小部分专家。

这是通过Top-K Gating实现的。假设我们有 N N N 个专家,我们只选取门控分数最高的 K K K 个(通常 K = 1 K=1 K=1 或 2 2 2):

TopK ( v , k ) i = { v i if v i is in the top k elements of v − ∞ otherwise \text{TopK}(v, k)_i = \begin{cases} v_i & \text{if } v_i \text{ is in the top } k \text{ elements of } v \\ -\infty & \text{otherwise} \end{cases} TopK(v,k)i={vi−∞if vi is in the top k elements of votherwise

具体的门控输出计算如下:

  1. 计算原始路由分数: h ( x ) = x ⋅ W g h(x) = x \cdot W_g h(x)=x⋅Wg
  2. 加入高斯噪声(可选,用于负载均衡): h ′ ( x ) = h ( x ) + StandardNormal ( ) ⋅ Softplus ( x ⋅ W n o i s e ) h'(x) = h(x) + \text{StandardNormal}() \cdot \text{Softplus}(x \cdot W_{noise}) h′(x)=h(x)+StandardNormal()⋅Softplus(x⋅Wnoise)
  3. 应用 Softmax 并保留 Top-K:
    G ( x ) = Softmax ( TopK ( h ′ ( x ) , k ) ) G(x) = \text{Softmax}(\text{TopK}(h'(x), k)) G(x)=Softmax(TopK(h′(x),k))

意义:通过这种方式,我们可以拥有一个参数量高达数千亿的"超大模型",但每次推理只调用其中几十亿的参数。实现了"大模型的容量,小模型的速度"。

3. 路由粒度 (Routing Level)

路由粒度 是将 MoE 应用于时序预测时最关键,也是最容易被忽视的环节。

3.1 Token Level MoE (Token 级路由)

在 NLP 领域(如 GPT-4 或 Switch Transformer),路由是针对每个 Token 独立进行的。

  • 过程 :对于时间序列 X = { x 1 , x 2 , . . . , x T } X = \{x_1, x_2, ..., x_T\} X={x1,x2,...,xT},Router 可能会把 x 1 x_1 x1 分给专家 A,把 x 2 x_2 x2 分给专家 B。
  • 时序领域的弊端
    • 破坏连续性:时间序列具有极强的自相关性(Autocorrelation)。如果相邻时间步由完全不同的专家网络处理,输出结果可能会出现不自然的跳变 (Jumps)。
    • 缺乏上下文 :单个时间步 x t x_t xt 的数值可能本身不包含足够的信息来判断当前的"市场状态"(Regime)。例如,价格为 100 时,可能是上涨趋势中的 100,也可能是下跌趋势中的 100。仅凭 x t x_t xt 很难区分。

3.2 Pooling Level MoE (池化级/序列级路由)

针对上述问题,Pooling Level MoE 提出了一种更符合时序特性的策略:以时间窗口(Patch 或 Whole Series)为单位进行路由

  • 核心逻辑

    1. Pooling :首先提取一段时间内的全局特征。
      v g l o b a l = AveragePool ( x 1 , . . . , x T ) 或 v g l o b a l = AttentionPool ( X ) v_{global} = \text{AveragePool}(x_1, ..., x_T) \quad \text{或} \quad v_{global} = \text{AttentionPool}(X) vglobal=AveragePool(x1,...,xT)或vglobal=AttentionPool(X)
    2. Routing :基于这个全局特征 v g l o b a l v_{global} vglobal 来决定使用哪个专家。
      Selected Expert = TopK ( G ( v g l o b a l ) ) \text{Selected Expert} = \text{TopK}(G(v_{global})) Selected Expert=TopK(G(vglobal))
    3. 执行 (Execution) :被选中的专家处理整个时间窗口的数据。
  • 学术解释

    这种做法实际上是对非平稳性 (Non-stationarity) 的一种显式建模。我们假设时间序列是由若干个隐含的分布状态 (Regimes)组成的(例如:平稳震荡期、剧烈波动期)。

    • Pooling 操作旨在识别当前窗口属于哪个 Regime。
    • 不同的 Experts 实际上习得了不同 Regime 下的动力学方程。
    • Routing 保证了在同一个 Regime 内部,预测逻辑的一致性和平滑性。

总结

本周比较详细的研究了MoE的数学原理以及从Dense MoE到Sparse MoE的演进逻辑,并针对时间序列数据的非平稳性和时序连续性,深入剖析了Pooling Level MoE相较于传统 Token Level 路由的必要性。后续可能考虑对MoE继续进行深入研究,MoE作为当下的研究热点,可以作为一个策略或者模块比较容易的嵌入现有的网络当中,值得继续研究。

相关推荐
渡我白衣33 分钟前
多路转接之epoll:理论篇
人工智能·神经网络·网络协议·tcp/ip·自然语言处理·信息与通信·tcpdump
明月照山海-33 分钟前
机器学习周报二十八
人工智能·机器学习
weixin_437497777 小时前
读书笔记:Context Engineering 2.0 (上)
人工智能·nlp
喝拿铁写前端7 小时前
前端开发者使用 AI 的能力层级——从表面使用到工程化能力的真正分水岭
前端·人工智能·程序员
goodfat7 小时前
Win11如何关闭自动更新 Win11暂停系统更新的设置方法【教程】
人工智能·禁止windows更新·win11优化工具
北京领雁科技7 小时前
领雁科技反洗钱案例白皮书暨人工智能在反洗钱系统中的深度应用
人工智能·科技·安全
落叶,听雪7 小时前
河南建站系统哪个好
大数据·人工智能·python
清月电子7 小时前
杰理AC109N系列AC1082 AC1074 AC1090 芯片停产替代及资料说明
人工智能·单片机·嵌入式硬件·物联网
Dev7z7 小时前
非线性MPC在自动驾驶路径跟踪与避障控制中的应用及Matlab实现
人工智能·matlab·自动驾驶
七月shi人7 小时前
AI浪潮下,前端路在何方
前端·人工智能·ai编程