Korleis fungerer eigentleg ChatGPT?
Samanlikna med det vi har sett frå kunstig intelligens-system før, er resultata til ChatGPT imponerande.
Kunstig intelligens-systemet ChatGPT har skapt furore dei siste vekene. Vi hiv oss på bølgja og prøver å forklare korleis det verkar ved hjelp av denne leieteksten (ein såkalla prompt på engelsk): Skriv eit kort dikt om fagre Stryn på nynorsk. Slik ser svaret ut:
«Fagre Stryn med fjell så høye,
Blå fjordar og grøne skoger,
Her finn du ro i sjela,
Og opplever naturen full av liv.
Stryn er ei perle ved fjorden,
Med sin vakre og storslåtte natur,
Her kan du nyte stillheita,
Og lade batteriane på ny.»
Vi overlèt diktanalysen til lesaren, men det må seiast at samanlikna med det vi har sett frå kunstig intelligens-system før, er resultatet imponerande. Den litt mystiske forkortinga GPT står for generative pre-trained transformer, og vi tek for oss meininga til desse tre orda.
Når ChatGPT lagar ein tekst, genererer han ytringar ut frå underliggjande språkstrukturar, men han lagar berre eitt ord om gongen. Han lèt leieteksten vere inndata til ein runde som genererer eitt ord. Det nye ordet vert lagt til, og prosessen vert gjenteken heilt til systemet har rekna ut ein avslutta tekst. Då vert det din tur til å skrive ein ny leietekst og slik kan du føre ein samtale med ChatGPT. Heile tida brukar han alt som har skjedd hittil i samtalen, til å rekne ut neste ord.
Det er slett ikkje slik vi menneske lagar tekstar. Vi går ikkje gjennom alt vi har skrive til no kvar gong vi skriv eit nytt ord. Vi tenkjer gjennom ordval og setningsbygning og justerer uttrykket ved å endre fleire ord i samspel. Vi veit at ting kan seiast på mange måtar, og ei lita endring i ordval kan gje stor endring i meininga til einskildord.
P-en i ChatGPT viser til at systemet er pre-trained, altså trena opp på førehand. Det nye ordet vert generert av ein djuplæringsmodell. Djuplæring er ei form for maskinlæring der den opplærte modellen opererer med mange parallelle lag med vektorar (lister av tal). Kvart av desse laga er ein ny representasjon av inndata («Skriv eit kort dikt...»), og målet er å få eit siste lag som gjer at ein kan rekne ut sannsyn for kva ord som passar best.
Læringa i djuplæringssystema er den tyngste jobben knytt til slike system. ChatGPT brukar velkjende teknikkar frå djuplæring, men dei store datamengdene gjer at dette kostar. Det er ikkje plass her til å gå meir inn i dette.
Djuplæringssystemet representerer ikkje eit ord ved hjelp av bokstavar, men som ein vektor med tusenvis av desimaltal mellom 0 og 1. ChatGPT brukar 12.288 tal. Kvart tal i denne meiningsvektoren representerer eit aspekt av det som kan tenkjast å vere meininga til ordet. Nærskylde ord har vektorar som ligg nær kvarandre.
For å handtere den enorme mengda med ord som finst, har ChatGPT teke i bruk det ein kallar eit vokabular. Dette vokabularet inneheld vanlege ord som «fjell», men ein vil måtte dele eit sjeldnare brukt ord i ordbitar som «still-heit-a» eller enkeltbokstavar som «S-t-r-y-n». Kvar ordbit, så vel som skiljeteikn, linjeskift og «avslutt-tekst»-teikn, har sin eigen meiningsvektor. Slik greier systemet seg med 40.000–50.000 ordbitar for å dekkje heile ordforrådet i eit språk. Systemet har lært seg koplinga frå ordbit til meiningsvektor som ein del av treningsprosessen.
Lat oss no sjå på kva som kan komme ut som ny ordbit når systemet har starta svaret «Fagre S». Det blir slik sidan ordet Stryn ikkje er med i vokabularet. Leieteksten som ChatGPT jobbar vidare med, blir då: «Skriv eit kort dikt om fagre Stryn på nynorsk. Fagre S». Vi veit alt at vi no skal få ein «t».
Dette fører oss til T-en i ChatGPT. Transformer viser til at systemet er bygt som det vi kallar eit omformarsystem med sjølvmerksemd. Den omformar ein tekst til eit nytt ord.
Modellen tek meiningsvektorane frå inndatateksten og går gjennom ein såkalla kodingsprosess. Meiningsvektorane for alle ordbitane vert endra slik at dei vert tilpassa til konteksten, det vil seie dei andre orda i leieteksten, samstundes som ein reknar ut kva for andre ord som har størst relevans for meininga til eit ord. Dette skjer med lag på lag av matrisemultiplikasjonar og såkalla aktiveringsfunksjonar, matematiske operasjonar som er viktige i all djuplæringsteknologi.
Det viktigaste som kjem ut av kodaren, er ei matrise, det vil seie ein vektor av vektorar. For kvart ord peikar matrisa ut kva andre ord i teksten som er viktige for meininga til det ordet. Kvart tal er altså ei kopling mellom to spesifikke ordbitar. Det er dette vi kallar sjølvmerksemd. Denne matrisa kan til dømes ha fått ein verdi nær 1,0 (maksimal relevans) mellom den siste S-en i leieteksten og S-en i ordbitane S-t-r-y-n, men også mellom den siste S-en og t-en i S-t-r-y-n. Denne merksemdsideen skil seg frå tidlegare system, som ofte tok for mykje omsyn til det førre ordet i teksten.
Merksemdsmatrisa vert send vidare til ein dekodingsprosess som òg inneber mange lag med djuplæringsoperasjonar. Systemet brukar same inndata, men her nyttar ein merksemdsmatrisa frå kodinga til å korrigere meininga til orda, samstundes med at ein reknar ut kva meiningsvektor den nye ordbiten skal ha. Denne meiningsvektoren vert så send vidare til eit vektorlag som reknar om til sannsyn for kvar av dei moglege ordbitane. Med denne leieteksten viser det seg at ordbiten «t» kjem ut.
Når ChatGPT litt seinare genererer ordet «blå» (som vi reknar med er i vokabularet), vert alle verdiane i merksemdsmatrisa ein del mindre enn 1,0. Assosiasjonane er ikkje så tydelege. Orda «dikt», «fagre» og «S-t-r-y-n» er nok viktige. Systemet har lært kva parametrar som skal brukast for å omforme teksten til «blå», og det kan vere basert på at «dikt» relativt ofte inneheld adjektiv som «blå», men òg at «blå» førekjem i tekstar med «S-t-r-y-n», til dømes i samband med isbrear. Systemet svarer at «blå» er det beste framhaldet, og når «Blå» først er generert, er «fjord» eit rimeleg framhald.
Det er mange grunnar til at ChatGPT er så god. Systemet har utnytta omtrent alt som finst av språkdata på internett i 2021 til å lære parametrane, det er blitt trena av menneskelege språkekspertar i å føre ein dialog, og det køyrer på ekstremt kraftige og parallelle datamaskiner med ein modell som inneheld 175 milliardar lærte parametrar i 96 lag.
Bjørnar Tessem og Lars Nyre
Er du abonnent? Logg på her for å lese vidare.
Digital tilgang til DAG OG TID – heilt utan binding
Prøv ein månad for kr 49.
Deretter kr 199 per månad. Stopp når du vil.
Kunstig intelligens-systemet ChatGPT har skapt furore dei siste vekene. Vi hiv oss på bølgja og prøver å forklare korleis det verkar ved hjelp av denne leieteksten (ein såkalla prompt på engelsk): Skriv eit kort dikt om fagre Stryn på nynorsk. Slik ser svaret ut:
«Fagre Stryn med fjell så høye,
Blå fjordar og grøne skoger,
Her finn du ro i sjela,
Og opplever naturen full av liv.
Stryn er ei perle ved fjorden,
Med sin vakre og storslåtte natur,
Her kan du nyte stillheita,
Og lade batteriane på ny.»
Vi overlèt diktanalysen til lesaren, men det må seiast at samanlikna med det vi har sett frå kunstig intelligens-system før, er resultatet imponerande. Den litt mystiske forkortinga GPT står for generative pre-trained transformer, og vi tek for oss meininga til desse tre orda.
Når ChatGPT lagar ein tekst, genererer han ytringar ut frå underliggjande språkstrukturar, men han lagar berre eitt ord om gongen. Han lèt leieteksten vere inndata til ein runde som genererer eitt ord. Det nye ordet vert lagt til, og prosessen vert gjenteken heilt til systemet har rekna ut ein avslutta tekst. Då vert det din tur til å skrive ein ny leietekst og slik kan du føre ein samtale med ChatGPT. Heile tida brukar han alt som har skjedd hittil i samtalen, til å rekne ut neste ord.
Det er slett ikkje slik vi menneske lagar tekstar. Vi går ikkje gjennom alt vi har skrive til no kvar gong vi skriv eit nytt ord. Vi tenkjer gjennom ordval og setningsbygning og justerer uttrykket ved å endre fleire ord i samspel. Vi veit at ting kan seiast på mange måtar, og ei lita endring i ordval kan gje stor endring i meininga til einskildord.
P-en i ChatGPT viser til at systemet er pre-trained, altså trena opp på førehand. Det nye ordet vert generert av ein djuplæringsmodell. Djuplæring er ei form for maskinlæring der den opplærte modellen opererer med mange parallelle lag med vektorar (lister av tal). Kvart av desse laga er ein ny representasjon av inndata («Skriv eit kort dikt...»), og målet er å få eit siste lag som gjer at ein kan rekne ut sannsyn for kva ord som passar best.
Læringa i djuplæringssystema er den tyngste jobben knytt til slike system. ChatGPT brukar velkjende teknikkar frå djuplæring, men dei store datamengdene gjer at dette kostar. Det er ikkje plass her til å gå meir inn i dette.
Djuplæringssystemet representerer ikkje eit ord ved hjelp av bokstavar, men som ein vektor med tusenvis av desimaltal mellom 0 og 1. ChatGPT brukar 12.288 tal. Kvart tal i denne meiningsvektoren representerer eit aspekt av det som kan tenkjast å vere meininga til ordet. Nærskylde ord har vektorar som ligg nær kvarandre.
For å handtere den enorme mengda med ord som finst, har ChatGPT teke i bruk det ein kallar eit vokabular. Dette vokabularet inneheld vanlege ord som «fjell», men ein vil måtte dele eit sjeldnare brukt ord i ordbitar som «still-heit-a» eller enkeltbokstavar som «S-t-r-y-n». Kvar ordbit, så vel som skiljeteikn, linjeskift og «avslutt-tekst»-teikn, har sin eigen meiningsvektor. Slik greier systemet seg med 40.000–50.000 ordbitar for å dekkje heile ordforrådet i eit språk. Systemet har lært seg koplinga frå ordbit til meiningsvektor som ein del av treningsprosessen.
Lat oss no sjå på kva som kan komme ut som ny ordbit når systemet har starta svaret «Fagre S». Det blir slik sidan ordet Stryn ikkje er med i vokabularet. Leieteksten som ChatGPT jobbar vidare med, blir då: «Skriv eit kort dikt om fagre Stryn på nynorsk. Fagre S». Vi veit alt at vi no skal få ein «t».
Dette fører oss til T-en i ChatGPT. Transformer viser til at systemet er bygt som det vi kallar eit omformarsystem med sjølvmerksemd. Den omformar ein tekst til eit nytt ord.
Modellen tek meiningsvektorane frå inndatateksten og går gjennom ein såkalla kodingsprosess. Meiningsvektorane for alle ordbitane vert endra slik at dei vert tilpassa til konteksten, det vil seie dei andre orda i leieteksten, samstundes som ein reknar ut kva for andre ord som har størst relevans for meininga til eit ord. Dette skjer med lag på lag av matrisemultiplikasjonar og såkalla aktiveringsfunksjonar, matematiske operasjonar som er viktige i all djuplæringsteknologi.
Det viktigaste som kjem ut av kodaren, er ei matrise, det vil seie ein vektor av vektorar. For kvart ord peikar matrisa ut kva andre ord i teksten som er viktige for meininga til det ordet. Kvart tal er altså ei kopling mellom to spesifikke ordbitar. Det er dette vi kallar sjølvmerksemd. Denne matrisa kan til dømes ha fått ein verdi nær 1,0 (maksimal relevans) mellom den siste S-en i leieteksten og S-en i ordbitane S-t-r-y-n, men også mellom den siste S-en og t-en i S-t-r-y-n. Denne merksemdsideen skil seg frå tidlegare system, som ofte tok for mykje omsyn til det førre ordet i teksten.
Merksemdsmatrisa vert send vidare til ein dekodingsprosess som òg inneber mange lag med djuplæringsoperasjonar. Systemet brukar same inndata, men her nyttar ein merksemdsmatrisa frå kodinga til å korrigere meininga til orda, samstundes med at ein reknar ut kva meiningsvektor den nye ordbiten skal ha. Denne meiningsvektoren vert så send vidare til eit vektorlag som reknar om til sannsyn for kvar av dei moglege ordbitane. Med denne leieteksten viser det seg at ordbiten «t» kjem ut.
Når ChatGPT litt seinare genererer ordet «blå» (som vi reknar med er i vokabularet), vert alle verdiane i merksemdsmatrisa ein del mindre enn 1,0. Assosiasjonane er ikkje så tydelege. Orda «dikt», «fagre» og «S-t-r-y-n» er nok viktige. Systemet har lært kva parametrar som skal brukast for å omforme teksten til «blå», og det kan vere basert på at «dikt» relativt ofte inneheld adjektiv som «blå», men òg at «blå» førekjem i tekstar med «S-t-r-y-n», til dømes i samband med isbrear. Systemet svarer at «blå» er det beste framhaldet, og når «Blå» først er generert, er «fjord» eit rimeleg framhald.
Det er mange grunnar til at ChatGPT er så god. Systemet har utnytta omtrent alt som finst av språkdata på internett i 2021 til å lære parametrane, det er blitt trena av menneskelege språkekspertar i å føre ein dialog, og det køyrer på ekstremt kraftige og parallelle datamaskiner med ein modell som inneheld 175 milliardar lærte parametrar i 96 lag.
Bjørnar Tessem og Lars Nyre
Fleire artiklar
Dyrlegen kjem
Joachim Cooder er kjend som perkusjonist frå fleire utgivingar saman med opphavet, Ry Cooder.
Foto: Amanda Charchian
Motellet til drøymaren
Joachim Cooder opnar dørene til sju musikalske rom.
Det kjæraste eg har? Min ser ikkje slik ut, men eg er ganske glad i han, ja.
Foto via Wikimedia Commons
Smørbutten min får du nok aldri
Ei flygande badstove skal få ny heim, sit det nokon inni alt?
Foto: Maren Bø
Badstovene tek av
Det er interessant korleis badstove inne kan vere så ut, mens badstove ute er så in.
Morgonfrisk fersking
«Ein kan kjenna seg frisk og sterk, vera åndsfrisk eller endåtil frisk som ein fisk, friskna til, verta frisk att frå sjukdomen og heilt friskmeld.»