Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Transformer-pohjaiset generatiiviset mallit | Teoreettiset Perusteet
Syvät Generatiiviset Mallit Pythonilla

Transformer-pohjaiset generatiiviset mallit

Pyyhkäise näyttääksesi valikon

Johdatus transformereihin ja itsehuomioon

Transformerit ovat keskeinen arkkitehtuuri modernissa tekoälyssä, erityisesti luonnollisen kielen käsittelyssä (NLP) ja generatiivisessa mallinnuksessa. Ensimmäisen kerran ne esiteltiin artikkelissa "Attention is All You Need" (Vaswani et al., 2017), jossa transformerit luopuvat toistosta ja käyttävät sen sijaan mekanismia nimeltä itsehuomio (self-attention), jonka avulla malli voi tarkastella kaikkia syötteen osia samanaikaisesti.

Itsehuomiomekanismi

Itsehuomiomekanismi mahdollistaa mallin arvioida eri tokenien merkitystä suhteessa toisiinsa sekvenssissä. Tämä tehdään käyttämällä kolmea matriisia, jotka johdetaan syöteupotuksista:

  • Query (Q);
  • Key (K);
  • Value (V).

Huomion (attention) tulos lasketaan seuraavasti:

Attention(Q,K,V)=softmax(QKTdk)V\text{Attention}(Q, K, V) = \text{softmax} \left( \frac{QK^T}{\sqrt{d_k}} \right)V

Missä:

  • QQ, KK ja VV ovat syötteestä johdettuja matriiseja.
  • dkd_k on avainvektorien dimensio.
  • softmax\text{softmax} muuntaa samankaltaisuuspisteet todennäköisyyksiksi.

Tämän ansiosta jokainen token voi kiinnittää huomiota kaikkiin muihin tokeneihin ja mukauttaa omaa esitystään niiden perusteella.

Yleiskatsaus transformer-arkkitehtuuriin

Transformeri

Transformer-malli koostuu pinoitetuista kooderi- ja dekooderikerroksista:

  • Kooderi muuntaa syötteen kontekstuaaliseksi latentiksi esitykseksi;
  • Dekooderi tuottaa ulostulotokenit hyödyntäen kooderin tuottamaa esitystä ja aiempia tokeneita.

Jokainen kerros sisältää:

  • Monipäinen itsehuomio (Multi-Head Self-Attention);
  • Syötteestä ulostuloon etenevät neuroverkot (Feedforward Neural Networks);
  • Kerroksen normalisointi (Layer Normalization);
  • Jäännösyhteydet (Residual Connections).

Monipäinen itsehuomio

Monipäinen huomiointi

Sen sijaan, että laskettaisiin vain yksi huomiointifunktio, transformer käyttää useita huomiointipäitä. Jokainen pää oppii keskittymään eri osiin sekvenssiä.

Multi-Head(Q,K,V)=Concat(head1,head2,...,headn)W0\text{Multi-Head}(Q, K, V) = \text{Concat}(\text{head}_1, \text{head}_2, ... , \text{head}_n)W^0

Missä kukin pää lasketaan seuraavasti:

headi=Attention(QWiQ,KWiK,VWiV)\text{head}_i = \text{Attention}(QW_i^Q, KW_i^K, VW_i^V)

Missä:

  • WiQ,WiK,WiVW_i^Q, W_i^K, W_i^V ovat kyselyiden, avainten ja arvojen projektiomatriiseja;
  • W0W^0 projisoi yhdistetyt päät takaisin alkuperäiseen ulottuvuuteen.

Syötteestä syötteeseen -neuroverkot

Jokainen transformer-lohko sisältää sijaintikohtaisen syötteestä syötteeseen -verkon, joka sovelletaan itsenäisesti jokaiseen sijaintiin:

