ChatGPT Tehnici Avansate
Arhitectura și Tokenizarea
Arhitectura Transformer
Infrastructura care stă la baza majorității modelelor lingvistice mari (LLM) moderne este arhitectura Transformer, introdusă în lucrarea revoluționară din 2017, „Attention Is All You Need”. Spre deosebire de arhitecturile anterioare, precum Rețelele Neuronale Recurente (RNN), care procesau secvențele de date în mod secvențial, Transformer-ul procesează toate elementele (tokenii) în paralel. Acest lucru este posibil datorită mecanismului său central: auto-atenția (self-attention).
La baza Transformer-ului se află auto-atenția, care permite modelului să cântărească importanța fiecărui token în raport cu celelalte din secvență.
Mecanismul de auto-atenție permite modelului să evalueze importanța fiecărui cuvânt dintr-un context. Pentru fiecare token din secvența de intrare, modelul generează trei vectori: Interogare (Query), Cheie (Key) și Valoare (Value). Vectorul Query al unui token este comparat cu vectorii Key ai tuturor celorlalte token-uri pentru a calcula un scor de atenție. Aceste scoruri determină cât de multă „atenție” ar trebui să acorde un token celorlalte. Scorurile sunt apoi folosite pentru a pondera vectorii Value corespunzători, creând o nouă reprezentare a token-ului care este conștientă de contextul său.
Pentru a spori puterea acestui mecanism, Transformer-ul folosește „atenția multi-cap” (multi-head attention). În loc să execute un singur calcul de atenție, modelul are mai multe „capete” de atenție care rulează în paralel. Fiecare cap învață să se concentreze pe diferite relații sintactice și semantice din text, permițând modelului să capteze o înțelegere mult mai nuanțată a contextului.
Tokenizarea și Fereastra de Context
Modelele lingvistice nu procesează textul brut direct. În schimb, ele îl descompun în unități mai mici, numite tokeni. Procesul de conversie a textului într-o secvență de tokeni se numește tokenizare. Majoritatea LLM-urilor moderne folosesc algoritmi de tokenizare sub-cuvânt, cum ar fi (BPE). Această abordare permite modelului să gestioneze cuvinte rare sau necunoscute prin descompunerea lor în unități mai mici, prezente în vocabularul său.
De exemplu, cuvântul „nedemocratic” ar putea fi tokenizat ca ["ne", "demo", "cratic"], permițând modelului să înțeleagă sensul chiar dacă nu a mai întâlnit exact acest cuvânt, dar a întâlnit prefixul „ne-” și rădăcinile „demo” și „cratic” în alte contexte. Eficiența tokenizării afectează direct consumul de context. Limbile cu morfologie complexă sau cuvintele rare vor genera mai mulți tokeni pentru același text, umplând mai repede fereastra de context.
Fereastra de context (context window) reprezintă numărul maxim de tokeni pe care un model îi poate procesa simultan. Aceasta este o limitare hardware și arhitecturală fundamentală.
Odată ce lungimea secvenței depășește această fereastră, informațiile mai vechi sunt pierdute. Mai mult, chiar și în interiorul ferestrei, performanța modelului poate degrada în cazul secvențelor foarte lungi. Un fenomen cunoscut sub numele de „pierdut în mijloc” (lost in the middle) descrie tendința modelelor de a acorda mai multă atenție informațiilor de la începutul și sfârșitul contextului, neglijându-le pe cele din mijloc. Acest lucru are implicații directe pentru proiectarea prompturilor, în special în sarcinile care necesită sinteza informațiilor dintr-un document lung.
De la Logits la Tokeni
După ce arhitectura Transformer a procesat secvența de tokeni de intrare, sarcina finală este de a prezice următorul token. Acest proces are loc în stratul final al modelului, adesea numit „capul modelului lingvistic” (language model head).
Pentru fiecare poziție posibilă a următorului token, modelul generează un vector de scoruri brute, numite . Dimensiunea acestui vector este egală cu dimensiunea vocabularului modelului (de exemplu, 50.257 de tokeni pentru GPT-2). Fiecare logit corespunde unui token specific din vocabular și reprezintă o măsură a probabilității ne-normalizate ca acel token să fie următorul în secvență.
După obținerea distribuției de probabilitate, pasul final este selectarea efectivă a următorului token. Deși cea mai simplă metodă ar fi alegerea tokenului cu cea mai mare probabilitate (o strategie numită decodare Greedy), aceasta duce adesea la text repetitiv și lipsit de creativitate. În schimb, se folosesc tehnici de eșantionare, cum ar fi ajustarea parametrului de „temperatură” pentru a controla gradul de aleatoriu sau folosirea eșantionării Top-K/Top-P pentru a limita selecția la un set de tokeni plauzibili. Înțelegerea acestui proces de selecție este crucială pentru a controla calitatea și diversitatea textului generat.
