Ricercatori dell’Università di Stanford presentano FlashFFTConv un nuovo sistema di intelligenza artificiale per ottimizzare le convoluzioni FFT per sequenze lunghe.

Ricercatori dell'Università di Stanford presentano FlashFFTConv un nuovo sistema di intelligenza artificiale per ottimizzare le convoluzioni FFT per sequenze lunghe.

La ragionamento efficiente su sequenze estese è una difficoltà principale nell’apprendimento automatico. Recentemente, le convoluzioni sono emerse come un elemento primitivo fondamentale per la modellazione delle sequenze, supportando prestazioni all’avanguardia nella modellazione del linguaggio, nell’analisi delle serie temporali, nella visione artificiale, nella modellazione del DNA e altro ancora. Nonostante questi impressionanti risultati di qualità e ulteriori vantaggi, come una maggiore stabilità e una migliore scalabilità all’aumentare della lunghezza della sequenza, i modelli di sequenze convoluzionali sono ancora significativamente più lenti rispetto ai Transformers.

Una delle cause principali è il supporto hardware non affidabile. Le convoluzioni per la modellazione delle sequenze spesso impiegano filtri tanto lunghi quanto la sequenza di input, a differenza dei filtri brevi utilizzati nelle convoluzioni classiche per le applicazioni visive. L’algoritmo di convoluzione Fast Fourier Transform (FFT) calcola la convoluzione tra un input u e il kernel di convoluzione k mappando le frequenze di input e output.

Nonostante sia efficiente dal punto di vista asintotico, l’algoritmo di convoluzione FFT ha un tempo di clock basso sugli acceleratori contemporanei. Tuttavia, il progresso tecnologico nei sistemi ha permesso ai Transformers di raggiungere i limiti degli acceleratori attuali, con un utilizzo di FLOP end-to-end superiore al 72% quando si utilizza FlashAttention-v2.

Per offrire capacità di contesto più lunghe, una nuova ricerca dell’Università di Stanford indaga su come ottimizzare il metodo di convoluzione FFT sugli acceleratori contemporanei. I ricercatori ritengono che, come gli avanzamenti nei sistemi come FlashAttention hanno portato a modelli migliori e nuovi algoritmi di attenzione, l’ottimizzazione della convoluzione FFT porterà a nuovi e migliori algoritmi, potenziando la qualità dei modelli di sequenze convoluzionali.

La convoluzione FFT può essere facilmente ottimizzata per sequenze corte. È pratica comune riutilizzare i filtri di kernel su più batch, il che consente di calcolare anticipatamente la FFT del filtro prima di riutilizzarlo. Pertanto, la convoluzione FFT è parallela tra batch e filtri, e la fusione del kernel consente di memorizzare in cache le uscite di convoluzione intermedie in SRAM o nei registri.

  1. Tuttavia, il team sottolinea che due grandi problemi emergono man mano che la lunghezza della sequenza cresce. Riguardo agli acceleratori attuali, le convoluzioni FFT non utilizzano in modo ottimale le unità di moltiplicazione matrice-matrice specializzate.
  2. In secondo luogo, la fusione del kernel non funziona quando le sequenze diventano troppo lunghe per adattarsi in SRAM, e sono necessarie costose operazioni di I/O. Le operazioni di padding per la causalità e le conversioni da input/output a valori reali a intermezi FFT a valori complessi potrebbero aumentare ulteriormente questi costi di I/O.

In risposta, i ricercatori offrono FlashFFTConv, un nuovo algoritmo che utilizza una decomposizione Monarch della FFT per ottimizzare la convoluzione FFT per sequenze estese. La FFT può essere efficacemente trasferita sull’hardware grazie a una decomposizione Monarch di ordine p, che riscrive la FFT come una serie di operazioni di moltiplicazione matrice-matrice di ordine p. Valori di p più elevati comportano un costo FLOP inferiore a causa di matrici più piccole, ma richiedono più I/O per trasmettere risultati intermedi. Pertanto, è coinvolto un compromesso.

Lo studio illustra come ottimizzare p per il costo FLOP e il costo di I/O in una GPU utilizzando un semplice modello di costo basato sulla lunghezza della sequenza. Oltre a facilitare la fusione del kernel con sequenze più lunghe, questa decomposizione riduce la quantità di sequenza che deve essere mantenuta in SRAM. Pertanto, FlashFFTConv può gestire facilmente sequenze che vanno da 256 a 4 milioni di caratteri. Utilizzando un algoritmo FFT a valori reali e saltando parti delle operazioni di moltiplicazione matrice-matrice quando l’input è zero-padded, FlashFFTConv può ridurre la lunghezza dell’operazione FFT fino alla metà. Per ultimo ma non meno importante, la visualizzazione matriciale della convoluzione FFT fornisce un’interfaccia semplice per implementare due modifiche architetturali: convoluzioni parziali, che apprendono con un kernel di convoluzione più corto della sequenza di input, e convoluzioni sparse in frequenza, che annullano sezioni del kernel nello spazio delle frequenze. Entrambi gli approcci possono essere implementati semplicemente omettendo sezioni della decomposizione matriciale, riducendo l’impronta di memoria e il tempo di clock e possono essere considerati come equivalente convoluzionale di attenzione sparso/approssimata nei Transformers.

I ricercatori dimostrano che FlashFFTConv accelera la convoluzione FFT, ottenendo modelli di sequenze migliori, più efficienti e più lunghi.

  • FlashFFTConv migliora la qualità dei modelli di sequenze convoluzionali grazie a una migliore efficienza: per lo stesso budget di calcolo, FlashFFTConv consente a Hyena-GPT-s di ottenere una perplessità migliore di 2,3 punti e consente a M2-BERT-base di ottenere un punteggio GLUE medio fino a 3,3 più alto—un guadagno di prestazioni equivalente al raddoppio dei parametri del modello.
  • FlashFFTConv migliora l’efficienza delle convoluzioni fino a 7,93 e fino al 5,60 nel risparmio di memoria rispetto a PyTorch, e questa efficienza si mantiene su quattro ordini di grandezza nella lunghezza della sequenza. FlashFFTConv è più veloce in termini di tempo di clock rispetto a FlashAttention-v2 end-to-end per lunghezze di sequenza di 2K e superiori grazie a costi FLOP inferiori e raggiunge un utilizzo di FLOP di end-to-end fino al 62,3%, che è solo il 10% inferiore a FlashAttention-v2.
  • Sono possibili modelli di sequenze più lunghe con FlashFFTConv. FlashFFTConv ha prodotto l’unico modello in grado di completare il lavoro Path-512 della benchmark lunga Arena (lunghezza della sequenza 256K) per la classificazione di immagini ad alta risoluzione. FlashFFTConv è il primo modello a incorporare i geni umani più lunghi (fino a 2,3 milioni di paia di basi) a risoluzione di singolo nucleotide; estende HyenaDNA a una lunghezza di sequenza di 4M tramite convoluzioni parziali.

Il team spera che FlashFFTConv apra la strada a un uso più diffuso di modelli di sequenza convoluzionale e che le lezioni apprese conducano a architetture informatiche più efficienti dal punto di vista delle risorse.