Hur fungerar ChatGPT egentligen?
ChatGPT är en chatbot baserad på en stor språkmodell (antingen GPT-3.5 eller GPT-4). Under huven är ChatGPT ett förtränat neuralt nätverk som har tränats på en imponerande mängd offentligt tillgängliga textdata från internet.
Denna enorma mängd data gör det möjligt för modellen att lära sig mönster, grammatik, sammanhang och till och med lite sunt förnuft, så att den kan generera meningsfulla och sammanhängande svar på användarens frågor. ChatGPT har den unika förmågan att delta i interaktiva och dynamiska konversationer med användare, vilket gör den till ett lovande verktyg för ett brett spektrum av tillämpningar.
Vad är en stor språkmodell?
Stora språkmodeller är AI-algoritmer som använder djupinlärningstekniker som kallas naturlig språkbehandling för att läsa, förstå, generera och förutsäga text.
När du skriver in en fråga söker modellen inte efter svaret på Internet, den ger dig svaret direkt ur huvudet (även om den inte har något huvud). Den genererar ett svar ett ord i taget och bestämmer varje nästa ord baserat på sannolikheter som härrör från de textdata som den tränades på och den text som den har genererat hittills.
11 miljarder parametrar: svar på frågor, aritmetik, språkförståelse
Hur är det möjligt? Jo, ChatGPT behöver inte söka information på Internet, eftersom den redan vet allt (eller nästan allt). All kunskap som finns tillgänglig på Internet införlivas i ChatGPT genom dess 175 miljarder parametrar.
62 miljarder parametrar: översättning, resonemang med sunt förnuft, kodkomplettering
När antalet modellparametrar ökar uppstår nya förmågor i modellen som inte avsiktligt utformats av någon.
540 miljarder parametrar: logiska slutledningskedjor, mönsterigenkänning, läsförståelse
Hur ChatGPT utbildades
ChatGPT tränades på hundratusentals böcker, artiklar och dialoger, inklusive
- WebText2 (ett stort bibliotek med över 45 terabyte textdata)
- Cornell Movie Dialogs Corpus (ett dataset som innehåller över 200 000 konversationer mellan 10 000 filmkaraktärer i filmmanus)
- Ubuntu Dialogue Corpus (en samling av 1 000 000 dialoger mellan Ubuntu-användare och supportteamet)
- miljarder rader kod från GitHub
Först fick GPT bearbeta all data den hade tillgång till utan mänsklig vägledning, vilket gjorde det möjligt för den att självständigt förstå de regler och kopplingar som dikterar textområdet (det är vad som kallas "oövervakad inlärning").
För att finjustera språkmodellen användes sedan en teknik som kallas förstärkningsinlärning med mänsklig feedback:
- Mänskliga AI-utbildare genomförde konversationer där de spelade båda sidor - användaren och en AI-assistent. De hade tillgång till modellskrivna förslag som hjälp för att formulera svar. Modellen tränades med hjälp av övervakad finjustering för att förutsäga assistentens nästa meddelande med tanke på dialoghistoriken.
- För att skapa en belöningsmodell för förstärkningsinlärning samlades jämförelsedata in. AI-tränare rankade flera modellsvar efter kvalitet, med hänsyn till saker som om svaret var meningsfullt och om det var till hjälp. De utvalda svaren blev en dialogdatauppsättning med nya modellskrivna meddelanden.
- En belöningsmodell skapades med hjälp av en teknik som kallas belöningsmodellering, där en modell tränades för att förutsäga kvaliteten på ett svar baserat på de jämförelsedata som samlats in i föregående steg.
I slutändan har ChatGPT lärt sig hur man svarar i alla givna situationer, ger exakta och relevanta svar och undviker potentiellt skadliga ämnen.
Transformer-arkitektur
Träningsprocessen för ChatGPT går ut på att förutsäga nästa ord i en mening med hjälp av de föregående orden. För att uppnå detta används en Transformer-arkitektur (T i ChatGPT står för övrigt för Transformer), som består av lager av mekanismer för självuppmärksamhet. Självuppmärksamhet gör det möjligt för modellen att väga olika ord i en mening baserat på deras betydelse och relevans för att förutsäga nästa ord korrekt.
Äldre återkommande neurala nätverk (RNN) läser text från vänster till höger. Detta fungerar bra när relaterade ord ligger intill varandra, men det blir en utmaning när de ligger i motsatta ändar av en mening.
När en RNN arbetade med en text på en sida skulle den därför redan i mitten av det tredje stycket ha "glömt" vad som stod i början.
Transformers kan däremot bearbeta varje ord i en mening samtidigt och jämföra varje ord med alla andra. Detta gör det möjligt för dem att fokusera sin "uppmärksamhet" på de mest relevanta orden, oavsett deras position i inmatningssekvensen.
Tokenisering
Det är viktigt att notera att transformatorns språkmodeller inte arbetar med enskilda ord (de kan inte läsa som människor). Istället delas inmatningstexten upp i enskilda tokens, inklusive ord, skiljetecken och speciella tokens. Tokens i ChatGPT är textbitar som representeras som vektorer (siffror med riktning och position).
Token-vektorernas närhet i rummet avgör deras associationsnivå: ju närmare de är, desto mer relaterade är de. Dessutom kodas uppmärksamhet som en vektor, vilket gör det möjligt för transformatorbaserade neurala nätverk att behålla viktig information från tidigare delar av ett stycke.
När en användare interagerar med ChatGPT får modellen konversationshistoriken som indata, inklusive både användarens uppmaningar och modellgenererade svar. Inmatningen tokeniseras och matas sedan in i det neurala nätverket. Varje token associeras med en inbäddning som representerar dess betydelse i konversationens sammanhang.
GPT-3 tränades på ungefär 500 miljarder tokens, vilket gör att språkmodellerna lättare kan tilldela betydelse och förutsäga trolig efterföljande text genom att kartlägga dem i vektorrymden. Många ord mappas till enstaka tokens, men längre eller mer komplexa ord bryts ofta ned till flera tokens. I genomsnitt är tokens ungefär fyra tecken långa.
Under inferensfasen, där modellen genererar svar, används en process som kallas autoregression. Det innebär att modellen förutspår ett ord i taget samtidigt som den tar hänsyn till konversationshistoriken och tidigare genererade ord. För att säkerställa att det genererade svaret är sammanhängande och relevant används tekniker som top-p sampling och temperaturskalning.
I korthet ger top-p-parametern modellen en pool av alternativ (tokens) att välja mellan, medan temperaturen bestämmer sannolikheten för att välja en viss token. När temperaturen är inställd på 0 kommer modellen endast att välja de mest "populära" tokens (ord som oftast förekommer tillsammans i de textdata som ChatGPT tränades för):
Det är inte alltid bra. Högre temperaturer gör resultaten mer varierande:
Mer om ChatGPT-parametrar: