top of page
  • Immagine del redattoreAndrea Viliotti

Il ruolo dei k-sparse autoencoders in GPT-4: Verso un'intelligenza artificiale più interpretabile

I ricercatori di OpenAI hanno studiato l'uso dei k-sparse autoencoders per estrarre funzionalità interpretabili dai modelli linguistici come GPT-4. Questi autoencoders, tramite una rappresentazione compressa, migliorano la comprensione dei dati. Gli autoencoders k-sparse, che mantengono solo le attivazioni più significative, bilanciano la qualità della ricostruzione con la sparsità, riducendo il problema dei latenti morti. Inoltre, sviluppano nuove metriche per valutare l'efficacia delle funzionalità estratte e migliorare la comprensione e l'efficienza dei modelli di IA.


Il ruolo dei k-sparse autoencoders in GPT-4: Verso un'intelligenza artificiale più interpretabile
Il ruolo dei k-sparse autoencoders in GPT-4: Verso un'intelligenza artificiale più interpretabile

Leo Gao, Tom Dupré la Tour, Henk Tillman, Gabriel Goh, Rajan Troll, Alec Radford, Ilya Sutskever, Jan Leike e Jeffrey Wu di OpenAI hanno esplorato l'uso degli autoencoders sparsi per estrarre funzionalità interpretabili dai modelli linguistici. Questi autoencoders sono tecniche di apprendimento automatico che cercano di ricostruire i dati di input attraverso una rappresentazione compressa, chiamata livello di strozzatura, mantenendo solo una parte delle informazioni. Questo approccio è particolarmente promettente perché permette di identificare schemi utili e interpretabili all'interno dei dati, rendendo i modelli più comprensibili e utili.

 

Quando si parla di modelli linguistici come GPT-4 o Gemini, ci si riferisce a sofisticati sistemi di intelligenza artificiale capaci di apprendere da vastissime quantità di testo per generare risposte, tradurre lingue, e svolgere altre attività legate al linguaggio. Questi modelli apprendono tantissimi concetti diversi, quindi per raccogliere tutte le informazioni necessarie servono autoencoders molto grandi. Gli autoencoders sono strumenti che aiutano a semplificare e a comprimere i dati mantenendo solo le parti più importanti. Tuttavia, uno dei problemi principali con autoencoders così grandi è trovare un equilibrio tra la qualità della ricostruzione dei dati e la necessità di mantenerli compressi. Inoltre, c'è la difficoltà di gestire le "unità latenti morte", cioè quelle parti del sistema che non contribuiscono attivamente a ricostruire le informazioni.

 

Immagina di voler imparare una nuova lingua utilizzando un'enorme libreria di libri e articoli. Ogni libro contiene migliaia di parole e frasi, molte delle quali si ripetono o sono meno importanti. Un modello linguistico come GPT-4 è come uno studente straordinariamente intelligente che legge tutti questi libri e impara a rispondere a domande, tradurre testi e fare altre cose basate su ciò che ha letto.

 

Gli autoencoders, in questo scenario, sono come un taccuino dove lo studente annota solo le informazioni più utili e significative. Tuttavia, se il taccuino è troppo piccolo, lo studente non può prendere appunti abbastanza dettagliati per ricordare tutto. D'altra parte, se il taccuino è troppo grande, potrebbe essere difficile trovare le informazioni rilevanti quando servono.

 

Il problema delle "unità latenti morte" è simile a prendere appunti che poi non vengono mai riletti o usati. Sono nel taccuino, ma non contribuiscono realmente a ricordare o ricostruire le informazioni apprese. Gli autori dello studio hanno cercato di risolvere questi problemi trovando un equilibrio tra la qualità delle note (ricostruzione dei dati) e la quantità di informazioni davvero utili (sparsità), assicurandosi che ogni appunto nel taccuino sia utile e rilevante.


Per affrontare queste sfide, gli autori propongono l'uso degli autoencoders k-sparse, che permettono di controllare direttamente il livello di sparsità (ossia, la quantità di informazioni davvero utili che viene mantenuta), facilitando così la calibrazione del modello. Questo approccio migliora il bilanciamento tra la ricostruzione dei dati e la sparsità: in altre parole, aiuta a mantenere un equilibrio ottimale tra la capacità del modello di ricostruire accuratamente i dati originali e la necessità di comprimere le informazioni, mantenendo solo le più rilevanti. Inoltre, i ricercatori hanno introdotto alcune modifiche che riducono significativamente il problema dei latenti morti, anche quando il modello viene utilizzato su larga scala.

 

Grazie a queste tecniche, i ricercatori hanno osservato leggi di scaling chiare, cioè regole prevedibili su come l'aumento della dimensione degli autoencoders e il livello di sparsità influenzino le prestazioni del modello. Inoltre, hanno sviluppato nuove metriche per valutare la qualità delle funzionalità estratte dagli autoencoders. Le "funzionalità estratte" si riferiscono ai concetti e alle informazioni significative che il modello riesce a identificare e isolare dai dati grezzi. Queste metriche si basano su diversi fattori: quanto bene il modello riesce a recuperare le funzionalità ipotizzate, quanto sono comprensibili le attivazioni generate e sulla sparsità degli effetti a valle, ovvero l'impatto che le modifiche alle rappresentazioni compresse hanno su altre operazioni del modello. In generale, queste metriche mostrano un miglioramento con l'aumento della dimensione degli autoencoders.

 

Immagina un archivio digitale di fotografie. Un autoencoder è come un sistema che, guardando tutte le foto, cerca di comprendere quali sono le caratteristiche più importanti, come i colori dominanti, le forme o i soggetti principali. Ad esempio, se l'archivio contiene molte foto di gatti, l'autoencoder imparerà a riconoscere e comprimere le informazioni relative ai gatti, come la forma delle orecchie e il colore del pelo.

 

Ora, se questo autoencoder diventa più grande e sofisticato, sarà in grado di identificare e memorizzare una maggiore varietà di caratteristiche, come le razze specifiche dei gatti o le espressioni facciali. Le nuove metriche sviluppate dai ricercatori aiutano a valutare quanto bene l'autoencoder riesce a ricostruire queste caratteristiche riconosciute (funzionalità ipotizzate) e quanto queste informazioni siano utili e comprensibili per altri compiti, come la classificazione delle foto.

 

Ad esempio, una metrica potrebbe valutare se il sistema riesce a distinguere correttamente tra un gatto e un cane (recupero delle funzionalità ipotizzate), mentre un'altra potrebbe misurare se le informazioni memorizzate dal sistema sono facili da capire per un altro programma che cerca di descrivere le foto (spiegabilità delle attivazioni). Infine, una metrica sulla "sparsità degli effetti a valle" potrebbe valutare se le rappresentazioni compresse delle foto influenzano positivamente altri processi, come la ricerca di immagini simili.

 

In sostanza, queste tecniche e metriche permettono di migliorare continuamente il modo in cui gli autoencoders estraggono e utilizzano le informazioni importanti dai dati, rendendo i modelli di intelligenza artificiale più efficaci e comprensibili.

 

Per dimostrare la scalabilità del loro approccio, i ricercatori hanno addestrato un autoencoder con 16 milioni di unità latenti sulle attivazioni di GPT-4, elaborando ben 40 miliardi di token. In termini semplici, significa che hanno creato un sistema estremamente potente in grado di gestire e analizzare una quantità enorme di dati testuali. Questo lavoro non solo dimostra che la loro soluzione è tecnicamente fattibile, ma mette anche a disposizione di tutti il codice sorgente e gli autoencoders, rendendoli accessibili come modelli open-source. Inoltre, hanno sviluppato un visualizzatore che permette di esplorare e comprendere le funzionalità estratte dal modello.

 

Immagina di avere un programma che non solo può leggere e comprendere un'enorme quantità di libri, ma che può anche spiegarti in dettaglio come ha estratto le informazioni più rilevanti da questi libri. Questo visualizzatore agisce come una lente d'ingrandimento che permette di vedere esattamente come il modello analizza e processa i dati, rendendo più trasparente e comprensibile il funzionamento di questi complessi sistemi di intelligenza artificiale.

 

Potenziale degli sparse autoencoders nei modelli linguistici

L'addestramento degli autoencoder viene eseguito sui flussi residui sia di GPT-2 small che di modelli di dimensioni crescenti fino a GPT-4. Si sceglie di usare i flussi residui su uno strato che si trova in fondo alla rete, perché ha la capacità di avere molte funzionalità senza essere particolarmente adatto a prevedere i token seguenti. Per i modelli della serie GPT-4, viene selezionato uno strato a 5/6 della profondità totale della rete, mentre per GPT-2 small viene utilizzato lo strato 8, corrispondente a 3/4 della profondità. Tutti gli esperimenti utilizzano una lunghezza del contesto di 64 token.

 

Gli strati finali della rete vengono scelti perché accumulano informazioni da tutte le fasi precedenti del modello, offrendo una rappresentazione complessa e dettagliata del contesto. Tale profondità di informazione è cruciale per un autoencoder, che deve essere in grado di catturare e ricostruire efficacemente queste intricate rappresentazioni.

 

Prima di passare gli input all'autoencoder o di calcolare gli errori di ricostruzione, viene sottratta la media sulla dimensione del modello e gli input vengono normalizzati a norma unitaria. Questa fase di normalizzazione è essenziale per garantire che l'autoencoder lavori con dati standardizzati, migliorando così la stabilità e l'efficacia dell'addestramento. La sottrazione della media e la normalizzazione a norma unitaria aiutano a prevenire problemi di scalabilità e facilitano una più rapida convergenza del modello.

 

La valutazione degli autoencoder post-addestramento si basa su due metriche principali: la sparsità (L0) e l'errore quadratico medio di ricostruzione (MSE). La sparsità misura il numero di elementi non nulli nei dati, riflettendo la capacità del modello di rappresentare informazioni in modo compatto. L'MSE, invece, fornisce una misura della qualità della ricostruzione, con valori di MSE normalizzati dividendo per un errore di ricostruzione di riferimento ottenuto predicendo costantemente le attivazioni medie. Questa normalizzazione permette di avere un punto di confronto stabile per valutare le performance del modello.

 

Per quanto riguarda gli iperparametri, che sono parametri regolabili usati durante l'addestramento di un modello di machine learning, l'analisi viene semplificata non considerando il "warmup" o il "decay" del tasso di apprendimento, a meno che non sia specificato diversamente.

 

Gli iperparametri sono come manopole che si possono girare per vedere come cambiano i risultati. Ad esempio, il tasso di apprendimento è un iperparametro che determina quanto velocemente il modello si aggiorna con ogni nuovo dato. "Warmup" significa aumentare lentamente questo tasso all'inizio, mentre "decay" significa ridurlo lentamente col tempo.

 

Ignorando "warmup" e "decay", ci si concentra direttamente sui tassi di apprendimento. Si provano diversi tassi di apprendimento su un modello più piccolo per vedere quale funziona meglio. Ad esempio, si potrebbe testare un tasso di apprendimento di 0.01, 0.001, e 0.0001 su un modello piccolo e osservare quale produce i migliori risultati. Una volta individuato il tasso migliore, questo viene utilizzato su un modello più grande.

 

Questo metodo iterativo aiuta a trovare i valori ottimali per addestrare il modello in modo efficace. Ad esempio, se il tasso di apprendimento di 0.01 funziona bene su un modello piccolo, si prova lo stesso tasso su un modello più grande. Questo approccio assicura che si usino le risorse computazionali nel modo più efficiente possibile, ottimizzando il processo di addestramento.

 

Autoencoders ReLU

Per un vettore di input proveniente dal flusso residuo e con un certo numero di dimensioni latenti, vengono utilizzati autoencoder ReLU come descritto da Bricken e colleghi nel 2023.

 

L'encoder riceve l'input, sottrae un valore predefinito e lo trasforma con una funzione che passa solo i valori positivi. Questa trasformazione utilizza una combinazione pesata dell'input tramite un insieme di pesi specifici dell'encoder, insieme a un valore di aggiustamento specifico.

 

L'encoder funge da filtro iniziale, riducendo la complessità dell'input tramite una trasformazione lineare seguita dalla funzione ReLU (Rectified Linear Unit). Sottraendo un valore predefinito, l'encoder normalizza l'input, facilitando l'applicazione dei pesi specifici. Questo processo di normalizzazione e trasformazione selettiva enfatizza le caratteristiche salienti dell'input, scartando le informazioni meno rilevanti.

 

Il decoder ricostruisce l'input originale utilizzando una combinazione pesata delle dimensioni trasformate e riaggiungendo il valore predefinito. Invertendo il processo dell'encoder, il decoder utilizza una nuova combinazione pesata per trasformare le dimensioni latenti e ripristinare il contesto originale dell'input. La ricostruzione deve essere il più fedele possibile all'input originale per garantire l'efficacia dell'autoencoder.

 

La perdita di addestramento è composta da due parti principali: l'errore di ricostruzione e una penalità sulle attivazioni latenti. L'errore di ricostruzione misura la differenza tra l'output dell'autoencoder e l'input originale. La penalità sulle attivazioni latenti, nota anche come sparsity regularization, promuove la parsimonia nel modello, spingendo la rete a utilizzare solo le dimensioni latenti più significative. Questo evita sovraccarichi di informazioni superflue, migliorando la generalizzazione e l'efficienza computazionale.

 

Le attivazioni latenti sono i valori generati durante la trasformazione dell'input in output, rappresentando una sorta di linguaggio interno della rete. In un autoencoder addestrato su immagini di volti, queste attivazioni potrebbero corrispondere a caratteristiche come la forma del viso o l'espressione facciale. La penalità sulla sparsità delle attivazioni latenti spinge la rete a utilizzare solo le caratteristiche più rilevanti, riducendo quelle non necessarie.

 

Una rappresentazione sparsa rende il modello meno suscettibile al rumore e alle variazioni insignificanti nell'input, migliorando la robustezza e la capacità di generalizzare a nuovi dati. Ad esempio, un autoencoder che lavora con un'immagine descritta da 100 caratteristiche latenti, grazie alla penalità sulla sparsità, cercherà di usarne il meno possibile, mantenendo solo quelle essenziali.

 

Un parametro specifico viene ottimizzato per bilanciare l'accuratezza della ricostruzione e la riduzione delle attivazioni latenti non necessarie. Questo compromesso, ben gestito attraverso tecniche di validazione e tuning, permette di ottenere un autoencoder capace di riprodurre fedelmente l'input originale senza diventare eccessivamente complesso o specializzato.

 

Funzione di attivazione TopK (k-sparse autoencoders)

Un autoencoder k-sparse, come descritto da Makhzani e Frey nel 2013, controlla direttamente il numero di attivazioni latenti mantenendo solo le k più alte e azzerando le altre.


L'encoder funziona in questo modo:

L'encoder trasforma l'input utilizzando una funzione di attivazione chiamata TopK, che seleziona solo le k attivazioni più significative, eliminando tutte le altre. Il decoder rimane invariato rispetto alla versione standard.

La perdita di addestramento si basa esclusivamente sull'errore di ricostruzione, misurando quanto l'output differisce dall'input originale.

Cosa sono esattamente "TopK" e "k" in questo contesto? TopK è una funzione che seleziona le k attivazioni più alte da un insieme di valori, azzerando tutte le altre. La "k" rappresenta il numero di attivazioni significative da mantenere.


L'uso degli autoencoder k-sparse offre numerosi vantaggi:

- Elimina la necessità della penalità L1, che è un'approssimazione imperfetta della penalità L0 e introduce un bias riducendo tutte le attivazioni positive verso zero. Per chiarire, una penalità L1 cerca di ridurre il numero di attivazioni inutili, ma può anche diminuire l'intensità di quelle utili. Ad esempio, immagina di addestrare un modello che deve comprimere e ricostruire immagini di animali. Senza l'uso di k-sparse, il modello potrebbe tendere a ridurre alcune caratteristiche importanti, come il colore del pelo, rendendo l'immagine ricostruita meno accurata.


- Permette di impostare direttamente la sparsità desiderata, semplificando il confronto tra modelli e accelerando il processo di iterazione. La sparsità si riferisce alla proporzione di attivazioni azzerate rispetto al totale. Ad esempio, se si sviluppa un'applicazione per il riconoscimento facciale, è possibile testare facilmente diverse configurazioni del modello per vedere quale offre il miglior equilibrio tra precisione e velocità.


- Supera empiricamente gli autoencoder ReLU di riferimento in termini di rapporto tra sparsità e qualità di ricostruzione, con un divario che aumenta all'aumentare della scala del modello. Ad esempio, lavorando con un grande dataset di immagini satellitari, un autoencoder k-sparse può fornire ricostruzioni più accurate delle immagini comprimendo i dati in modo più efficiente rispetto agli autoencoder tradizionali.


Migliora la chiarezza semantica degli esempi di attivazione occasionali, evidenziando meglio quali attivazioni sono realmente importanti, annullando efficacemente le piccole attivazioni. La chiarezza semantica si riferisce a quanto chiaramente un modello può identificare elementi importanti in un dataset. Ad esempio, analizzando un testo per identificare parole chiave, un autoencoder k-sparse può aiutare a isolare le parole più importanti, ignorando quelle meno rilevanti, migliorando così la qualità dei risultati dell'analisi.

 

Prevenzione dei latenti morti

I "latenti morti" rappresentano una sfida significativa nell'addestramento degli autoencoder. Nei grandi autoencoder, una proporzione crescente di latenti smette completamente di attivarsi durante l'addestramento. Ad esempio, Templeton et al. nel 2024 hanno addestrato un autoencoder con 34 milioni di latenti, di cui solo 12 milioni erano attivi. Senza misure di mitigazione, fino al 90% dei latenti possono risultare non attivi, peggiorando notevolmente l'errore di ricostruzione (MSE) e rendendo l'addestramento meno efficiente dal punto di vista computazionale.

 

Due strategie importanti sono state identificate per prevenire i latenti morti. La prima strategia consiste nell'inizializzare l'encoder come trasposto del decoder. Questo significa che i pesi dell'encoder vengono impostati in modo speculare rispetto a quelli del decoder, migliorando l'allineamento delle due componenti e facilitando l'attivazione dei latenti. La seconda strategia prevede l'uso di una perdita ausiliaria che modella l'errore di ricostruzione considerando i latenti morti top-k, ovvero tenendo conto solo delle k attivazioni più significative. In questo contesto, "k" rappresenta il numero delle attivazioni più elevate che vengono considerate per la ricostruzione, ignorando le altre.

 

I "latenti morti top-k" sono quei latenti che, pur essendo tra i k più importanti in termini di attivazione, non vengono utilizzati per la ricostruzione a causa della loro inattività. Utilizzando una perdita ausiliaria che include questi latenti, si assicura che anche le caratteristiche meno evidenti vengano prese in considerazione durante l'addestramento.

 

Ad esempio, nell'addestramento di un autoencoder per comprimere dati finanziari, senza queste strategie, molti latenti potrebbero smettere di attivarsi, riducendo l'efficacia del modello. Invece, inizializzando l'encoder come trasposto del decoder e utilizzando la perdita ausiliaria, si garantisce che anche le caratteristiche meno evidenti vengano prese in considerazione, migliorando la qualità della ricostruzione.

 

Grazie a queste tecniche, anche nei grandi autoencoder, con 16 milioni di latenti, solo il 7% dei latenti risulta non attivo, migliorando notevolmente l'efficienza e l'accuratezza dell'addestramento.

 

Leggi di scaling

Grazie alle ampie capacità dei modelli avanzati come GPT-4, si ipotizza che rappresentare fedelmente lo stato del modello richieda un gran numero di funzionalità sparse. Per determinare la dimensione ottimale dell'autoencoder e il budget di token, vengono considerati due approcci principali.

 

Il primo approccio si basa sull'addestramento dell'autoencoder per ottenere l'errore quadratico medio (MSE) ottimale dato il calcolo disponibile, senza preoccuparsi della convergenza. Questo metodo, introdotto per il pre-addestramento dei modelli linguistici, mostra che l'MSE segue una legge di potenza rispetto al calcolo. Tuttavia, questo metodo presenta delle limitazioni perché nei modelli linguistici ci si concentra principalmente sulle predizioni dei token, mentre per gli autoencoder l'elemento chiave è la qualità delle attivazioni latenti. Confrontare l'MSE tra modelli di dimensioni diverse può non essere equo, poiché modelli più grandi hanno un collo di bottiglia informativo più ampio e quindi raggiungono un MSE inferiore più facilmente. Ad esempio, se si confrontano due autoencoder con dimensioni diverse, il modello più grande avrà maggiori capacità di compressione e ricostruzione, rendendo la misura dell'MSE meno indicativa.

 

Il secondo approccio considera l'addestramento degli autoencoder fino alla convergenza, cioè fino a quando l'errore di ricostruzione non diminuisce più significativamente. Questo approccio fornisce un limite alla migliore ricostruzione possibile con il metodo di addestramento, senza considerare l'efficienza del calcolo. In pratica, l'ideale sarebbe trovare un equilibrio tra i due approcci, utilizzando un budget di token intermedio.

 

È stato osservato che il tasso di apprendimento più grande che porta alla convergenza diminuisce all'aumentare del numero di latenti. Ad esempio, il tasso di apprendimento ottimale per un modello addestrato fino alla convergenza è circa quattro volte più piccolo rispetto a quello ottimale per un modello addestrato solo per ottimizzare l'MSE. Inoltre, il numero di token necessario per raggiungere la convergenza aumenta con una relazione di potenza rispetto al numero di latenti. Per GPT-2 small, questo aumento è approssimativamente proporzionale a una potenza di 0.6 del numero di latenti, mentre per GPT-4 è di circa 0.65.

 

Un esempio pratico può aiutare a comprendere meglio: immagina di addestrare un autoencoder per comprimere un dataset di immagini. Se si usasse un approccio che mira solo a ridurre l'errore di ricostruzione (MSE) il più rapidamente possibile, il modello potrebbe imparare velocemente, ma non necessariamente in modo efficiente. Al contrario, se il modello viene addestrato fino a quando non migliora più significativamente (convergenza), il processo richiederebbe più tempo e più risorse di calcolo, ma la qualità della ricostruzione delle immagini sarebbe molto alta.

 

Un approccio bilanciato che combina entrambi i metodi potrebbe offrire un buon compromesso tra qualità della ricostruzione ed efficienza del calcolo. Questo significa trovare un punto intermedio dove il modello è abbastanza addestrato per fornire una buona qualità senza richiedere un eccessivo tempo di calcolo.

 

Le osservazioni indicano che man mano che il numero di latenti aumenta, il numero di token necessari per completare l'addestramento cresce, ma non in maniera direttamente proporzionale. Questo implica che, a un certo punto, ogni latente riceve meno segnali di apprendimento, riducendo l'efficacia complessiva dell'addestramento.

 

Perdita irriducibile

Le leggi di scaling a volte includono un termine di perdita irriducibile, che rappresenta una quantità di errore che non può essere eliminata, indipendentemente dal calcolo effettuato. Henighan et al. nel 2020 hanno descritto queste leggi, e si è riscontrato che includere questo termine migliora notevolmente la qualità delle curve di adattamento sia per l'addestramento basato sul calcolo disponibile che per quello fino alla convergenza.

 

Inizialmente, non era evidente che dovesse esistere una perdita irriducibile diversa da zero. Una possibile spiegazione è che ci sono altre strutture nelle attivazioni. In casi estremi, il rumore non strutturato nelle attivazioni è molto difficile da modellare e potrebbe spiegare la curvatura osservata nelle leggi di potenza.

 

È stato scoperto che l'errore quadratico medio (MSE) segue una legge di scaling congiunta sia rispetto al numero di latenti che al livello di sparsità. Questo significa che l'errore di ricostruzione dipende sia dal numero di latenti utilizzati per rappresentare i dati, sia dalla quantità di attivazioni effettivamente utilizzate (sparsità). Ad esempio, se un modello utilizza molte attivazioni (latenti) per ricostruire un'immagine, l'errore sarà inferiore. Tuttavia, se utilizza poche attivazioni, l'errore sarà maggiore.

 

La ricostruzione diventa molto semplice quando il livello di sparsità si avvicina alla dimensione totale del modello. In questo caso, la legge di scaling è valida solo per livelli di sparsità ridotti, cioè quando si utilizzano solo poche attivazioni rispetto alla dimensione totale del modello.

 

Per gli autoencoder GPT-4, è stata osservata una relazione specifica che descrive come l'MSE cambia in funzione del numero di latenti e del livello di sparsità. Quando si aumenta il livello di sparsità, la curva di adattamento diventa più ripida, e la perdita irriducibile diminuisce.

 

In altre parole, quando si aumentano i latenti o si riduce la sparsità, l'autoencoder diventa più efficace nella ricostruzione dei dati, ma c'è sempre una parte di errore che non può essere eliminata completamente. Questo comportamento riflette la complessità del modello e le limitazioni intrinseche nella rappresentazione dei dati complessi.

 

Ad esempio, immagina di comprimere un'immagine complessa con molti dettagli. Anche se si utilizzano molte attivazioni per cercare di ricostruirla nel modo più accurato possibile, ci sarà sempre un piccolo errore che non può essere eliminato, a causa della complessità intrinseca dell'immagine stessa. Questo è ciò che viene chiamato "perdita irriducibile".

 

Adattare gli autoencoder alla crescita dei modelli linguistici

Man mano che i modelli linguistici continuano a crescere in dimensioni è fondamentale comprendere come gli autoencoder sparsi si adattano all'aumento delle dimensioni dei modelli di riferimento. Si è scoperto che, mantenendo costante il livello di sparsità, i modelli soggetti più grandi richiedono autoencoder più grandi per ottenere lo stesso livello di errore di ricostruzione (MSE). Inoltre, l'aumento delle dimensioni dell'autoencoder necessario per mantenere lo stesso MSE diventa più marcato man mano che i modelli soggetti crescono.

 

Ad esempio, immagina di avere un piccolo modello linguistico che utilizza un certo numero di attivazioni latenti per comprimere e ricostruire dati. Se il modello linguistico cresce e diventa più complesso, lo stesso numero di attivazioni latenti non sarà sufficiente per ottenere lo stesso livello di precisione nella ricostruzione dei dati. Di conseguenza, sarà necessario un autoencoder più grande con più attivazioni latenti per mantenere lo stesso livello di errore di ricostruzione.

 

Questo comportamento è indicato da un "esponente peggiore", che significa che l'incremento necessario nelle dimensioni dell'autoencoder per mantenere lo stesso MSE non cresce in modo lineare rispetto all'aumento delle dimensioni del modello linguistico, ma piuttosto in modo più rapido e significativo. In pratica, ciò implica che i modelli più grandi richiedono aumenti proporzionalmente maggiori nelle dimensioni dell'autoencoder per mantenere la stessa qualità di ricostruzione.

 

Questo fenomeno riflette la maggiore complessità dei modelli più grandi, che necessitano di risorse computazionali e strutture di modellazione più robuste per mantenere lo stesso livello di precisione nella ricostruzione dei dati.

 

Valutazione degli autoencoder

Nella valutazione degli autoencoder, è stato dimostrato che i modelli più grandi si comportano bene in termini di errore di ricostruzione (MSE) e sparsità. Tuttavia, l'obiettivo finale degli autoencoder non è solo migliorare la combinazione tra sparsità e ricostruzione, ma trovare caratteristiche utili per applicazioni pratiche, come l'interpretabilità dei modelli. Per questo motivo, la qualità degli autoencoder viene misurata con diverse metriche.

 

La prima metrica riguarda la perdita a valle, che valuta quanto è buona la performance del modello linguistico quando il latente del flusso residuo viene sostituito con la ricostruzione dell'autoencoder. Ad esempio, se si utilizza un autoencoder per comprimere informazioni linguistiche e poi si ricostruisce, questa metrica misura quanto accuratamente il modello linguistico riesce a utilizzare questa ricostruzione per fare predizioni.

 

La seconda metrica è la perdita di sonda, che verifica se gli autoencoder riescono a recuperare le funzionalità attese. In pratica, questa metrica valuta se l'autoencoder può identificare e mantenere le informazioni importanti presenti nei dati originali. Ad esempio, se si addestra un autoencoder su immagini di animali, questa metrica misura se il modello riesce a catturare dettagli importanti come la forma e il colore degli animali.

 

La terza metrica riguarda la spiegabilità, cioè la capacità di fornire spiegazioni semplici e comprensibili per le attivazioni latenti dell'autoencoder. Ad esempio, se un autoencoder identifica una particolare caratteristica nei dati, come un volto in un'immagine, questa metrica valuta se è possibile spiegare chiaramente perché quella caratteristica è stata identificata.

 

Infine, la quarta metrica è la sparsità dell'ablazione, che esamina l'effetto della rimozione di singoli latenti sui risultati finali del modello. Questa metrica valuta se l'eliminazione di una singola attivazione latente ha un impatto significativo e specifico sui risultati del modello, indicando che ogni latente contribuisce in modo distinto e non ridondante. Ad esempio, se si rimuove una specifica attivazione latente che rappresenta il colore del pelo di un animale, questa metrica misura quanto cambia la capacità del modello di riconoscere correttamente l'animale.

 

Queste metriche dimostrano che gli autoencoder tendono a migliorare man mano che aumenta il numero totale di latenti. Tuttavia, aumentare il numero di latenti attivi può rendere più difficile interpretare le spiegazioni basate sui dati. Allo stesso tempo, questo aumento può migliorare la capacità del modello di identificare caratteristiche importanti e mantenere una certa efficienza.

 

Quando il numero di latenti attivi diventa troppo grande, i benefici possono diminuire. I latenti diventano più numerosi e meno specifici, il che può ridurre l'efficacia complessiva del modello. Questo mostra l'importanza di trovare un equilibrio tra la dimensione del modello e la sua complessità per ottenere i migliori risultati possibili.

 

Ad esempio, se si utilizza un autoencoder per riconoscere caratteristiche specifiche in un dataset di immagini, inizialmente aggiungere più latenti può aiutare il modello a identificare meglio dettagli come forme e colori. Tuttavia, se si aggiungono troppi latenti, il modello può diventare troppo complesso e iniziare a perdere precisione, diventando meno efficace nel distinguere tra caratteristiche importanti e dettagli irrilevanti.

 

Perdita a valle dei autoencoder

Per capire se un autoencoder riesce a modellare le caratteristiche più rilevanti per il linguaggio, si utilizza la "perdita a valle". Un autoencoder con un errore di ricostruzione non nullo potrebbe non essere in grado di catturare le caratteristiche più importanti per il comportamento del modello linguistico. Per valutare questo aspetto, si considerano due metriche: la divergenza di Kullback-Leibler (KL) e la perdita di cross-entropy a valle.

 

La divergenza di Kullback-Leibler (KL) misura quanto la distribuzione delle predizioni del modello linguistico differisce dalla distribuzione reale dei dati. In pratica, verifica se le predizioni del modello sono simili ai dati reali. La perdita di cross-entropy, invece, valuta l'accuratezza delle predizioni del modello confrontandole con i risultati attesi. In questo caso, si sostituisce il flusso residuo con il valore ricostruito dall'autoencoder e si osserva come ciò influisce sulle predizioni del modello linguistico.

 

È stato scoperto che gli autoencoder k-sparse, che mantengono solo le attivazioni più significative, migliorano la perdita a valle più di quanto migliorino l'errore di ricostruzione (MSE) rispetto ai metodi precedenti. Ad esempio, questi autoencoder rendono il modello linguistico più preciso anche se non riducono molto l'errore di ricostruzione. Inoltre, l'MSE ha una relazione prevedibile con la divergenza KL e con la perdita di cross-entropy, mantenendo costante la sparsità e variando solo la dimensione dell'autoencoder.

 

Tuttavia, è importante notare che questa tendenza può non essere valida in tutti i casi, ad esempio quando si modifica il livello di sparsità durante il test. Inoltre, i numeri di perdita grezzi possono essere difficili da interpretare da soli. Per capire meglio quanto siano buoni in senso assoluto, è utile confrontarli con una base di riferimento.

 

Una metrica più naturale per valutare la qualità degli autoencoder è considerare la quantità relativa di calcolo di pretraining necessaria per addestrare un modello linguistico con una perdita a valle comparabile. Ad esempio, se si utilizza un autoencoder con 16 milioni di latenti in GPT-4, si ottiene una perdita di modellazione linguistica che corrisponde al 10% del calcolo di pretraining di GPT-4. Questo significa che l'autoencoder consente di ottenere risultati simili utilizzando solo una frazione del calcolo necessario per addestrare GPT-4 da zero.

 

Immagina di avere un sistema che cerca di prevedere la prossima parola in una frase. Se sostituisci una parte di questo sistema con un autoencoder e il sistema continua a fare buone previsioni, significa che l'autoencoder è efficace. Se l'autoencoder richiede meno risorse computazionali rispetto al sistema originale per raggiungere un livello di precisione simile, allora è un buon segno che l'autoencoder sta modellando correttamente le caratteristiche importanti dei dati.

 

Recuperare funzionalità conosciute con sonde 1D

Per verificare se un autoencoder è in grado di individuare funzionalità specifiche, come il sentiment o l'identificazione della lingua, si utilizza una tecnica chiamata "recupero di funzionalità conosciute con sonde 1D". Questa tecnica valuta la qualità dell'autoencoder controllando se queste funzionalità sono presenti nei latenti.

 

Si è creato un set di 61 dataset di classificazione binaria, ognuno contenente esempi che possono essere classificati in due categorie. Per ogni task di classificazione, si addestra una "sonda logistica 1D" su ogni latente dell'autoencoder. Una sonda logistica 1D è un modello semplice di classificazione che utilizza la regressione logistica per fare previsioni binarie. Si utilizza il metodo Newton-Raphson per ottimizzare questo modello e predire il task specifico, registrando la migliore perdita di cross-entropy tra tutti i latenti.

 

La perdita di cross-entropy misura quanto bene la sonda riesce a fare previsioni accurate confrontando le previsioni della sonda con le etichette reali dei dati. Ad esempio, se la sonda deve predire se una recensione è positiva o negativa, la perdita di cross-entropy sarà bassa se la sonda fa previsioni accurate.

 

I risultati su GPT-2 small mostrano che il punteggio della sonda migliora inizialmente con l'aumento della sparsità, ma poi diminuisce. In altre parole, esiste un punto ottimale di sparsità in cui la sonda riesce a fare le migliori previsioni. Si è scoperto che la funzione di attivazione TopK ottiene generalmente punteggi migliori rispetto alla funzione di attivazione ReLU, ed entrambe le funzioni sono significativamente migliori rispetto all'uso diretto dei canali del flusso residuo.

 

I risultati sugli autoencoder GPT-4 indicano che questa metrica migliora durante l'addestramento, anche senza un segnale di addestramento supervisionato. Questo significa che l'autoencoder diventa progressivamente migliore nel recuperare le funzionalità conosciute man mano che l'addestramento procede. Inoltre, la metrica supera i risultati ottenuti utilizzando direttamente i canali del flusso residuo.

 

