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.