FFN(x)=ReLU(xW1+b1)W2+b2\text{FFN}(x) = \text{ReLU}(x W_1 + b_1)W_2 + b_2
  • Koostuu kahdesta lineaarisesta kerroksesta, joiden välissä on epälineaarisuus (esim. ReLU);
  • Soveltaa samaa muunnosta kaikkiin sijainteihin.

Kerrosnormalisointi

Kerrosnormalisointi normalisoi syötteen ominaisuuksien (kanavien) yli erän sijaan. Se vakauttaa koulutusta ja parantaa konvergenssia:

LayerNorm(x)=xμσγ+β\text{LayerNorm}(x) = \frac{x - \mu}{\sigma} \cdot \gamma + \beta

Missä:

  • μ\mu on ominaisuuksien keskiarvo;
  • σ\sigma on keskihajonta;
  • γ\gamma ja β\beta ovat opittavia parametreja.

Jäännösyhteydet

Jäännösyhteydet lisäävät jokaisen alikerroksen syötteen sen ulostuloon:

Output=Layer(x)+x\text{Output} = \text{Layer}(x) + x
  • Auttaa gradientin kulussa ja mahdollistaa syvempien mallien koulutuksen;
  • Käytetään sekä itsehuomio- että syötteenläpilaskukerrosten ympärillä.

Vain dekooderia käyttävissä malleissa (kuten GPT) käytetään vain dekooderia kausaalisella (peitetyllä) itsehuomiolla.

Generatiiviset esikoulutetut muuntajamallit (GPT)

GPT-mallit ovat vain dekooderia käyttäviä muuntajamalleja, jotka on koulutettu ennustamaan seuraava merkki autoregressiivisesti:

P(x1,x2,...,xn)=t=1nP(xtx<t)P(x_1,x_2,...,x_n)=\prod_{t=1}^n{P(x_t|x_{<t})}

Keskeiset ominaisuudet:

  • Koulutettu laajamittaisilla tekstiaineistoilla;
  • Pystyy tuottamaan johdonmukaista ja monipuolista tekstiä;
  • Laajasti käytössä sovelluksissa, kuten keskustelubotit ja koodin generointi.

BERT ja peitetty kielimallinnus

BERT (Bidirectional Encoder Representations from Transformers) käyttää ainoastaan enkooderia. Se opetetaan peitetyllä kielimallinnuksella (MLM):

  • Satunnaiset tokenit korvataan [MASK]-merkillä;
  • Malli ennustaa alkuperäisen tokenin koko kontekstin perusteella.
P(xix1,...,xi1,[MASK],xi+1,...,xn)P(x_i | x_1, ..., x_{i-1}, [\text{MASK}], x_{i+1}, ..., x_n)

Tämän ansiosta BERT soveltuu hyvin tehtäviin kuten luokittelu, kysymys-vastaus ja semanttinen samankaltaisuus.

Transformerit ja LLM:t

Transformerit muodostavat perustan suurille kielimalleille (LLM), kuten GPT-3, GPT-4, PaLM, LLaMA ja Claude.

LLM:t hyödyntävät suuria aineistoja ja satoja miljardeja parametreja, mikä mahdollistaa:

  • Ihmiskielen ymmärtämisen ja tuottamisen;
  • Käännökset, tiivistelmät, kysymys-vastaus, päättely;
  • Chatbotit, dokumenttianalyysit ja koodausavustajat.

Transformereiden skaalautuvuus ja kyky mallintaa pitkän kantaman riippuvuuksia tekevät niistä ihanteellisia näihin malleihin.

1. Mikä on transformereiden keskeisin innovaatio?

2. Mikä erottaa BERT:n GPT:stä?

3. Miksi transformerit ovat ihanteellisia LLM-malleille?

question mark

Mikä on transformereiden keskeisin innovaatio?

Valitse oikea vastaus

question mark

Mikä erottaa BERT:n GPT:stä?

Valitse oikea vastaus

question mark

Miksi transformerit ovat ihanteellisia LLM-malleille?

Valitse oikea vastaus

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 8

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Osio 2. Luku 8
some-alt