Imagine generată cu DALL*E

ChatGPT este softul de inteligență artificială care a adus realmente inteligența artificială în centrul discursului public. Diverși cercetători din domeniu și celebrități diverse au semnat recent o scrisoare în care, în esență, indică pericolele inteligenței artificiale pentru specia umană și îndeamnă la reglementare și o pauză în cercetare. În plus, în ultimele luni au apărut multiple articole în care se arată că milioane de locuri de muncă din diverse domenii vor fi pierdute ca urmare a progreselor realizate de ChatGPT.

Dar cum funcționează ChatGPT de este considerat atât de periculos?

Notă: Articolul de față reprezintă o serie de extrase și prelucrări ale unui lung text publicat recent de Stephen Wolfram, intitulat What is ChatGPT doing and why does it work.

Înainte de a trece efectiv la textul articolului menționat, iată o scurtă prezentare a ChatGPT:
ChatGPT scrie text prin adăugarea unui cuvânt pe care-l consideră o „continuare rezonabilă” pentru textul scris până la un moment dat.
Softul nu lucrează efectiv cu cuvinte, ci cu tokenuri (care reprezintă cuvinte (precum „casă”) sau părți de cuvinte (precum „anti”)). Aceste tokenuri sunt, în fapt, valori numerice (de exemplu, cuvântul „casă” poate primi valoarea 1.234), valori stabilite după anumite criterii (printre care frecvența utilizării), atribuite tuturor cuvintelor dintr-o limbă.
•  Deși următorul cuvânt, pe măsură ce scrie text, se bazează pe probabilități (atașate fiecărui token, pe baza a ceea ce „învățat” softul), un parametru denumit „temperatură” permite o variație a termenilor și a frazelor scrise (în sensul că la aceeași întrebare, ChatGPT nu va scrie același text la nesfârșit).
ChatGPT se folosește de 175 de miliarde de parametri, setați  de programatori, parametri folosiți în stabilirea probabilităților pentru termenii ce ar putea urma în scrierea de text.
Rețeaua neuronală folosită pentru a genera fiecare token de ieșire este o rețea pură de tip „feed-forward”, fără bucle.
ChatGPT folosește „încorporarea” (eng. embedding) pentru a genera propoziții cu sens. Acest concept se referă la efortul de a așeza cuvinte într-un fel de spațiu de sens, cuvintele care sunt apropiate ca sens fiind situate în apropiere. Cum se stabilesc aceste spații de sens? Prin analizarea volumelor mari de text.
Un alt concept fundamental în succesul ChatGPT se numește „transformer”, care se referă, în fapt, la o arhitectură simplă de rețea neuronală care introduce noțiunea de „atenție”, care, cu alte cuvinte, ia în calcul contextul în care sunt utilizate cuvintele.
Așadar, deși nu există buclă sau „întoarcere” în ChatGPT, există totuși o modalitate, implementate prin transformer, de a lua în calcul contextul. Când ChatGPT urmează să genereze un nou token, ia în calcul întreaga secvență de tokenuri care vin înaintea sa, inclusiv tokenurile pe care ChatGPT le-a „scris” anterior.
Motivul pentru care o rețea neuronală precum cea pe care se bazează ChatGPT poate avea succes în scrierea unui eseu este că scrierea unui eseu se dovedește a fi o problemă mai simplă din punct de vedere computațional decât am crezut.

Iar acum iată prezentarea în detaliu a ChatGPT:

În esență, ChatGPT este doar adăugarea unui cuvânt la un moment dat

• Că ChatGPT poate genera automat ceva care pare să fie un text scris de om este remarcabil și neașteptat. Dar cum o face? Și de ce funcționează?

• Primul lucru de explicat este că ceea ce ChatGPT încearcă întotdeauna să facă este să producă o „continuare rezonabilă” a oricărui text pe care l-a creat până un moment dat, unde prin „rezonabil” înțelegem „ce s-ar putea aștepta ca cineva să scrie după ce a văzut ce oamenii au scris pe miliarde de pagini web etc.”

• ChatGPT nu se uită la text, ci caută ceea ce „se potrivește ca sens”. Dar rezultatul este că produce o listă ordonată de cuvinte care ar putea urma, împreună cu „probabilități”.

• Lucrul remarcabil este că atunci când ChatGPT face ceva de genul scrierii unui eseu, ceea ce face în esență este doar să întrebe din nou și din nou „având în vedere textul de până acum, care ar trebui să fie următorul cuvânt?” și de fiecare dată să adauge un cuvânt. Mai precis, adaugă un „token”, care ar putea fi doar o parte a unui cuvânt, motiv pentru care uneori poate inventa noi cuvinte.

• La fiecare pas primește o listă de cuvinte cu probabilități atașate. Dar pe care ar trebui să-l aleagă de fapt pentru a-l adăuga eseului pe care îl scrie?

• Problema este că dacă alegem întotdeauna cuvântul cel mai bine clasat, vom obține un eseu foarte „plat”, care nu pare să arate creativitate. Dar dacă uneori (la întâmplare) alegem cuvinte de rang inferior (din punct de vedere al probabilităților stabilite pentru cuvintele care ar putea urma), obținem un eseu „mai interesant”.

• Există un așa-numit parametru numit „temperatură”, care determină cât de des vor fi folosite cuvintele de rang inferior, iar pentru generarea eseului, se dovedește că o temperatură” de 0,8 pare cea mai bună. Nu există nicio teorie folosită aici; este doar o chestiune de ceea ce s-a descoperit că funcționează în practică. Și, de exemplu, conceptul de temperatură există, deoarece se întâmplă să fie folosite distribuții exponențiale familiare din fizica statistică.

De unde apar probabilitățile?

• Să începem cu o problemă mai simplă. Să luăm în considerare generarea de text în limba engleză folosind câte o literă. Cum putem afla care ar trebui să fie probabilitatea pentru fiecare literă? Un lucru minim pe care l-am putea face este să luăm o mostră de text în limba engleză și să calculăm cât de des apar litere diferite în el. De exemplu, am putea număra literele din articolul Wikipedia despre „pisici”.

• Pentru a merge mai departe, totuși, trebuie să facem mai mult decât să alegem fiecare literă separat la întâmplare. Și, de exemplu, știm că dacă avem un „q”, în engleză litera următoare trebuie să fie „u”.

• Acum, în loc să ne generăm „cuvintele”, o singură literă la un moment dat, să le generăm uitându-ne la două litere la un moment dat, folosind aceste probabilități.

• Dar să presupunem că avem de-a face cu cuvinte întregi, nu cu litere. Există aproximativ 40.000 de cuvinte destul de frecvent utilizate în engleză. Și analizând un corp mare de text în limba engleză (să zicem câteva milioane de cărți, cu, în total, câteva sute de miliarde de cuvinte), putem obține o estimare a cât de comun este fiecare cuvânt. Și folosind aceasta putem începe să generăm „propoziții”, în care fiecare cuvânt este ales independent la întâmplare, cu aceeași probabilitate ca să apară în corpus.

• Ce putem face mai bine? La fel ca în cazul literelor, putem începe să luăm în considerare nu doar probabilitățile pentru cuvintele individuale, ci și probabilitățile pentru perechi sau grupuri mai mari de cuvinte.

• Ideea importantă este să creăm un model care să ne permită să estimăm probabilitățile cu care ar trebui să apară secvențele - chiar dacă nu am văzut niciodată în mod explicit acele secvențe în corpusul de text pe care l-am analizat. La baza ChatGPT se află exact așa-numitul „model de limbaj mare” (LLM), care a fost construit pentru a estima bine aceste probabilități.


Ce este un model?

• Orice model pe care îl utilizați are o anumită structură subiacentă - apoi un anumit set de „butoane” pe care le puteți utiliza (adică parametri pe care îi puteți seta) pentru a se potrivi datelor dvs. Și în cazul ChatGPT, sunt folosite o mulțime de astfel de „butoane” – de fapt, 175 de miliarde de parametri setabili.

• Dar lucrul remarcabil este că structura de bază a ChatGPT – cu „doar” atâți parametri – este suficientă pentru a face un model care calculează probabilitățile cuvântului următor suficient de bine pentru a ne oferi fragmente de text cu lungimea unui eseu.


Rețele neuronale. Recunoașterea imaginilor


Cum funcționează de fapt modelele noastre tipice pentru sarcini precum recunoașterea imaginilor? Cea mai populară și de succes abordare actuală utilizează rețele neuronale. Inventate – într-o formă remarcabil de apropiată de utilizarea lor astăzi – în anii '40, rețelele neuronale pot fi considerate simple idealizări ale modului în care pare să funcționeze creierul.

• Nu există nimic derivat din teorie despre această rețea neuronală; este doar ceva care, în 1998, a fost construit ca o piesă de inginerie și s-a dovedit a funcționa.

• Cum recunoaște lucrurile o rețea neuronală ca aceasta? Cheia este noțiunea de „atractor”. Pe scurt, dacă avem de-a face, de exemplu, cu identificarea numerelor, scrise în multiple feluri (de mână, de tipar, unele mai clare, altele mai șterse etc.), vrem ca numărul 1 să fie „atras” într-un anume loc, iar numărul 2 (ori orice altă cifră) să fie atras în alt loc. Dacă o imagine este „mai aproape de 1”, va fi asociată de soft drept cifra 1.

• În cele din urmă, o rețea neuronală este o colecție conectată de „neuroni” idealizați – de obicei aranjați în straturi.

• Fiecare „neuron” este configurat efectiv pentru a evalua o funcție numerică simplă. Și pentru a „utiliza” rețeaua, pur și simplu introducem numere (cum ar fi coordonatele noastre x și y) în partea de sus, apoi avem neuronii de pe fiecare strat care „își evaluează funcțiile” și transmitem rezultatele prin rețea.

• În configurația tradițională (inspirată din biologie), fiecare neuron are efectiv un anumit set de „conexiuni de intrare” de la neuronii de pe stratul anterior, fiecărei conexiuni i se atribuie o anumită „valoare” (care poate fi un număr pozitiv sau negativ). Valoarea unui neuron dat este determinată prin înmulțirea valorilor „neuronilor anteriori”, apoi adunând acestea și adăugând o constantă – și în final aplicând o funcție de „prag” (sau „activare”). Aceste valori sunt în mod normal determinate prin „antrenarea” rețelei neuronale folosind învățarea automată din exemple de rezultate dorite.


Învățare automată și formarea rețelelor neuronale

• Am vorbit până acum despre rețele neuronale care „știu deja” cum să îndeplinească anumite sarcini. Dar ceea ce face rețelele neuronale atât de utile (probabil și în creier) este că nu numai că, în principiu, pot îndeplini tot felul de sarcini, dar pot fi antrenate, pe baza exemplelor, progresiv, pentru a îndeplini acele sarcini.

• Deci, cum funcționează de fapt antrenamentul rețelei neuronale? În esență, ceea ce încercăm întotdeauna să facem este să găsim ponderi care să facă rețeaua neuronală să reproducă cu succes exemplele pe care le-am dat.

• Apoi ne bazăm pe rețeaua neuronală pentru a „interpola” (sau „generaliza”) „între” aceste exemple într-un mod „rezonabil”.

• Ideea de bază este de a furniza o mulțime de exemple de „intrare → ieșire” din care să „învețe” – și apoi să încercăm să găsim ponderi (valori ale unor variabile) care să reproducă aceste exemple.

• La fiecare etapă a acestui „antrenament”, ponderile din rețea sunt ajustate progresiv – și vedem că în cele din urmă obținem o rețea care reproduce cu succes funcția pe care o dorim. Deci, cum ajustăm aceste valori (ponderi)? Ideea de bază este să vedem în fiecare etapă „cât de departe suntem” de a obține funcția pe care o dorim – și apoi să actualizăm ponderile în așa fel încât să ne apropiem.

• Pentru a afla „cât de departe suntem”, calculăm ceea ce se numește de obicei „funcție de pierdere” (sau uneori „funcție de cost”).

• Funcția de pierdere ne oferă o „distanță” între valorile pe care le avem și valorile adevărate. Dar „valorile pe care le avem” sunt determinate în fiecare etapă de versiunea actuală a rețelei neuronale – și de ponderile din aceasta.

• Marea descoperire în „învățarea profundă” care a avut loc în jurul anului 2011 a fost asociată cu descoperirea că, într-un anumit sens, poate fi mai ușor de realizat (cel puțin aproximativ) minimizarea atunci când sunt implicate o mulțime de ponderi decât atunci când sunt puține. Cu alte cuvinte, oarecum contraintuitiv, poate fi mai ușor să rezolvi probleme mai complicate cu rețele neuronale decât probleme simple.


Practica și cunoștințele antrenamentului în rețelele neuronale

• În special în ultimul deceniu, au existat multe progrese în arta antrenării rețelelor neuronale. Și, da, este practic o artă. Uneori, mai ales retrospectiv, se poate vedea o licărire de „explicație științifică” pentru ceea ce se face. Dar cele mai multe lucruri au fost descoperite prin încercare și eroare, adăugând idei și trucuri care au construit progresiv o cunoaștere semnificativă despre cum să lucrezi cu rețelele neuronale.

• În primul rând, este întrebarea cu privire la ce arhitectură a rețelei neuronale ar trebui să folosești pentru o anumită sarcină.

• Ceea ce s-a descoperit este că aceeași arhitectură pare să funcționeze adesea chiar și pentru sarcini aparent destul de diferite.


„Cu siguranță o rețea suficient de mare poate face orice!”

• Capacitățile unui soft de IA de genul ChatGPT par atât de impresionante, încât s-ar putea imagina că, dacă am putea să  antrenăm rețele neuronale din ce în ce mai mari, atunci am fi în cele din urmă capabili să facem totul.

• Dar lecția din ultimele câteva sute de ani de știință este că există lucruri care pot fi descoperite prin procese formale, dar nu sunt ușor accesibile gândirii umane imediate.

• Există un compromis final între capabilitate și capacitate de antrenament: cu cât vrei mai mult ca un sistem să utilizeze cu adevărat capacitățile sale de calcul, cu atât va arăta mai mult ireductibilitate computațională și cu atât va fi mai puțin antrenabil.

• Pentru ChatGPT, așa cum este în prezent, situația este de fapt mult mai complicată, deoarece rețeaua neuronală folosită pentru a genera fiecare token de ieșire este o rețea pură de tip „feed-forward”, fără bucle.

• Motivul pentru care o rețea neuronală poate avea succes în scrierea unui eseu este că scrierea unui eseu se dovedește a fi o problemă mai simplă din punct de vedere computațional decât am crezut. Și într-un fel, acest lucru ne aduce mai aproape de „a avea o teorie” despre modul în care noi, oamenii, reușim să facem lucruri precum să scriem eseuri sau, în general, să folosim limbajul.

• Dacă am avea o rețea neuronală suficient de mare, atunci da, am putea să facem tot ce pot face oamenii cu ușurință.


Conceptul de „încorporare” (eng. embeddings)

• Rețelele neuronale - cel puțin așa cum sunt configurate în prezent - se bazează în principal pe numere. Deci, dacă le vom folosi pentru a lucra la ceva precum textul, vom avea nevoie de o modalitate de a ne reprezenta textul cu numere. Și cu siguranță am putea începe (în esență, așa cum face ChatGPT) prin a atribui un număr fiecărui cuvânt din dicționar. Dar există o idee importantă – care este centrală pentru ChatGPT – care merge dincolo de asta. Și este vorba de ideea de „încorporare”. Se poate gândi la încorporare ca o modalitate de a încerca să reprezinte „esența” a ceva printr-o serie de numere – cu proprietatea că lucrurile din apropiere sunt reprezentate de numere din apropiere.

• De exemplu, ne putem gândi la un termen încorporat ca încercarea de a așeza cuvinte într-un fel de „spațiu de sens” în care cuvintele care sunt cumva „în apropiere în sens” apar în apropiere în încorporare. Încorporările reale care sunt utilizate – să zicem în ChatGPT – tind să implice liste mari de numere.

• Dar cum putem construi o astfel de încorporare? Ideea este să privim cantități mari de text (aici 5 miliarde de cuvinte de pe web) și apoi să vedem „cât de asemănătoare” sunt „mediile” în care apar cuvinte diferite. Deci, de exemplu, „aligator” și „crocodil” vor apărea adesea aproape interschimbabil în propoziții similare, iar asta înseamnă că vor fi plasate în apropiere în încorporare. Dar „nap” și „vultur” nu vor avea tendința de a apărea în propoziții altfel similare, așa că vor fi plasate la distanță unul de celălalt în încorporare.

• În cele din urmă, trebuie să formulăm totul în termeni de cifre. Și o modalitate de a face acest lucru este să atribuim un număr unic fiecăruia dintre cele aproximativ 50.000 de cuvinte comune în limba engleză.

• Dar, de fapt, putem merge mai departe de caracterizarea cuvintelor prin colecții de numere; putem face acest lucru și pentru secvențe de cuvinte sau chiar blocuri întregi de text. Și asta se întâmplă în cazul ChatGPT. Preia textul pe care l-a primit până la un moment dat și generează un vector de încorporare pentru a-l reprezenta. Apoi, scopul său este să găsească probabilitățile pentru diferite cuvinte care ar putea apărea în continuare. Și reprezintă răspunsul său pentru aceasta ca o listă de numere care, în esență, oferă probabilitățile pentru fiecare dintre cele aproximativ 50.000 de cuvinte posibile.

ChatGPT nu se ocupă de cuvinte, ci de tokenuri – unități lingvistice convenabile care pot fi cuvinte întregi sau pot fi doar bucăți precum „pre” sau „ing” sau „ized”. Lucrul cu tokenuri face mai ușor pentru ChatGPT să gestioneze cuvinte rare, compuse și, uneori, să inventeze cuvinte noi.


În interiorul ChatGPT

• ChatGPT este o rețea neuronală gigantică, în prezent o versiune a așa-numitei rețele GPT-3 cu 175 de miliarde de parametri. Caracteristica sa cea mai notabilă este o parte a rețelei neuronale numită „transformator”.

• În loc să definească doar o regiune fixă în secvența de tokenuri în care pot exista conexiuni, transformatorul introduce  noțiunea de „atenție” și ideea de „a acorda atenție” mai mult unor părți ale secvenței decât altora.

• Funcționează în trei etape de bază. În primul rând, ia secvența de tokenuri care corespunde textului de până acum și găsește o încorporare (adică o matrice de numere) care le reprezintă. Apoi operează asupra acestei încorporări într-un „mod de rețea neuronală standard”, cu valori care trec prin straturi succesive dintr-o rețea, pentru a produce o nouă încorporare (adică o nouă matrice de numere). Apoi ia ultima parte a acestei matrici și generează din ea o matrice de aproximativ 50.000 de valori care se transformă în probabilități pentru diferite tokenuri posibile. Există aproximativ același număr de tokenuri ca și numărul de cuvinte comune în engleză, deși doar aproximativ 3.000 dintre tokenuri reprezintă cuvinte întregi, restul fiind fragmente.

• Deoarece ChatGPT-4 funcționează cu cuvinte, acestea trebuie transformate în numere, care sunt utilizate de  rețeaua neuronală.

• Transformarea este efectuată de un program de calculator numit „tokenizer”, care menține o listă uriașă de cuvinte și secvențe de litere (tokenuri), care, în fapt, cum spuneam, sunt identificate prin numere. Un cuvânt precum „friend” are un număr de identificare unic (6756), așa că un cuvânt precum „friendship” este împărțit în tokenurile „friend” și „ship”. Acestea sunt reprezentate cu identificatorii 6756 și 6729.

• Când utilizatorul pune o întrebare, cuvintele sunt traduse în numere înainte ca ChatGPT-4 chiar să înceapă procesarea cererii. Rețeaua neuronală profundă nu are acces la cuvinte ca text.

• De fapt, nimic în afară de arhitectura generală nu este proiectat în mod explicit; totul este învățat din datele de antrenare.

• După modulul de încorporare vine elementul principal al transformatorului: o secvență de așa-numite „blocuri de atenție” (12 pentru GPT-2, 96 pentru GPT-3 de la ChatGPT).

• Ce fac blocurile de atentie? Ele sunt o modalitate de a „privi înapoi” în secvența de tokenuri (adică în textul produs până acum) și de a „împacheta trecutul” într-o formă care este utilă pentru a găsi următorul simbol.

• Ceea ce face mecanismul de „atenție” din transformator este de a permite „atenția” și la cuvinte anterioare, astfel captând modul în care, să zicem, verbele se pot referi la substantive care apar cu multe cuvinte înaintea lor într-o propoziție.

• La un nivel mai detaliat, ceea ce face un bloc de atenție este să recombine bucăți în vectorii de încorporare asociați cu diferite tokenuri, cu anumite valori.

• Deci, după ce am trecut prin toate aceste blocuri de atenție, care este efectul net al transformatorului? În esență, este de a transforma colecția originală de încorporări pentru secvența de tokenuri într-o colecție finală. Apoi este luată  ultima încorporare din această colecție, care este decodificată, pentru a produce o listă de probabilități pentru ce tokenuri ar trebui să urmeze.

• Deci, acesta este în rezumat ce se întâmplă în ChatGPT. Poate părea complicat (nu în ultimul rând din cauza numeroaselor sale „opțiuni de inginerie” inevitabil oarecum arbitrare), dar, de fapt, elementele finale implicate sunt remarcabil de simple. Pentru că, în cele din urmă, avem de-a face cu o rețea neuronală formată din „neuroni artificiali”, fiecare făcând operația simplă de a lua o colecție de intrări numerice și apoi combinându-le cu anumite valori.

• Datele de intrare inițiale ale ChatGPT sunt o matrice de numere (vectorii de încorporare pentru tokenurile de până acum), iar ceea ce se întâmplă atunci când ChatGPT „rulează” pentru a produce un nou token este că aceste numere trec prin straturile rețelei neuronale, cu fiecare neuron „făcându-și treaba”, transmițând rezultatul către neuronii din următorul strat. Nu există buclă sau „întoarcere”. Totul se se transferă către înainte prin rețea.

• Dar există într-un anumit sens o „buclă exterioară” care reutilizează elementele de calcul chiar și în ChatGPT. Pentru că atunci când ChatGPT va genera un nou token, întotdeauna „citește” (adică ia ca date de intrare) întreaga secvență de tokenuri care vin înaintea sa, inclusiv tokenurile pe care ChatGPT le-a „scris” anterior.

• Dacă ne uităm la cea mai lungă cale prin ChatGPT, există aproximativ 400 de straturi (de bază) implicate - nu un număr mare. Dar există milioane de neuroni – cu un total de 175 de miliarde de conexiuni și, prin urmare, 175 de miliarde de parametri. Și un lucru de realizat este că de fiecare dată când ChatGPT generează un nou token, trebuie să facă un calcul care implică toți acești parametri. Din punct de vedere al implementării, aceste calcule pot fi oarecum organizate „pe straturi” în operațiuni de matrice paralele care pot fi efectuate convenabil pe chipuri grafice.

• Dar pentru fiecare token produs, mai trebuie să fie făcute 175 de miliarde de calcule (și în cele din urmă puțin mai multe) - așa că, da, nu este surprinzător că poate dura ceva timp pentru a genera o bucată lungă de text cu ChatGPT.

• Dar, în cele din urmă, lucru remarcabil este că toate aceste operațiuni – pe cât de simple sunt luate individual – pot reuși cumva împreună să facă o treabă atât de bună „asemănătoare omului” de a genera text. Trebuie subliniat din nou că (cel puțin din câte știm) nu există un „motiv teoretic” pentru care așa ceva ar trebui să funcționeze. Și, de fapt, cred că trebuie să vedem asta ca o descoperire științifică — potențial surprinzătoare: că într-un fel, într-o rețea neuronală precum ChatGPT, este posibil să surprindem esența a ceea ce creierul uman reușește să facă în generarea limbajului.


Antrenarea ChatGPT

• Cum au fost determinați acei 175 de miliarde de parametri din rețeaua neuronală? Practic, ei sunt rezultatul unei antrenări la scară foarte mare, bazată pe un corp imens de texte – pe web, în cărți etc. – scrise de oameni.

