Fundamentele AI

Ce sunt rețelele neuronale Transformer?

mm
Adaugă Unite.AI la sursele tale preferate pe Google

Rețelele neuronale Transformer descrise

Transformatorii sunt un tip de model de mașină de ÃŪnvățare care se specializează ÃŪn prelucrarea și interpretarea datelor secvențiale, făcÃĒndu-le optime pentru sarcinile de prelucrare a limbajului natural. Pentru a ÃŪnțelege mai bine ce este un transformator de mașină de ÃŪnvățare și cum funcționează, să aruncăm o privire mai atentă asupra modelului transformator și a mecanismelor care le conduc.

Acest articol va acoperi:

  • Modele secvență-la-secvență
  • Arhitectura rețelei neuronale Transformer
  • Mecanismul de atenție
  • Diferențe ÃŪntre transformatori și RNN/LSTM

Modele secvență-la-secvență

Modelele secvență-la-secvență sunt un tip de model de prelucrare a limbajului natural care sunt utilizate pentru a converti secvențe de un anumit tip ÃŪntr-o secvență de alt tip. Există diverse tipuri de modele secvență-la-secvență, cum ar fi modelele de rețea neurală recurentă și modelele LSTM (Long Short-Term Memory).

Modelele tradiționale secvență-la-secvență, cum ar fi RNN-urile și LSTM-urile, nu sunt subiectul acestui articol, dar o ÃŪnțelegere a lor este necesară pentru a aprecia cum funcționează modelele transformator și de ce sunt superioare modelelor tradiționale secvență-la-secvență.

În general, modelele RNN și LSTM constau ÃŪn rețele de codificare și decodificare care analizează datele de intrare la diverse etape de timp. Modelul de codificare este responsabil pentru crearea unei reprezentări codificate a cuvintelor din datele de intrare. La fiecare etapă de timp, rețeaua de codificare ia o secvență de intrare și un starea ascunsă de la etapa de timp precedentă din serie. Valorile stărilor ascunse sunt actualizate pe măsură ce datele trec prin rețea, pÃĒnă la ultima etapă de timp, unde se generează un “vector de context”. Vectorul de context este apoi transmis rețelei de decodificare, care este utilizat pentru a genera o secvență țintă prin predicția cuvÃĒntului cel mai probabil care se potrivește cu cuvÃĒntul de intrare pentru etapele de timp respective.

Aceste modele pot fi ÃŪmbunătățite prin utilizarea unui “mecanism de atenție”. Un mecanism de atenție definește care porțiuni ale vectorului de intrare ar trebui să fie luate ÃŪn considerare de rețea pentru a genera ieșirea corespunzătoare. Pentru a spune altfel, un mecanism de atenție permite modelului transformator să proceseze un cuvÃĒnt de intrare și, ÃŪn același timp, să ia ÃŪn considerare informațiile relevante conținute de alte cuvinte de intrare. Mecanismele de atenție maschează, de asemenea, cuvintele care nu conțin informații relevante.

Arhitectura rețelei neuronale Transformer

Vom detalia mecanismul de atenție mai tÃĒrziu, dar pentru moment, să aruncăm o privire asupra arhitecturii unei rețele neuronale Transformer la un nivel mai ÃŪnalt.

În general, o rețea neurală Transformer are o structură similară cu următoarea:

Deși structura generală poate varia ÃŪntre rețele, componentele de bază rămÃĒn aceleași: codificări poziționale, vectori de cuvinte, mecanism de atenție, rețea neurală feed-forward.

Codificări poziționale și vectori de cuvinte

O rețea neurală Transformer funcționează prin luarea unei secvențe de intrări și conversia acestor intrări ÃŪn două alte secvențe. Transformatorul produce o secvență de vectori de cuvinte ÃŪncorporați și codificări poziționale.

Vectorii de cuvinte ÃŪncorporați sunt doar textul reprezentat ÃŪntr-un format numeric pe care rețeaua neurală ÃŪl poate prelucra. Între timp, codificările poziționale sunt reprezentări vectorizate care conțin informații despre poziția cuvÃĒntului curent ÃŪn propoziția de intrare, ÃŪn raport cu alte cuvinte.

Alte modele de rețea neurală bazate pe text, cum ar fi RNN-urile și LSTM-urile, utilizează vectori pentru a reprezenta cuvintele din datele de intrare. Acești vectori de ÃŪncorporare a cuvintelor asociază cuvintele cu valori constante, dar acest lucru este limitativ, deoarece cuvintele pot fi utilizate ÃŪn contexte diferite. O rețea neurală Transformer rezolvă această problemă, făcÃĒnd valorile cuvintelor mai flexibile, utilizÃĒnd funcții sinusoidale pentru a permite vectorilor de cuvinte să ia valori diferite ÃŪn funcție de poziția cuvÃĒntului ÃŪn propoziție.

Acest lucru permite modelului de rețea neurală să păstreze informații cu privire la poziția relativă a cuvintelor de intrare, chiar și după ce vectorii trec prin straturile rețelei Transformer.

Codificările poziționale și vectorii de cuvinte ÃŪncorporați sunt sumați, apoi transmiși atÃĒt ÃŪn rețeaua de codificare, cÃĒt și ÃŪn rețeaua de decodificare. Deși rețelele neuronale Transformer utilizează scheme de codificare/decodificare, la fel ca RNN-urile și LSTM-urile, o diferență majoră ÃŪntre ele este că toate datele de intrare sunt introduse ÃŪn rețea ÃŪn același timp, ÃŪn timp ce ÃŪn RNN-urile și LSTM-urile, datele sunt introduse secvențial.

Rețelele de codificare sunt responsabile pentru conversia intrărilor ÃŪn reprezentări pe care rețeaua le poate ÃŪnvăța, ÃŪn timp ce rețelele de decodificare fac invers, convertind ÃŪncorporările ÃŪntr-o distribuție de probabilitate utilizată pentru a genera cuvintele cele mai probabile ÃŪn propoziția de ieșire. În mod esențial, atÃĒt rețelele de codificare, cÃĒt și cele de decodificare au un mecanism de atenție.

Deoarece GPU-urile sunt capabile de prelucrare paralelă, se utilizează mai multe mecanisme de atenție ÃŪn paralel, calculÃĒnd informațiile relevante pentru toate cuvintele de intrare. Această capacitate de a acorda atenție mai multor cuvinte, numită “atenție multi-cap”, la un moment dat, ajută rețeaua neurală să ÃŪnvețe contextul unui cuvÃĒnt ÃŪntr-o propoziție și este una dintre principalele avantaje pe care rețelele Transformer le au față de RNN-urile și LSTM-urile.

Mecanismul de atenție

Mecanismul de atenție este partea cea mai importantă a unei rețele Transformer. Mecanismul de atenție este ceea ce permite modelelor Transformer să depășească limita de atenție a unui model RNN sau LSTM obișnuit. Modelele tradiționale secvență-la-secvență aruncă toate stările intermediare și utilizează doar starea finală/vectorul de context atunci cÃĒnd inițializează rețeaua de decodificare pentru a genera predicții despre o secvență de intrare.

Aruncarea tuturor, cu excepția vectorului de context final, funcționează ok atunci cÃĒnd secvențele de intrare sunt destul de mici. Cu toate acestea, pe măsură ce lungimea secvenței de intrare crește, performanța modelului se deteriorează atunci cÃĒnd se utilizează această metodă. Acest lucru se datorează faptului că devine destul de dificil să rezumi o secvență de intrare lungă ca un singur vector. Soluția constă ÃŪn creșterea “atenției” modelului și utilizarea stărilor intermediare ale codificatorului pentru a construi vectori de context pentru decodificator.

Mecanismul de atenție definește cÃĒt de importante sunt alte tokenuri de intrare pentru model atunci cÃĒnd se creează ÃŪncorporări pentru un token dat. De exemplu, “el” este un pronume general, adesea utilizat pentru a se referi la animale atunci cÃĒnd sexul lor nu este cunoscut. Un mecanism de atenție ar permite unui model Transformer să determine că, ÃŪn contextul actual, “el” se referă la un veveriță, deoarece poate examina toate cuvintele relevante din propoziția de intrare.

Un mecanism de atenție poate fi utilizat ÃŪn trei moduri diferite: de la codificator la decodificator, doar codificator și doar decodificator.

Atenția de la codificator la decodificator permite decodificatorului să ia ÃŪn considerare secvențele de intrare atunci cÃĒnd generează o ieșire, ÃŪn timp ce mecanismele de atenție doar codificator și doar decodificator permit rețelelor să ia ÃŪn considerare toate părțile secvențelor anterioare și actuale.

Construirea unui mecanism de atenție poate fi ÃŪmpărțită ÃŪn cinci pași:

  1. Calcularea unui scor pentru toate stările codificatorului.
  2. Calcularea greutăților de atenție
  3. Calcularea vectorilor de context
  4. Actualizarea vectorului de context cu ieșirea de la etapa de timp precedentă
  5. Generarea ieșirii cu decodificatorul

Primul pas constă ÃŪn calcularea de către decodificator a unui scor pentru toate stările codificatorului. Acest lucru se realizează prin antrenarea rețelei decodificator, care este o rețea neurală feed-forward de bază. Atunci cÃĒnd decodificatorul este antrenat pe primul cuvÃĒnt din secvența de intrare, nu s-a creat ÃŪncă nicio stare internă/ascunsă, astfel ÃŪncÃĒt starea finală a codificatorului este de obicei utilizată ca stare anterioară a decodificatorului.

Pentru a calcula greutățile de atenție, se utilizează o funcție softmax pentru a genera o distribuție probabilistică pentru greutățile de atenție.

Odată calculate greutățile de atenție, vectorul de context trebuie calculat. Acest lucru se realizează prin multiplicarea greutăților de atenție și a stării ascunse ÃŪmpreună pentru fiecare etapă de timp.

După calcularea vectorului de context, acesta este utilizat ÃŪmpreună cu cuvÃĒntul generat la etapa de timp precedentă pentru a genera următorul cuvÃĒnt din secvența de ieșire. Deoarece decodificatorul nu are nicio ieșire anterioară la care să se refere ÃŪn prima etapă de timp, se utilizează adesea un token “start” special ÃŪn schimb.

Diferențe ÃŪntre transformatori și RNN/LSTM

Să trecem rapid ÃŪn revistă unele dintre diferențele dintre RNN-urile și LSTM-urile.

RNN-urile procesează intrările secvențial, ÃŪn timp ce un vector de stare ascunsă este menținut și modificat de cuvintele de intrare pe măsură ce trec prin rețea. Stările ascunse ale unei RNN de obicei conțin foarte puține informații relevante despre intrările anterioare. Noile intrări șterg adesea starea curentă, ceea ce provoacă pierderea de informații și deteriorează performanța ÃŪn timp.

În contrast, modelele Transformer procesează ÃŪntreaga secvență de intrare deodată. Mecanismul de atenție permite fiecărui cuvÃĒnt de ieșire să fie informat de fiecare cuvÃĒnt de intrare și de fiecare stare ascunsă, făcÃĒnd rețeaua mai fiabilă pentru bucăți lungi de text.

LSTM-urile sunt versiuni modificate ale RNN-urilor, ajustate pentru a gestiona secvențe de intrare mai lungi. Arhitectura LSTM utilizează o structură numită “porți”, cu “porți de intrare”, “porți de ieșire” și “porți de uitare”. Proiectarea porților tratează pierderea de informații comune modelelor RNN. Datele sunt ÃŪncă procesate secvențial, iar proiectarea recurentă a arhitecturii face ca modelele LSTM să fie dificil de antrenat utilizÃĒnd calculul paralel, ceea ce face timpul de antrenare mai lung ÃŪn general.

Inginerii LSTM adesea adăugau mecanisme de atenție la rețea, ceea ce se știa că ÃŪmbunătățește performanța modelului. Cu toate acestea, s-a descoperit ÃŪn cele din urmă că mecanismul de atenție singur a ÃŪmbunătățit acuratețea. Această descoperire a condus la crearea de rețele Transformer care utilizează mecanisme de atenție și calcul paralel, mulțumită GPU-urilor.

Blogger și programator cu specializări ÃŪn Machine Learning și Deep Learning subiecte. Daniel speră să ajute pe alții să folosească puterea inteligenței artificiale pentru binele social.