Large language model (RO)
Modelul lingvistic mare (large language model, LLM) — este un tip de model de Machine Learning, implementat cu ajutorul unei rețele neuronale profunde, care dispune de un număr mare de parametri (de obicei miliarde sau mai mult) și este antrenat pe volume mari de date textuale. „Mare" în acest context se referă atât la scala parametrilor, cât și la volumul corpusului de antrenament, care în sistemele moderne atinge câțiva petabyți și trilioane de token-uri. Modelele LLM sunt antrenate preponderent prin metoda de învățare auto-supravegheată sau semi-supravegheată (self-/semi-supervised), prezicând următorul token dintr-o secvență și asimilând astfel tiparele statistice ale limbajului. Creșterea numărului de parametri, a datelor și a pașilor de calcul conduce la o îmbunătățire previzibilă a calității, confirmată de scaling laws.
După apariția BERT (2017) și în special după GPT-3 (2020), abordarea LLM a ajuns să domine procesarea limbajului natural. Modelele moderne (GPT-4o, Claude 3, Gemini 1.5, LLaMA 3 etc.) pot, fără configurare specială, să scrie texte și cod-sursă, să traducă, să rezumeze, să răspundă la întrebări și să construiască lanțuri de raționament; versiunile multimodale analizează imagini, sunet și video. Adaptarea la o sarcină aplicată se realizează prin fine-tuning sau prin ingineria prompturilor (prompt engineering, in-context learning). Alături de realizările lor, modelele LLM moștenesc prejudecățile și erorile din datele sursă, sunt predispuse la „halucinații" și necesită resurse de calcul considerabile, motiv pentru care cercetările de astăzi se concentrează pe alinierea comportamentului, filtrarea corpusurilor și arhitecturi eficiente energetic.
Arhitectura
În modelele LLM moderne se utilizează aproape întotdeauna arhitectura Transformer (transformator) — o rețea cu mecanism de auto-atenție (self-attention). Modelul transformer a fost propus pentru prima dată în articolul Attention is All You Need de către cercetătorii Google în 2017.
Arhitectura Transformer este schema de bază a rețelei neuronale pentru procesarea secvențelor, incluzând două module logice — encoder-ul (codifică intrarea) și decoder-ul (generează ieșirea). La intrare se primește o secvență, se creează reprezentarea sa vectorială (embedding), se adaugă vectorul de codificare pozițională, după care mulțimea elementelor fără a ține cont de ordinea în secvență intră în componenta de codificare (procesare paralelă), iar apoi componenta de decodificare primește la intrare o parte din această secvență și ieșirea componentei de codificare. În rezultat se obține o nouă secvență de ieșire.
Componenta de codificare a transformatorului constă din mai multe straturi-codificatoare identice; componenta de decodificare este structurată în mod similar. Transformatorul în sine este o succesiune de modele de atenție care transformă secvența inițială de vectori într-o nouă secvență, în care fiecare element ia în considerare contextul celorlalți. Encoder-ul formează reprezentări ascunse ale datelor de intrare, păstrând informații despre relațiile dintre elemente. Decoder-ul, pe baza reprezentărilor ascunse, creează o nouă secvență de embedding-uri pentru token-urile de ieșire. Apoi, pe baza acestor embedding-uri, modelul lingvistic generează elementele finale de ieșire.
Deoarece transformatoarele au fost inițial dezvoltate pentru sarcini precum traducerea automată, arhitectura lor include un encoder (care procesează textul de intrare, de exemplu propoziția sursă) și un decoder (care generează ieșirea, de exemplu traducerea). Cu toate acestea, multe modele lingvistice utilizează doar partea de decodificare, funcționând în mod autoregresiv.
Transformatoarele sunt utilizate în trei configurații principale, fiecare dintre ele folosind în mod diferit encoder-ul și decoder-ul și fiind orientată spre un set propriu de sarcini:
- Transformer-ele de tip encoder (bidirecționale) învață să restaureze fragmente de text ascunse intenționat, de aceea sunt potrivite pentru sarcini de „înțelegere" — clasificare, extragere de fapte, căutare semantică.
- Transformer-ele de tip decoder (autoregresive) sunt optimizate pentru predicția token-ului următor și sunt utilizate acolo unde este necesară o ieșire în flux: agenți conversaționali, auto-completare de cod, generare creativă.
- Schemele complete „encoder + decoder\" combină ambele abordări: encoder-ul construiește reprezentarea întregului text de intrare, iar decoder-ul, bazându-se pe aceasta, formează rezultatul pas cu pas. Această configurație este cea mai eficientă pentru traducerea automată, rezumare și sisteme de întrebări și răspunsuri.
Tokenizarea
Tokenizarea — etapa inițială esențială a procesării textului în modelele lingvistice mari. În această etapă, șirul continuu de caractere este împărțit în unități separate — token-uri. Tokenizarea realizează sarcina de transformare a secvenței de caractere într-o secvență de elemente structurate, asigurând funcționarea eficientă a rețelei neuronale.
Din punct de vedere lingvistic, tokenizarea ar putea corespunde într-o anumită măsură procesului de identificare a unităților minimale ale limbajului care posedă sens propriu sau funcție proprie, cum ar fi cuvintele, morfemele sau fragmentele acestora. Cu toate acestea, de multe ori un token reprezintă pur și simplu o secvență de caractere care apare frecvent din punct de vedere statistic, de aceea este important să nu se supraestimeze semnificația lingvistică a tuturor token-urilor. În funcție de schema aleasă, un token poate fi: un cuvânt întreg, un subcuvânt, un caracter individual, o etichetă de serviciu (de exemplu, marcatori de început și de sfârșit al secvenței).
Tokenizarea permite:
- limitarea dimensiunii vocabularului la proporții acceptabile;
- procesarea corectă a cuvintelor rare și noi;
- asigurarea unei mapări univoce a textului la o secvență de identificatori numerici.
Pentru segmentarea textului se utilizează algoritmi sub-cuvânt, cei mai răspândiți dintre care sunt Byte Pair Encoding (BPE), WordPiece și UnigramLM. Fiecare dintre aceștia construiește un vocabular din cele mai frecvente fragmente ale corpusului și îl utilizează pentru segmentarea secvențială a oricărui text de intrare.
După etapa de tokenizare, fiecare unitate de text — token — este transformată într-o reprezentare numerică înțeleasă de rețeaua neuronală. Acest proces include mai mulți pași secvențiali:
- Transformarea token-urilor în identificatori: Fiecare token este asociat cu un index numeric unic pe baza unui vocabular de token-uri construit în prealabil. Token-urile textuale sunt înlocuite cu identificatorii lor numerici unici (ID). Fiecare ID este numărul token-ului în vocabularul construit în prealabil, ceea ce permite rețelei neuronale să lucreze cu numere în loc de cuvinte.
- Transformarea identificatorilor în embedding-uri: Pentru fiecare identificator de token se extrage sau se calculează vectorul corespunzător de dimensiune fixă — embedding-ul (embedding). Această reprezentare numerică multidimensională înlocuiește ID-ul și conține deja informații despre semnificația și proprietățile contextuale ale token-ului. Toate embedding-urile au aceeași lungime pentru ușurința procesării.
- Adăugarea codificărilor poziționale: Deoarece arhitectura Transformer în sine nu ia în considerare ordinea elementelor, la embedding-uri se adaugă codificări poziționale (positional encodings), care furnizează informații despre poziția token-ului în secvență. Cu alte cuvinte, datorită acestui mecanism, modelul „știe" care token este primul, al doilea, al treilea și așa mai departe în propoziție.
- Formarea matricelor de intrare: La ieșire se obține o matrice de dimensiune
[длина последовательности × размерность эмбеддинга], care servește drept reprezentare inițială a textului și este transmisă la intrarea rețelei neuronale, în special în blocurile de auto-atenție (self-attention) ale Transformer-ului. Fiecare linie a acestei matrice corespunde unui token, iar vectorul conținut în ea poartă atât semnificația sa semantică (embedding), cât și informații despre poziția sa în text (codificarea pozițională).
Текст → Токены → Идентификаторы → Эмбеддинги + Позиционные кодировки → Вход в модель
Mecanismul de atenție
Mecanismul de atenție (attention mechanism) — componentă esențială a arhitecturii Transformer, care oferă posibilitatea de a lua în considerare dependențele dintre token-uri indiferent de distanța dintre ele în secvență. După ce textul de intrare este transformat într-o secvență de vectori, această secvență intră în elementul central al transformatorului — blocul de atenție (attention block).
Mecanismul de atenție reprezintă o modalitate prin care rețeaua neuronală determină căror părți ale datelor de intrare trebuie să le acorde mai multă atenție la procesarea fiecărui element din secvență. Datorită acestuia, vectorii fragmentelor individuale de text pot interacționa unii cu alții, îmbogățindu-se cu informații și actualizându-și valorile în funcție de contextul înconjurător. Astfel, modelul dobândește capacitatea de a surprinde eficient atât dependențele locale, cât și pe cele de lungă distanță dintre token-uri, ceea ce îi sporește considerabil capacitatea de a interpreta structuri textuale complexe.
În limbajul natural, semnificația unui cuvânt sau a unei expresii nu este determinată în mod izolat — ea depinde de context, adică de celelalte cuvinte și structuri din jur. În rețelele neuronale, textul este codificat prin reprezentări vectoriale — embedding-uri care reflectă numeric proprietățile lexicale și sintactice ale token-urilor. Fără un mecanism de atenție directă (ca în Transformer), informațiile despre context fie s-ar pierde la distanțe mari (ca în modelele simple), fie ar fi transmise secvențial, ceea ce este mai puțin eficient pentru captarea legăturilor de lungă distanță. Totuși, în limbajul natural, semnificația unui cuvânt sau a unei construcții sintactice este dinamică, iar interpretarea sa trebuie să se adapteze în funcție de context. Mecanismul de atenție realizează contextualizarea reprezentărilor vectoriale, ceea ce înseamnă (sau pur și simplu :):
- Fiecare token „evaluează" importanța sa relativă față de celelalte token-uri din propoziție.
- În procesul de actualizare, reprezentările vectoriale se îmbogățesc cu informații reciproce, reflectând dependențele sintactice, rolurile semantice și contextul pragmatic.
În urma acestui schimb de informații, vectorii actualizați încep să codifice nu doar semnificația token-ului în sine, ci și relațiile sale gramaticale (sintaxă), rolul său în situația descrisă (semantică) și sensul general în context (pragmatică).
Входные векторы токенов (с позициями) → Механизм Внимания (Взаимодействие векторов) → Контекстуализированные векторы токенов (Векторы обогащенные информацией о связях с другими токенами)
Implementarea tehnică a mecanismului de atenție
Structura internă a mecanismului de atenție include mai mulți pași și componente de calcul esențiale. Pentru fiecare vector de intrare se generează trei vectori: Interogare (Query), Cheie (Key) și Valoare (Value). Pe baza interacțiunii lor se calculează ponderile de atenție, care sunt ulterior utilizate pentru obținerea reprezentărilor vectoriale actualizate și contextualizate. O abordare frecvent utilizată este arhitectura cu mai multe capete (Multi-Head Attention) pentru procesarea paralelă a informațiilor.
Interogare (Query), Cheie (Key), Valoare (Value)
La baza calculului mecanismului de atenție stă transformarea fiecărui vector de intrare (care reprezintă suma embedding-ului token-ului și a codificării sale poziționale) în trei reprezentări vectoriale distincte: Interogare (Query, Q), Cheie (Key, K) și Valoare (Value, V).
Conceptual, acești trei vectori îndeplinesc următoarele roluri în mecanismul de atenție:
- Interogare (Query): Reprezintă vectorul token-ului curent, care inițiază procesul de căutare a informațiilor relevante în secvență. Poate fi considerat un „întrebare" sau „sondă", utilizat pentru evaluarea importanței celorlalți token-uri față de cel curent.
- Cheie (Key): Joacă rolul unui identificator sau „etichetă", descriind aspectul conținutului fiecărui token. Vectorul Interogare (Q) al token-ului curent este comparat cu toți vectorii Cheie (K) din secvență (inclusiv cu al său propriu) pentru a determina gradul de corespondență sau relevanță al acestora.
- Valoare (Value): Conține informația efectivă sau reprezentarea asociată cu fiecare token, care va fi transmisă mai departe. După calcularea ponderilor de atenție pe baza interacțiunii dintre Interogări și Chei, aceste ponderi sunt aplicate vectorilor Valoare pentru a forma reprezentarea ponderată finală, care constituie ieșirea mecanismului de atenție pentru token-ul respectiv.
Antrenarea modelelor lingvistice mari
Antrenarea LLM se desfășoară preponderent în două etape:
- Pre-antrenare (Pretraining) În această etapă, modelul este antrenat pe corpusuri mari de text ne-adnotat prin metoda de învățare auto-supravegheată (self-supervised learning). Sarcina constă în predicția token-ului următor din secvență (autoregresie) sau în restaurarea fragmentelor ascunse (antrenare mascată). Pre-antrenarea permite modelului să asimileze tipare statistice extinse ale limbajului, gramatică, fapte despre lume și forme de bază ale raționamentului.
- Ajustare fină (Fine-tuning) După pre-antrenare, modelul este antrenat suplimentar pe date specializate pentru a îndeplini sarcini specifice, de exemplu generarea de răspunsuri, clasificarea textelor sau executarea instrucțiunilor. Abordările moderne includ:
- Fine-tuning pe seturi de date adnotate (supervised fine-tuning).
- Învățare prin recompensă cu implicarea omului (RLHF, reinforcement learning from human feedback) pentru corectarea comportamentului modelului în conformitate cu metricile țintă de calitate, siguranță și utilitate.
Probleme și limitări
În ciuda progreselor impresionante, modelele lingvistice mari (LLM) moderne prezintă o serie de probleme și limitări:
I. Limitări Computaționale și Arhitecturale
- Costuri computaționale ridicate: Antrenarea și exploatarea LLM necesită resurse computaționale, timp și energie considerabile, ceea ce implică costuri economice și de mediu mari. În plus, natura autoregresivă a generării (crearea secvențială a token-urilor) limitează paralelizarea și reduce viteza de inferență comparativ cu abordările ne-autoregresive.
- Limitarea lungimii contextului: Arhitectura Transformer prezintă o dependență pătratică a costurilor computaționale și a cerințelor de memorie față de lungimea secvenței. Aceasta impune stabilirea unei limite fixe (fereastră de context) pentru volumul de text pe care modelul îl poate procesa simultan, ducând la truncherea documentelor lungi și la pierderea informațiilor din afara ferestrei.
II. Probleme de Fiabilitate și Acuratețe a Generării
- Halucinații: Generarea de informații faptice incorecte, dar cu o sonoritate plauzibilă. Aceasta este legată de absența unei înțelegeri reale a lumii de către model, de bazarea pe tipare statistice din date și de incapacitatea de a verifica afirmațiile generate.
- Propagarea erorilor (Error Propagation): Procesul prin care erorile comise în etapele timpurii ale generării se amplifică și conduc la acumularea de inexactități în pașii următori, reducând calitatea generală și coerența textului.
- Composiționalitate limitată: Dificultăți cu sarcinile care necesită raționament logic în mai mulți pași sau calcule precise (de exemplu, înmulțirea numerelor cu mai multe cifre, rezolvarea puzzle-urilor). Acuratețea modelelor la astfel de sarcini scade brusc odată cu creșterea complexității, din cauza naturii autoregresive a generării.
- Repetiții: Tendința de a repeta excesiv cuvinte sau expresii, reducând informativitatea și lizibilitatea textului. Este legată de particularitățile antrenării și ale algoritmilor de decodificare (selecția token-ului următor).
- Blestemul inversării (Reversal Curse): Incapacitatea modelului de a generaliza automat cunoștințele în direcție inversă: după antrenarea pe afirmația „A este B", modelul deseori nu poate deduce că „B este A".
- Compromisul „creativitate-acuratețe\": Necesitatea de a găsi un echilibru între generarea de răspunsuri diverse și originale și menținerea acurateței faptice. Creșterea unui aspect afectează adesea negativ celălalt — de exemplu, creativitatea ridicată poate corela cu o creștere a halucinațiilor.
III. Probleme de Interacțiune și Control:
- Controlabilitate redusă: Dificultatea controlului precis al stilului, tonului, conținutului textului generat sau al respectării instrucțiunilor complexe. Controlabilitatea depinde în mare măsură de calitatea instrucțiunilor de intrare („prompturi") și de metodele de fine-tuning.
- Sensibilitate la formulări: Modificări minore ale interogării de intrare (promptului) pot duce la răspunsuri substanțial diferite, chiar dacă semantica interogării se păstrează. Aceasta îngreunează obținerea de rezultate stabile și previzibile.
IV. Aspecte Etice și Sociale:
- Probleme de prejudecată și echitate: Modelele pot reproduce și amplifica stereotipurile sociale, prejudecățile sau toxicitatea existente în datele de antrenament. Asigurarea echității și siguranței modelelor reprezintă o sarcină complexă.
- Problema alinierii (LLM Alignment): O problemă mai generală, care o include pe cea anterioară. Este sarcina de a asigura că comportamentul modelului corespunde valorilor umane, intențiilor și normelor etice. Include combaterea prejudecăților, a halucinațiilor, a generării de conținut dăunător și îmbunătățirea controlabilității.
- Riscuri de utilizare malițioasă: Posibilitatea utilizării LLM pentru crearea și distribuirea în masă a dezinformării, phishing-ului, spam-ului, codului malițios sau pentru generarea de texte false convingătoare, ceea ce reprezintă amenințări la adresa securității informaționale și personale, precum și subminarea încrederii în societate.
Referințe:
- „Modelul lingvistic mare" // Wikipedia (Versiunea în limba rusă)
- Large Language Model // Wikipedia (English version)
- Grand Modèle de Langage // Wikipédia (Version française)
- Sprachmodell // Wikipedia (Deutsche version)
- Naveed H. et al. // A Comprehensive Overview of Large Language Models // arXiv:2307.06435, 2023
Bibliografie
- Vaswani, A. et al. (2017). Attention Is All You Need. arXiv:1706.03762.
- Devlin, J. et al. (2019). BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. arXiv:1810.04805.
- Brown, T. et al. (2020). Language Models Are Few-Shot Learners. arXiv:2005.14165.
- Kaplan, J. et al. (2020). Scaling Laws for Neural Language Models. arXiv:2001.08361.
- Hoffmann, J. et al. (2022). Training Compute-Optimal Large Language Models. arXiv:2203.15556.
- Ouyang, L. et al. (2022). Training Language Models to Follow Instructions with Human Feedback. arXiv:2203.02155.
- Bai, Y. et al. (2022). Constitutional AI: Harmlessness from AI Feedback. arXiv:2212.08073.
- Bubeck, S. et al. (2023). Sparks of Artificial General Intelligence: Early Experiments with GPT-4. arXiv:2303.12712.
- OpenAI. (2023). GPT-4 Technical Report. arXiv:2303.08774.
- Touvron, H. et al. (2024). The Llama 3 Herd of Models. arXiv:2407.21783.