Modele și platforme AI
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 de a 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 la blocurile de construcție care au pus bazele acestei arhitecturi revoluționare.
Technici NLP timpurii: Fundațiile dinainte de Transformer
Încorporarea cuvintelor: De la One-Hot la Word2Vec
În abordările tradiționale NLP, 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, în care 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 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 ca dimensiunea vocabularului nostru și ca vectorul one-hot al i-lea cuvânt din vocabular, reprezentarea matematică a ar fi:
unde poziția i-a 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 rare și de dimensiuni mari 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 (GOOGL ) condusă de Tomas Mikolov în 2013, Word2Vec a reprezentat cuvintele într-un spațiu vectorial dens, capturând relații sintactice și semantice între cuvinte pe baza contextului lor în corpuri mari 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. Î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 , și spațiul nostru de încorporare are dimensiuni, atunci poate fi reprezentat ca:
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”)
Acest lucru este posibil deoarece 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 de context, în timp ce Skip-Gram face invers, prezicând cuvintele de context 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 și LSTM
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 automată, rezumarea textului și analiza sentimentului. Rețelele Neuronale Recurente (RNN) au devenit coloana vertebrală a acestor 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 dispărut, în care informația se pierde pe secvențe lungi, făcând dificilă învățarea corelațiilor între evenimente îndepărtate.
Rețelele Long Short-Term Memory (LSTM), introduse de Sepp Hochreiter și Jürgen Schmidhuber în 1997, au abordat această problemă cu o arhitectură mai sofisticată. LSTM-urile 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ții sunt stocate, actualizate sau eliminate, permițând rețelei să păstreze dependențe pe termen lung și îmbunătățind semnificativ performanța într-o gamă largă de sarcini NLP.
Arhitectura Transformer
Peisajul NLP a suferit o transformare dramatică odată cu introducerea modelului transformer în articolul seminal “Attention is All You Need” de Vaswani et al. în 2017. Arhitectura transformer se abate de la procesarea secvențială a RNN-urilor și LSTM-urilor și utilizează în schimb un mecanism numit “atentie self” 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 atenție self 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 captează relațiile dintre elemente (cum ar fi cuvintele dintr-o propoziție). Această parte a transformerului nu generează niciun conținut nou; ea doar transformă datele de intrare într-o stare pe care decoderul o poate utiliza.
- Funcționalitate: Fiecare strat al encoderului are mecanisme de atenție self și rețele neuronale feed-forward. Mecanismul de atenție self permite fiecărei poziții din encoder să se concentreze pe toate pozițiile 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 dimensiuni mari. 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 acel moment. Este proiectat pentru sarcini precum generarea textului, unde ordinea de generare este crucială.
- Funcționalitate: Straturile decoderului conțin, de asemenea, mecanisme de atenție self, dar sunt mascate pentru a preveni pozițiile de a se concentra pe poziții 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 se concentrează pe ieșirea 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 oferit de encoder și a secvenței de cuvinte pe care a generat-o deja.
Fiecare dintre aceste sub-straturi din encoder și decoder este esențial pentru capacitatea modelului de a gestiona sarcini NLP complexe. Mecanismul de atenție multi-cap este, în special, crucial, 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
După succesul inițial al modelului transformer, a urmat o explozie de noi modele construite pe această arhitectură, fiecare cu inovațiile și optimizările sale 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 de propoziție următoare, BERT captează contexte bidirecționale bogate și a obținut rezultate de top într-o gamă largă de sarcini NLP.
T5 (Transformer de transfer text-la-text): Introdus de Google în 2020, T5 reframează toate sarcinile NLP ca probleme text-la-text, utilizând un format text-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 pre-antrenat): 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 pre-antrenate utilizând învățarea nesupravegheată pe cantități uriașe de date text și ajustate pentru diverse sarcini. Capacitatea lor de a genera text coerent și contextual relevant a făcut ca acestea să fie extrem de influente atât în aplicații academice, cât și comerciale AI.
Iată 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 pereche de bytes (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 pre-segmentate.
2. Obiective de pre-antrenare
- BERT: Model de limbaj mascate și predicție de propoziție următoare.
- GPT: Modelare de limbaj cauzală (CLM), în care fiecare token prezice tokenul următor din secvență.
- T5: Utilizează un obiectiv de zgomot, în care spanuri aleatorii de text sunt înlocuite cu un token sentinel și modelul învață să reconstruiască textul original.
3. Reprezentare de intrare
- BERT: Încorporări token, segment și poziționale sunt combinate pentru a reprezenta intrarea.
- GPT: Încorporări token și poziționale sunt combinate (fără încorporări de segment, deoarece nu este proiectat pentru sarcini de perechi de propoziții).
- T5: Doar încorporări 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ă se concentreze pe toți tokenii 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 tokenii anteriori (atenție unidirecțională).
- T5: Implementează o variantă a transformerului care utilizează biasuri de poziție relativă în loc de încorporări poziționale.
5. Arhitectura modelului
- BERT: Arhitectură doar encoder, cu multiple straturi de blocuri transformer.
- GPT: Arhitectură doar decoder, de asemenea, cu multiple straturi, dar proiectată pentru sarcini generative.
- T5: Arhitectură encoder-decoder, în care atât encoderul, cât și decoderul sunt compuse din straturi transformer.
6. Abordare de ajustare fină
- BERT: Ajustează stările ascunse finale ale modelului pre-antrenat pentru sarcini downstream cu straturi de ieșire suplimentare, după cum este necesar.
- GPT: Adaugă un strat liniar pe partea superioară a transformerului și ajustează pe sarcina downstream utilizând același obiectiv de modelare a limbajului cauzal.
- T5: Convertă toate sarcinile într-un format text-la-text, în care modelul este ajustat pentru a genera secvența țintă din secvența de intrare.
7. Date de antrenare și scară
- 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 a 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 fină 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 etapelor 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 atenție self, permițând modelelor să cântărească importanța diferitelor părți ale datelor de intrare, indiferent de distanța din 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, în care modelele efectuează sarcini cu exemple minimale, și metode pentru transferul de învățare mai eficient sunt în centrul 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, a înțelege și a mitiga aceste prejudecăți. Tehnicile variază de la seturi de date de antrenare curate până la ajustări post-antrenare menite să promoveze echitatea și neutralitatea.















