Inteligență artificială
Creșterea NLP cu Modelele Transformer | O Analiză Cuprinzătoare a T5, BERT și GPT

Procesarea Limbajului Natural (NLP) a experimentat unele dintre cele mai semnificative descoperiri din ultimii ani, în principal datorită arhitecturii transformer. Aceste descoperiri nu numai că au îmbunătățit capacitățile mașinilor de a înțelege și genera limbaj uman, dar au și redefinit peisajul a numeroase aplicații, de la motoarele de căutare la inteligența conversațională.
Pentru a aprecia pe deplin semnificația transformerelor, trebuie să ne uităm mai întâi la predecesorii și blocurile de construcție care au pus bazele acestei arhitecturi revoluționare.
Tehnici NLP Timpurii: Fundațiile Înainte De Transformer
Încorporarea Cuvintelor: De La One-Hot La Word2Vec
În abordările NLP tradiționale, reprezentarea cuvintelor era adesea literală și lipsea orice formă de înțelegere semantică sau sintactică. Codificarea one-hot este un exemplu primar al acestei limitări.
Codificarea one-hot este un proces prin care variabilele categorice sunt convertite într-o reprezentare vectorială binară în care doar un singur bit este “activ” (setat la 1), în timp ce toate celelalte sunt “inerte” (setate la 0). În contextul NLP, fiecare cuvânt dintr-un vocabular este reprezentat de vectori one-hot, unde fiecare vector are dimensiunea vocabularului, iar fiecare cuvânt este reprezentat de un vector cu toate 0 și un 1 la indicele corespunzător cuvântului în lista vocabularului.
Exemplu De Codificare One-Hot
Să presupunem că avem un vocabular mic cu doar cinci cuvinte: [“king”, “queen”, “man”, “woman”, “child”]. Vectorii de codificare one-hot pentru fiecare cuvânt ar arăta astfel:
- “king” -> [1, 0, 0, 0, 0]
- “queen” -> [0, 1, 0, 0, 0]
- “man” -> [0, 0, 1, 0, 0]
- “woman” -> [0, 0, 0, 1, 0]
- “child” -> [0, 0, 0, 0, 1]
Reprezentare Matematică
Dacă notăm V ca fiind dimensiunea vocabularului nostru și wi ca fiind reprezentarea vectorială one-hot a i-lea cuvânt din vocabular, reprezentarea matematică a wi ar fi:
wi=[0,0,…,1,…,0,0] unde poziția i este 1 și toate celelalte poziții sunt 0.unde poziția i este 1 și toate celelalte poziții sunt 0.
Principalul dezavantaj al codificării one-hot este că tratează fiecare cuvânt ca o entitate izolată, fără nicio legătură cu alte cuvinte. Acest lucru duce la vectori rarefiți și de înaltă dimensiune care nu captează nicio informație semantică sau sintactică despre cuvinte.
Introducerea încorporării cuvintelor, în special Word2Vec, a fost un moment crucial în NLP. Dezvoltat de o echipă de la Google condusă de Tomas Mikolov în 2013, Word2Vec a reprezentat cuvintele într-un spațiu vectorial dens, capturând relațiile sintactice și semantice ale cuvintelor pe baza contextului lor în mari corpuri de text.
În contrast cu codificarea one-hot, Word2Vec produce vectori denși, de obicei cu sute de dimensiuni. Cuvintele care apar în contexte similare, cum ar fi “king” și “queen”, vor avea reprezentări vectoriale care sunt mai aproape una de cealaltă în spațiul vectorial.
Pentru ilustrare, să presupunem că am antrenat un model Word2Vec și acum reprezentăm cuvintele într-un spațiu tridimensional ipotetic (care este, de obicei, mai mult de 3D, dar redus aici pentru simplitate). Încorporările (care sunt, de obicei, mai mult de 3D, dar reduse aici pentru simplitate) ar putea arăta astfel:
- “king” -> [0.2, 0.1, 0.9]
- “queen” -> [0.21, 0.13, 0.85]
- “man” -> [0.4, 0.3, 0.2]
- “woman” -> [0.41, 0.33, 0.27]
- “child” -> [0.5, 0.5, 0.1]
Deși aceste numere sunt fictive, ele ilustrează cum cuvintele similare au vectori similari.
Reprezentare Matematică
Dacă reprezentăm încorporarea Word2Vec a unui cuvânt ca vw, și spațiul nostru de încorporare are d dimensiuni, atunci vw poate fi reprezentat ca:
v1,v2,…,vd] unde fiecare vi este un număr în virgulă mobilă care reprezintă o caracteristică a cuvântului în spațiul de încorporare.
Relații Semantice
Word2Vec poate chiar să capteze relații complexe, cum ar fi analogii. De exemplu, relația celebră capturată de încorporările Word2Vec este:
vector(“king”) – vector(“man”) + vector(“woman”)≈vector(“queen”)vector(“king”) – vector(“man”) + vector(“woman”)≈vector(“queen”)
Acest lucru este posibil pentru că Word2Vec ajustează vectorii cuvintelor în timpul antrenării, astfel încât cuvintele care împărtășesc contexte comune în corpus să fie poziționate aproape în spațiul vectorial.
Word2Vec utilizează două arhitecturi principale pentru a produce o reprezentare distribuită a cuvintelor: Continuous Bag-of-Words (CBOW) și Skip-Gram. CBOW prezice un cuvânt țintă din cuvintele sale contextuale, în timp ce Skip-Gram face invers, prezicând cuvintele contextuale dintr-un cuvânt țintă. Acest lucru a permis mașinilor să înceapă să înțeleagă utilizarea și sensul cuvintelor într-un mod mai nuanțat.
Modelarea Secvențială: RNN-urile și LSTMs
Pe măsură ce domeniul a progresat, accentul s-a mutat spre înțelegerea secvențelor de text, ceea ce a fost esențial pentru sarcini precum traducerea mașinilor, rezumarea textului și analiza sentimentului. Rețelele Neuronale Recurente (RNN) au devenit coloana vertebrală pentru aceste aplicații datorită capacității lor de a gestiona date secvențiale prin menținerea unei forme de memorie.
Cu toate acestea, RNN-urile nu au fost lipsite de limitări. Ele au luptat cu dependențele pe termen lung din cauza problemei gradientului care dispare, unde informația se pierde pe secvențe lungi, făcând dificilă învățarea corelațiilor dintre evenimente îndepărtate.
Rețelele Long Short-Term Memory (LSTMs), introduse de Sepp Hochreiter și Jürgen Schmidhuber în 1997, au abordat această problemă cu o arhitectură mai sofisticată. LSTMs au porți care controlează fluxul de informații: poarta de intrare, poarta de uitare și poarta de ieșire. Aceste porți determină ce informație este stocată, actualizată sau eliminată, permițând rețelei să păstreze dependențe pe termen lung și îmbunătățind semnificativ performanța pe o gamă largă de sarcini NLP.
Arhitectura Transformer
Peisajul NLP a suferit o transformare dramatică odată cu introducerea modelului transformer în articolul semnificativ “Attention is All You Need” de Vaswani et al. în 2017. Arhitectura transformer se abate de la procesarea secvențială a RNN-urilor și LSTMs și utilizează în schimb un mecanism numit “auto-atentie” pentru a cântări influența diferitelor părți ale datelor de intrare.
Ideea principală a transformerului este că poate procesa toate datele de intrare deodată, și nu secvențial. Acest lucru permite o paralelizare mult mai mare și, ca urmare, crește semnificativ viteza de antrenare. Mecanismul de auto-atentie permite modelului să se concentreze pe diferite părți ale textului pe măsură ce îl procesează, ceea ce este esențial pentru înțelegerea contextului și a relațiilor dintre cuvinte, indiferent de poziția lor în text.
Encoder și Decoder în Transformer:
În modelul Transformer original, așa cum este descris în articolul “Attention is All You Need” de Vaswani et al., arhitectura este împărțită în două părți principale: encoder și decoder. Ambele părți sunt compuse din straturi care au aceeași structură generală, dar servesc scopuri diferite.
Encoder:
- Rol: Rolul encoderului este de a procesa datele de intrare și de a crea o reprezentare care capturează relațiile dintre elemente (cum ar fi cuvintele dintr-o propoziție). Această parte a transformerului nu generează niciun conținut nou; ea transformă pur și simplu datele de intrare într-o stare pe care decoderul o poate utiliza.
- Funcționalitate: Fiecare strat al encoderului are mecanisme de auto-atentie și rețele neuronale feed-forward. Mecanismul de auto-atentie permite fiecărei poziții din encoder să acorde atenție tuturor pozițiilor din stratul anterior al encoderului—astfel, poate învăța contextul din jurul fiecărui cuvânt.
- Încorporări Contextuale: Ieșirea encoderului este o serie de vectori care reprezintă secvența de intrare într-un spațiu de înaltă dimensiune. Acești vectori sunt adesea numiți încorporări contextuale, deoarece codifică nu numai cuvintele individuale, ci și contextul lor în propoziție.
Decoder:
- Rol: Rolul decoderului este de a genera date de ieșire secvențial, o parte la un moment dat, pe baza datelor de intrare pe care le primește de la encoder și a ceea ce a generat până în prezent. Este proiectat pentru sarcini precum generarea de text, unde ordinea generării este crucială.
- Funcționalitate: Straturile decoderului conțin, de asemenea, mecanisme de auto-atentie, dar sunt mascate pentru a preveni pozițiile de a acorda atenție pozițiilor ulterioare. Acest lucru asigură că predicția pentru o anumită poziție poate depinde doar de ieșirile cunoscute la pozițiile anterioare. În plus, straturile decoderului includ un al doilea mecanism de atenție care acordă atenție ieșirii encoderului, integrând contextul din intrare în procesul de generare.
- Capacități de Generare Secvențială: Acest lucru se referă la capacitatea decoderului de a genera o secvență, un element la un moment dat, construind pe ceea ce a produs deja. De exemplu, atunci când se generează text, decoderul prezice următorul cuvânt pe baza contextului furnizat de encoder și a secvenței de cuvinte pe care a generat-o deja.
Fiecare dintre aceste sub-straturi din encoder și decoder este crucial pentru capacitatea modelului de a gestiona sarcini NLP complexe. Mecanismul de atenție multi-cap este, în special, important, deoarece permite modelului să se concentreze selectiv pe diferite părți ale secvenței, oferind o înțelegere bogată a contextului.
Modele Populare Care Utilizează Transformer
În urma succesului inițial al modelului transformer, a existat o explozie de noi modele construite pe această arhitectură, fiecare cu propriile sale inovații și optimizări pentru sarcini diferite:
BERT (Reprezentări Bidirecționale din Transformer): Introdus de Google în 2018, BERT a revoluționat modul în care informațiile contextuale sunt integrate în reprezentările limbajului. Prin antrenarea pe un corpus mare de text cu un model de limbaj mascate și o predicție a următoarei propoziții, BERT capturează contexte bidirecționale bogate și a obținut rezultate de top pe o gamă largă de sarcini NLP.
T5 (Transformer de Transfer Text-la-Text): Introdus de Google în 2020, T5 reconfigurează toate sarcinile NLP ca o problemă text-la-text, utilizând un format text-based unificat. Acest abordare simplifică procesul de aplicare a modelului la o varietate de sarcini, inclusiv traducere, rezumare și răspuns la întrebări.
GPT (Transformer Generativ Preantrenat): Dezvoltat de OpenAI, linia de modele GPT a început cu GPT-1 și a ajuns la GPT-4 până în 2023. Aceste modele sunt preantrenate utilizând învățarea nesupravegheată pe cantități masive de date text și ajustate pentru diverse sarcini. Capacitatea lor de a genera text coerent și contextual relevant le-a făcut extrem de influente în aplicații atât academice, cât și comerciale de IA.
Aici este o comparație mai detaliată a modelelor T5, BERT și GPT pe diverse dimensiuni:
1. Tokenizare și Vocabular
- BERT: Utilizează tokenizarea WordPiece cu un vocabular de aproximativ 30.000 de tokeni.
- GPT: Utilizează codificarea perechi de octeți (BPE) cu un vocabular mare (de exemplu, GPT-3 are un vocabular de 175.000).
- T5: Utilizează tokenizarea SentencePiece, care tratează textul ca brut și nu necesită cuvinte presegmentate.
2. Obiective de Preantrenare
- BERT: Model de limbaj mascate (MLM) și predicție de propoziție următoare (NSP).
- GPT: Modelare de limbaj cauzală (CLM), unde fiecare token prezice următorul token din secvență.
- T5: Utilizează un obiectiv de denoising, unde spanuri aleatorii de text sunt înlocuite cu un token sentinel și modelul învață să reconstruiască textul original.
3. Reprezentare de Intrare
- BERT: Încorporări de token, segment și poziție sunt combinate pentru a reprezenta intrarea.
- GPT: Încorporări de token și poziție sunt combinate (fără încorporări de segment, deoarece nu este proiectat pentru sarcini de perechi de propoziții).
- T5: Doar încorporări de token, cu codări poziționale relative adăugate în timpul operațiunilor de atenție.
4. Mecanism de Atenție
- BERT: Utilizează codări poziționale absolute și permite fiecărui token să acorde atenție tuturor tokenilor din stânga și din dreapta (atenție bidirecțională).
- GPT: Utilizează, de asemenea, codări poziționale absolute, dar restricționează atenția la tokeni precedenți (atenție unidirecțională).
- T5: Implementează o variantă a transformerului care utilizează biasuri poziționale relative în loc de încorporări poziționale.
5. Arhitectură de Model
- BERT: Arhitectură doar de encoder, cu multiple straturi de blocuri transformer.
- GPT: Arhitectură doar de decoder, de asemenea, cu multiple straturi, dar proiectată pentru sarcini generative.
- T5: Arhitectură encoder-decoder, unde atât encoderul, cât și decoderul sunt compuse din straturi transformer.
6. Abordare de Ajustare
- BERT: Ajustează stările ascunse finale ale modelului preantrenat pentru sarcini downstream cu straturi de ieșire suplimentare după cum este necesar.
- GPT: Adaugă un strat liniar deasupra transformerului și ajustează pe sarcina downstream utilizând același obiectiv de modelare de limbaj cauzală.
- T5: Convertește toate sarcinile într-un format text-la-text, unde modelul este ajustat pentru a genera secvența țintă din secvența de intrare.
7. Date de Antrenare și Scara
- BERT: Antrenat pe BooksCorpus și Wikipedia în limba engleză.
- GPT: GPT-2 și GPT-3 au fost antrenate pe seturi de date diverse extrase de pe internet, GPT-3 fiind antrenat pe un corpus și mai mare numit Common Crawl.
- T5: Antrenat pe “Colossal Clean Crawled Corpus”, o versiune mare și curată a Common Crawl.
8. Gestionarea Contextului și Bidirecționalității
- BERT: Proiectat pentru a înțelege contextul în ambele direcții simultan.
- GPT: Antrenat pentru a înțelege contextul într-o direcție (de la stânga la dreapta).
- T5: Poate modela contextul bidirecțional în encoder și unidirecțional în decoder, adecvat pentru sarcini de secvență-la-secvență.
9. Adaptabilitate la Sarcini Downstream
- BERT: Necesită straturi de cap specifice sarcinii și ajustare pentru fiecare sarcină downstream.
- GPT: Este generativ din natură și poate fi îndrumat pentru a efectua sarcini cu modificări minime ale structurii sale.
- T5: Tratează fiecare sarcină ca o problemă “text-la-text”, făcându-l în mod inerent flexibil și adaptabil la sarcini noi.
10. Interpretabilitate și Explicabilitate
- BERT: Natura bidirecțională oferă încorporări contextuale bogate, dar poate fi mai greu de interpretat.
- GPT: Contextul unidirecțional poate fi mai ușor de urmărit, dar lipsește adâncimea contextului bidirecțional.
- T5: Cadru encoder-decoder oferă o separare clară a pașilor de procesare, dar poate fi complex de analizat din cauza naturii sale generative.
Impactul Transformerelor asupra NLP
Transformerele au revoluționat domeniul NLP, permițând modelelor să proceseze secvențe de date în paralel, ceea ce a crescut dramatic viteza și eficiența antrenării rețelelor neuronale mari. Ele au introdus mecanismul de auto-atentie, permițând modelelor să cântărească importanța fiecărei părți a datelor de intrare, indiferent de distanța în secvență. Acest lucru a condus la îmbunătățiri fără precedent într-o gamă largă de sarcini NLP, inclusiv traducere, răspuns la întrebări și rezumare de text.
Cercetarea continuă să împingă limitele a ceea ce pot realiza modelele bazate pe transformere. GPT-4 și contemporanii săi nu sunt doar mai mari ca scară, ci și mai eficienți și capabili datorită progreselor în arhitectură și metode de antrenare. Tehnici precum învățarea cu puține exemple, unde modelele efectuează sarcini cu exemple minimale, și metode pentru transferul de învățare mai eficient sunt în prim-planul cercetării actuale.
Modelele de limbaj precum cele bazate pe transformere învață din date care pot conține prejudecăți. Cercetătorii și practicienii lucrează activ pentru a identifica, înțelege și mitiga aceste prejudecăți. Tehnicile variază de la seturi de date de antrenare curate la ajustări post-antrenare menite să promoveze echitatea și neutralitatea.













