ai.vostman.fi
← Tekoälysanasto

Tekoälyn tietosanakirja

Eteenpäinkytketyt verkot: laskentaa tokenin sisällä

Transformerissa eteenpäinkytketty verkko (feed-forward network, FFN) muuntaa yleensä kunkin tokenin vektoria erikseen. Attention-mekanismi yhdistää tietoa sijaintien välillä; FFN soveltaa opittua epälineaarista laskentaa kunkin sijainnin esitykseen.

Saman kerroksen FFN-painoja käytetään jokaiselle tokenille. Yhteiset painot eivät tarkoita samoja tuloksia: laskentaan tulee erilaisia tokeniesityksiä.

Laajenna, portita ja projisoi takaisin

Tavallinen portitettu muunnelma SwiGLU lähettää syötteen kahta projektiota pitkin leveämpään avaruuteen. SiLU muuntaa toisen haaran, joka kerrotaan alkioittain toisella. Kolmas matriisi projisoi tuloksen alkuperäiseen leveyteen.

Tämä NumPy-funktio ottaa tokenirivejä, joiden leveys on d. Portti- ja laajennusmatriisit ovat muotoa d × h ja supistusmatriisi h × d. Vakiotermit on jätetty pois.

import numpy as np

def swiglu(x, gate, up, down):
    projected = x @ gate
    activated = projected / (1 + np.exp(-projected))
    return (activated * (x @ up)) @ down

Väliulottuvuuden leveys antaa lohkolle enemmän yhdisteltäviä epälineaarisia piirteitä. Portitetussa lohkossa on kolme painomatriisia tavallisen laajenna–aktivoi–supista-verkon kahden sijaan. Siksi arkkitehtuureissa säädetään usein piiloleveyttä parametrimäärän pitämiseksi vertailukelpoisena.

Toistuva laskenta on merkittävä osa työtä

Jokainen aktiivinen token käyttää muunnosta jokaisessa sitä soveltavassa kerroksessa. FFN:t muodostavat siksi huomattavan osan monien kielimallien parametreista ja laskennasta, vaikka ne eivät itse vertaa tokenisijainteja.

Asiantuntijamalli voi korvata yhden yhteisen FFN:n valituilla asiantuntijaverkoilla. Se muuttaa tokenille käytettävät parametrit mutta säilyttää eron sijaintien välisen attention-laskennan ja sijaintikohtaisen muunnoksen välillä.

Lähteet