Înapoi la pagina principală

Cum funcționează de fapt ChatGPT?

ChatGPT este un chatbot bazat pe un model lingvistic mare (fie GPT-3.5, fie GPT-4). Sub capotă, ChatGPT este o rețea neuronală preinstruită care a fost antrenată pe o cantitate impresionantă de date de text disponibile public de pe internet.

Această cantitate imensă de date permite modelului să învețe modele, gramatică, context și chiar unele cunoștințe de bun simț, permițându-i să genereze răspunsuri semnificative și coerente la interogările utilizatorilor. ChatGPT are capacitatea unică de a se angaja în conversații interactive și dinamice cu utilizatorii, ceea ce îl face un instrument promițător pentru o gamă largă de aplicații.

Ce este un model lingvistic mare

Modelele mari de limbaj sunt algoritmi de inteligență artificială care utilizează tehnici de învățare aprofundată cunoscute sub numele de procesare a limbajului natural pentru a citi, înțelege, genera și prezice texte.

Atunci când introduceți o întrebare (prompt), modelul nu caută răspunsul pe internet, ci vă oferă răspunsul din capul său (deși nu are cap). Acesta generează un răspuns cuvânt cu cuvânt, determinând fiecare cuvânt următor pe baza probabilităților derivate din datele de text pe care a fost antrenat și din textul pe care l-a generat până acum.

11 miliarde de parametri: răspuns la întrebări, aritmetică, înțelegere a limbajului

11 miliarde de parametri: răspuns la întrebări, aritmetică, înțelegere a limbajului

Cum este posibil așa ceva? Ei bine, ChatGPT nu are nevoie să caute informații pe internet, pentru că știe deja totul (ei bine, aproape). Toate cunoștințele disponibile pe internet sunt încorporate în ChatGPT prin intermediul celor 175 de miliarde de parametri.

62 de miliarde de parametri: traducere, raționament de bun simț, completarea codurilor

62 de miliarde de parametri: traducere, raționament de bun simț, completarea codurilor

Pe măsură ce numărul de parametri ai modelului crește, în model apar noi abilități care nu au fost proiectate în mod intenționat de nimeni.

540 de miliarde de parametri: lanțuri de inferențe logice, recunoașterea modelelor, înțelegerea lecturii

540 de miliarde de parametri: lanțuri de inferențe logice, recunoașterea modelelor, înțelegerea lecturii

Cum a fost antrenat ChatGPT

ChatGPT a fost antrenat pe sute de mii de cărți, articole, dialoguri, inclusiv:

WebText2 (o bibliotecă mare de peste 45 terabytes de date de text)
Cornell Movie Dialogs Corpus (un set de date care conține peste 200.000 de conversații între 10.000 de personaje de film din scenarii de film)
Ubuntu Dialogue Corpus (o colecție de 1.000.000 de dialoguri cu mai multe ture între utilizatorii Ubuntu și echipa de asistență a comunității)
miliarde de linii de cod de pe GitHub

În primul rând, GPT a fost lăsat să proceseze toate datele la care a avut acces fără nicio îndrumare umană, permițându-i să înțeleagă în mod independent reglementările și conexiunile care dictează domeniul textului (asta este ceea ce se numește "învățare nesupravegheată").

Apoi, pentru a regla fin modelul lingvistic a fost aplicată o tehnică numită învățare prin întărire cu feedback uman (RLHF):

  • Formatorii umani de AI au purtat conversații în care au jucat ambele părți - utilizatorul și asistentul AI. Aceștia au avut acces la sugestii scrise de modele pentru a-i ajuta să compună răspunsuri. Modelul a fost antrenat cu ajutorul unui reglaj fin supravegheat pentru a prezice următorul mesaj al asistentului, având în vedere istoricul dialogului.
  • Pentru a crea un model de recompensă pentru învățarea prin întărire, au fost colectate date comparative. Instructorii AI au clasificat mai multe răspunsuri ale modelului în funcție de calitate, luând în considerare aspecte precum dacă răspunsul avea sens și dacă era util. Răspunsurile selectate au devenit un set de date de dialog cu noi mesaje scrise de model.
  • A fost creat un model de recompensă folosind o tehnică numită modelare a recompenselor, în care un model a fost antrenat pentru a prezice calitatea unui răspuns pe baza datelor de comparație colectate în etapa anterioară.

În final, ChatGPT a învățat cum să răspundă în orice situație dată, să ofere răspunsuri precise și relevante și să evite subiectele potențial dăunătoare.

Arhitectură Transformer

Procesul de instruire al ChatGPT implică prezicerea următorului cuvânt dintr-o propoziție, având în vedere cuvintele anterioare. Pentru a realiza acest lucru, se utilizează o arhitectură Transformer (apropo, T din ChatGPT înseamnă Transformer), care este alcătuită din straturi de mecanisme de autoatenție. Autoatenția permite modelului să cântărească diferite cuvinte dintr-o propoziție în funcție de importanța și relevanța lor pentru a prezice cu precizie următorul cuvânt.

Rețelele neuronale recurente (RNN) mai vechi citesc textul de la stânga la dreapta. În timp ce acest lucru funcționează bine atunci când cuvintele înrudite sunt adiacente, devine o provocare atunci când acestea se află la capetele opuse ale unei propoziții.

Prin urmare, atunci când un RNN lucrează cu un text de o pagină, la mijlocul celui de-al treilea paragraf, acesta "uită" deja ceea ce a fost la început.

În schimb, transformatoarele sunt capabile să proceseze simultan fiecare cuvânt dintr-o propoziție și să compare fiecare cuvânt cu toate celelalte. Acest lucru le permite să își concentreze "atenția" asupra celor mai relevante cuvinte, indiferent de poziția lor în cadrul secvenței de intrare.

Tokenizare

Este important de reținut că transformatoarele nu operează cu cuvinte individuale (ele nu pot citi ca oamenii). În schimb, textul de intrare este împărțit în simboluri individuale, inclusiv cuvinte, semne de punctuație și simboluri speciale. Jetoanele în ChatGPT sunt care sunt bucăți de text reprezentate ca vectori (numere cu direcție și poziție).

Proximitatea vectorilor de jetoane în spațiu determină nivelul lor de asociere: cu cât sunt mai apropiați, cu atât sunt mai legați între ei. În plus, atenția este codificată ca vector, ceea ce permite rețelelor neuronale bazate pe transformator să rețină informații cruciale din părțile precedente ale unui paragraf.

Atunci când un utilizator interacționează cu ChatGPT, modelul primește istoricul conversației ca intrare, incluzând atât solicitările utilizatorului, cât și răspunsurile generate de model. Datele de intrare sunt simbolizate și apoi introduse în rețeaua neuronală. Fiecare simbol este asociat cu o încorporare care reprezintă semnificația sa în contextul conversației.

GPT-3 a fost antrenat pe aproximativ 500 de miliarde de simboluri, ceea ce permite modelelor sale lingvistice să atribuie mai ușor semnificația și să prezică texte plauzibile de urmat prin cartografierea lor în spațiul vectorial. Multe cuvinte sunt cartografiate la un singur token, deși cuvintele mai lungi sau mai complexe se descompun adesea în mai multe token-uri. În medie, token-urile au o lungime de aproximativ patru caractere.

În timpul etapei de inferență, în care modelul generează răspunsuri, se utilizează un proces cunoscut sub numele de autoregresie. Aceasta înseamnă că modelul prezice câte un cuvânt la un moment dat, în timp ce se bazează pe istoricul conversației și pe cuvintele generate anterior. Pentru a se asigura că răspunsul generat este coerent și relevant, sunt utilizate tehnici precum eșantionarea top-p și scalarea temperaturii.

Pe scurt, parametrul top-p oferă modelului un grup de opțiuni (jetoane) din care să aleagă, în timp ce temperatura determină probabilitatea de a alege un anumit jetoane. Atunci când temperatura este setată la 0, modelul va alege doar cele mai "populare" simboluri (cuvinte care se găsesc cel mai des împreună în datele de text pe care ChatGPT a fost antrenat):

Acest lucru nu este întotdeauna grozav. Temperaturile mai ridicate fac ca rezultatele să fie mai diverse:

Mai multe despre parametrii ChatGPT: