1. Videoclipuri despre ChatGPT

Cel mai bun mod de a înțelege funcționarea interioară a ChatGPT pe care l-am găsit pe Internet este acest videoclip al lui Andrej Karpathy, fostul șef al Tesla Autopilot. El explică în detaliu cum să scrieți în Python un bot GPT generativ pentru texte asemănătoare lui Shakespeare.

 Let's build GPT: from scratch, in code, spelled out.

 

Pentru a înțelege componenta cheie a conductei GPT, transformatorul, vă recomandăm această lecție a lui Pascal Poupart de la Universitatea din Waterloo. Videoclipul explică în detaliu cum funcționează componenta transformatorului și ce proprietăți are.

CS480/680 Lecture 19: Attention and Transformer Networks

2. ChatGPT în literatura științifică

Nu există încă o carte bună despre ChatGPT, cea mai bună modalitate de a obține o înțelegere suplimentară este să citiți această colecție de lucrări științifice în ordine cronologică:

1. Bengio et al, 2003, A Neural Probabilistic Language Model
Afișează o matrice C partajată peste jetoanele de intrare pentru a proiecta jetoanele într-un spațiu dimensional de ~30, în mod similar cu word2vec. Apoi, există un calcul cu un vector feed forward și un strat softmax care calculează probabilitatea pentru următorul simbol, care este ales printr-un proces de eșantionare cu distribuție multinomială.

2. Bengio et al, 2015, Neural machine translation by jointly learning to align and translate
Dispune de un codificator-decodor de rețea neuronală recursiv pentru a traduce dintr-o limbă în alta

3. OpenAI Team, 2017, Attention is all you need
Acesta înlocuiește Rețeaua Neuronală Recursivă a [2] cu o nouă componentă a rețelei neuronale numită Transformer. Descrie în detaliu procesul de atenție, modul în care se poate face în paralel cu atenția cu mai multe capete și necesitatea de a masca mecanismul de atenție pe partea decodorului, astfel încât informațiile din token-urile anterioare să curgă doar către următoarele token-uri și nu invers. . Acesta descrie cum să suprapuneți înglobările poziționale la jetoane.

4. Alec Redford and OpenAI Team, 2018, Improving language understanding by Generative Pre Training
Partea codificatorului din [3] este abandonată, pentru a trece de la un model pentru a face translații la un model care generează probabilitatea pentru următorul token. S-a născut GPT-1. Este un decodor cu 12 straturi cu 12 capete de auto-atenție mascate folosind 768 de dimensiuni. Are 117 milioane de parametri. Introduce conceptul de reglare fină supravegheată pentru a adapta rețeaua la sarcini precum Inferența limbajului natural, Răspunsul la întrebări, Similaritatea semantică și Clasificarea.

5. Alec Redford and OpenAI Team, 2019, Language Models are Unsupervised Multitask Learners
Această lucrare prezintă GPT-2 și arată capacitățile acestuia. Are 1,5 miliarde de parametri. Se observă că rețelele mari sunt mai capabile la sarcinile descrise în [4].

6. OpenAI Team, 2022, Language Models are Few Shot Learners
Această lucrare descrie evoluția de la GPT-2 la GPT-3 care are acum 175 de miliarde de parametri. 96 de straturi cu 96 de capete cu o dimensiune a capului de 128 produce ceea ce știm ca ChatGPT, disponibil în prezent la https://chat.openai.com/.

GPT3 are o fereastră de context de 2048 de jetoane (~ 1500 de cuvinte). Cu GPT-3.5 fereastra de context a fost mărită la 4096 (3000 de cuvinte de text în limba engleză).

Operațiunile totale de antrenament pentru calcularea parametrilor sunt date ca flop-uri 3.14E23. Din acest număr, presupunând 10 GPU Teraflops, estimăm că antrenamentul GPT-3 a necesitat un cluster de aproximativ 4.000 GPU-uri care calculează cu normă întreagă timp de 3 luni. Introduce, de asemenea, conceptul că, dând 1-3 exemple (fotografii) modelului ca context, modelul se comportă mai bine.

 

7. OpenAI Team, 2023, GPT-4 Technical Report
GPT-4 are fereastra de context crescută la 8192 de jetoane și are capacitatea de a primi imagini în intrare. Lucrarea descrie ce poate face modelul și modul în care se comportă la mai multe teste comune, dar nu dezvăluie niciun număr privind dimensiunea modelului sau timpul de antrenament necesar pentru a-l calcula.

8. O altă sursă grozavă de a afla despre ChatGPT este: doar întrebați ChatGPT 3.5 despre cum funcționează! Este necesar un cont Google pentru a vă autentifica, dar este gratuit. În cel mai bun caz, întrebați despre „chatbot-uri complexe”, deoarece utilizarea „ChatGPT” în întrebare declanșează un fel de răspuns standard.

3. Executați ChatGPT pe computerul local

Cel mai bun proiect Open Source de urmat este GPT4All. Este un chatbot complet care rulează local pe computerul tău, unde este posibil să selectezi dintre diverse modele între 4 miliarde și 13 miliarde de parametri. RAM necesară este de 16 GB pentru modelele mai mari cu 13 miliarde de parametri. Modelele mai mici, dar mai rapide în generarea de răspunsuri cu 7 miliarde de parametri necesită doar 8 GB RAM. Există instalatori pentru Windows, Linux și Mac OS X. În fiecare săptămână există actualizări ale software-ului sau ale modelelor disponibile.

Descărcați GPT4All...

 

4. Comportament emergent

Aici am întrebat ChatGPT 3.5, disponibil online de OpenAI, cu privire la o caracteristică îngrijită a chatbot-urilor: de exemplu, ei sunt capabili să traducă în limbi pe care nu le-au învățat sau pot crea cod sursă în mai multe limbi de calculator:

Utilizator> Care este definiția „comportamentului emergent”, un fenomen pe care îl observăm în chatbot-urile complexe?

ChatGPT 3.5> 

Comportamentul emergent se referă la apariția unor modele sau comportamente complexe, care rezultă din interacțiunea și organizarea componentelor mai simple, dar care în sine nu posedă aceste caracteristici complexe. În cazul chatbot-urilor complexe, comportamentul emergent poate fi observat atunci când diversele componente ale sistemului interacționează între ele și generează un comportament global sau rezultat care depășește ceea ce ar fi putut fi anticipat sau programat în mod explicit.

Un chatbot complex implică adesea utilizarea tehnologii de inteligență artificială, cum ar fi algoritmi de învățare automată (machine learning) sau rețele neurale, care sunt capabile să înțeleagă și să răspundă la mesajele utilizatorilor într-un mod cât mai natural. Prin antrenarea pe seturi mari de date și prin interacțiunea cu utilizatorii, chatbot-ul poate să-și îmbunătățească abilitățile de conversație și să dezvolte un comportament mai sofisticat.

Comportamentul emergent în chatbot-uri poate apărea atunci când chatbot-ul își adaptează răspunsurile și comportamentul în funcție de interacțiunile anterioare și de contextul conversației curente. De exemplu, un chatbot complex poate fi capabil să înțeleagă intențiile utilizatorilor, să ofere răspunsuri personalizate și să manifeste un ton sau un stil specific în conversație. Aceste trăsături nu sunt programate în mod direct, ci rezultă din interacțiunile repetate și complexe între diferitele componente ale sistemului.

Este important de remarcat că comportamentul emergent nu este întotdeauna controlat sau predictibil în totalitate. Chiar dacă dezvoltatorii pot proiecta sisteme care să genereze anumite tipuri de comportament, interacțiunile complexe dintre componentele chatbot-ului și utilizatori pot duce la apariția unor modele sau rezultate inedite. Acest aspect poate fi considerat atât o calitate, în sensul că chatbot-ul poate oferi răspunsuri surprinzătoare și inovatoare, cât și o provocare, în sensul că comportamentul poate fi dificil de controlat sau de explicat în totalitate.

5. Dimensiunea GPT 3-5 față de dimensiunea creierului uman

Știm cu siguranță în lucrarea științifică despre GPT-3 că numărul de parametri din GPT 3-5 este în jur de 175 de miliarde. Numărul de parametri dintr-o rețea neuronală artificială este numărul de neuroni matematici (fiecare neuron are un parametru de părtinire) plus numărul de conexiuni dintre neuroni (greutățile din matricele W). Dacă presupunem că dimensionalitatea modelului (d=12'288 pentru GPT 3.5 [6]) este numărul mediu de conexiuni între neuroni, atunci prin rezolvarea acestei ecuații simple x + 12288x = 175E9, putem specula că GPT 3- 5 are deci x=14,2 milioane de neuroni matematici.

Acum să fim îndrăzneți și să susținem că un neuron matematic ar putea fi la fel de puternic ca un neuron biologic, ceea ce nimeni nu știe până acum, presupunem aici că cel puțin par să îndeplinească sarcini similare.

Creierul uman, conform Wikipedia, are aproximativ 86 de miliarde de neuroni și fiecare neuron are cel puțin 10.000 și până la 100.000 de sinapse care sunt conexiuni între neuroni. Să fim din nou îndrăzneți și să presupunem că 12.000 este aproape de numărul mediu al sinapselor creierului și neuronii GPT 3-5 cu 12.288 de conexiuni sunt comparabili cu neuronii creierului uman și în ceea ce privește numărul mediu de conexiuni. întrucât dimensionalitatea conductei GPT este numărul de conexiuni dintre neuronii GPT.

După toate aceste ipoteze, putem compara direct numărul de neuroni matematici din GPT 3-5 (14.2E6) și numărul de neuroni biologici din creierul uman. Prin calculul raportului dintre cele două numere, vedem că GPT-3.5 este de aproximativ 6.000 de ori mai mic decât creierul uman.

Să mai speculăm că în fiecare an numărul de neuroni matematici din modelele mari de limbaj precum GPT 3-5 poate fi dublat în fiecare an de progresele hardware și software și că neuronii pot fi antrenați într-un timp rezonabil, să zicem întotdeauna sub anul în care are loc dublarea neuronilor. Într-un astfel de scenariu, cel târziu în 13 ani, ar trebui să putem obține un creier artificial de dimensiunea creierului uman (log_2(6000) = 12,55).