GUIDA ALL'AI linguistica

FlashAttenzione

FlashAttention è un algoritmo efficiente in termini di memoria che calcola esattamente la stessa attenzione dei trasformatori standard, ma senza mai scrivere la gigantesca matrice di attenzione nella memoria lenta della GPU.

2 minuti di letturaUltimo aggiornamento

Panoramica

Ha reso l'addestramento e l'inferenza a lungo contesto notevolmente più rapidi ed economici.

Immersione profonda

L'attenzione standard calcola un punteggio per ogni coppia di token, producendo una matrice N per N. Per una sequenza di 4.000 token si tratta di 16 milioni di punteggi e la matrice deve essere scritta e riletta dalla memoria a larghezza di banda elevata (HBM) della GPU. Il vero collo di bottiglia è il traffico di memoria, non i calcoli. FlashAttention, introdotto da Tri Dao e colleghi nel 2022, ristruttura il calcolo in modo che la matrice non venga mai completamente materializzata. Elabora la sequenza in riquadri che si adattano alla minuscola e ultraveloce SRAM su chip della GPU, elaborando softmax in modo incrementale man mano che procede. Il risultato è matematicamente identico all'attenzione standard ma utilizza molta meno memoria e viene eseguito molto più velocemente, consentendo finestre di contesto molto più lunghe.

Approfondimento tecnico

Il trucco è il "softmax online" combinato con la piastrellatura. FlashAttention carica piccoli blocchi di query, chiavi e valori nella SRAM, calcola gli output di attenzione parziale e ridimensiona le somme parziali all'arrivo di nuovi blocchi in modo che la normalizzazione softmax rimanga corretta senza visualizzare tutti i punteggi contemporaneamente. Poiché non memorizza mai l'intera matrice N per N in HBM, la memoria scala in modo lineare anziché quadratico e il kernel è fuso in un'unica operazione GPU per ridurre al minimo le letture e le scritture della memoria lente.

Impatto strategico

Velocità e scala

I flussi di lavoro linguistici possono muoversi più velocemente senza sacrificare la coerenza.

Accedere e raggiungere

Espande l'accesso attraverso lingue e stili di comunicazione.

Decisioni più chiare

I team possono dedicare più tempo al giudizio mentre l'automazione gestisce la ripetizione.

Il futuro di FlashAttention

FlashAttention è diventato un elemento predefinito. FlashAttention-2 ha migliorato il partizionamento del lavoro della GPU e FlashAttention-3 sfrutta le funzionalità hardware più recenti di Hopper come l'asincronia e l'FP8 a bassa precisione. Aspettatevi una co-progettazione continua con i chip, un'integrazione più profonda nei server di inferenza per documenti lunghi e varianti ottimizzate per un'attenzione scarsa o a finestra scorrevole. Poiché le finestre di contesto si spingono verso milioni di token, i kernel sensibili all'IO come questo rimangono essenziali per mantenere gestibili i costi di formazione e servizio.

Implementazione nel mondo reale

Addestramento di modelli linguistici di grandi dimensioni come Llama e sistemi in stile GPT più velocemente e con costi GPU inferiori

Fornisce assistenti di chat a lungo contesto che acquisiscono interi libri o basi di codice senza esaurire la memoria

Accelerazione delle pipeline di riepilogo dei documenti che elaborano decine di migliaia di token contemporaneamente

Alimentare la visione e i trasformatori multimodali in cui lunghe sequenze di patch di immagini rendono costosa l’attenzione

Rischi e guardrail

Fatti allucinati possono tranquillamente entrare nei rapporti, nei flussi di supporto o nei risultati della ricerca.

La sensibilità tempestiva può creare risultati incoerenti tra richieste simili.

I dati di testo sensibili potrebbero essere esposti se i controlli di accesso sono deboli.

Tabella di marcia per l'implementazione

1

Definisci il formato di output, il tono e gli standard di qualità prima dell'implementazione.

2

Risposte concrete con fonti attendibili ogni volta che la precisione è importante.

3

Mantenere un checkpoint di revisione umana per i risultati ad alto rischio.

4

Tieni traccia dei modelli di errore e riqualifica regolarmente le richieste o i flussi di lavoro.

Continua a esplorare

Free newsletter

Get the daily AI briefing

Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.

One email each weekday. Unsubscribe in one click. We never sell or share your address.

Test yourself

Take the FlashAttention quiz

Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.

Inizia il quiz

Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation

Prossima guida

Incorporamenti di posizioni rotanti

Domande frequenti

Cos'è FlashAttention?

FlashAttention è un algoritmo efficiente in termini di memoria che calcola esattamente la stessa attenzione dei trasformatori standard, ma senza mai scrivere la gigantesca matrice di attenzione nella memoria lenta della GPU. Ha reso l'addestramento e l'inferenza a lungo contesto notevolmente più rapidi ed economici.

Qual è il principale collo di bottiglia che FlashAttention si prefigge nell'attenzione standard?

L'attenzione standard è legata alla memoria: lo spostamento dell'enorme matrice N per N da e verso la memoria ad elevata larghezza di banda domina il tempo, non l'aritmetica stessa.

Come si confronta l'output di FlashAttention con l'attenzione standard?

FlashAttention calcola esattamente gli stessi valori di attenzione; riorganizza semplicemente il calcolo per evitare di materializzare l'intera matrice.

Quale memoria GPU sfrutta FlashAttention elaborando i dati nei riquadri?

FlashAttention carica piccoli riquadri nella veloce SRAM su chip della GPU, mantenendo il lavoro pesante vicino alle unità di calcolo.

Quale tecnica consente a FlashAttention di calcolare il softmax senza vedere tutti i punteggi contemporaneamente?

Un softmax online mantiene i massimi e le somme correnti, ridimensionando i risultati parziali man mano che arrivano nuove tessere in modo che la normalizzazione finale sia corretta.

Di cosa ha tratto vantaggio specificamente FlashAttention-3?

FlashAttention-3 è stato co-progettato con le moderne GPU Hopper, utilizzando l'esecuzione asincrona e FP8 a bassa precisione per ulteriori accelerazioni.