Quando i trasformatori falliscono
I ricercatori hanno cercato di determinare il motivo per cui la maggior parte delle modifiche proposte al Transformer non ha visto un’adozione diffusa.
Itrasformatori sono l’architettura di fatto scelta per le attività di elaborazione del linguaggio naturale. Dalla loro introduzione, tre anni fa, i Transformers hanno subito diverse modifiche.
Recentemente, un team di ricercatori di Google Research ha scoperto che la maggior parte delle modifiche non migliora in modo significativo le prestazioni dei trasformatori. Alcune delle modifiche più diffuse a Transformers includono varie funzioni di attivazione (come GeLU, Sigmoid, ecc.), Normalizzazione, profondità, incorporamenti e condivisione di parametri. La maggior parte delle varianti di Transformer trovate utili sono state sviluppate nella stessa base di codice o sono modifiche relativamente minori, hanno affermato i ricercatori.
Perché questa ricerca
Secondo i ricercatori, ci sono due possibili spiegazioni all’uso di una versione leggermente modificata del Transformer originariamente proposto :
L’architettura Transformer originariamente proposta era quasi perfetta e non c’era molto da fare per gli sviluppatori per migliorare l’architettura.
Le modifiche proposte all’architettura Transformer non si generalizzano tra le applicazioni. Significa che le modifiche aiutano solo nell’impostazione sperimentale limitata, considerando che i dettagli specifici delle modifiche non si basano sui dettagli comuni tra le implementazioni del Transformer.
I ricercatori hanno cercato di determinare il motivo per cui la maggior parte delle modifiche proposte al Transformer non ha visto un’adozione diffusa. Per comprendere le modifiche, hanno reimplementato e valutato un’ampia varietà di varianti di Transformer su una suite di attività.
Le varianti modificate del trasformatore utilizzate in questa ricerca sono:
Attenzione trasparente: questa variante del trasformatore crea connessioni residue ponderate lungo la profondità dell’encoder per facilitare il flusso del gradiente.
Evolved Transformer: L’Evolved Transformer è un’altra variante progettata tramite una ricerca dell’architettura basata sull’evoluzione.
Varianti del sintetizzatore: i ricercatori esplorano le varianti del sintetizzatore fattorizzato, denso e casuale in cui l’attenzione personale viene sostituita con modelli di “attenzione sintetica”.
Funnel Transformer: Funnel Transformer riduce la lunghezza della sequenza in modo che possa codificare in modo efficiente la sequenza di input.
Convoluzioni dinamiche e leggere: la convoluzione dinamica utilizza i kernel che sono funzioni dell’input nella fase temporale corrente. D’altra parte, la convoluzione leggera è un tipo di convoluzione profonda che condivide i pesi di ogni numero successivo di m canali dove m è un iperparametro e normalizza i pesi attraverso la dimensione del filtro.
Trasformatori esperti sparsi: trasformatori esperti sparsi, come Mixture of Experts Transformer, Switch Transformer, tra gli altri, sostituiscono la rete feedforward con livelli esperti scarsamente attivati.
Product Key Memory: questa variante di reti elabora gli input in modo adattivo, selezionando i valori sparsi.
Trasformatore universale: questa variante implementa ripetutamente lo stesso “blocco” del trasformatore nella sequenza di input. Tuttavia, invece di applicarlo un numero fisso di volte, il Transformer raffina in modo ricorrente la rappresentazione di ogni token fino a quando non viene attivato un meccanismo di arresto.
I ricercatori hanno scoperto che le modifiche di Transformer mostrano una sorprendente mancanza di generalizzazione tra diverse implementazioni e attività. In una nota conclusiva, i ricercatori hanno suggerito alcune metodologie che garantiranno la robustezza delle future modifiche architettoniche ai trasformatori.