Kako ChatGPT dejansko deluje?
ChatGPT je klepetalni robot, ki temelji na velikem jezikovnem modelu (GPT-3.5 ali GPT-4). Pod pokrovom ChatGPT je vnaprej usposobljena nevronska mreža, ki je bila usposobljena na impresivni količini javno dostopnih besedilnih podatkov iz interneta.
Ta velika količina podatkov omogoča, da se model nauči vzorcev, slovnice, konteksta in celo nekaj znanja zdravega razuma, kar mu omogoča ustvarjanje smiselnih in skladnih odgovorov na poizvedbe uporabnikov. ChatGPT ima edinstveno sposobnost, da se z uporabniki interaktivno in dinamično pogovarja, zato je obetavno orodje za številne aplikacije.
Kaj je velik jezikovni model
Veliki jezikovni modeli so algoritmi umetne inteligence, ki za branje, razumevanje, ustvarjanje in napovedovanje besedila uporabljajo tehnike globokega učenja, znane kot obdelava naravnega jezika.
Ko vnesete vprašanje, model ne poišče odgovora na internetu, temveč vam ga ponudi iz glave (čeprav glave nima). Odgovor ustvari po eno besedo naenkrat in vsako naslednjo besedo določi na podlagi verjetnosti, ki izhajajo iz besedilnih podatkov, na katerih je bil usposobljen, in besedila, ki ga je ustvaril do zdaj.
11 milijard parametrov: odgovarjanje na vprašanja, aritmetika, razumevanje jezika
Kako je to mogoče? Aplikaciji ChatGPT ni treba iskati informacij po internetu, saj že vse ve (no, skoraj vse). Vse znanje, ki je na voljo na internetu, je vključeno v ChatGPT prek 175 milijard parametrov.
62 milijard parametrov: prevajanje, sklepanje po zdravi pameti, dopolnjevanje kode
S povečevanjem števila parametrov modela se v modelu pojavljajo nove zmožnosti, ki jih nihče ni namerno zasnoval.
540 milijard parametrov: logične verige sklepanja, prepoznavanje vzorcev, razumevanje branja
Kako je bil ChatGPT usposobljen
ChatGPT je bil usposobljen za več sto tisoč knjig, člankov, dialogov, vključno z:
- WebText2 (velika knjižnica z več kot 45 terabajti besedilnih podatkov)
- Cornell Movie Dialogs Corpus (nabor podatkov, ki vsebuje več kot 200 000 pogovorov med 10 000 filmskimi liki v filmskih scenarijih)
- korpus dialogov Ubuntu (zbirka 1 000 000 večpredstavnostnih dialogov med uporabniki Ubuntuja in ekipo za podporo skupnosti)
- milijarde vrstic kode iz GitHuba
Najprej je GPT lahko obdelal vse podatke, do katerih je imel dostop, brez človeškega vodenja, kar mu je omogočilo samostojno razumevanje predpisov in povezav, ki narekujejo področje besedila (temu se reče "nenadzorovano učenje").
Nato je bila za natančno prilagoditev jezikovnega modela uporabljena tehnika, imenovana okrepljeno učenje s povratnimi informacijami od človeka (RLHF):
- Človeški trenerji umetne inteligence so vodili pogovore, v katerih so igrali obe strani - uporabnika in pomočnika z umetno inteligenco. Pri sestavljanju odgovorov so imeli na voljo predloge, napisane na podlagi modela. Model je bil usposobljen z nadzorovanim natančnim prilagajanjem za napovedovanje naslednjega sporočila asistenta glede na zgodovino dialoga.
- Za oblikovanje modela nagrajevanja za učenje z okrepitvijo so bili zbrani primerjalni podatki. Trenerji umetne inteligence so razvrstili več odzivov modela po kakovosti, pri čemer so upoštevali stvari, kot sta smiselnost odgovora in njegova koristnost. Izbrani odgovori so postali nabor podatkov o dialogu z novimi sporočili, napisanimi z modelom.
- Model nagrajevanja je bil ustvarjen s tehniko, imenovano modeliranje nagrajevanja, pri kateri je bil model usposobljen za napovedovanje kakovosti odziva na podlagi primerjalnih podatkov, zbranih v prejšnjem koraku.
Na koncu se je ChatGPT naučil, kako se odzvati v vsaki dani situaciji, dajati natančne in ustrezne odgovore ter se izogniti potencialno škodljivim temam.
Arhitektura Transformer
Proces usposabljanja ChatGPT vključuje napovedovanje naslednje besede v stavku glede na prejšnje besede. V ta namen se uporablja arhitektura Transformer (mimogrede, T v ChatGPT pomeni Transformer), ki je sestavljena iz plasti mehanizmov samopozornosti. Samopozornost omogoča modelu, da pretehta različne besede v stavku glede na njihovo pomembnost in ustreznost ter tako natančno napove naslednjo besedo.
Starejše rekurentne nevronske mreže (RNN) berejo besedilo od leve proti desni. To se dobro obnese, kadar so sorodne besede v neposredni bližini, postane pa zahtevno, kadar so na nasprotnih koncih stavka.
Kadar RNN dela z enostranskim besedilom, bi torej do sredine tretjega odstavka že "pozabil", kaj je bilo na samem začetku.
Nasprotno pa lahko transformatorji hkrati obdelajo vsako besedo v stavku in vsako besedo primerjajo z vsemi drugimi. To jim omogoča, da svojo "pozornost" usmerijo na najpomembnejše besede, ne glede na njihov položaj v vhodnem zaporedju.
Tokenizacija
Pomembno je opozoriti, da transformatorji ne delujejo na posameznih besedah (ne znajo brati kot ljudje). Namesto tega vhodno besedilo razdelijo na posamezne žetone, vključno z besedami, ločili in posebnimi žetoni. Žetoni v ChatGPT so kosi besedila, ki so predstavljeni kot vektorji (števila s smerjo in položajem).
Bližina token-vektorjev v prostoru določa raven njihove povezanosti: bližje kot so si, bolj so povezani. Poleg tega je pozornost kodirana kot vektor, kar nevronskim mrežam, ki temeljijo na transformatorjih, omogoča, da ohranijo ključne informacije iz predhodnih delov odstavka.
Ko uporabnik komunicira z aplikacijo ChatGPT, model prejme zgodovino pogovora kot vhodni podatek, vključno z uporabniškimi pozivi in odgovori, ki jih generira model. Vhodni podatki se označijo in nato prenesejo v nevronsko mrežo. Vsakemu žetonu je pripisana vgradnja, ki predstavlja njegov pomen v kontekstu pogovora.
GPT-3 je bil usposobljen na približno 500 milijardah žetonov, kar jezikovnim modelom omogoča lažje dodeljevanje pomena in napovedovanje verjetnega nadaljnjega besedila z njihovim preslikavanjem v vektorski prostor. Mnoge besede so prikazane kot posamezni žetoni, čeprav se daljše ali bolj zapletene besede pogosto razdelijo na več žetonov. V povprečju so žetoni dolgi približno štiri znake.
V fazi sklepanja, ko model ustvarja odgovore, se uporablja postopek, znan kot avtoregresija. To pomeni, da model napoveduje po eno besedo naenkrat, pri tem pa je odvisen od zgodovine pogovora in predhodno ustvarjenih besed. Da bi zagotovili, da je ustvarjeni odziv skladen in ustrezen, se uporabljajo tehnike, kot sta top-p vzorčenje in temperaturno skaliranje.
Skratka, parameter top-p daje modelu nabor možnosti (žetonov), med katerimi lahko izbira, temperatura pa določa verjetnost izbire določenega žetona. Če je temperatura nastavljena na 0, bo model izbral le najbolj "priljubljene" žetone (besede, ki se najpogosteje pojavljajo skupaj v besedilnih podatkih, za katere je bil ChatGPT usposobljen):
To ni vedno odlično. Zaradi višjih temperatur so rezultati bolj raznoliki:
Več o parametrih ChatGPT: