Sobes.tech
Middle — Senior

Cos'è Linformer e perché riesce ad avere una complessità lineare?

sobes.tech AI

Risposta dell'AI

Linformer è un'architettura di trasformatore che riduce la complessità computazionale dell'attenzione da quadratica (O(n²)) a lineare (O(n)) in lunghezza della sequenza.

L'idea chiave di Linformer è approssimare la matrice di attenzione utilizzando una rappresentazione a basso rango. Invece di calcolare l'attenzione completa tra tutte le coppie di token, Linformer proietta le chiavi e i valori in uno spazio di dimensione inferiore tramite proiezioni lineari addestrabili.

Questo permette:

  • di ridurre la dimensione di chiavi e valori,
  • di diminuire il numero di calcoli durante la moltiplicazione delle matrici,
  • di ridurre il consumo di memoria.

In questo modo, la complessità lineare si ottiene utilizzando una dimensione di proiezione fissa, che non dipende dalla lunghezza della sequenza di input, rendendo Linformer efficiente per testi lunghi e sequenze grandi.

Può essere immaginato così:

  • Invece di calcolare l'attenzione: Attention(Q, K, V) = softmax(QKᵀ / sqrt(d)) V
  • Linformer calcola: Attention(Q, E K, F V), dove E e F sono matrici di proiezione addestrabili che riducono la dimensione di K e V.

Questo semplifica i calcoli e riduce la complessità a O(n).