ai.vostman.fi
← Tekoälysanasto

Tekoälyn tietosanakirja

Attention-mekanismi: tietoa kontekstista

Attention-mekanismi (attention) yhdistää tokenin esitykseen tietoa muista sijainneista. Verkko oppii hyödyllisiä yhteyksiä projektioilla, joita kutsutaan kyselyiksi (queries), avaimiksi (keys) ja arvoiksi (values): Q, K ja V.

Pisteytä, normalisoi, yhdistä

Kyselyä verrataan käytettävissä oleviin avaimiin. Skaalatussa pistetuloattentionissa vertailut ovat pistetuloja, jotka jaetaan kyselyn ulottuvuuden neliöjuurella. Softmax muuntaa pisteet epänegatiivisiksi painoiksi, joiden summa on yksi. Tulos on näillä painoilla muodostettu arvovektorien yhdistelmä.

Jos tokeni viittaa aiemmin mainittuun asiaan, mekanismi tarjoaa reitin tuoda tietoa aiemmasta sijainnista. Eri attention-päät voivat muodostaa erilaisia yhdistelmiä. Myöhemmät operaatiot yhdistävät ja muuntavat niiden tuloksia.

Yhden kausaalisen attention-pään sisällä

Tässä x sisältää tokenien vektorit ja kolme painomatriisia ovat opittuja parametreja. NumPy näyttää laskennan suoraan:

import numpy as np


def causal_attention(x, wq, wk, wv):
    q, k, v = x @ wq, x @ wk, x @ wv
    scores = q @ k.T / np.sqrt(q.shape[-1])
    scores[np.triu_indices(len(x), k=1)] = -np.inf
    scores -= scores.max(axis=-1, keepdims=True)
    weights = np.exp(scores)
    weights /= weights.sum(axis=-1, keepdims=True)
    return weights @ v

Kolmiomaski (causal mask) estää sijaintia käyttämästä tulevia tokeneja. Koko koulutussekvenssi voidaan näin käsitellä rinnakkain paljastamatta aiemmille kohdille niiden tavoitevastauksia. Rivin suurimman arvon vähentäminen tekee softmaxin laskennasta numeerisesti vakaata.

Palautetut vektorit voidaan syöttää Transformer-lohkon seuraaviin operaatioihin. Kokonaiset mallit käyttävät attention-operaatioiden ympärillä myös jäännösyhteyksiä, normalisointia ja eteenpäinkytkettyjä verkkoja.

Kun sijainteja on n, täysi attention käsittelee noin n² kysely–avainparia. Optimoidut toteutukset voivat välttää koko pistematriisin tallentamisen. KV-välimuisti säästää toistuvilta projektioilta generoinnin aikana, mutta jokainen uusi kysely lukee edelleen säilytettyä kontekstia.

Aiheeseen liittyvät: upotukset, Transformer, oma mallitoteutuksemme.

Lähteet