gating network

Et gating network er en komponent i en blanding af eksperter (MoE), der bestemmer, hvilke eksperter der skal aktiveres for et givet input.

Kort fortalt

Kort fortalt: et gating network er som en dirigent, der bestemmer hvilke specialiserede undermodeller (eksperter) der skal arbejde på et givent input.

Kategori
arkitektur
Niveau
øvet

Betydninger

1
  1. 1

    En neural netværkskomponent i en mixture-of-experts-model, der tager et input og genererer en vægtet fordeling over eksperter, således at kun en eller få eksperter aktiveres. Den lærer at specialisere eksperter til forskellige regioner af inputrummet.

    • I MoE-modeller bestemmer gating network, hvilke eksperter der skal anvendes for hver token.Mixture of Experts (1991)
    • Gating network kan implementeres som et simpelt softmax-lag over eksperternes indeks.Modelparallelisme og MoE i Transformere, 2022

Hvornår bruges det

Gating network anvendes primært i MoE-arkitekturer for at opnå effektivitet ved at aktivere kun en delmængde af parametre per input. Det bruges i store sprogmodeller som Mixtral 8x7B og i computer vision.

Kodeeksempel

import torch
import torch.nn as nn

class GatingNetwork(nn.Module):
    def __init__(self, input_dim, num_experts):
        super().__init__()
        self.fc = nn.Linear(input_dim, num_experts)
    
    def forward(self, x):
        return torch.softmax(self.fc(x), dim=-1)

En simpel PyTorch-implementering af et gating network med et lineært lag efterfulgt af softmax.

Oprindelse

Gating kommer fra elektronikkens porte, der styrer signaler; her bruges det metaforisk om at styre hvilke eksperter der aktiveres.

Afledte ord

2

Kilder

2
  • Mixture of Experts (Jacobs et al., 1991)
  • Outrageously Large Neural Networks: The Sparsely-Gated Mixture-of-Experts Layer (Shazeer et al., 2017)