Hvordan fungerer ChatGPT egentlig?
ChatGPT er en chatbot basert på en stor språkmodell (enten GPT-3.5 eller GPT-4). Under panseret er ChatGPT et forhåndstrenet nevralt nettverk som er trent på en imponerende mengde offentlig tilgjengelige tekstdata fra Internett.
Denne enorme datamengden gjør det mulig for modellen å lære seg mønstre, grammatikk, kontekst og til og med sunn fornuft, slik at den kan generere meningsfulle og sammenhengende svar på brukernes spørsmål. ChatGPT har en unik evne til å engasjere seg i interaktive og dynamiske samtaler med brukerne, noe som gjør den til et lovende verktøy for et bredt spekter av bruksområder.
Hva er en stor språkmodell?
Store språkmodeller er AI-algoritmer som bruker dyplæringsteknikker, kjent som naturlig språkbehandling, for å lese, forstå, generere og forutsi tekst.
Når du skriver inn et spørsmål, søker ikke modellen etter svaret på Internett, den gir deg svaret på stående fot (selv om den ikke har noe hode). Den genererer et svar ord for ord, og bestemmer hvert neste ord basert på sannsynligheter utledet fra tekstdataene den ble trent på og teksten den har generert så langt.
11 milliarder parametere: besvarelse av spørsmål, aritmetikk, språkforståelse
Hvordan er det mulig? ChatGPT trenger ikke å søke etter informasjon på Internett, for den vet allerede alt (nesten). All kunnskapen som er tilgjengelig på Internett, er innlemmet i ChatGPT gjennom de 175 milliarder parametrene.
62 milliarder parametere: oversettelse, sunn fornuft, fullføring av kode
Etter hvert som antallet modellparametere øker, dukker det opp nye evner i modellen som ingen har designet med vilje.
540 milliarder parametere: logiske slutningskjeder, mønstergjenkjenning, leseforståelse
Hvordan ChatGPT ble opplært
ChatGPT ble trent på hundretusener av bøker, artikler og dialoger, inkludert:
- WebText2 (et stort bibliotek med over 45 terabyte tekstdata)
- Cornell Movie Dialogs Corpus (et datasett som inneholder over 200 000 samtaler mellom 10 000 filmkarakterer i filmmanus)
- Ubuntu Dialogue Corpus (en samling av 1 000 000 dialoger mellom Ubuntu-brukere og supportteamet)
- milliarder av kodelinjer fra GitHub
Først fikk GPT lov til å behandle alle dataene den hadde tilgang til uten menneskelig veiledning, slik at den selv kunne forstå reglene og sammenhengene som dikterer tekstens verden (det er det som kalles "unsupervised learning").
For å finjustere språkmodellen ble det deretter brukt en teknikk som kalles forsterkningslæring med menneskelig tilbakemelding:
- Menneskelige AI-trenere gjennomførte samtaler der de spilte begge sider - brukeren og en AI-assistent. De hadde tilgang til modellskrevne forslag som hjelp til å komponere svar. Modellen ble trent ved hjelp av overvåket finjustering for å forutsi assistentens neste melding på bakgrunn av dialoghistorikken.
- For å lage en belønningsmodell for forsterkningslæring ble det samlet inn sammenligningsdata. AI-trenere rangerte flere modellsvar etter kvalitet, blant annet med tanke på om svaret ga mening og om det var nyttig. De utvalgte svarene ble til et dialogdatasett med nye modellskrevne meldinger.
- En belønningsmodell ble opprettet ved hjelp av en teknikk som kalles belønningsmodellering, der en modell ble trent opp til å forutsi kvaliteten på et svar basert på sammenligningsdataene som ble samlet inn i forrige trinn.
Til slutt har ChatGPT lært hvordan man skal svare i en gitt situasjon, gi presise og relevante svar og unngå potensielt skadelige emner.
Transformer-arkitektur
Opplæringsprosessen i ChatGPT går ut på å forutsi det neste ordet i en setning basert på de foregående ordene. For å oppnå dette brukes en Transformer-arkitektur (T i ChatGPT står for øvrig forkortelse for Transformer), som består av lag med selvoppmerksomhetsmekanismer. Selvoppmerksomhet gjør det mulig for modellen å vekte ulike ord i en setning basert på deres viktighet og relevans for å forutsi neste ord nøyaktig.
Eldre tilbakevendende nevrale nettverk (RNN) leser tekst fra venstre mot høyre. Selv om dette fungerer bra når beslektede ord står ved siden av hverandre, blir det utfordrende når de står i hver sin ende av en setning.
Når en RNN arbeider med en tekst på én side, vil den derfor allerede i midten av tredje avsnitt "glemme" hva som sto i begynnelsen.
I motsetning til dette er transformatorer i stand til å prosessere hvert ord i en setning samtidig og sammenligne hvert ord med alle andre. Dette gjør dem i stand til å rette "oppmerksomheten" mot de mest relevante ordene, uavhengig av hvor de befinner seg i inputsekvensen.
Tokenisering
Det er viktig å merke seg at transformatorer ikke opererer på enkeltord (de kan ikke lese som mennesker). I stedet deles inndatateksten opp i individuelle tokens, inkludert ord, skilletegn og spesielle tokens. Tokens i ChatGPT er tekstbiter representert som vektorer (tall med retning og posisjon).
Token-vektorers nærhet i rommet bestemmer graden av assosiasjon: Jo nærmere de er, desto mer beslektet er de. Videre kodes oppmerksomhet som en vektor, noe som gjør det mulig for transformatorbaserte nevrale nettverk å beholde viktig informasjon fra tidligere deler av et avsnitt.
Når en bruker samhandler med ChatGPT, mottar modellen samtalehistorikken som input, inkludert både brukerens spørsmål og modellgenererte svar. Inndataene tokeniseres og mates deretter inn i det nevrale nettverket. Hvert token er assosiert med en "embedding" som representerer betydningen i konteksten av samtalen.
GPT-3 ble trent på rundt 500 milliarder tokens, noe som gjør det enklere for språkmodellene å tilordne mening og forutsi plausibel oppfølgingstekst ved å kartlegge dem i vektorrommet. Mange ord mappes til enkle tokens, men lengre eller mer komplekse ord deles ofte opp i flere tokens. I gjennomsnitt er tokens omtrent fire tegn lange.
I inferensfasen, der modellen genererer svar, brukes en prosess som kalles autoregresjon. Det betyr at modellen predikerer ett ord om gangen, samtidig som den tar hensyn til samtalehistorikken og tidligere genererte ord. For å sikre at den genererte responsen er sammenhengende og relevant, brukes teknikker som top-p sampling og temperaturskalering.
Kort fortalt gir top-p-parameteren modellen et utvalg av alternativer (tokens) å velge mellom, mens temperaturen bestemmer sannsynligheten for å velge et bestemt token. Når temperaturen er satt til 0, velger modellen bare de mest "populære" symbolene (ord som oftest forekommer sammen i tekstdataene ChatGPT ble trent på):
Det er ikke alltid like bra. Høyere temperaturer gir mer varierte resultater:
Mer om ChatGPT-parametrene: