Powrót do strony głównej

Sieci neuronowe i mnożenie: SwiGLU w transformerach

Artykuł wyjaśnia brak mnożenia w klasycznych sieciach neuronowych i rolę SwiGLU w transformerach. Analizowane są wzory, benchmarki i praktyczne konsekwencje dla LLM.

SwiGLU: jak sieci neuronowe nauczyły się mnożyć
Advertisement 728x90

Dlaczego sieci neuronowe nie mnożą: od perceptronów do SwiGLU

Sieci neuronowe, mimo sukcesów w generowaniu tekstu i obrazów, zasadniczo nie wykonują operacji mnożenia danych wejściowych. W perceptronie wejścia przechodzą przez kombinację liniową: są ważone i sumowane. Wzór podstawowego neuronu: $$h = \sigma(\sum w_i x_i + b)$$, gdzie nie ma iloczynu dwóch zmiennych $x_1 \cdot x_2$.

Dla zadania takiego jak obliczanie kosztu (cena × ilość) sieć aproksymuje wynik poprzez zapamiętywanie wzorców, ale nie oblicza mnożenia bezpośrednio. Dodanie ukrytych warstw zachowuje zasadę: na każdym etapie — tylko sumy ważonych sygnałów.

W pierwszej warstwie:

Google AdInline article slot

$$h_1^{(1)} = x_1 w_{11}^{(1)} + x_2 w_{12}^{(1)}$$

$$h_2^{(1)} = x_1 w_{21}^{(1)} + x_2 w_{22}^{(1)}$$

W drugiej:

Google AdInline article slot

$$h_1^{(2)} = h_1^{(1)} w_{11}^{(2)} + h_2^{(1)} w_{12}^{(2)}$$

Podstawienie pokazuje: $x_1$ i $x_2$ pozostają w sumie, ich iloczyn nie powstaje. Wagi mnożą się między warstwami, ale wejścia — nie.

Obejścia: kwadraty i wstępne obliczenia

Inżynierowie dodają na wejście już pomnożone wartości ($x_1 x_2$) lub kwadraty do imitacji. Szkolny wzór pozwala wyrazić iloczyn:

Google AdInline article slot

$$x y = \frac{1}{2} \left( (x+y)^2 - x^2 - y^2 \right)$$

To redukuje mnożenie do dodawania, odejmowania i podnoszenia do kwadratu. Hipotetyczna aktywacja $f(z) = z^2$ mogłaby pomóc, ale standardowe ReLU, Sigmoid, Tanh nie zapewniają nieliniowości kwadratu.

Praktyka pokazuje: takie obejścia działają w demonstracjach, ale w rzeczywistych zadaniach z wieloma wejściami wymagają znajomości potrzebnych kombinacji z góry.

  • Wstępne obliczenia: Podanie $x_1 x_2$ na wejście.
  • Kwadraty: Wykorzystanie $(x+y)^2$, $x^2$, $y^2$.
  • Ograniczenia: Nie skaluje się, narusza uniwersalność aproksymatora.

Przełom transformerów: rola wariantów GLU

Architektura Transformer (2017) wprowadziła attention, ale kluczowy krok — zastąpienie aktywacji na Gated Linear Units (GLU) w 2020 roku (Noam Shazeer, "GLU Variants Improve Transformer"). ReGLU, GEGLU, SwiGLU przewyższają ReLU w zbieżności.

| Aktywacja | Błąd |

|-----------|--------|

| ReLU | 2.45 |

| ReGLU | 2.32 |

| GEGLU | 2.25 |

| SwiGLU | 2.24 |

SwiGLU jest preferowana ze względu na szybkość. Wzór:

$$\text{SwiGLU}(x) = \text{Swish}(x W + b) \odot (x V + c)$$

Tutaj $\odot$ — mnożenie element po elemencie dwóch projekcji. To wprowadza zależności kwadratowe, pozwalając modelować $x_1 x_2$ bez obejść. SwiGLU jest używana w blokach FFN nowoczesnych LLM.

Mechanizm:

  • Wejście $x$ jest rzutowane na dwie ścieżki: $xW + b$ i $xV + c$.
  • Pierwsza przez Swish ($\text{Swish}(z) = z \sigma(\beta z)$).
  • Mnożenie element po elemencie.

Praktyczne konsekwencje dla modeli

SwiGLU poprawia uczenie, ale nie czyni SI dokładnym kalkulatorem. Modele generatywne są probabilistyczne: "2×2=4" — prawdopodobny token, nie dedukcja. Dla złożonych obliczeń LLM delegują kod Python w sandboxie.

  • Zalety GLU: Lepsza zbieżność, modelowanie nieliniowości.
  • Wady: Sieć nie zawsze automatycznie znajduje potrzebne wagi.
  • Wymaga dużych danych.
  • Charakter probabilistyczny pozostaje.

Przyszłe integracje (WebAssembly w Transformer) pozwolą uruchamiać natywny kod wewnątrz modelu.

Co jest ważne

  • Klasyczne perceptrony sumują, ale nie mnożą wejść.
  • GLU (SwiGLU) wprowadza mnożenie element po elemencie projekcji dla zależności kwadratowych.
  • Bramy zastępują ReLU w nowoczesnych transformerach, redukując błąd o 5–10%.
  • Dla dokładnych obliczeń LLM używają zewnętrznych narzędzi.

— Editorial Team

Advertisement 728x90

Czytaj dalej