Kā faktiski darbojas ChatGPT?
ChatGPT ir tērzēšanas robots, kura pamatā ir liels valodas modelis (GPT-3.5 vai GPT-4). ChatGPT ir iepriekš apmācīts neironu tīkls, kas ir apmācīts, izmantojot iespaidīgu daudzumu publiski pieejamu teksta datu no interneta.
Šis milzīgais datu apjoms ļauj modelim apgūt modeļus, gramatiku, kontekstu un pat dažas veselā saprāta zināšanas, kas ļauj tam ģenerēt jēgpilnas un saskaņotas atbildes uz lietotāja vaicājumiem. ChatGPT ir unikāla spēja iesaistīties interaktīvās un dinamiskās sarunās ar lietotājiem, padarot to par daudzsološu rīku visdažādākajiem lietojumiem.
Kas ir lielais valodas modelis
Lieli valodas modeļi ir mākslīgā intelekta algoritmi, kas izmanto dziļas mācīšanās metodes, pazīstamas kā dabiskās valodas apstrāde, lai lasītu, saprastu, ģenerētu un prognozētu tekstu.
Kad ievadāt uzvedni, modelis nemeklē atbildi internetā, bet sniedz atbildi no galvas (lai gan tam nav galvas). Tas ģenerē atbildi pa vienam vārdam, nosakot katru nākamo vārdu, pamatojoties uz varbūtībām, kas iegūtas no teksta datiem, uz kuriem tas tika apmācīts, un līdz šim ģenerētā teksta.
11 miljardi parametru: atbilžu sniegšana uz jautājumiem, aritmētika, valodas izpratne
Kā tas ir iespējams? ChatGPT nav nepieciešams meklēt informāciju internetā, jo tā jau visu zina (gandrīz visu). Visas internetā pieejamās zināšanas ir iekļautas ChatGPT, izmantojot 175 miljardus parametru.
62 miljardi parametru: tulkošana, veselā saprāta spriešana, koda papildināšana
Palielinoties modeļa parametru skaitam, modelī parādās jaunas spējas, kuras neviens nav mērķtiecīgi izstrādājis.
540 miljardi parametru: loģisko secinājumu ķēdes, modeļu atpazīšana, lasīšanas izpratne
Kā tika apmācīts ChatGPT
ChatGPT tika apmācīts par simtiem tūkstošu grāmatu, rakstu, dialogu, tostarp:
- WebText2 (liela bibliotēka ar vairāk nekā 45 terabaitiem teksta datu).
- Cornell Movie Dialogs Corpus (datu kopa, kas satur vairāk nekā 200 000 sarunu starp 10 000 filmu varoņiem filmu scenārijos).
- Ubuntu Dialogu korpuss (1 000 000 vairākkārtēju dialogu kolekcija starp Ubuntu lietotājiem un kopienas atbalsta komandu).
- miljardiem kodu rindu no GitHub
Pirmkārt, GPT tika ļauts apstrādāt visus datus, kas tam bija pieejami, bez cilvēka norādījumiem, ļaujot tam patstāvīgi saprast noteikumus un sakarības, kas nosaka teksta sfēru (to sauc par "neuzraudzītu mācīšanos").
Pēc tam, lai precizētu valodas modeli, tika izmantota metode, ko sauc par pastiprinātas mācīšanās ar cilvēka atsauksmēm:
- Cilvēki AI treneri vadīja sarunas, kurās viņi spēlēja abas puses - gan lietotāju, gan AI asistentu. Viņiem bija pieejami modeļa rakstīti ieteikumi, kas palīdzēja veidot atbildes. Modelis tika apmācīts, izmantojot uzraudzītu precizēšanu, lai, ņemot vērā dialoga vēsturi, prognozētu asistenta nākamo ziņojumu.
- Lai izveidotu atlīdzības modeli pastiprinājuma mācīšanai, tika apkopoti salīdzināšanas dati. Mākslīgā intelekta treneri novērtēja vairākas modeļa atbildes pēc kvalitātes, ņemot vērā, piemēram, vai atbilde ir jēgpilna un vai tā ir noderīga. Atlasītās atbildes kļuva par dialoga datu kopu ar jauniem modeļa rakstītiem ziņojumiem.
- Atlīdzības modelis tika izveidots, izmantojot tehniku, ko sauc par atlīdzības modelēšanu, kurā modelis tika apmācīts, lai prognozētu atbildes kvalitāti, pamatojoties uz iepriekšējā posmā savāktajiem salīdzināšanas datiem.
Rezultātā ChatGPT ir iemācījies, kā reaģēt jebkurā konkrētā situācijā, sniegt precīzas un atbilstošas atbildes un izvairīties no potenciāli kaitīgām tēmām.
Transformatora arhitektūra
ChatGPT apmācības process ietver nākamā vārda teikumā paredzēšanu, ņemot vērā iepriekšējos vārdus. Lai to panāktu, tiek izmantota Transformatora arhitektūra (starp citu, T ChatGPT apzīmē Transformatoru), kas sastāv no pašpievēršanas mehānismu slāņiem. Pašpievēršanās ļauj modelim izsvērt dažādus vārdus teikumā, pamatojoties uz to svarīgumu un nozīmi, lai precīzi prognozētu nākamo vārdu.
Vecāki rekurentie neironu tīkli (RNN) lasa tekstu no kreisās puses uz labo. Lai gan tas darbojas labi, ja saistītie vārdi atrodas blakus, tas kļūst sarežģīti, ja tie atrodas pretējos teikuma galos.
Tāpēc, strādājot ar vienas lappuses tekstu, RNN jau trešās rindkopas vidū "aizmirsīs", kas bija pašā sākumā.
Turpretī transformatori spēj vienlaikus apstrādāt katru vārdu teikumā un salīdzināt katru vārdu ar visiem pārējiem. Tas ļauj tiem koncentrēt "uzmanību" uz būtiskākajiem vārdiem neatkarīgi no to atrašanās vietas ievades secībā.
Tokenizācija
Ir svarīgi atzīmēt, ka transformatori nedarbojas ar atsevišķiem vārdiem (tie nevar lasīt kā cilvēki). Tā vietā ievades teksts tiek sadalīts atsevišķos žetonos, tostarp vārdos, pieturzīmēs un īpašos žetonos. Žetoni ChatGPT ir teksta gabali, kas attēloti kā vektori (skaitļi ar virzienu un pozīciju).
Žetonu-vektoru tuvums telpā nosaka to saistības līmeni: jo tuvāk tie atrodas, jo tie ir radniecīgāki. Turklāt uzmanība tiek kodēta kā vektors, kas ļauj uz transformatoru balstītiem neironu tīkliem saglabāt būtisku informāciju no iepriekšējām rindkopas daļām.
Kad lietotājs mijiedarbojas ar ChatGPT, modelis kā ievaddatus saņem sarunu vēsturi, tostarp gan lietotāja pamudinājumus, gan modeļa ģenerētās atbildes. Ieejas dati tiek tokenizēti un pēc tam ievadīti neironu tīklā. Katram simbolam tiek piešķirta iestrādne, kas atspoguļo tā nozīmi sarunas kontekstā.
GPT-3 tika apmācīts, izmantojot aptuveni 500 miljardus žetonu, kas ļauj tā valodas modeļiem vieglāk piešķirt nozīmi un prognozēt ticamus turpmākos tekstus, kartējot tos vektoru telpā. Daudzi vārdi ir attēloti kā atsevišķi žetoni, taču garāki vai sarežģītāki vārdi bieži vien sadalās vairākos žetonos. Vidēji žetoni ir aptuveni četras rakstzīmes gari.
Secinājumu izdarīšanas posmā, kad modelis ģenerē atbildes, tiek izmantots process, kas pazīstams kā autoregresija. Tas nozīmē, ka modelis prognozē pa vienam vārdam, vienlaikus ņemot vērā sarunas vēsturi un iepriekš ģenerētos vārdus. Lai nodrošinātu, ka ģenerētā atbilde ir konsekventa un atbilstoša, tiek izmantotas tādas metodes kā top-p izlase un temperatūras mērogošana.
Īsāk sakot, top-p parametrs dod modelim iespēju (žetonu) kopumu, no kura izvēlēties, savukārt temperatūra nosaka konkrēta žetona izvēles varbūtību. Ja temperatūra ir iestatīta uz 0, modelis izvēlēsies tikai "populārākos" žetonus (vārdus, kas visbiežāk sastopami kopā teksta datos, no kuriem tika apmācīts ChatGPT):
Tas ne vienmēr ir lieliski. Augstāka temperatūra padara rezultātus daudzveidīgākus:
Vairāk par ChatGPT parametriem: