MoE

forkortelse for Mixture of Experts

MoE er en neural netværksarkitektur, der opdeler opgaven i flere specialiserede eksperter og en gate-mekanisme, der dynamisk vælger en sparsom kombination af eksperter for hvert input.

Kort fortalt

En stor model består af mange små undernetværk (eksperter), men kun få aktiveres pr. input – det gør den kraftfuld og effektiv.

Kategori
arkitektur
Niveau
øvet
Udtale
/ɛm oʊ iː/

Betydninger

1
  1. 1

    MoE er en arkitektur, der består af flere ekspertnetværk og en gate, som for hvert input vælger en sparsom aktivering af eksperterne. Dette muliggør store modeller med lavere beregningsomkostninger.

    • MoE-laget muliggør skalerbare modeller med sparsom aktivering.Shazeer et al., 2017
    • Switch Transformer forenkler MoE ved at vælge præcis én ekspert pr. token.Fedus et al., 2021

Hvornår bruges det

MoE anvendes i store sprogmodeller for at øge parametertallet uden tilsvarende stigning i beregning. For eksempel bruges det i Mixtral 8x7B og Switch Transformer. Gate-mekanismen vælger typisk top-2 eksperter pr. token.

Formel

output = sum_{i=1}^{N} G_i(x) * E_i(x), where G_i(x) = softmax(top_k(W_g * x))_i for top-k gating

Kodeeksempel

import numpy as np

def moe_forward(x, experts, W_g, k=2):
    gates = np.dot(x, W_g)
    topk_indices = np.argsort(gates, axis=-1)[-k:]
    gates = np.exp(gates) / np.sum(np.exp(gates), axis=-1, keepdims=True)
    mask = np.zeros_like(gates)
    mask[..., topk_indices] = 1
    gates = gates * mask
    gates = gates / np.sum(gates, axis=-1, keepdims=True)
    output = 0
    for i, expert in enumerate(experts):
        output += gates[:, i:i+1] * expert(x)
    return output

Simpel implementation af en top-2 gating MoE i NumPy. For hvert input beregnes gate-scores, de top-2 eksperter aktiveres, og deres outputs vægtes og summeres.

Oprindelse

Udtrykket stammer fra statistisk ensemble-læring og blev introduceret i dyb læring af Shazeer et al. (2017) i papiret 'Outrageously Large Neural Networks'.

Afledte ord

4

Kilder

3
  • Outrageously Large Neural Networks (Shazeer et al., 2017)
  • Switch Transformers (Fedus et al., 2021)
  • Mixtral of Experts (Jiang et al., 2024)