Kaip iš tikrųjų veikia ChatGPT?
"ChatGPT" yra pokalbių robotas, pagrįstas dideliu kalbos modeliu (GPT-3.5 arba GPT-4). "ChatGPT" yra iš anksto apmokytas neuroninis tinklas, kuris buvo apmokytas naudojant įspūdingą kiekį viešai prieinamų teksto duomenų iš interneto.
Šis didžiulis duomenų kiekis leidžia modeliui išmokti šablonų, gramatikos, konteksto ir net tam tikrų sveiko proto žinių, todėl jis gali kurti prasmingus ir nuoseklius atsakymus į naudotojo užklausas. ChatGPT turi unikalią galimybę įsitraukti į interaktyvius ir dinamiškus pokalbius su vartotojais, todėl yra perspektyvi priemonė, tinkama įvairioms taikomosioms programoms.
Kas yra didelės kalbos modelis
Dideli kalbos modeliai - tai dirbtinio intelekto algoritmai, kurie naudoja gilaus mokymosi metodus, vadinamus natūralios kalbos apdorojimu, kad perskaitytų, suprastų, sukurtų ir nuspėtų tekstą.
Kai įvedate užklausą, modelis neieško atsakymo internete, o pateikia atsakymą iš galvos (nors jis neturi galvos). Jis generuoja atsakymą po vieną žodį, kiekvieną kitą žodį nustatydamas pagal tikimybes, išvestas iš teksto duomenų, pagal kuriuos jis buvo apmokytas, ir iki šiol sugeneruoto teksto.
11 milijardų parametrų: atsakymai į klausimus, aritmetika, kalbos supratimas
Kaip tai įmanoma? "ChatGPT" nereikia ieškoti informacijos internete, nes ji jau viską žino (na, beveik viską). Visos internete prieinamos žinios yra įtrauktos į ChatGPT per 175 mlrd. parametrų.
62 mlrd. parametrų: vertimas, sveikas protas, kodo pildymas
Didėjant modelio parametrų skaičiui, modelyje atsiranda naujų gebėjimų, kurių niekas specialiai nenumatė.
540 mlrd. parametrų: loginių išvadų grandinės, modelių atpažinimas, skaitymo supratimas
Kaip buvo apmokyta ChatGPT
"ChatGPT" buvo apmokyta iš šimtų tūkstančių knygų, straipsnių, dialogų, įskaitant:
- WebText2 (didelė daugiau nei 45 terabaitų teksto duomenų biblioteka)
- Kornelio filmų dialogų korpusas (duomenų rinkinys, kuriame yra daugiau kaip 200 000 pokalbių tarp 10 000 filmų personažų iš filmų scenarijų)
- "Ubuntu" dialogų korpusas (1 000 000 daugialypių dialogų tarp "Ubuntu" naudotojų ir bendruomenės palaikymo komandos rinkinys)
- milijardai kodo eilučių iš "GitHub
Pirma, GPT buvo leista apdoroti visus jai prieinamus duomenis be jokių žmogaus nurodymų, kad ji galėtų savarankiškai suvokti taisykles ir ryšius, kurie lemia teksto sritį (tai vadinama "neprižiūrimu mokymusi").
Tuomet kalbos modeliui tikslinti buvo pritaikytas metodas, vadinamas mokymusi pastiprinant su žmogaus grįžtamuoju ryšiu:
- Žmogaus dirbtinio intelekto instruktoriai vedė pokalbius, kuriuose vaidino abi puses - naudotoją ir dirbtinio intelekto asistentą. Jie turėjo galimybę naudotis modelio parašytais pasiūlymais, kurie padėjo sudaryti atsakymus. Modelis buvo apmokytas naudojant prižiūrimą tikslinimą, kad, atsižvelgiant į dialogo istoriją, būtų galima nuspėti kitą asistento pranešimą.
- Siekiant sukurti atlygio modelį, skirtą mokymuisi pastiprinant, buvo renkami palyginimo duomenys. Dirbtinio intelekto instruktoriai įvertino kelis modelio atsakymus pagal kokybę, atsižvelgdami į tokius dalykus kaip tai, ar atsakymas buvo prasmingas ir ar jis buvo naudingas. Atrinkti atsakymai tapo dialogo duomenų rinkiniu su naujomis modelio parašytomis žinutėmis.
- Apdovanojimo modelis buvo sukurtas taikant metodą, vadinamą apdovanojimo modeliavimu, kai modelis buvo apmokytas prognozuoti atsakymo kokybę remiantis ankstesniame etape surinktais palyginimo duomenimis.
Galiausiai "ChatGPT" išmoko, kaip reaguoti bet kurioje situacijoje, pateikti tikslius ir tinkamus atsakymus ir išvengti galimai žalingų temų.
Transformatoriaus architektūra
"ChatGPT" mokymo procesas apima kito sakinio žodžio nuspėjimą, atsižvelgiant į ankstesnius žodžius. Šiam tikslui pasiekti naudojama transformatoriaus architektūra (beje, ChatGPT raidė T reiškia transformatorių), kurią sudaro savęs įsidėmėjimo mechanizmų sluoksniai. Savarankiškas dėmesys leidžia modeliui įvertinti skirtingus sakinio žodžius pagal jų svarbą ir tinkamumą, kad būtų galima tiksliai nuspėti kitą žodį.
Senesni pasikartojantys neuroniniai tinklai (RNN) skaito tekstą iš kairės į dešinę. Nors tai gerai veikia, kai susiję žodžiai yra greta, tampa sudėtinga, kai jie yra priešinguose sakinio galuose.
Todėl, kai RNN dirba su vieno puslapio tekstu, įpusėjus trečiajai pastraipai ji jau "pamiršta", kas buvo pačioje pradžioje.
Priešingai, transformatoriai gali vienu metu apdoroti kiekvieną sakinio žodį ir palyginti kiekvieną žodį su visais kitais. Tai leidžia jiems sutelkti dėmesį į svarbiausius žodžius, neatsižvelgiant į jų padėtį įvesties sekoje.
Tokenizacija
Svarbu pažymėti, kad transformatoriai neveikia atskirų žodžių (jie negali skaityti kaip žmonės). Vietoj to įvesties tekstas suskirstomas į atskirus žymenis, įskaitant žodžius, skyrybos ženklus ir specialiuosius žymenis. Žetonai ChatGPT yra teksto dalys, pateikiamos kaip vektoriai (skaičiai su kryptimi ir padėtimi).
Ženklų-vektorių artumas erdvėje lemia jų susiejimo lygį: kuo jie arčiau, tuo labiau susiję. Be to, dėmesys koduojamas kaip vektorius, todėl transformatoriais grindžiami neuroniniai tinklai gali išsaugoti svarbią informaciją iš ankstesnių pastraipos dalių.
Kai naudotojas sąveikauja su "ChatGPT", modelis kaip įvesties duomenis gauna pokalbio istoriją, įskaitant naudotojo užklausas ir modelio sukurtus atsakymus. Įvesties duomenys yra žymimi ženklais ir tada perduodami neuroniniam tinklui. Kiekvienas simbolis susiejamas su įterpiniu, kuris atspindi jo reikšmę pokalbio kontekste.
GPT-3 buvo apmokytas iš maždaug 500 mlrd. ženklų, todėl kalbos modeliai, atvaizduodami juos vektorinėje erdvėje, gali lengviau priskirti reikšmę ir numatyti tikėtiną tolesnį tekstą. Daugelis žodžių atvaizduojami kaip atskiri ženklai, tačiau ilgesni ar sudėtingesni žodžiai dažnai suskaidomi į kelis ženklus. Vidutiniškai ženklai yra maždaug keturių ženklų ilgio.
Išvadų darymo etape, kai modelis generuoja atsakymus, naudojamas autoregresijos procesas. Tai reiškia, kad modelis prognozuoja po vieną žodį, kartu nustatydamas sąlygą pagal pokalbio istoriją ir anksčiau sugeneruotus žodžius. Siekiant užtikrinti, kad sugeneruoti atsakymai būtų nuoseklūs ir tinkami, naudojami tokie metodai kaip top-p atranka ir temperatūrinis mastelis.
Trumpai tariant, parametras top-p suteikia modeliui galimybę rinktis iš kelių variantų (žetonų), o temperatūra lemia tikimybę pasirinkti tam tikrą žetoną. Kai temperatūra lygi 0, modelis rinksis tik "populiariausius" žetonus (žodžius, kurie dažniausiai kartu sutinkami teksto duomenyse, iš kurių buvo išmokytas ChatGPT):
Tai ne visada yra puiku. Dėl aukštesnės temperatūros rezultatai tampa įvairesni:
Daugiau apie ChatGPT parametrus: