Det kan virke som at språkmodeller som ChatGPT forstår ord og begreper på en menneskelig måte, men under overflaten er alt ren matematikk. For å forstå hvordan slike modeller faktisk representerer betydning, må vi se på hvordan språk oversettes til tall, og hvordan disse tallene kan manipuleres for å avdekke sammenhenger mellom ord. I denne teksten utforsker vi hvordan ord blir til vektorer i høydimensjonale rom, og hvordan vi kan visualisere og bruke disse representasjonene til å avdekke modellens “forståelse” av språk.
Disse modellene, på lik linje med alle datamaskiner, jobber kun med tall. Det vil si at dersom vi går ut ifra at språkmodeller faktisk forstår betydningen av ord, så må denne "forståelsen" være representerbar via tall.
Språkmodeller har en innebygd embedding-tabell, som er en tabell som knytter hvert ord til en vektor. Denne vektoren er ikke 2- eller 3-dimensjonal, den består derimot av et svært høyt antall dimensjoner. Modellen jeg har brukt, "embeddinggemma", har så mye som 768 dimensjoner. Alt språkmodellene i utgangspunktet vet om et ord, ligger i disse vektorene.
Hvis vi tar et 3D objekt, og skjærer en uendelig tynn skive av den, så kan vi tenke at vi får et 2-dimensjonalt objekt. Ved å bruke samme prinsipp kan vi ta et 4D objekt, ta et tverrsnitt og få et 3D objekt, eller eventuelt, en 768-dimensjonal vektor og ta et tverrsnitt for å få en 3D vektor. Vi kan bruke denne 3D-representasjonen fra språkmodellen for å visualisere "betydningen" til ord.
Se noen eksempler på ord og hvordan tverrsnittet kan se ut.
Du kan se at hvert ord peker i en retning. Denne retningen sier noe om hvordan språkmodellen forstår ordet.
Nøyaktig hva hver av de 768 dimensjonene forteller modellen om et ord er vanskelig å si, men som et tankeeksperiment kan vi forestille oss at hver dimensjon representerer en konkret egenskap. For eksempel, en retning i dette rommet kan være hvor "norsk" noe er. Så hvis vi tar ordet "ski" vil den komponenten av vektoren være stor. På lik måte er det kanskje en retning i dette rommet som spesifiserer om noe er maskulint eller feminint.
Siden vi har en måte å hente en slags definisjon på ord som benytter seg av tall, kan vi bruke vektormatte til å finne sammenhenger. Se for deg at på en eller annen måte har jeg glemt ordet for en kongelig person som er kvinne. Men tilfeldigvis husker jeg vektorene til mann, kvinne og konge, da kan jeg gjøre følgende utregning: $$ v_{konge} - v_{mann} + v_{kvinne} $$ Dersom jeg regner ut hva denne totalen blir bør det peke i omtrent samme retning som ordet jeg leter etter. Vektormatematikk sier at å addere to vektorer er det samme som å sette den ene etter den andre. Og subtraksjon fungerer på samme måte, bare at du snur den den negative vektoren rundt først. Se visuell utregning her:
- Først starter vi med vektoren som representerer "konge"
- Deretter setter vi det negative av mann, dette vil være synonymt med å trekke mann fra konge
- Deretter setter vi vektoren for kvinne på resultatet av det.
Den rosa vektoren representerer det som bør tilsvare dronning, la oss sammenligne med den faktiske vektoren til dronning:
- Den rosa pilen er konge - mann + kvinne.
- Den hvite pilen er den vektoren som representerer dronning.
Som du kan se er den beregnede vektoren og den faktiske vektoren for dronning ganske like. Dette er det klassiske eksempelet for å vise hvordan en språkmodell tolker ord. Det at vektorene ikke er helt lik er et tegn på at modellen har en nogenlunde "dypere" forståelse av enten ordet "dronning" eller ett- eller flere av ordene vi adderte for å lage dronningkopien (den rosa vektoren).
Dette illustrerer hvordan språkmodeller representerer ord som posisjoner i et rom hvor hver retning definerer betydning. Ved å operere på disse representasjonene med matematikk, kan modellen avdekke strukturer og relasjoner som minner om menneskelig begrepsforståelse.
Selv om vi ikke fullt ut kan tolke hva hver dimensjon betyr, gir slike visualiseringer et glimt inn i hvordan språk faktisk organiseres internt i modellen. Det viser at mye av det som fremstår som “forståelse” i praksis er et resultat av geometriske mønstre i høydimensjonale rom.
Med andre ord: Når språkmodeller arbeider med ord, arbeider de egentlig med retninger.