Hvordan fungerer ChatGPT egentlig?
ChatGPT er en chatbot baseret på en stor sprogmodel (enten GPT-3.5 eller GPT-4). Under motorhjelmen er ChatGPT et prætrænet neuralt netværk, der er blevet trænet på en imponerende mængde offentligt tilgængelige tekstdata fra internettet.
Denne enorme mængde data gør det muligt for modellen at lære mønstre, grammatik, kontekst og endda noget viden om sund fornuft, så den kan generere meningsfulde og sammenhængende svar på brugerforespørgsler. ChatGPT har en unik evne til at engagere sig i interaktive og dynamiske samtaler med brugerne, hvilket gør den til et lovende værktøj til en lang række applikationer.
Hvad er en stor sprogmodel?
Store sprogmodeller er AI-algoritmer, der bruger deep learning-teknikker kendt som naturlig sprogbehandling for at læse, forstå, generere og forudsige tekst.
Når du indtaster en prompt, søger modellen ikke efter svaret på internettet, den giver dig svaret ud af hovedet (selvom den ikke har noget hoved). Den genererer et svar et ord ad gangen og bestemmer hvert næste ord baseret på sandsynligheder udledt af de tekstdata, den blev trænet på, og den tekst, den har genereret indtil nu.
11 milliarder parametre: besvarelse af spørgsmål, aritmetik, sprogforståelse
Hvordan er det muligt? ChatGPT behøver ikke at søge efter information på internettet, for den ved allerede alt (næsten). Al den viden, der er tilgængelig på internettet, er inkorporeret i ChatGPT gennem dens 175 milliarder parametre.
62 milliarder parametre: oversættelse, sund fornuft, kodeudfyldning
Efterhånden som antallet af modelparametre stiger, opstår der nye evner i modellen, som ikke er designet af nogen med vilje.
540 milliarder parametre: logiske slutningskæder, mønstergenkendelse, læseforståelse
Sådan blev ChatGPT uddannet
ChatGPT blev trænet på hundredtusindvis af bøger, artikler, dialoger, herunder:
- WebText2 (et stort bibliotek med over 45 terabyte tekstdata)
- Cornell Movie Dialogs Corpus (et datasæt, der indeholder over 200.000 samtaler mellem 10.000 filmkarakterer i filmmanuskripter)
- Ubuntu Dialogue Corpus (en samling af 1.000.000 multi-turn dialoger mellem Ubuntu-brugere og fællesskabets supportteam)
- milliarder af kodelinjer fra GitHub
Først fik GPT lov til at behandle alle de data, den havde adgang til, uden menneskelig vejledning, så den uafhængigt kunne forstå de regler og forbindelser, der dikterer tekstens verden (det er det, der kaldes "unsupervised learning").
For at finjustere sprogmodellen blev der derefter anvendt en teknik kaldet forstærkningslæring med menneskelig feedback:
- Menneskelige trænere gennemførte samtaler, hvor de spillede begge sider - brugeren og en AI-assistent. De havde adgang til modelskrevne forslag til at hjælpe med at skrive svar. Modellen blev trænet ved hjælp af superviseret finjustering for at forudsige assistentens næste besked på baggrund af dialoghistorikken.
- For at skabe en belønningsmodel til forstærkningslæring blev der indsamlet sammenligningsdata. AI-trænere rangerede flere modelsvar efter kvalitet og overvejede ting som, om svaret gav mening, og om det var nyttigt. De udvalgte svar blev til et dialogdatasæt med nye modelskrevne beskeder.
- En belønningsmodel blev skabt ved hjælp af en teknik kaldet belønningsmodellering, hvor en model blev trænet til at forudsige kvaliteten af et svar baseret på de sammenligningsdata, der blev indsamlet i det foregående trin.
I sidste ende har ChatGPT lært, hvordan man svarer i enhver given situation, giver præcise og relevante svar og undgår potentielt skadelige emner.
Transformer-arkitektur
Træningsprocessen i ChatGPT involverer forudsigelse af det næste ord i en sætning på baggrund af de foregående ord. For at opnå dette anvendes en Transformer-arkitektur (T i ChatGPT står i øvrigt for Transformer), som består af lag af selvopmærksomhedsmekanismer. Selvopmærksomhed gør det muligt for modellen at vægte forskellige ord i en sætning baseret på deres vigtighed og relevans for at forudsige det næste ord nøjagtigt.
Ældre tilbagevendende neurale netværk (RNN'er) læser tekst fra venstre mod højre. Det fungerer godt, når relaterede ord står ved siden af hinanden, men det bliver en udfordring, når de står i hver sin ende af en sætning.
Når en RNN arbejdede med en tekst på én side, ville den derfor allerede midt i tredje afsnit "glemme", hvad der stod i begyndelsen.
I modsætning hertil er transformere i stand til at behandle hvert ord i en sætning samtidigt og sammenligne hvert ord med alle andre. Det gør dem i stand til at fokusere deres "opmærksomhed" på de mest relevante ord, uanset deres placering i inputsekvensen.
Tokenisering
Det er vigtigt at bemærke, at transformere ikke arbejder med individuelle ord (de kan ikke læse som mennesker). I stedet opdeles inputteksten i individuelle tokens, herunder ord, tegnsætningstegn og specielle tokens. Tokens i ChatGPT er tekststykker, der er repræsenteret som vektorer (tal med retning og position).
Token-vektorernes nærhed i rummet bestemmer deres associationsniveau: jo tættere de er, jo mere relaterede er de. Desuden er opmærksomhed kodet som en vektor, hvilket gør det muligt for transformerbaserede neurale netværk at fastholde vigtige oplysninger fra foregående dele af et afsnit.
Når en bruger interagerer med ChatGPT, modtager modellen samtalehistorikken som input, herunder både brugerprompts og modelgenererede svar. Inputtet bliver tokeniseret og derefter fodret ind i det neurale netværk. Hvert token er forbundet med en embedding, der repræsenterer dets betydning i samtalens kontekst.
GPT-3 blev trænet på ca. 500 milliarder tokens, hvilket gør det lettere for sprogmodellerne at tildele betydning og forudsige plausibel opfølgende tekst ved at kortlægge dem i vektorrummet. Mange ord bliver kortlagt som enkelte tokens, selvom længere eller mere komplekse ord ofte opdeles i flere tokens. I gennemsnit er tokens ca. fire tegn lange.
I inferensfasen, hvor modellen genererer svar, anvendes en proces, der kaldes autoregression. Det betyder, at modellen forudsiger ét ord ad gangen, mens den er betinget af samtalehistorikken og tidligere genererede ord. For at sikre, at den genererede respons er sammenhængende og relevant, anvendes teknikker som top-p sampling og temperaturskalering.
Kort sagt giver top-p-parameteren modellen en pulje af muligheder (tokens) at vælge imellem, mens temperaturen bestemmer sandsynligheden for at vælge et bestemt token. Når temperaturen er sat til 0, vil modellen kun vælge de mest "populære" tokens (ord, der oftest findes sammen i de tekstdata, ChatGPT blev trænet til):
Det er ikke altid godt. Højere temperaturer gør resultaterne mere forskelligartede:
Mere om ChatGPT-parametre: