Attention-mekanismit: miten tekoäly päättää, mikä on tärkeää
Kehitys, jota kukaan ei nähnyt tulevaksi
Vuonna 2017 julkaistu artikkeli "Attention Is All You Need" muutti tekoälyä merkittävästi. Ei mullistavan uuden matematiikan avulla, vaan yksinkertaisen ajatuksen kautta: annetaan mallin päättää, mikä on tärkeää.
Huomiointi. Se kuulostaa abstraktilta, mutta on itse asiassa yksinkertaista. Se mahdollisti ChatGPT:n, kuvageneraattorit ja kaiken nykyaikaisen tekoälyn, jota käytät.
Huomioinnin ymmärtäminen auttaa ymmärtämään nykyaikaista tekoälyä. Puretaan se osiin.
Ongelma, jonka huomiointi ratkaisee
Vanha tekoäly (rekursiiviset verkot) käsitteli syötteitä peräkkäin. Sana sanalta. Ylläpitäen piilotilaa. Tieto kulki lineaarisesti.
Ongelma: pitkät sekvenssit heikkenivät. Alun tiedot haalistuivat loppua kohden. Malli "unohti" varhaisen kontekstin. Tämä rajoitti tekoälyn mahdollisuuksia.
Huomiointi ratkaisi tämän. Yksinkertainen konsepti: tarkastellaan kaikkia syötteitä samanaikaisesti. Määritetään, mitkä osat ovat merkityksellisiä millekin tulosteelle. Painotetaan niitä sen mukaisesti.
Ei peräkkäistä käsittelyä. Ei tiedon heikkenemistä. Täysi konteksti aina saatavilla. Vallankumouksellista.
Mitä huomiointi oikeastaan tekee
Huomiointi on painotettua keskiarvoa. Siinä kaikki.
Sinulla on syötteitä. Haluat käsitellä yhtä niistä. Mutta oikea tapa käsitellä sitä riippuu kaikista muista syötteistä. Huomiointi selvittää, kuinka paljon kukin syöte vaikuttaa nykyisen käsittelyyn.
Esimerkki: kääntäminen
Käännetään "The cat sat on the mat" ranskaksi. Kun käännetään sanaa "sat", mitkä englanninkieliset sanat ovat merkityksellisimpiä?
"The" vaikuttaa vähän (sukupuoli). "Cat" vaikuttaa paljon (subjekti). "Sat" vaikuttaa eniten (itse sana). "On" vaikuttaa jonkin verran (konteksti). Muut vähemmän.
Huomiointi laskee nämä painot. Sitten se yhdistää syötteet painojen mukaisesti. Painotettu keskiarvo antaa parhaan esityksen sanan "sat" kääntämiseen.
Tee tämä jokaiselle sanalle. Jokaisella kerroksella. Sitä huomiointi on.
Näin huomiointi oikeasti toimii
Kolme vaihetta: Query, Key, Value. Kuulostaa monimutkaiselta. Ei ole.
Vaihe 1: luo kyselyt, avaimet ja arvot
Luo jokaiselle syötteelle kolme vektoria:
- Query: "Mitä etsin?"
- Key: "Mitä tarjoan?"
- Value: "Tässä on varsinainen tietoni"
Nämä ovat vain syötteen lineaarisia muunnoksia. Matriisikertolaskuja. Ei mitään hienoa.
Vaihe 2: laske huomiointipainot
Vertaa jokaista kyselyä kaikkiin avaimiin. Pistetulo mittaa samankaltaisuutta. Samankaltainen kysely ja avain = korkea pistemäärä. Eriävät = matala pistemäärä.
Sovella softmaxia. Muuttaa pistemäärät todennäköisyyksiksi. Nyt sinulla on huomiointipainot. Niiden summa on 1.
Vaihe 3: arvojen painotettu keskiarvo
Käytä huomiointipainoja arvojen keskiarvon laskemiseen. Korkea paino = enemmän vaikutusta. Matala paino = vähemmän vaikutusta.
Tulos: uusi esitys jokaiselle syötteelle, joka on saanut vaikutteita kaikista muista syötteistä ja painotettu merkityksellisyyden mukaan.
Tämä on huomio. Kyselyavaimen samankaltaisuus määrittää painot. Painot yhdistävät arvot. Siinä se.
Itsestään huomiointi vs. ristiinhuomiointi
Kahdenlainen huomio palvelee eri tarkoituksia:
Itsestään huomiointi:
Syötteet huomioivat itseään. Jokainen sana tarkastelee kaikkia muita sanoja samassa lauseessa. Määrittää, mitkä sanat ovat merkityksellisiä kunkin sanan ymmärtämiselle.
Esimerkki: "Eläin ei ylittänyt katua, koska se oli liian väsynyt." Mihin "se" viittaa? Itsestään huomiointi selvittää tämän kiinnittämällä voimakkaasti huomiota sanaan "eläin".
Ristiinhuomiointi:
Yksi sekvenssi huomioi toista. Käännöksessä: ranskan sanat huomioivat englannin sanoja. Kuvatekstityksessä: kuvatekstin sanat huomioivat kuvan alueita.
Eri sekvenssit. Kyselyt yhdestä, avaimet ja arvot toisesta. Yhdistää eri modaliteetteja tai kieliä.
Monipäinen huomio (useita näkökulmia)
Yksi huomiopää = yksi näkökulma. Monipäinen = useita näkökulmia samanaikaisesti.
Sen sijaan, että olisi yksi joukko kyselyitä/avaimia/arvoja, luodaan useita joukkoja. Jokainen pää oppii erilaisia kaavoja.
Pää 1 saattaa oppia syntaktisia suhteita (subjekti-verbi). Pää 2 saattaa oppia semanttisia suhteita (sanojen merkitykset). Pää 3 saattaa oppia paikkakohtaisia kaavoja.
Yhdistä kaikki päät. Nyt sinulla on useita näkökulmia samoihin syötteisiin. Rikkaampi esitys. Parempi ymmärrys.
Transformers käyttää tyypillisesti 8-16 päätä. Jokainen pää on 1/8 tai 1/16 koko mallin ulottuvuuden koosta. Laskennallinen kustannus pysyy hallittavana.
Laskennallinen kustannus
Huomio on tehokas. Myös kallis.
Monimutkaisuus: O(n²)
Jokainen syöte huomioi jokaista muuta syötettä. Kun syötteitä on n, vertailuja on n². Neliöllinen monimutkaisuus.
Kaksinkertaista sekvenssin pituus, nelinkertaista laskenta. Tämän vuoksi konteksti-ikkunat ovat rajallisia. Ei vain muistin takia. Laskenta räjähtää.
Esimerkki:
1 000 tokenia: 1 miljoona operaatiota
10 000 tokenia: 100 miljoonaa operaatiota
100 000 tokenia: 10 miljardia operaatiota
Huomio on pullonkaula pitkille konteksteille. Erilaiset tekniikat (harva huomio, lineaarinen huomio) yrittävät ratkaista tämän. Parhaimmillaankin osittaisia ratkaisuja.
Miksi huomio muutti kaiken
Ennen huomiota: peräkkäinen käsittely, rajallinen konteksti, tiedon heikkeneminen.
Huomion jälkeen: rinnakkainen käsittely, täysi konteksti, ei heikkenemistä.
Tämä mahdollisti:
- Paremmat kielimallit: Voivat ymmärtää pitkiä dokumentteja. Ei kontekstirajaa peräkkäisestä käsittelystä. BERT, GPT, kaikki käyttävät huomiota.
- Parempi käännös: Voi kiinnittää huomion olennaisiin lähdekielen sanoihin. Riippumatta siitä, kuinka kaukana ne ovat. Laatu parani huomattavasti.
- Vision Transformers: Huomio toimii kuvan paloilla. Kilpailukykyinen CNN:ien kanssa monissa tehtävissä. Yhtenäinen arkkitehtuuri näölle ja kielelle.
- Multimodaaliset mallit: Teksti huomioi kuvia. Kuvat huomioivat tekstiä. Modaliteettien välinen ymmärrys. CLIP, DALL-E, kaikki käyttävät huomiota.
Huomio on modernin tekoälyn perusta. Kaikki rakentuu sen varaan.
Huomio Dweven arkkitehtuurissa
Perinteinen attention perustuu liukulukuihin. Kalliita. Mutta konsepti soveltuu myös rajoitteisiin perustuviin järjestelmiin.
PAP (Permuted Agreement Popcount):
Meidän versionsi attentionista binäärisille kuvioille. Pistetulojen sijaan käytämme XNOR:ia ja popcountia. Softmaxin sijaan käytämme tilastollisia rajoja.
Sama konsepti: määritä, mitkä kuviot ovat merkityksellisiä. Erilainen toteutus: binäärioperaatiot liukulukujen sijaan.
Tulos: attentionin kaltainen valinta murto-osalla laskentakustannuksista. Mitkä asiantuntijat ovat olennaisia? PAP määrittää tämän. Tehokkaasti.
Mitä Sinun Tulee Muistaa
- 1. Attention on painotettua keskiarvoa. Määritä merkityksellisyys, painota syötteet sen mukaan, yhdistä. Yksinkertainen konsepti, tehokkaat tulokset.
- 2. Query-Key-Value-mekanismi. Query kysyy, Keyt vastaavat, Valuet tarjoavat tietoa. Samankaltaisuus määrittää painot.
- 3. Itseattention vs. ristiaattention. Itse: syötteet kohdistavat huomion itseensä. Risti: yksi sekvenssi kohdistaa huomion toiseen.
- 4. Monipäinen rakenne vangitsee useita näkökulmia. Eri päät oppivat erilaisia kuvioita. Yhdistettynä ne tarjoavat rikkaan ymmärryksen.
- 5. Laskentakustannus on O(n²). Neliöllinen kompleksisuus rajoittaa kontekstin pituutta. Pullonkaula pitkille sekvensseille.
- 6. Attention mahdollisti modernin tekoälyn. Transformers, GPT, BERT, vision transformers. Kaikki rakennettu attentionin varaan.
- 7. Binäärisiä vaihtoehtoja on olemassa. PAP tarjoaa attentionin kaltaisen valinnan binäärioperaatioilla. Sama konsepti, erilainen toteutus.
Lopputulos
Attention on viime vuosikymmenen tärkein tekoälyinnovaatio. Yksinkertainen idea: anna mallin päättää, mikä on merkityksellistä. Syvällinen vaikutus: mahdollisti jokaisen modernin tekoälyjärjestelmän, jota käytät.
Se ei ole taikuutta. Se on painotettua keskiarvoa, joka perustuu opittuun samankaltaisuuteen. Query-key-vastaavuus määrittää painot. Painot yhdistävät arvot. Toista jokaiselle syötteelle, jokaiselle kerrokselle.
Laskentakustannus on todellinen. O(n²) rajoittaa sekvenssien pituutta. Mutta näiden rajojen sisällä attention tarjoaa ennennäkemättömän kyvyn ymmärtää kontekstia.
Attentionin ymmärtäminen tarkoittaa modernin tekoälyarkkitehtuurin ymmärtämistä. Kaikki muu rakentuu tämän perustan varaan. Hallitse tämä, ja loput käyvät järkeen.
Haluatko tehokasta attentionin kaltaista valintaa? Tutustu Dweven PAP-mekanismiin. Binääristä kuvioiden täsmäytystä tilastollisilla rajoilla. Asiantuntijavalinta murto-osalla perinteisen attentionin kustannuksista. Sellaista relevanssin määritystä, joka toimii suuressa mittakaavassa.