Modele și platforme AI

Mamba: Redefinirea modelării secvențiale și depășirea arhitecturii Transformer

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

În acest articol despre Mamba, vom explora modul în care acest model inovativ de spațiu de stare (SSM) revoluționează modelarea secvențială. Dezvoltat de Albert Gu și Tri Dao, Mamba se distinge prin eficiența sa în procesarea secvențelor complexe în domenii precum procesarea limbajului, genomics și analiza audio. Modelarea secvențială liniară cu spații de stare selective asigură o performanță excepțională în aceste modalități diverse.

Vom analiza capacitatea Mamba de a depăși provocările computaționale cu care se confruntă modelele tradiționale Transformer, în special cu secvențe lungi. Abordarea sa selectivă în modelele de spațiu de stare permite o inferență mai rapidă și o scalare liniară cu lungimea secvenței, îmbunătățind semnificativ debitul.

Unicitatea Mamba constă în capacitatea sa rapidă de procesare, stratul SSM selectiv și proiectarea prietenoasă cu hardware-ul, inspirată de FlashAttention. Aceste caracteristici permit Mamba să depășească multe modele existente, inclusiv cele bazate pe abordarea transformer, făcându-l o avansare remarcabilă în învățarea automată.

Transformatori vs Mamba

Transformatorii, precum GPT-4, au stabilit repere în procesarea limbajului natural. Cu toate acestea, eficiența lor scade odată cu lungimea secvențelor. Aici, Mamba sare înainte, cu capacitatea sa de a procesa secvențe lungi mai eficient și cu arhitectura sa unică care simplifică întregul proces.

Transformatorii sunt pricepuți în a gestiona secvențe de date, cum ar fi textul pentru modelele de limbaj. În contrast cu modelele anterioare care procesau datele secvențial, transformatorii procesează întregi secvențe simultan, permițându-le să capteze relații complexe din cadrul datelor.

Ei folosesc un mecanism de atenție, care permite modelului să se concentreze pe diferite părți ale secvenței atunci când face previziuni.

Această atenție este calculată utilizând trei seturi de greutăți: întrebări, chei și valori, derivate din datele de intrare. Fiecare element dintr-o secvență este comparat cu fiecare alt element, oferind o greutate care semnifică importanța sau “atenția” pe care ar trebui să o primească fiecare element atunci când se previzionează următorul element din secvență.

Transformatorii mențin două blocuri principale: encoderul, care procesează datele de intrare, și decoderul, care generează ieșirea. Encoderul constă din multiple straturi, fiecare conținând două sub-straturi: un mecanism de atenție multi-cap și o rețea neurală simplă, cu conexiuni complete, poziționale. Normalizarea și conexiunile reziduale sunt utilizate la fiecare sub-strat pentru a ajuta la antrenarea rețelelor neuronale profunde.

Decoderul are, de asemenea, straturi cu două sub-straturi similare cu encoderul, dar adaugă un al treilea sub-strat care efectuează atenție multi-cap peste ieșirea encoderului. Natura secvențială a decoderului asigură că previziunile pentru o poziție pot lua în considerare doar pozițiile anterioare, păstrând proprietatea auto-regresivă.

În contrast cu transformatorii, modelul Mamba adoptă o abordare diferită. În timp ce transformatorii abordează problema secvențelor lungi prin utilizarea unor mecanisme de atenție mai complexe, Mamba utilizează spații de stare selective, oferind o abordare mai eficientă și mai puternică.

Iată o prezentare generală a modului în care funcționează un transformator:

  1. Procesarea datelor de intrare: Transformatorii codifică mai întâi datele de intrare într-un format pe care modelul îl poate înțelege, adesea utilizând încorporări care incorporează și poziția fiecărui element din secvență.
  2. Mecanismul de atenție: În esență, mecanismul de atenție calculează un scor care reprezintă cât de multă atenție trebuie acordată altor părți ale secvenței de intrare atunci când se înțelege un element curent.
  3. Arhitectura encoder-decoder: Modelul transformator este compus dintr-un encoder care procesează datele de intrare și un decoder care generează ieșirea. Fiecare constă din multiple straturi care rafinează înțelegerea modelului asupra datelor de intrare.
  4. Atenție multi-cap: Atât în encoder, cât și în decoder, atenția multi-cap permite modelului să se concentreze simultan pe diferite părți ale secvenței din diferite spații de reprezentare, îmbunătățind capacitatea sa de a învăța din contexte diverse.
  5. Rețele neuronale poziționale: După atenție, o rețea neurală simplă procesează ieșirea de la fiecare poziție separat și identic. Acesta este combinat cu intrarea prin o conexiune reziduală și urmat de normalizarea stratului.
  6. Generarea ieșirii: Decoderul previzionează apoi o secvență de ieșire, influențată de contextul encoderului și de ceea ce a generat până în prezent.

Capacitatea transformatorului de a gestiona secvențe în paralel și mecanismul său robust de atenție îl fac puternic pentru sarcini precum traducerea și generarea textului.

În schimb, modelul Mamba funcționează diferit, utilizând spații de stare selective pentru a procesa secvențe. Această abordare abordează ineficiența computațională a transformatorilor atunci când se confruntă cu secvențe lungi. Proiectarea Mamba permite o inferență mai rapidă și se scalează liniar cu lungimea secvenței, stabilind un nou paradigmă pentru modelarea secvențială care ar putea fi mai eficientă, în special pe măsură ce secvențele devin din ce în ce mai lungi.

Mamba

Ce face Mamba cu adevărat unic este abordarea sa diferită de atenție și blocurile MLP. Această simplificare duce la un model mai ușor și mai rapid care se scalează liniar cu lungimea secvenței – o realizare nemaiîntâlnită de către predecesorii săi.

Caracteristicile cheie ale Mamba includ:

  1. SSM selective: Acestea permit Mamba să filtreze informațiile irelevante și să se concentreze pe datele relevante, îmbunătățindu-și capacitatea de a gestiona secvențe. Această selectivitate este crucială pentru raționamentul bazat pe conținut eficient.
  2. Algoritm conștient de hardware: Mamba utilizează un algoritm paralel care este optimizat pentru hardware-ul modern, în special pentru GPU-uri. Acest design permite o calculare mai rapidă și reduce cerințele de memorie în comparație cu modelele tradiționale.
  3. Arhitectură simplificată: Prin integrarea SSM-urilor selective și eliminarea blocurilor de atenție și MLP, Mamba oferă o structură mai simplă și mai omogenă. Acest lucru duce la o mai bună scalabilitate și performanță.

Mamba a demonstrat o performanță superioară în diverse domenii, inclusiv limbaj, audio și genomics, excelând atât în pre-antrenare, cât și în sarcini specifice de domeniu.

Codul și modelele pre-antrenate Mamba sunt disponibile în mod deschis pentru utilizarea comunității la GitHub.

Sarcinile de copiere standard sunt simple pentru modelele liniare. Copierea selectivă și capetele de inducție necesită o memorie dinamică, conștientă de conținut, pentru LLM-uri.

Sarcinile de copiere standard sunt simple pentru modelele liniare. Copierea selectivă și capetele de inducție necesită o memorie dinamică, conștientă de conținut, pentru LLM-uri.

Modelele de spațiu de stare structurat (S4) au apărut recent ca o clasă promițătoare de modele secvențiale, cuprinzând trăsături de la RNN-uri, CNN-uri și modele clasice de spațiu de stare. Modelele S4 derivă inspirația din sisteme continue, în special un tip de sistem care mapă funcții unidimensionale sau secvențe printr-un spațiu latent implicit. În contextul învățării automate, reprezintă o inovație semnificativă, oferind o nouă metodologie pentru proiectarea modelelor secvențiale care sunt eficiente și foarte adaptabile.

Dinamica modelelor S4

SSM (S4) Acesta este modelul de bază de spațiu de stare structurat. Acesta ia o secvență x și produce o ieșire y utilizând parametri învățați A, B, C și un parametru de întârziere Δ. Transformarea implică discretizarea parametrilor (transformarea funcțiilor continue în discrete) și aplicarea operației SSM, care este inariantă în timp—adică nu se schimbă de-a lungul diferitelor pași de timp.

Importanța discretizării

Discretizarea este un proces cheie care transformă parametrii continui în parametri discreți prin formule fixe, permițând modelelor S4 să mențină o legătură cu sistemele din timp continuu. Acest lucru îmbunătățește proprietățile modelelor, cum ar fi invarianța de rezoluție, și asigură o normalizare corespunzătoare, îmbunătățind stabilitatea și performanța modelului. Discretizarea atrage, de asemenea, paralele cu mecanismele de poartă din RNN-uri, care sunt critice pentru gestionarea fluxului de informații prin rețea.

Linearitatea în timp (LTI)

O caracteristică de bază a modelelor S4 este linearitatea lor în timp. Acest lucru implică faptul că dinamica modelului rămâne consistentă în timp, cu parametrii fixați pentru toate pașii de timp. LTI este o piatră de temelie a recurenței și a convoluțiilor, oferind un cadru simplificat, dar puternic, pentru construirea modelelor secvențiale.

Depășirea limitărilor fundamentale

Cadrul S4 a fost tradițional limitat de natura sa LTI, care pune provocări în modelarea datelor care necesită dinamică adaptivă. Articolul de cercetare recentă prezintă o abordare care depășește aceste limitări prin introducerea parametrilor care variază în timp, eliminând astfel restricția LTI. Acest lucru permite modelelor S4 să gestioneze o gamă mai largă de secvențe și sarcini, extinzându-și semnificativ aplicabilitatea.

Termenul “model de spațiu de stare” acoperă în general orice proces recurent care implică un spațiu latent și a fost utilizat pentru a descrie diverse concepte în multiple discipline. În contextul învățării automate, modelele S4, sau spațiile de stare structurate, se referă la o clasă specifică de modele care au fost optimizate pentru computație eficientă, păstrând în același timp capacitatea de a modela secvențe complexe.

Modelele S4 pot fi integrate în arhitecturi neuronale din cap până în coadă, funcționând ca transformări secvențiale independente. Pot fi văzute ca analoge cu straturile de convoluție din CNN-uri, oferind baza pentru modelarea secvențială într-o varietate de arhitecturi neuronale.

SSM vs SSM + Selectare

SSM vs SSM + Selectare

Motivația pentru selectivitate în modelarea secvențială

SSM-uri structurate

SSM-uri structurate

Articolul argumentează că un aspect fundamental al modelării secvențiale este comprimarea contextului într-o stare gestionabilă. Modelele care pot selecta sau filtra intrările oferă un mijloc mai eficient de menținere a acestei stări comprimate, ducând la modele secvențiale mai eficiente și mai puternice. Această selectivitate este vitală pentru ca modelele să poată controla adaptiv fluxul de informații de-a lungul dimensiunii secvenței, o capacitate esențială pentru gestionarea sarcinilor complexe în modelarea limbajului și dincolo.

SSM-urile selective îmbunătățesc SSM-urile convenționale, permițând parametrilor săi să fie dependenți de intrare, introducând un grad de adaptivitate care nu a fost anterior atins cu modelele cu timp inariant. Acest lucru duce la SSM-uri cu timp variabil care nu mai pot utiliza convoluții pentru computație eficientă, ci se bazează pe un mecanism de recurență liniară, o abatere semnificativă de la modelele tradiționale.

SSM + Selectare (S6) Această variantă include un mecanism de selectare, adăugând dependența de intrare parametrilor B și C, și un parametru de întârziere Δ. Acest lucru permite modelului să se concentreze selectiv pe anumite părți ale secvenței de intrare x. Parametrii sunt discretizați, ținând cont de selectare, și operația SSM este aplicată într-un mod care variază în timp, utilizând o operație de scanare, care procesează elementele secvențial, ajustându-se dinamic pe parcursul timpului.

Rezultatele de performanță ale Mamba

În ceea ce privește performanța, Mamba excelează atât în viteza de inferență, cât și în acuratețe. Proiectarea sa permite o utilizare mai bună a contextelor mai lungi, demonstrată atât în modelarea ADN-ului, cât și în modelarea audio, depășind modelele anterioare în sarcini complexe care necesită dependențe pe termen lung. Versatilitatea sa este, de asemenea, evidențiată în evaluările zero-shot în multiple sarcini, stabilind un nou standard pentru astfel de modele în ceea ce privește eficiența și scalabilitatea.

Începerea cu Mamba

Pentru cei interesați să utilizeze Mamba, cerințele tehnice includ un sistem de operare Linux, un GPU NVIDIA , PyTorch 1.12+ și CUDA 11.6+. Instalarea implică comenzi simple pip pentru a instala pachetele necesare din repozitoriul Mamba. Dacă apar probleme de compatibilitate cu versiunile PyTorch, utilizarea steagului –no-build-isolation cu pip poate ajuta. Aceste modele, antrenate pe seturi de date extinse precum Pile și SlimPajama, sunt proiectate pentru a satisface diverse nevoi computaționale și repere de performanță.

Mamba oferă interfețe la diferite niveluri, de la stratul SSM selectiv la blocul Mamba și structuri complete de modele de limbaj. Blocul Mamba, care este modulul principal al arhitecturii, utilizează un strat Conv1d cauzal și poate fi integrat cu ușurință în proiecte de rețele neuronale. Exemplul de utilizare în Python demonstrează instantanța unui model Mamba și procesarea datelor prin el, subliniind simplitatea și flexibilitatea sistemului.

Modelele pre-antrenate Mamba sunt disponibile pe Hugging Face, cu dimensiuni variind de la 130M la 2,8B de parametri, antrenate pe setul de date extins Pile și SlimPajama. Aceste modele sunt proiectate pentru a satisface diverse nevoi computaționale și de performanță, respectând standardele dimensionale ale GPT-3. Utilizatorii pot aștepta un debit ridicat și o acuratețe ridicată de la aceste modele, făcând din Mamba o alegere competitivă pentru diverse aplicații, inclusiv, dar fără a se limita la, modelarea limbajului.

Impactul Mamba

Mamba reprezintă un salt înainte în modelarea secvențială, oferind o alternativă puternică la arhitecturile Transformer pentru procesarea datelor dense. Proiectarea sa se aliniază cu cerințele hardware-ului modern, optimizând atât utilizarea memoriei, cât și capacitățile de procesare paralelă. Disponibilitatea deschisă a codului și a modelelor pre-antrenate Mamba o face un instrument accesibil și robust pentru cercetători și dezvoltatori în domeniul inteligenței artificiale și al învățării automate.

Am petrecut ultimii cinci ani scufundându-mă în lumea fascinantă a Machine Learning și Deep Learning. Pasinea și expertiza mea m-au condus să contribui la peste 50 de proiecte diverse de inginerie software, cu un focus deosebit pe AI/ML. Curiozitatea mea în continuare m-a atras și spre Natural Language Processing, un domeniu pe care sunt dornic să îl explorez mai departe.