Introducere în modelele de transformatoare: ce sunt și cum funcționează
Publicat: 2024-08-07Transformers sunt o descoperire în AI, în special în procesarea limbajului natural (NLP). Renumite pentru performanța și scalabilitatea lor, sunt vitale în aplicații precum traducerea lingvistică și IA conversațională. Acest articol explorează structura lor, comparațiile cu alte rețele neuronale și argumentele pro și contra.
Cuprins
- Ce este un model de transformator?
- Transformers vs. CNN-uri și RNN-uri
- Cum funcționează modelele de transformatoare
- Exemple de modele de transformatoare
- Avantaje
- Dezavantaje
Ce este un model de transformator?
Un transformator este un tip de model de deep learning care este utilizat pe scară largă în NLP. Datorită performanței sarcinilor și scalabilității sale, este nucleul modelelor precum seria GPT (realizată de OpenAI), Claude (realizat de Anthropic) și Gemini (produs de Google) și este utilizat pe scară largă în întreaga industrie.
Modelele de învățare profundă constau din trei componente principale: arhitectura modelului, datele de antrenament și metodele de antrenament. În acest cadru, un transformator reprezintă un tip de arhitectură model. Definește structura rețelelor neuronale și interacțiunile acestora. Inovația cheie care diferențiază transformatoarele de alte modele de învățare automată (ML) este utilizarea „atenției”.
Atenția este un mecanism în transformatoare care le permite să proceseze intrările în mod eficient și să mențină informațiile pe secvențe lungi (de exemplu, un eseu întreg).
Iată un exemplu de ilustrat. „Pisica stătea pe malul de lângă râu. Apoi s-a mutat pe ramura copacului din apropiere.” Puteți recunoaște că „banca” aici nu este banca la care depui bani. Probabil că ai folosi indiciul de context „râu” pentru a-ți da seama. Atenția funcționează în mod similar; folosește celelalte cuvinte pentru a defini ce înseamnă fiecare cuvânt. La ce se referă „el” în exemplu? Modelul ar privi cuvintele „mutat” și „copac” ca indicii pentru a realiza că răspunsul este „pisica”.
Întrebarea importantă fără răspuns este cum știe modelul la ce cuvinte să se uite. Vom ajunge la asta puțin mai târziu. Dar acum că am definit modelul transformatorului, să explicăm în continuare de ce este folosit atât de intens.
Transformers vs. CNN-uri și RNN-uri
Rețelele neuronale recurente (RNN) și rețelele neuronale convoluționale (CNN) sunt alte două modele comune de învățare profundă. În timp ce RNN-urile și CNN-urile au beneficiile lor, transformatoarele sunt mai utilizate pe scară largă deoarece gestionează mult mai bine intrările lungi.
Transformers vs. RNN-uri
Rețelele neuronale recurente sunt modele secvențiale. O analogie potrivită este un om care citește o carte. Pe măsură ce citesc, cuvânt cu cuvânt, memoria și înțelegerea cărții lor evoluează. Pentru cititorii pricepuți, ar putea chiar să prezică ce se va întâmpla în continuare, pe baza a ceea ce a apărut înainte. Un RNN funcționează în același mod. Citește cuvânt cu cuvânt, își actualizează memoria (numită stare ascunsă) și apoi poate face o predicție (de exemplu, următorul cuvânt din propoziție sau sentimentul unui text). Dezavantajul este că starea ascunsă nu poate conține prea multe informații. Dacă ai introduce o carte întreagă într-un RNN, nu și-ar aminti multe detalii despre capitolele introductive, deoarece există doar atât de mult spațiu în starea sa ascunsă. Capitolele ulterioare, în virtutea faptului că au fost adăugate în starea ascunsă mai recent, au prioritate.
Transformatoarele nu suferă aceeași problemă de memorie. Ei compară fiecare cuvânt cu fiecare alt cuvânt din intrare (ca parte a mecanismului de atenție), astfel încât să nu fie nevoie să folosească o stare ascunsă sau să-și „amintească” ce sa întâmplat mai devreme. Folosind aceeași analogie cu cartea, un transformator este ca un om care citește următorul cuvânt dintr-o carte și apoi se uită la fiecare cuvânt anterior din carte pentru a înțelege corect noul cuvânt. Dacă prima propoziție a unei cărți conținea expresia „El s-a născut în Franța”, iar ultima propoziție a unei cărți conținea expresia „limba sa maternă”, transformatorul ar putea deduce limba sa maternă este franceza. Este posibil ca un RNN să nu poată face acest lucru, deoarece starea ascunsă nu este garantată să păstreze acele informații. În plus, un RNN trebuie să citească fiecare cuvânt pe rând și apoi să-și actualizeze starea ascunsă. Un transformator își poate aplica atenția în paralel.
Transformers vs. CNN-uri
Rețelele neuronale convoluționale folosesc contextul înconjurător al fiecărui element într-o secvență pentru a atribui sens. Pentru un cuvânt pe o pagină, CNN-urile s-ar uita la cuvintele care îl înconjoară imediat pentru a-și da seama de sensul cuvântului. Nu ar putea conecta ultima și prima pagină a unei cărți. CNN-urile sunt folosite predominant cu imagini, deoarece pixelii se raportează adesea la vecinii lor mult mai mult decât cuvintele. Acestea fiind spuse, CNN-urile pot fi folosite și pentru NLP.
Transformatoarele diferă de CNN-uri prin faptul că se uită la mai mult decât la vecinii imediati ai unui articol. Ei folosesc un mecanism de atenție pentru a compara fiecare cuvânt cu fiecare alt cuvânt din intrare, oferind o înțelegere mai largă și mai cuprinzătoare a contextului.
Cum funcționează modelele de transformatoare?
Transformatoarele au straturi de blocuri de atenție, rețele neuronale feedforward și înglobări. Modelul preia o intrare bazată pe text și returnează textul de ieșire. Pentru a face acest lucru, urmează acești pași:
- Tokenizare:Transformă textul în simboluri (similar cu descompunerea unei propoziții în cuvinte individuale).
- Încorporare:convertește jetoanele în vectori, încorporând înglobări poziționale, astfel încât modelul să înțeleagă locația jetonului în intrare.
- Mecanism de atenție:procesează jetoanele folosind auto-atenție (pentru jetoanele de intrare) sau atenția încrucișată (între jetoanele de intrare și jetoanele generate). Acest mecanism permite modelului să cântărească importanța diferitelor jetoane atunci când generează rezultate.
- Rețea neuronală feedforward:trece rezultatul printr-o rețea neuronală feedforward, care permite modelului să capteze modele complexe prin introducerea neliniarității.
- Repetiție:pașii 3-4 se repetă de mai multe ori prin mai multe straturi pentru a rafina rezultatul.
- Distribuție de ieșire:produce o distribuție de probabilitate pentru toate simbolurile posibile.
- Selecția jetonului:alege jetonul cu cea mai mare probabilitate.
Acest proces face o trecere înainte prin modelul transformatorului. Modelul face acest lucru în mod repetat până când își finalizează textul de ieșire. În cadrul fiecărei treceri, procesul de încorporare poate fi efectuat în paralel, la fel ca mecanismul de atenție și etapa de feedforward. În esență, transformatorul nu trebuie să facă fiecare jeton pe rând. Poate atrage atenția pe toate jetoanele în același timp.
Acum ne putem întoarce la întrebarea de mai devreme: Cum știe modelul la ce jetoane să se ocupe? Răspunsul este pur și simplu să analizăm o mulțime de date de antrenament. La început, modelul se va ocupa de jetoanele greșite și astfel va genera rezultate greșite. Folosind rezultatul corect care vine cu datele de antrenament, mecanismul de atenție poate fi modificat pentru a afișa răspunsul corect data viitoare. Peste miliarde (și chiar trilioane) de exemple, mecanismul de atenție poate alege jetoanele potrivite aproape tot timpul.
Exemple de modele de transformatoare
Transformatoarele sunt peste tot. Deși au fost concepute pentru traducere, transformatoarele s-au adaptat bine la aproape toate sarcinile de limbă, viziune și chiar audio.
Modele mari de limbaj
Arhitectura transformatorului alimentează aproape toate modelele de limbaj mari (LLM): GPT, Claude, Gemini, Llama și multe modele open-source mai mici. LLM-urile pot gestiona diverse sarcini de text (și, din ce în ce mai mult, imagini și audio), cum ar fi răspunsul la întrebări, clasificarea și generarea în formă liberă.
Acest lucru se realizează prin antrenarea modelului de transformator pe miliarde de exemple de text (de obicei răzuite de pe internet). Apoi, companiile ajustează modelul pe exemple de clasificare pentru a învăța modelul cum să efectueze clasificarea corect. Pe scurt, modelul învață o bază largă de cunoștințe și apoi este „învățat” abilități prin reglare fină.
Transformatoare de vedere
Transformatoarele de vedere sunt transformatoare standard adaptate pentru a lucra pe imagini. Principala diferență este că procesul de tokenizare trebuie să funcționeze cu imagini în loc de text. Odată ce intrarea este transformată în jetoane, are loc calculul normal al transformatorului și, în final, jetoanele de ieșire sunt folosite pentru a clasifica imaginea (de exemplu, o imagine a unei pisici). Transformatoarele de vedere sunt adesea îmbinate cu LLM-uri text pentru a forma LLM-uri multimodale. Aceste modele multimodale pot prelua o imagine și pot argumenta asupra acesteia, cum ar fi acceptarea unei schițe a interfeței cu utilizatorul și recuperarea codului necesar pentru ao crea.
CNN-urile sunt, de asemenea, populare pentru sarcini de imagine, dar transformatoarele permit modelului să folosească toți pixelii din imagine în loc de doar pixelii din apropiere. De exemplu, dacă o imagine conținea un semn de oprire în partea stângă și o mașină în partea dreaptă, modelul ar putea determina că mașina trebuie să se oprească. Este posibil ca un CNN să nu poată conecta aceste două puncte de date deoarece sunt departe unul de celălalt în imagine.
Transformatoare audio
Transformatoarele audio, ca și transformatoarele de viziune, sunt transformatoare standard cu o schemă unică de tokenizare, adaptată pentru datele audio. Aceste modele pot procesa atât text, cât și audio brut ca intrare, producând fie text, fie audio. Un exemplu în acest sens este Whisper, un model de vorbire în text care convertește sunetul brut într-o transcriere. Realizează acest lucru prin segmentarea sunetului în bucăți, transformând aceste bucăți în spectrograme și codând spectrogramele în înglobare. Aceste înglobări sunt apoi procesate de transformator, care generează jetoanele de transcriere finale.
Dincolo de aplicațiile vorbire în text, transformatoarele audio au diverse alte cazuri de utilizare, inclusiv generarea de muzică, subtitrarea automată și conversia vocii. În plus, companiile integrează transformatoare audio cu LLM-uri pentru a permite interacțiunile bazate pe voce, permițând utilizatorilor să pună întrebări și să primească răspunsuri prin comenzi vocale.
Avantajele modelelor de transformatoare
Transformatoarele au devenit omniprezente în domeniul învățării automate datorită scalabilității și performanței lor excepționale într-o gamă largă de sarcini. Succesul lor este atribuit mai multor factori cheie:
Context lung
Mecanismul de atenție poate compara toate jetoanele din secvența de intrare între ele. Deci, informațiile din întreaga intrare vor fi reținute și utilizate pentru a genera rezultatul. În schimb, RNN-urile uită informații mai vechi, iar CNN-urile pot folosi doar informații care sunt aproape de fiecare token. Acesta este motivul pentru care puteți încărca sute de pagini într-un chatbot LLM, îi puteți adresa o întrebare despre oricare dintre pagini și puteți obține un răspuns precis. Lipsa unui context lung în RNN-uri și CNN-uri este celmai maremotiv pentru care transformatoarele le bat în sarcini.
Paralelizabilitate
Mecanismul de atenție în transformatoare poate fi executat în paralel pe toate jetoanele din secvența de intrare. Acest lucru contrastează cu RNN-urile, care procesează token-urile secvenţial. Ca rezultat, transformatoarele pot fi instruite și implementate mai rapid, oferind răspunsuri mai rapide utilizatorilor. Această capacitate de procesare paralelă îmbunătățește semnificativ eficiența transformatoarelor în comparație cu RNN-urile.
Scalabilitate
Cercetătorii au crescut continuu dimensiunea transformatoarelor și cantitatea de date folosite pentru a le antrena. Ei nu au văzut încă o limită a cât de mult pot învăța transformatoarele. Cu cât modelul de transformator este mai mare, cu atât textul pe care îl poate înțelege și genera este mai complex și nuanțat (GPT-3 are 175 de miliarde de parametri, în timp ce GPT-4 are mai mult de 1 trilion). În mod remarcabil, extinderea modelelor de transformatoare, cum ar fi crearea unui model cu 10 miliarde de parametri în comparație cu un model cu 1 miliard de parametri, nu necesită mult mai mult timp. Această scalabilitate face din transformatoare instrumente puternice pentru diverse aplicații avansate.
Dezavantajele modelelor de transformatoare
Dezavantajul modelelor de transformatoare este că necesită o mulțime de resurse de calcul. Mecanismul de atenție este pătratic: fiecare jeton din intrare este comparat cu orice alt jeton. Două jetoane ar avea 4 comparații, trei jetoane ar avea 9, patru jetoane ar avea 16 și așa mai departe - în esență, costul de calcul este pătratul numărului de jetoane. Acest cost patratic are câteva implicații:
Hardware specializat
LLM-urile nu pot fi rulate cu ușurință pe un computer obișnuit. Datorită dimensiunii lor, acestea necesită adesea zeci de gigaocteți de RAM pentru a încărca parametrii modelului. De asemenea, procesoarele tradiționale nu sunt optimizate pentru calcul paralel; este necesar un GPU. Un LLM care rulează pe un procesor poate dura câteva minute pentru a genera un singur token. Din păcate, GPU-urile nu sunt tocmai cel mai ieftin sau mai accesibil hardware.
Lungime limitată de intrare
Transformers au o cantitate limitată de text pe care o pot procesa (cunoscută ca lungimea contextului). GPT-3 putea procesa inițial doar 2.048 de jetoane. Progresele în implementările de atenție au produs modele cu lungimi de context de până la 1 milion de jetoane. Chiar și așa, este nevoie de cercetări substanțiale pentru a găsi fiecare simbol suplimentar de lungime a contextului. În schimb, RNN-urile nu au o lungime maximă de context. Precizia lor scade foarte mult pe măsură ce intrarea crește, dar ați putea alimenta o intrare de 2 milioane de jetoane într-una chiar acum.
Costul energiei
Centrele de date care alimentează calcularea transformatoarelor necesită energie pentru a le rula și apă pentru a le răci. După o estimare, GPT-3 a necesitat 1.300 de megawați-oră de energie electrică pentru a se antrena: echivalentul a alimentării a 130 de case din SUA pentru un an întreg. Pe măsură ce modelele devin mai mari, cantitatea de energie necesară crește. Până în 2027, industria AI ar putea avea nevoie de la fel de multă energie electrică în fiecare an ca Țările de Jos. Se fac eforturi semnificative pentru reducerea necesarului de transformatoare de energie, dar această problemă nu a fost încă rezolvată.