• E uimitor că o rețea neuronală cu „doar” 175 de miliarde de variabile poate general un „model rezonabil” de text asemănător celui scris de oameni. Prezinți softului multe exemple de text, iar apoi ajustezi ponderile în rețea pentru a minimiza eroarea („pierderea”) pe care o generează rețeaua în cadrul acelor exemple.

De câte exemple vom avea nevoie pentru a pregăti un model de „limbaj asemănător omului”? Nu pare să existe nicio modalitate teoretică fundamentală de a ști. Dar, în practică, ChatGPT a fost instruit cu succes pe câteva sute de miliarde de cuvinte.

• Dar având în vedere acest volum de text din care să înveți, cât de mare ar trebui să aibă o rețea pentru a „învăța bine”? Din nou, nu avem încă o teorie.

Cât de eficientă va fi o rețea neuronală în implementarea unui model bazat pe acel conținut algoritmic? Din nou nu știm, deși succesul ChatGPT sugerează că este rezonabil de eficient.

• În anumite privințe, este probabil surprinzător că „dimensiunea rețelei” care pare să funcționeze bine este atât de comparabilă cu „dimensiunea datelor de antrenament”. La urma urmei, cu siguranță nu vorbim de faptul că „în interiorul ChatGPT” ar fi stocat direct tot acel text de pe web și cărțile menționate. Pentru că în fapt în interiorul ChatGPT avem o mulțime de numere - cu puțin mai puțin de 10 cifre de precizie - care sunt un fel de codificare distribuită a structurii agregate a tot acel text.


Dincolo de formarea de bază

• Majoritatea efortului de instruire a ChatGPT este depus „arătându-i” cantități mari de text existent de pe web, cărți etc. Dar se pare că există și o altă parte – aparent destul de importantă.

• Iar o idee cheie în construirea ChatGPT a fost să facem încă un pas după „citirea pasivă” a textelor de pe web: ca oamenii să interacționeze cu ChatGPT, să vadă ce produce acesta și, de fapt, să îi ofere feedback despre „cum să fii un chatbot bun”. Dar cum poate rețeaua neuronală să folosească acest feedback? Primul pas este ca oamenii să evalueze rezultatele din rețeaua neuronală. Dar apoi este construit un alt model de rețea neuronală care încearcă să prezică acele evaluări. Dar acum acest model de predicție poate fi rulat – în esență ca o funcție de pierdere – în rețeaua originală, permițând de fapt „ajustarea” acelei rețele cu feedbackul uman. Iar rezultatele în practică par să aibă un efect mare asupra succesului sistemului de a produce rezultate „asemănătoare omului”.


Ce permite cu adevărat ChatGPT să funcționeze?

• Cu ChatGPT avem o nouă informație importantă: știm că o rețea neuronală artificială, cu un număr de conexiuni conexiuni similar cu numărul de neuroni, este capabilă să facă o treabă surprinzător de bună în a genera limbaj uman.

• La un anumit nivel, încă pare greu de crezut că toată bogăția limbajului și lucrurile despre care poate vorbi pot fi încapsulate într-un astfel de sistem finit.

• Procesele de calcul pot, de fapt, amplifica foarte mult complexitatea aparentă a sistemelor, chiar și atunci când regulile lor subiacente sunt simple.

• Deci, cum se face, așadar, că ceva de genul ChatGPT poate ajunge atât de departe cu limbajul? Răspunsul simplu, cred, este că limbajul este la un nivel fundamental cumva mai simplu decât pare. Și asta înseamnă că ChatGPT – chiar și cu structura sa de rețea neuronală în cele din urmă simplă – este capabil să „capteze esența” limbajului uman și gândirea din spatele acestuia. Și mai mult, în pregătirea sa, ChatGPT a „descoperit implicit” cumva orice regularități în limbaj (și gândire) fac acest lucru posibil.

• Succesul ChatGPT sugerează că ne putem aștepta să existe noi „legi ale limbajului” – și efectiv „legi ale gândirii” – de descoperit.

• Ce înseamnă „legi ale limbajului” și cum se leagă ele cu funcționarea ChatGPT? Să luăm cazul sintaxei. Limba nu este doar un amestec aleatoriu de cuvinte. În schimb, există reguli gramaticale (destul de) precise privind modul în care pot fi adunate cuvinte de diferite tipuri. ChatGPT nu are nicio „cunoaștere” explicită a unor astfel de reguli. Dar cumva, în pregătirea sa, implicit le „descoperă” – și apoi pare că se pricepe să le urmeze. Deci, cum funcționează asta? La nivel de „imagine de ansamblu”, nu este clar.

• Este ceva care ne poate face să credem că ChatGPT a dezvoltat o teorie după ce a fost antrenat cu miliarde de propoziții de pe web.

• ChatGPT pare să fie capabil să învețe cu succes genul de structură sintactică asemănătoare arborelui imbricat care pare să existe (cel puțin într-o anumită aproximare) în toate limbile umane.

• Cum ar putea fi această teorie? Ei bine, există un colț mic care este practic cunoscut de două milenii și asta este logica. Și, cu siguranță, în forma silogistică în care Aristotel a descoperit-o, logica este practic un mod de a spune că propozițiile care urmează anumite modele sunt rezonabile, în timp ce altele nu.


Gramatica semantică și puterea limbajului computațional

De ce este nevoie pentru a produce un text cu sens? În trecut, am fi putut presupune că ar putea fi nimic mai puțin decât un creier uman. Dar acum știm că se poate face destul de respectabil prin rețeaua neuronală a ChatGPT. Totuși, poate că asta arată cât de departe putem ajunge și nu va exista nimic mai simplu – sau mai ușor de înțeles uman – care să funcționeze.

• Dar suspiciunea mea este că succesul ChatGPT dezvăluie implicit un fapt „științific” important: că există de fapt mult mai multă structură și simplitate în limbajul uman semnificativ decât am știut vreodată – și că în cele din urmă pot exista chiar și reguli destul de simple care descriu cum poate fi creat un astfel de limbaj.

• O gramatică sintactică este de fapt doar despre construcția limbajului din cuvinte. Dar o gramatică semantică se implică în mod necesar cu un fel de „model al lumii” – ceva care servește drept „schelet” peste care poate fi stratificat limbajul format din cuvinte reale.

• Din pregătirea sa, ChatGPT a „încropit” o bună parte din ceea ce înseamnă gramatică semantică.


Ce face ChatGPT și de ce funcționează?

• După cum am văzut, rețeaua neuronală reală din ChatGPT este alcătuită din elemente foarte simple, deși miliarde. Și funcționarea de bază a rețelei neuronale este, de asemenea, foarte simplă, constând în esență în transferul inputurilor derivate din textul pe care l-a generat până acum (fără bucle etc.) pentru fiecare cuvânt nou (sau parte dintr-un cuvânt) pe care îl generează.

• Dar lucrul remarcabil – și neașteptat – este că acest proces poate produce text care să fie ca cel pe care-l găsim pe pe web, în cărți etc.

• Ce face ChatGPT în generarea de text este foarte impresionant – iar rezultatele sunt de obicei foarte asemănătoare cu ceea ce am produce noi, oamenii. Deci asta înseamnă că ChatGPT funcționează ca un creier? Structura sa de bază a rețelei neuronale artificiale a fost în cele din urmă modelată pe o idealizare a creierului. Și pare destul de probabil că atunci când noi, oamenii, generăm limbaj, multe aspecte ale a ceea ce se întâmplă să fie destul de asemănătoare.

• Dar deocamdată este interesant să observăm ce a putut deja ChatGPT să facă. La un anumit nivel, este un exemplu excelent al faptului științific fundamental că un număr mare de elemente simple de calcul pot face lucruri remarcabile și neașteptate. Dar oferă, de asemenea, poate cel mai bun impuls pe care l-am avut în două mii de ani pentru a înțelege mai bine care ar putea fi caracterul și principiile fundamentale ale acelei trăsături centrale a condiției umane care este limbajul uman și procesele de gândire din spatele acestuia.

Sursa: What is ChatGPT doing and why does it work, de Stephen Wolfram.

Write comments...
symbols left.
You are a guest ( Sign Up ? )
or post as a guest
Loading comment... The comment will be refreshed after 00:00.

Be the first to comment.