Un esempio pratico: immagina di avere un dataset di recensioni di film etichettate come positive o negative (sentiment). Addestrando una sonda logistica 1D su ogni latente dell'autoencoder, si può verificare se l'autoencoder è in grado di distinguere tra recensioni positive e negative. Se la sonda riesce a fare buone previsioni, significa che l'autoencoder ha identificato correttamente la funzionalità del sentiment.

 

Questa metrica è vantaggiosa perché richiede poche risorse computazionali. Tuttavia, presenta anche una limitazione significativa: si basa su forti assunzioni riguardo al tipo di funzionalità considerate naturali, cioè quelle che ci si aspetta che l'autoencoder sia in grado di catturare.

 

Trovare spiegazioni semplici per le funzionalità

Gli autoencoder spesso individuano funzionalità che mostrano pattern riconoscibili, suggerendo spiegazioni quando si osservano attivazioni casuali. Tuttavia, questo può creare un'illusione di interpretabilità, dove le spiegazioni sembrano accurate ma sono troppo generiche. Ad esempio, uno studio ha proposto un punteggio di interpretabilità che dipende troppo dal richiamo (la capacità di catturare molti esempi), ma non abbastanza dalla precisione (la capacità di catturare solo esempi corretti). In questo contesto, una spiegazione che si attiva ogni volta che compare la parola "stop" potrebbe sembrare buona, ma in realtà è troppo generica.

 

Man mano che gli autoencoder diventano più complessi e le funzionalità più specifiche, questo problema peggiora. Valutare la precisione delle spiegazioni è molto costoso, specialmente utilizzando modelli come GPT-4. Per ridurre i costi, si utilizza un metodo chiamato Neuron to Graph (N2G), che offre spiegazioni più semplici sotto forma di collezioni di n-gram (sequenze di parole) con jolly.

 

Per costruire una spiegazione con N2G, si inizia con alcune sequenze che attivano il latente. Per ciascuna sequenza, si trova il suffisso più corto che ancora attiva il latente. Successivamente, si verifica se qualche posizione nell'n-gram può essere sostituita da un token di padding per inserire token jolly. Si controlla anche se la spiegazione dipende dalla posizione assoluta verificando se l'inserimento di un token di padding all'inizio è rilevante. Un campione casuale fino a 16 attivazioni non nulle viene utilizzato per costruire il grafo, e altri 16 come veri positivi per calcolare il richiamo.

 

Un esempio pratico: immagina di avere una frase come "I love ice cream" che attiva un latente. La spiegazione potrebbe iniziare trovando il suffisso "ice cream" che attiva ancora il latente. Poi, si potrebbe verificare se "ice" può essere sostituito da un jolly per coprire frasi simili come "I love chocolate ice cream".

 

I risultati per GPT-2 small mostrano che pattern di token densi sono più facili da spiegare. Ad esempio, se ci sono molti latenti attivi in modo denso, questi sono più semplici da modellare con N2G. Gli autoencoder con un numero maggiore di latenti totali e meno latenti attivi sono più facili da spiegare con questo metodo.

 

È stato anche osservato che i modelli con la funzione di attivazione TopK hanno meno attivazioni spurie (falsi positivi) rispetto ai modelli con la funzione ReLU. Le spiegazioni N2G per i modelli TopK hanno un richiamo significativamente migliore e solo una precisione leggermente inferiore, risultando in punteggi F1 migliori, che rappresentano un buon equilibrio tra richiamo e precisione.

 

Ricostruzione delle spiegazioni

Un buon modo per valutare se le attivazioni di un modello sono interpretabili è chiedersi quanta perdita di prestazioni si ha se si usano solo le componenti del modello che possiamo realmente capire. La nostra metrica di perdita a valle misura quanto della performance stiamo catturando, anche se le funzionalità potrebbero non essere interpretabili. La metrica basata sulle spiegazioni, invece, misura quanto le nostre funzionalità siano specifiche e chiare, ma queste spiegazioni potrebbero non coprire la maggior parte del modello.

 

Questo suggerisce di combinare le metriche di perdita a valle e di spiegazioni. L'idea è di usare le spiegazioni per simulare i latenti degli autoencoder e poi verificare la perdita a valle dopo la decodifica. Questa metrica valorizza sia il richiamo (la capacità di catturare molti esempi) sia la precisione (la capacità di catturare solo esempi corretti) e dà più importanza al richiamo per i latenti che si attivano più frequentemente.

 

Per mettere in pratica questa idea, si utilizza il metodo Neuron to Graph (N2G). N2G genera un valore simulato basato su un nodo in un albero di decisione, ma si regola questo valore per minimizzare la varianza spiegata. In particolare, si calcola il rapporto tra il valore simulato e il valore reale su un set di addestramento di token.

 

Ad esempio, immagina di voler spiegare come un autoencoder riconosce la parola "gatto" in un testo. Usando N2G, si potrebbe trovare che il latente si attiva per le parole "gatto", "felino" e "micio". Si generano quindi valori simulati per queste parole e si confrontano con i valori reali per vedere quanto bene N2G spiega le attivazioni del modello.

 

I risultati per GPT-2 mostrano che possiamo spiegare meglio il comportamento del modello rispetto a utilizzare solo bigrammi (coppie di parole consecutive). Inoltre, gli autoencoder più ampi e meno densi sembrano ottenere una perdita a valle inferiore, ovvero riescono a preservare meglio la performance del modello originale anche quando si usano solo le parti del modello che si possono giustificare.

 

Questo approccio aiuta a trovare un equilibrio tra l'interpretabilità e la performance del modello, permettendo di utilizzare spiegazioni chiare e comprensibili senza sacrificare troppo l'efficacia del modello stesso.

 

Sparsità degli effetti di ablazione

Quando un modello linguistico elabora le informazioni in modo irregolare, anche le caratteristiche che identifica tendono a essere distribuite in modo non uniforme nelle sue attivazioni e nei risultati finali. Questo significa che, se spegniamo alcune parti del modello (ablazione), possiamo facilmente vedere come cambiano i risultati.

 

Per misurare l'impatto di queste disattivazioni sui risultati del modello, è stata sviluppata una metrica chiamata "sparsità degli effetti a valle". Questa metrica aiuta a capire quanto le modifiche fatte al modello influenzano le previsioni del modello stesso.

 

Immaginiamo di avere un modello linguistico che cerca di prevedere la parola successiva in una frase. Se scegliamo una parola specifica e disattiviamo uno dei componenti del modello che processa le informazioni (chiamato latente), possiamo osservare come cambiano le probabilità delle possibili parole successive. Ripetendo questo processo per diversi componenti e parole, possiamo vedere quanto queste modifiche siano concentrate o diffuse.

 

Per esempio, supponiamo di avere un modello che deve prevedere la parola successiva dopo "gatto". Se disattiviamo un componente del modello che gestisce le informazioni sul contesto, possiamo osservare come cambiano le probabilità per parole come "mangia", "corre" o "dorme". Ripetendo questo per vari componenti e parole, otteniamo un'idea di quanto le modifiche siano distribuite.

 

In pratica, per ogni parola specifica, disattiviamo uno alla volta i componenti del modello e confrontiamo i risultati prima e dopo la disattivazione. Le differenze nei risultati vengono misurate per ogni ablazione e per ogni parola influenzata. Siccome una differenza costante non influisce sulle probabilità finali (trasformate tramite una funzione chiamata softmax), si sottrae il valore mediano della differenza per ogni parola. Queste differenze vengono poi concatenate per un insieme di parole future, ottenendo un vettore che rappresenta quanto le modifiche siano concentrate o diffuse.

 

La "sparsità" di questo vettore viene misurata utilizzando un rapporto matematico che ci dice quanti componenti del vocabolario sono effettivamente influenzati. Questo valore viene normalizzato per ottenere una frazione tra 0 e 1, dove valori più piccoli indicano effetti più sparsi.

 

Questo metodo è stato applicato a vari modelli autoencoder addestrati su una parte specifica del modello GPT-2, e i risultati mostrano che modelli con più componenti attivi tendono ad avere effetti più sparsi. Tuttavia, quando il numero di componenti attivi si avvicina alla dimensione totale del modello, gli effetti diventano meno interpretabili.

 

In termini semplici, i risultati indicano che disattivare i componenti del modello può aiutare a capire quali parti sono veramente essenziali per le sue previsioni.

 

 TopK (k-sparse autoencoders) previene la riduzione delle attivazioni

Uno dei principali svantaggi dell'uso della penalizzazione L1 è che tende a ridurre tutte le attivazioni verso zero. La penalizzazione L1 è una tecnica usata per promuovere la sparsità, ossia mantenere il numero di attivazioni ridotto, ma può anche rendere il modello meno efficace riducendo troppo le attivazioni. La funzione di attivazione TopK, che seleziona solo le attivazioni più alte e ignora le altre, evita questo problema eliminando la necessità della penalizzazione L1.

 

Per misurare empiricamente quanto le attivazioni vengano ridotte, si verifica se attivazioni diverse e potenzialmente maggiori porterebbero a una migliore ricostruzione, mantenendo fisso il decoder. In pratica, si esegue l'encoder per ottenere un set di latenti attivati, si salva la maschera di sparsità (che indica quali latenti sono attivi), e poi si ottimizzano solo i valori non nulli per minimizzare l'errore quadratico medio (MSE). Questo metodo di ottimizzazione è stato utilizzato in vari studi come k-SVD, Lasso rilassato e ITI. Si risolvono le attivazioni ottimali con un vincolo di positività utilizzando una tecnica chiamata discesa del gradiente proiettata, che consente di mantenere le attivazioni non negative.

 

Questa procedura di ottimizzazione tende ad aumentare le attivazioni nei modelli che utilizzano la funzione ReLU, ma non nei modelli che utilizzano TopK. Ciò indica che TopK non è influenzato dalla riduzione delle attivazioni. L'entità dell'ottimizzazione è anche minore per i modelli TopK rispetto ai modelli ReLU. In entrambi i tipi di modelli, questa ottimizzazione migliora significativamente l'errore di ricostruzione (MSE) e la precisione nella predizione del token successivo (misurata attraverso la cross-entropy).

 

Un esempio pratico: immagina di avere un modello che cerca di ricostruire un'immagine. Usando la funzione ReLU, molte delle attivazioni possono essere ridotte verso zero, il che rende la ricostruzione meno accurata. Con TopK, solo le attivazioni più importanti vengono considerate, prevenendo così la riduzione eccessiva delle attivazioni e migliorando la qualità della ricostruzione.

 

Anche se questa ottimizzazione migliora le performance in entrambi i modelli ReLU e TopK, non elimina completamente la differenza di efficacia tra i due. I modelli TopK mostrano meno necessità di ottimizzazione rispetto ai modelli ReLU, indicando che TopK è più efficace nel mantenere attivazioni utili senza bisogno di ulteriori aggiustamenti.

 

Confronto con altre funzioni di attivazione

Altri studi recenti sugli autoencoder sparsi hanno proposto diversi modi per affrontare la riduzione delle attivazioni causata dalla penalizzazione L1 e migliorare l'equilibrio tra il numero di attivazioni e l'errore di ricostruzione (MSE).

 

Wright e Sharkey (2024) propongono di affinare un parametro di scalatura per ogni latente, per correggere la riduzione delle attivazioni causata dalla penalizzazione L1. Nei Gated sparse autoencoders (Rajamanoharan et al., 2024), la selezione dei latenti attivi è separata dalla stima delle loro magnitudini. Questa separazione permette agli autoencoder di stimare meglio la grandezza delle attivazioni ed evitare la riduzione delle attivazioni L1.

 

Un altro approccio è sostituire la funzione di attivazione ReLU con una ProLU (Taggart, 2024), nota anche come TRec o JumpReLU. Questa funzione imposta tutti i valori al di sotto di una soglia positiva a zero. In pratica, significa che solo le attivazioni sopra una certa soglia sono considerate. Poiché il parametro di soglia non è facilmente calcolabile, viene utilizzato un gradiente approssimato per semplificare i calcoli.

 

Per fare un confronto tra questi diversi approcci, si considerano tre metriche principali: l'errore di ricostruzione (MSE), il numero di latenti attivi (L0), e la perdita di cross-entropy a valle. L'errore di ricostruzione misura quanto bene l'autoencoder riesce a ricostruire i dati originali. Il numero di latenti attivi indica quante delle attivazioni sono utilizzate dal modello. La perdita di cross-entropy a valle valuta la precisione delle predizioni del modello dopo l'uso dell'autoencoder.

 

Ad esempio, immagina di voler comprimere un'immagine utilizzando diversi tipi di autoencoder. Si può confrontare quanto bene ogni autoencoder riesce a ricostruire l'immagine originale (MSE), quante delle attivazioni vengono utilizzate (L0), e quanto precise sono le predizioni del modello dopo la compressione (perdita di cross-entropy).

 

I risultati di questi confronti mostrano che tutte le tecniche migliorano significativamente l'equilibrio tra ricostruzione e sparsità. Tra questi, TopK ha dimostrato di avere la migliore performance complessiva, combinando un basso errore di ricostruzione con un numero ridotto di attivazioni e una buona precisione nelle predizioni a valle.

 

Recupero progressivo

In un codice progressivo, anche una trasmissione parziale consente di ricostruire il segnale con una qualità accettabile. Per gli autoencoder, questo significa che ordinare i latenti per la loro magnitudine di attivazione permette di recuperare progressivamente il vettore originale. Per esplorare questa proprietà, si sostituisce la funzione di attivazione dell'autoencoder (dopo l'addestramento) con una funzione di attivazione TopK(k′), dove k′ è diverso da quello utilizzato durante l'addestramento. Ogni valore di k′ viene quindi valutato nel piano L0-MSE, dove L0 rappresenta il numero di latenti attivi e MSE rappresenta l'errore quadratico medio.

 

Si è scoperto che l'addestramento con TopK fornisce un codice progressivo solo fino al valore di k utilizzato durante l'addestramento. L'errore quadratico medio (MSE) continua a migliorare per valori leggermente superiori a k, ma peggiora sostanzialmente man mano che k′ aumenta ulteriormente. Questo fenomeno può essere interpretato come una sorta di overfitting al valore k, ossia il modello si adatta troppo specificamente a quel valore di k.

 

Per mitigare questo problema, si può sommare più perdite TopK con diversi valori di k, una tecnica chiamata Multi-TopK. Ad esempio, utilizzare una combinazione di L(k) e L(4k)/8 è sufficiente per ottenere un codice progressivo su tutti i valori di k′. Tuttavia, l'addestramento con Multi-TopK tende a fare leggermente peggio rispetto a TopK con un singolo valore di k.

 

Al momento del test, la funzione di attivazione può anche essere sostituita da un'attivazione JumpReLU, che si attiva solo sopra una certa soglia fissa θ. A differenza di TopK, JumpReLU seleziona i latenti attivi in base alla soglia, il che significa che il numero di latenti attivi può variare tra i token. I risultati della sostituzione della funzione di attivazione al momento del test con JumpReLU mostrano che, per gli autoencoder addestrati con TopK, le prestazioni sono simili solo per valori di L0 inferiori a quelli utilizzati durante l'addestramento. Altrimenti, JumpReLU è meno efficace rispetto a TopK.

 

Questa discrepanza scompare con Multi-TopK, dove le curve delle prestazioni sono quasi sovrapposte, il che significa che il modello può essere utilizzato con un numero fisso o dinamico di latenti per token senza perdita di qualità nella ricostruzione. Le curve delle prestazioni sono anche sovrapposte per gli autoencoder addestrati con ReLU.

 

È interessante notare che a volte è più efficiente addestrare un modello ReLU con una penalizzazione L1 bassa e utilizzare TopK o JumpReLU al momento del test, piuttosto che utilizzare una penalizzazione L1 più alta che darebbe un livello di sparsità simile. Questo risultato è stato descritto anche in studi indipendenti.

 

Ad esempio, immagina di voler comprimere un'immagine utilizzando un autoencoder. Durante l'addestramento, si utilizza una funzione di attivazione TopK che seleziona solo i k latenti più importanti. Se successivamente si vuole utilizzare una funzione di attivazione diversa, come JumpReLU, si potrebbe notare che JumpReLU funziona bene solo quando il numero di latenti attivi è simile a quello utilizzato durante l'addestramento. Utilizzando Multi-TopK, è possibile garantire che il modello funzioni bene con una gamma più ampia di valori di k, offrendo maggiore flessibilità e mantenendo alta la qualità della ricostruzione.

 

Limitazioni e direzioni future

Molte migliorie possono essere apportate agli autoencoder.

L'uso forzato di TopK, che costringe ogni token a utilizzare esattamente k latenti, potrebbe non essere ottimale. Sarebbe preferibile limitare il valore medio di L0 (il numero di latenti attivi) piuttosto che fissare L0 a un valore specifico.

 

L'ottimizzazione può probabilmente essere migliorata notevolmente. Ad esempio, l'uso di tecniche di programmazione del tasso di apprendimento, migliori ottimizzatori e perdite ausiliarie più efficaci può prevenire l'inattività dei latenti. Un tasso di apprendimento più dinamico potrebbe consentire al modello di adattarsi meglio durante l'addestramento.

 

È necessario sviluppare metriche più accurate per comprendere quali di queste seguono meglio la rilevanza per le applicazioni pratiche. Le applicazioni includono: guidare il comportamento del modello, rilevare anomalie, identificare circuiti e altro. Trovare vettori che possono indirizzare il comportamento del modello può migliorare l'efficacia delle sue predizioni.

 

L'integrazione di Mixture of Experts (MoE) con gli autoencoder è una direzione promettente. MoE suddivide il compito tra diversi esperti, migliorando l'efficienza computazionale. Combinando MoE con gli autoencoder, è possibile ridurre significativamente il costo dell'addestramento e sviluppare autoencoder molto più grandi.

 

Una grande parte delle attivazioni casuali delle funzionalità trovate, specialmente in GPT-4, non è ancora adeguatamente monosemantica. Monosemanticità significa che ogni latente dovrebbe attivarsi per una sola caratteristica o concetto. Con tecniche migliorate e modelli di scala maggiore, questo problema potrebbe essere superato.

 

La metrica basata sulla sonda è piuttosto rumorosa, cioè non sempre fornisce risultati chiari e precisi. Questo può essere migliorato ampliando la gamma di compiti e utilizzando compiti di qualità superiore. Utilizzando dataset più diversificati e pertinenti, la metrica diventerebbe più affidabile.

 

Il metodo n2g viene utilizzato per la sua efficienza computazionale, ma cattura solo pattern molto semplici. C'è molto spazio per migliorare sviluppando metodi di spiegazione più espressivi, che siano anche abbastanza economici da utilizzare per stimare la precisione delle spiegazioni.

 

Infine, la lunghezza del contesto di 64 token potrebbe essere troppo breve per osservare i comportamenti più interessanti di GPT-4. Aumentando la lunghezza del contesto, è possibile scoprire comportamenti e caratteristiche più complesse del modello, migliorando ulteriormente le sue capacità.

 

Conclusioni

Il lavoro di OpenAI sui k-sparse autoencoders rappresenta un passo significativo verso l'interpretabilità dei modelli di intelligenza artificiale come GPT-4. Utilizzando questi autoencoders, i ricercatori sono riusciti a estrarre funzionalità dai dati in modo più interpretabile e utile. L'idea è che gli autoencoders possano comprimere i dati mantenendo solo le informazioni più rilevanti, migliorando così la comprensione del modello.

 

Una delle principali sfide è trovare un equilibrio tra la qualità della ricostruzione dei dati e la compressione. L'approccio k-sparse offre un vantaggio, consentendo di controllare il livello di sparsità e di ridurre significativamente il problema delle "unità latenti morte". Questo rende i modelli più efficienti e comprensibili.

 

Tuttavia, l'applicazione di queste tecniche non è priva di complicazioni. Il problema delle "unità latenti morte" e l'ottimizzazione della sparsità sono aspetti critici da affrontare. Le leggi di scaling osservate dai ricercatori forniscono una guida su come le dimensioni degli autoencoders e il livello di sparsità influenzino le prestazioni del modello.

 

In sostanza, l'uso degli autoencoders k-sparse non solo migliora la capacità di compressione dei dati, ma facilita anche l'interpretazione delle attivazioni generate dal modello, rendendo più trasparente il processo di apprendimento. Questo approccio promette di rendere i modelli linguistici avanzati non solo più potenti ma anche più comprensibili, aprendo la strada a applicazioni più sicure e affidabili nell'AI.

 

Ma resta una domanda cruciale: come possiamo garantire che queste tecniche di sparsità e interpretabilità siano applicabili su larga scala senza compromettere le prestazioni dei modelli? E fino a che punto possiamo spingerci nell'ottimizzazione degli autoencoders senza perdere di vista la complessità e la ricchezza dei dati originali? Questi sono interrogativi fondamentali per il futuro dello sviluppo dell'intelligenza artificiale.

32 visualizzazioni0 commenti
bottom of page