Cos'è un modello Mamba?

Autori

Dave Bergmann

Senior Staff Writer, AI Models

IBM Think

Cos'è un modello Mamba?

Mamba è un'architettura di reti neurali, derivata da modelli di spazio di stato (SSM), utilizzata per la modellazione del linguaggio e altre attività di modellazione di sequenze. L'elevata velocità di inferenza e l'efficienza computazionale dell'architettura Mamba, in particolare per le sequenze lunghe, la rendono la prima alternativa competitiva all'architettura trasformativa per i modelli linguistici di grandi dimensioni (LLM) di tipo autoregressivo.

I modelli Mamba sono forse la prima architettura di deep learning a rivaleggiare con l'efficacia dei modelli trasformativi nell'attività che ha originariamente reso celebri i trasformatori, ovvero la modellazione del linguaggio. In particolare, l'architettura Mamba ha dimostrato la capacità di eguagliare trasformatori di dimensioni equivalenti in importanti valutazioni di benchmark LLM, risultando spesso significativamente più efficiente in termini di latenza e requisiti di memoria.

L'architettura Mamba è stata introdotta per la prima volta da Tri Dao e Albert Gu nel documento del 2023 "Mamba: Linear-Time Sequence Modeling with Selective State Spaces". Un anno dopo, hanno fatto seguito all'articolo originale su Mamba con un altro articolo che esplorava le connessioni tra SSM e trasformatori e presentava una versione più sofisticata e notevolmente più veloce dell'architettura Mamba, chiamata Mamba-2.

Sebbene i trasformatori siano rimasti la modalità dominante degli LLM nei due anni successivi al rilascio del documento originale su Mamba, l'architettura è stata incorporata in un numero crescente di modelli open source. Alcuni, come il Codestral Mamba di Mistral AI, sono modelli Mamba puri. Molti altri, tra cui la serie Jamba di AI2I e IBM Granite 4.0, sono modelli ibridi che incorporano sia livelli di attenzione (trasformatore) che livelli SSM (Mamba). Oltre ai benefici basati sulle prestazioni, la proliferazione di modelli basati su Mamba promette di democratizzare l'accesso all'AI in virtù del funzionamento ottimale su hardware relativamente poco costoso.

Le ultime tendenze in materia di AI, proposte da esperti

Ricevi insight selezionati sulle notizie più importanti e interessanti sull'AI. Iscriviti alla nostra newsletter settimanale Think. Leggi l'Informativa sulla privacy IBM.

Grazie per aver effettuato l'iscrizione!

L'abbonamento sarà fornito in lingua inglese. Troverai un link per annullare l'iscrizione in tutte le newsletter. Puoi gestire i tuoi abbonamenti o annullarli qui. Per ulteriori informazioni, consulta l'Informativa sulla privacy IBM.

Cosa sono i modelli dello spazio di stato?

Gli SSM sono stati originariamente progettati per prevedere lo stato successivo di una sequenza continua, come un segnale elettrico, uno schema meteorologico o la traiettoria di un oggetto in movimento, sulla base di alcuni input. Concettualmente e matematicamente, sono correlati alle reti neurali ricorrenti (RNN) che dominavano l'elaborazione del linguaggio naturale (NLP) prima dell'introduzione dei trasformatori nel 2017, nonché ad altri algoritmi di machine learning, tra cui le reti neurali convoluzionali (CNN) e i modelli di Markov nascosti (HMM).

Come suggerisce il nome, gli SSM fanno previsioni sullo stato successivo in un sistema dinamico modellando lo spazio di stato, ovvero una rappresentazione matematica di tutte le variabili di stato che descrivono lo stato di un sistema e la gamma di possibilità per ciascuna di queste variabili in tandem tra loro.

Un SSM prende una sequenza di input x(t) e la mappa su una rappresentazione dello stato latente h(t), analoga allo stato nascosto di un RNN, per prevedere una sequenza di output y(t). Al centro di ogni SSM ci sono 2 equazioni:

  • L'equazione di stato,  h(t)=A*h(t)+B*x(t) 
  • L'equazione di output,  y(t)=C*h(t)+D*x(t) 

I parametri chiave del modello sono A, B, C e D, che in genere assumono la forma di una matrice di pesi. Nei campi in cui gli SSM vengono tradizionalmente utilizzati, come la teoria del controllo, si presume spesso che queste matrici siano fisse, ovvero rappresentano la dinamica di un sistema consolidato e l'SSM viene utilizzato per trovare gli input x che portano agli output desiderabili y. Nelle concezioni più moderne degli SSM, quelle matrici sono esse stesse parametri da ottimizzare tramite il machine learning. Nei modelli di deep learning, queste matrici sono rappresentate dai pesi apprendibili di una rete neurale.

L'equazione di stato

L'equazione di stato descrive come cambia lo stato. I valori nella matrice A determinano il modo in cui ogni variabile di stato si evolve nel tempo se lasciata a sé stessa. I valori nella matrice B determinano in che modo l'input, ad esempio il token successivo in una sequenza di testo, influenza ogni variabile di stato.

Diagramma di un'equazione dello spazio di stato di un SSM L'equazione di stato. Illustrazione derivata da " A Visual Guide to Mamba and State Space Models " di Maarten Grootendorst

Nella modellazione del linguaggio, lo stato corrente rappresenta il contesto di una sequenza di testo, aggiornato dopo ogni token. Il suo ruolo è equivalente a quello della cache KV in un modello trasformativo.

L'equazione di output

L'equazione di output descrive come lo stato corrente influenza l'output (mediato dalla matrice C) e come l'input influenza direttamente l'output (mediato dalla matrice D). Poiché la matrice D è essenzialmente esterna alla modellazione di h(t) stessa, viene spesso omessa dai diagrammi e dalle discussioni sugli SSM, preferendo concentrarsi sulle matrici principali A, B e C.

Diagramma dell'equazione di output dell'SSM L'equazione di output. L'equazione di stato. Illustrazione tratta da "A Visual Guide to Mamba and State Space Models" di Maarten Grootendorst.

SSM discreti

Gli SSM tradizionali sono progettati per modellare input continui, ma le sequenze di testo (e la maggior parte delle altre modalità di dati elaborate dai moderni modelli di deep learning) sono input discreti. L'utilizzo di SSM per modellare una sequenza discreta richiede un mezzo per rappresentare i suoi passaggi temporali distinti e specifici quale parte di un segnale continuo.

Concettualmente, la discretizzazione equivale a campionare il valore di una funzione continua in momenti specifici. Ciò comporta l'introduzione di un nuovo parametro, ovvero la dimensione del passo, scritta come , che determina per quanto tempo quel valore viene campionato o "mantenuto" in ogni passo temporale discreto t. Le regolazioni di sono simili alle modifiche apportate a qualità quali la risoluzione dei dati (per i dati delle serie temporali) o la frequenza dei fotogrammi (per i dati video). Esistono diversi metodi di "discretizzazione", ma la maggior parte delle moderne varianti di SSM (incluso Mamba) utilizzano il metodo semplice zero order hold (ZOH).

La discretizzazione di un SSM ne consente l'utilizzo come RNN per attività da sequenza a sequenza. I parametri e le equazioni di un SSM discretizzato vengono solitamente riscritti per distinguerli dai loro equivalenti a tempo continuo, utilizzando la subscript notation tipicamente impiegata per le RNN. In questa notazione, ht rappresenta lo spazio di stato aggiornato che il modello genererà e ht-1 rappresenta lo stato precedente, ovvero lo spazio di stato corrente.

 ht=A¯ht-1+B¯xt  
 yt=C¯ht

SSM strutturati

La modellazione dei dati di testo utilizzando SSM discreti standard non è pratica a causa di una serie di carenze che questi condividono con le RNN. Due di queste lacune sono state colmate con l'introduzione di modelli strutturati di sequenze nello spazio di stato (o "modelli S4") da parte di Albert Gu et al nel 2021: l'inefficienza del loro addestramento e la loro incapacità di modellare sequenze lunghe.

Tuttavia, il successo dei modelli S4 e dei loro numerosi derivati, come i modelli diagonal SSM (DSS), diagonali S4 (S4D) e H3, ha aperto direttamente la strada a quello che è diventato Mamba.

Addestramento efficiente tramite convoluzioni

Il beneficio del fatto che gli SSM discretizzati siano l'equivalente di un'istanza specifica di una RNN è che le RNN sono estremamente veloci nell'inferenza. Lo svantaggio, tuttavia, è che le RNN sono estremamente lente da addestrare.

Fortunatamente, gli SSM discretizzati hanno una proprietà importante che li distingue dalle altre RNN, ovvero modellano esclusivamente dipendenze lineari. In altre parole, utilizzano solo operazioni di moltiplicazione e addizione semplici e dirette. Come dimostra il documento S4, queste ricorrenze lineari semplici, ripetute e interdipendenti possono essere utilizzate in un kernel di convoluzione unidimensionale che mappa direttamente l'input x all'output y in un unico passaggio: . Questo può essere calcolato in modo molto efficiente utilizzando la trasformata di Fourier veloce.

L'unico "problema" è che questo è possibile solo quando ogni passaggio dell'intera sequenza di input è noto. Questo non è possibile durante l'inferenza, ma lo è durante l'addestramento. Un SSM strutturato gode quindi del meglio di entrambi i mondi: durante l'addestramento, può essere utilizzato in modo molto efficiente come CNN, mentre durante l'inferenza può essere utilizzato in modo molto efficiente come RNN.

Modellare lunghe sequenze attraverso matrici strutturate

Come la maggior parte delle RNN, gli SSM standard sono intrinsecamente deboli nella modellazione delle dipendenze a lunga distanza. In altre parole, non riescono a comprendere molto bene la relazione tra i passaggi di una sequenza molto distanti, come le parole all'inizio e alla fine di un paragrafo, il che li rende deboli nel modellare sequenze lunghe.

Per risolvere questo problema, Gu e i suoi co-autori (uno dei quali era Tri Dao), hanno usato una tecnica chiamata HiPPO,abbreviazione di High-order Polynomial Projection Operators, per definire il modo in cui le matrici A e B si comportano strutturando i loro valori iniziali attraverso una formula derivata da polinomi ortogonali. Ciò è in contrasto con la pratica standard di machine learning, in cui i pesi dei modelli vengono inizializzati in modo casuale all'inizio dell'addestramento del modello. Per S4, Dao e Gu hanno proposto schemi di inizializzazione derivati dai polinomi di Legendre. Hanno esplorato formule aggiuntive in un articolo di follow-up, intitolato "How to Train Your HiPPO".1

Il documento S4 rileva che "la semplice modifica di un SSM da una matrice casuale A alla [matrice HiPPO] ne ha migliorato le prestazioni rispetto al benchmark sequenziale MNIST dal 60% al 98%", risolvendo efficacemente il problema della memoria a lungo termine degli SSM. Le varianti successive degli SSM strutturati, come DSS, S5 e Mamba, utilizzano schemi di inizializzazione diversi (spesso più semplici) per A e B, che tuttavia mantengono i principi fondamentali di HiPPO, ovvero l'implementazione di una struttura diagonale che impone aggiornamenti stabili e un certo grado di indipendenza tra ogni valore nella matrice.

Mixture of Experts | 12 dicembre, episodio 85

Decoding AI: Weekly News Roundup

Unisciti al nostro gruppo di livello mondiale di ingegneri, ricercatori, leader di prodotto e molti altri mentre si fanno strada nell'enorme quantità di informazioni sull'AI per darti le ultime notizie e gli ultimi insight sull'argomento.

Come funzionano i modelli Mamba?

Al centro dell'architettura Mamba ci sono due innovazioni. Il primo è il modello selettivo dello spazio di stato, che fornisce a Mamba una funzionalità cruciale precedentemente posseduta solo dai modelli trasformativi, ovvero la capacità di concentrarsi o ignorare selettivamente parti specifiche della cronologia degli input passati in base alla loro rilevanza attuale. L'altra è la scansione parallela hardware-aware, ovvero un algoritmo che ottimizza il modo in cui un'unità di elaborazione grafica (GPU) gestisce i calcoli del modello nella sua gerarchia di memoria per massimizzare la velocità e l'efficienza computazionale.

Nei trasformatori, questa capacità è fornita dal meccanismo di attenzione che regola i pesi di attenzione che enfatizzano o sminuiscono l'influenza di ogni token precedente in base alla sua rilevanza rispetto al token di input corrente. Gli SSM ordinari sono progettati esplicitamente per mappare l'input all'output utilizzando l'intera cronologia degli input.Questo è accettabile o addirittura desiderabile per alcune attività di modellazione delle sequenze, ma rappresenta un ostacolo significativo per la maggior parte delle attività avanzate di modellazione del linguaggio.

Per porre rimedio a questa incapacità di omettere o enfatizzare dinamicamente parti specifiche della cronologia degli input, Dao e Gu hanno proposto una nuova classe di modelli dello spazio di stato con una "scansione selettiva". Nel documento su Mamba, gli autori osservano che "a volte abbreviano gli SSM selettivi, come modelli S6, perché sono modelli S4 con un meccanismo di selezione e calcolati con una scansione". Hanno soprannominato la loro architettura basata su S6 "Mamba" perché, tra gli altri motivi, tutte quelle S ricordano il sibilo di un serpente.

Mamba può essere meglio intesa come un'architettura di reti neurali che contiene al centro il modello selettivo dello spazio di stato. Per offrire una semplice analogia, Mamba sta agli SSM selettivi come il modello trasformativo sta al meccanismo di attenzione.

Come funzionano i modelli selettivi dello spazio di stato (S6)

Un SSM tradizionale ha dinamiche fisse: le regole che regolano l'evoluzione dello stato nascosto da una fase all'altra, ovvero i parametri del modello, sono le stesse per ogni input e per ogni fase della sequenza. Questa proprietà è nota come linear time invariance (LTI). Per fornire agli SSM la capacità di assegnare o togliere in modo selettivo la priorità a specifiche informazioni del passato in base al contesto attuale, Dao e Gu hanno riconfigurato il loro SSM in modo tale che i valori dei parametri chiave del modello siano diversi per i diversi input .

Più specificamente, gli SSM selettivi rendono la dimensione del passo t e le matrici Bt e Ct funzioni dirette del token di input corrente xt. Ciò si ottiene facendo passare prima il vector embedding di xt attraverso tre livelli di proiezione lineare paralleli, in altre parole, livelli di rete neurale feedforward standard (o livelli MLP). Ciò equivale al modo in cui le head di query, chiavi e valori parallele generano i rispettivi vettori Q, K e V di un input in un modello trasformato.

Diagramma di un modello selettivo dello spazio di stato L'allocazione selettiva di SSM e RAM su una GPU. Tratto dal documento originale, "Mamba: Linear Time-Sequence Modeling with Selective State Spaces"

Moltiplicando l'embedding vettoriale di xt per i termini di peso e polarizzazione in quella rete di proiezione lineare si ottengono i valori risultanti di ∆t, Bt e Ct. I termini di peso e bias degli stessi livelli di proiezione lineare vengono appresi durante il pre-addestramento del modello su grandi set di dati di campioni di testo, quindi (facoltativamente) perfezionati mediante una successiva messa a punto.

  • Il valore di t determina l'entità dell'influenza di xt sulla memoria del modello del contesto che ha visto fino a quel momento: in altre parole, su quanto di un aggiornamento ci sarà dallo stato nascosto ht-1 a ht. Una dimensione del passo più grande t si traduce in maggiori cambiamenti e accelera il decadimento, in altre parole la "dimenticanza" delle informazioni più vecchie contenute all'interno dello stato. Al contrario, un passo più piccolo comporta un aggiornamento più piccolo. Con una dimensione del passo sufficientemente piccola, l'input corrente non avrà alcun impatto sullo stato nascosto.

  • Le modifiche alla matrice Bk determinano il modo in cui il token di input corrente aggiorna lo stato nascosto. Per esempio, se xt è un token per la parola "ieri", Bt potrebbe essere regolato in modo da aggiornare lo stato per riflettere il fatto che il contesto che ne consegue si riferisce probabilmente al passato.

  • Le modifiche alla matrice C determinano come queste informazioni contestuali si traducono in influenza sull'output del modello yt. Proseguendo con l'esempio in cui xk è un token per "ieri", Ck potrebbe essere influenzato affinché tutti i verbi che sono un output successivo del modello siano coniugati al passato.

In particolare, tali aggiustamenti basati sull'input non vengono effettuati alla matrice A . Il suo ruolo rimane lo stesso dei modelli S4: memorizzare in modo efficiente l'intera cronologia degli input passati. Il ruolo di determinare quali parti di quella storia utilizzare in un dato momento è gestito dalle matrici B e C .

Scansione parallela

Tuttavia, una volta che il modello non è più time-invariant, non può più utilizzare il meccanismo di convoluzione durante l'addestramento perché il nucleo di transizione non è più costante: il punto cruciale del meccanismo di selettività è che la transizione da ht-1 a ht è ora dipendente dal contesto.

Mamba utilizza invece una soluzione alternativa intelligente per ottenere benefici di parallelizzazione simili. Poiché l'SSM utilizza solo moltiplicazioni e addizioni, i suoi calcoli sono soggetti alla familiare proprietà associativa della matematica, ovvero possono essere raggruppati in modi diversi senza cambiare il risultato finale. Ciò consente di suddividere i numerosi calcoli sequenziali in piccoli blocchi indipendenti che possono essere elaborati in parallelo da una GPU tramite una scansione parallela della somma dei prefissi.

Inoltre, i risultati sono combinati in un modo gerarchico specifico che consente un uso ottimale ed efficiente dei diversi tipi di memoria hardware su una GPU, utilizzando principi simili alle tecniche FlashAttention, anch'esse sviluppate da Tri DAO, che ora sono onnipresenti nei moderni LLM.  

Il blocco Mamba

All'interno dell'architettura Mamba, il modello S6 funge da modulo del più grande “blocco Mamba”, in modo simile a come il meccanismo di attenzione funge da modulo all'interno del più grande "blocco di attenzione". Combina il modulo S6 con un'architettura di rete neurale gated. I modelli Mamba di solito comprendono più blocchi Mamba, ovvero una serie di livelli Mamba consecutivi in una rete neurale, prima del livello di output che effettua la previsione finale dell'output del modello.

Schema del blocco Mamba-2 Il blocco Mamba. La "x" che segue l'SSM selettivo si riferisce alla moltiplicazione per elemento, piuttosto che al prodotto scalare standard.

Prima di entrare nel blocco Mamba, una copia dell'input viene inviata direttamente alla fine come connessione residua.Lo scopo del funzionamento interno del blocco Mamba non è solo quello di determinare quali parti del contesto più ampio sono rilevanti per quell'input, bensì di determinare in che misura tali informazioni contestuali dovrebbero modificare il significato originale dell'input.

All'interno del blocco Mamba, il vettore di input originale viene elaborato come segue:

  • Innanzitutto, l'input viene fatto passare attraverso un livello lineare largo il doppio del vettore di input stesso, proiettandolo in uno spazio di dimensioni superiori. Ad esempio, se il modello rappresenta originariamente ogni token di input x come vector embedding di dimensione 512, moltiplicando x per i pesi del livello di proiezione lineare lo si espande in un vettore di dimensione 1024.

  • Successivamente, il vettore espanso viene diviso in due. Una metà (che chiameremo xproj) viene inserita nel percorso che attraversa l'SSM, mentre l'altra metà (che chiameremo zproj) viene inserita in un percorso separato che attraversa un meccanismo di gating. Per chiarezza, la fase di espansione precedente è solitamente rappresentata come se fosse eseguita da 2 livelli lineari paralleli.

  • Prima che xproj raggiunga l'SSM, viene inserito in un livello di convoluzione monodimensionale. Questo livello di convoluzione estrae modelli locali (come le dipendenze tra token vicini, ad esempio semplici abbinamenti verbo-soggetto). Ciò consente all'SSM di "concentrarsi" sulla comprensione contestuale delle dipendenze globali a lungo raggio.

  • L'output del livello di convoluzione funge da input per una funzione di attivazione non lineare. L'introduzione della non linearità è un segno distintivo di tutte le reti neurali, che consente loro di catturare schemi più complessi. Il documento su Mamba utilizza la Sigmoid Linear Unit (SiLU). Chiameremo il vettore risultante xact.

  • Nel frattempo, nel percorso separato del meccanismo di gating, zproj viene anche immesso in una funzione di attivazione non lineare, producendo zact.

  • Nel percorso SSM, xact viene inserito in tre livelli di proiezione lineare paralleli che generano rispettivamente i valori perx, Bx e Cx.

  • L'SSM utilizza questi parametri dipendenti dall'input (e le matrici A e D) per calcolare l'aggiornamento dello spazio di stato e l'output y dell'SSM.

  • Il vettore di output y dell'SSM viene ora moltiplicato a livello di elemento per il vettore di output zact del percorso di gating. Essenzialmente, ogni elemento di zact si comporta come il regolatore del volume di una consoledi mixaggio audio: se un dato elemento di zact è vicino allo zero, la moltiplicazione con la parte corrispondente di y produrrà un valore più vicino allo zero e la sua influenza sarà ridotta. Al contrario, se un dato elemento di zact è grande, la moltiplicazione per y amplificherà l'influenza della sua informazione contestuale.

  • Il vettore risultante viene proiettato di nuovo alle sue dimensioni originali. Può essere inteso come un vettore di aggiornamenti contestuali ponderati (o non aggiornamenti) a ciascuno degli elementi del vettore di input originale.

  • Infine, quel vettore di aggiornamenti viene aggiunto alla copia del vettore di input originale che è stato inviato direttamente alla fine del blocco come connessione residua.

  • Il vettore di input originale è stato ora aggiornato per riflettere la comprensione contestuale fornita dall'SSM selettivo. Ora può essere inviato al livello successivo di Mamba o, nei livelli finali del modello, fungere da input per una funzione softmax che produce l'output della rispettiva probabilità che il vettore completamente aggiornato corrisponda a ogni parola del vocabolario del modello.

Mamba-2

Un anno dopo l'articolo originale su Mamba, Dao e Gu hanno pubblicato "Transformers are SSMs: Generalized Models and Efficient Algorithms Through Structured State Space Duality". Questo documento di follow-up ha offerto tre contributi principali:

  • Un'esplorazione delle connessioni teoriche tra Mamba e i trasformatori e un vocabolario condiviso tra le due architetture
  • Una serie di chiarimenti ed esplorazioni di diverse scelte progettuali per i modelli Mamba
  • Un'architettura modificata, Mamba-2, informata e migliorata da queste esplorazioni progettuali

L'algoritmo Mamba-2 è significativamente più veloce e facile da implementare rispetto al Mamba originale: gli autori hanno fornito una base di codice "SSD minima" che implementa l'SSM selettivo in circa 25 righe di codice.2 Questa efficienza consente a Mamba-2 di utilizzare dimensioni di stato nascoste molto più grandi senza rallentare il modello, consentendo di creare modelli più grandi, più potenti e più espressivi con l'architettura. Nei test, i modelli Mamba-2 hanno definitivamente eguagliato o superato i modelli Mamba e trasformativi di dimensioni corrispondenti in una serie di attività a valle.

Collegamenti ai trasformatori

Come afferma l'introduzione del documento, "l'obiettivo principale di Dao e Gu [era] quello di sviluppare un ricco corpus di connessioni teoriche tra SSM strutturati e varianti dell'attenzione". Ciò ha prodotto un nuovo framework che unisce i due, chiamato "State Space Duality" (SSD).3 Così facendo, hanno consentito a Mamba di trarre beneficio da diversi anni di esplorazione e ottimizzazione dell'architettura trasformativa.

Un beneficio notevole è stato lo sviluppo di un equivalente Mamba della multi-head attention (MHA), in cui un blocco Mamba può essere suddiviso in più "teste Mamba" simili alle molteplici "teste di attenzione" dei trasformatori. Una variante di questo approccio, che hanno ritenuto analogo alla grouped query attention, aumenta l'efficienza grazie al parallelismo tensoriale nelle GPU.

Architettura Mamba-2

Nel blocco Mamba-2, chiamato blocco parallelo di Mamba (al contrario del blocco Mamba "sequenziale" originale), i parametri dipendenti dall'input ∆, B e C vengono generati in parallelo nel livello di proiezione iniziale. B e C, in particolare, sono derivati semplicemente copiando porzioni di xproj, anziché moltiplicando xproj attraverso livelli lineari dedicati. Oltre a semplificare e ridurre i parametri totali del modello, questo parallelismo consente un addestramento su larga scala notevolmente più efficiente.4

Schema del blocco Mamba-2 Il blocco Mamba-2. La "x" che segue l'SSM selettivo si riferisce alla moltiplicazione per elemento, piuttosto che al prodotto scalare standard.

Mamba e trasformatori a confronto

Sia Mamba che i trasformatori hanno i rispettivi punti di forza, tuttavia i modelli basati su Mamba sono generalmente superiori in tutte le questioni relative all'utilizzo e alla velocità della memoria: secondo il documento su Mamba, Mamba offre un throughput 5 volte maggiore rispetto ai trasformatori equivalenti.

I trasformatori sono incredibilmente precisi e versatili, ma anche estremamente esigenti in termini di risorse computazionali. Durante la fase di pre-addestramento (e di messa a punto), i requisiti di memoria dell'autoattenzione aumentano quadraticamente con la lunghezza della sequenza: se si raddoppia la lunghezza del contesto di una sequenza, il meccanismo di attenzione utilizza il quadruplo delle risorse. Questo “collo di bottiglia quadratico” limita sempre di più la velocità e la disponibilità di memoria via via che la finestra di contesto cresce. Durante l'inferenza, la loro memoria deve essere scalata in modo lineare.

L'utilizzo della memoria di un modello Mamba scala solo linearmente durante l'addestramento. Ancora più importante, l'utilizzo della memoria durante l'inferenza è costante: indipendentemente dal numero di token che il modello ha visto, l'SSM mantiene una rappresentazione a dimensione fissa della cronologia degli input. Ciò consente di avere una lunghezza del contesto teoricamente illimitata, vincolata solo dalle limitazioni a livello di hardware.

Detto questo, il metodo dei trasformatori, più impegnativo dal punto di vista della memoria e ridondante dal punto di vista computazionale, offre dei vantaggi. Ad esempio, la ricerca ha dimostrato che i trasformatori superano ancora sia Mamba che Mamba-2 nelle attività che richiedono l'apprendimento contestuale (come la generazione di prompt few-shot), la copia o il ragionamento contestuale ampio.

Modelli mamba ibridi

Fortunatamente, i rispettivi punti di forza dei trasformatori e di Mamba non si escludono a vicenda. Il documento su Mamba-2 suggerisce che un modello ibrido potrebbe superare sia i trasformatori puri che gli SSM, un'idea formalmente convalidata dalla ricerca NVIDIA nel corso del 2024.5 In generale, i modelli ibridi sembrano combinare i benefici di efficienza di Mamba con le sfumature e le prestazioni di apprendimento in contesto fornite dal meccanismo di attenzione, più dispendioso in termini di risorse, dei trasformatori.

Per approfondire questo aspetto, IBM Research ha collaborato con Dao e Gu, insieme a Minjia Zhang della University of Illinois at Urbana-Champaign (UIUC), nell'ambito di Bamba e Bamba V2. Bamba, a sua volta, ha informato molti degli elementi architettonici di IBM Granite 4.0.

La ricerca sui modelli ibridi rimane un'area attiva, in particolare all'interno della comunità open source.

Soluzioni correlate
IBM watsonx.ai

Addestra, convalida, adatta e implementa le funzionalità di AI generativa, foundation model e machine learning con IBM watsonx.ai, uno studio aziendale di nuova generazione per builder AI. Crea applicazioni AI in tempi ridotti e con una minima quantità di dati.

Scopri watsonx.ai
Soluzioni di intelligenza artificiale

Metti l'AI al servizio della tua azienda grazie all'esperienza leader di settore e alla gamma di soluzioni di IBM nel campo dell'AI.

Esplora le soluzioni AI
Consulenza e servizi sull'AI

Reinventa i flussi di lavoro e le operazioni critiche aggiungendo l'AI per massimizzare le esperienze, il processo decisionale in tempo reale e il valore di business.

Esplora i servizi AI
Fai il passo successivo

Ottieni l'accesso completo a funzionalità che coprono l'intero ciclo di vita dello sviluppo dell'AI. Crea soluzioni AI all'avanguardia con interfacce intuitive, workflow e accesso alle API e agli SDK standard di settore.

Esplora watsonx.ai Prenota una demo live