Figura 1 da “L'attenzione è tutto ciò di cui hai bisognoâ€

Partendo da un livello alto, i Transformer richiedono due informazioni per gli input: gli incorporamenti dei token e le codifiche posizionali. Gli incorporamenti di token sono cose del genere tiktoken dove utilizzeranno una dimensione di vocabolario fissa per generare una chiave univoca per ciascun token. Attraverso l'addestramento, il modello apprende quindi la query e il valore per ciascun token in modo da poter generare correttamente il token successivo con le informazioni.

Equazione 1 da “RoFormer: trasformatore avanzato con incorporamento della posizione rotante”.

Oltre agli incorporamenti, abbiamo bisogno anche di informazioni sulla posizione per indicare al LLM dove si trova il token in una frase. Le equazioni sopra mostrano la visione più astratta per il passaggio delle informazioni posizionali. Abbiamo 3 funzioni, 1 per ogni elemento del token, e 2 vettori di incorporamento di parole (XM e XNDove M E N indicano le diverse dimensioni che ciascun vettore ha).

Un approccio è semplicemente creare un nuovo vettore per ogni token che vedi, in modo che la posizione sia perfettamente unica. Naturalmente, il compromesso qui è che il vettore unico rende difficile per il modello vedere somiglianze nei dati di addestramento, degradando le prestazioni.

Un approccio secondario sarebbe quello di creare un vettore che abbia un fattore di somiglianza con altri vettori per ciascun token. In questo modo acquisiamo ancora informazioni su quanto una situazione sia simile a un'altra situazione distinta. Tuttavia, poiché possiamo creare collisioni di questi vettori, può sorgere confusione da questa metodologia.

Come troviamo la migliore combinazione di questi approcci?

L’industria si è concentrata principalmente sul RoPE come modo per ottenere il meglio da entrambi i mondi. Senza entrare troppo nei dettagli matematici, RoPE utilizza funzioni sinusoidali per assegnare valori posizionali ai token. Poiché le funzioni sinusoidali sono ripetitive per progettazione, ci sono alcuni valori di posizione che saranno molto simili ad altri. Di conseguenza, elementi simili avranno un valore quantitativo che indica quanto sono simili.

Equazione 14 e 15 da “RoFormer: trasformatore avanzato con incorporamento della posizione rotante”.

Come puoi vedere dall'equazione sopra, abbiamo una matrice sparsa piena di diverse funzioni che ruotano attorno al valore θ che viene passato come un modo per mantenere correlate tutte le codifiche posizionali.

Il modo esatto in cui questi θ sono correlati è mostrato di seguito:

Definizione di Theta in “RoFormer: trasformatore avanzato con incorporamento della posizione rotante”.

La parte più critica di questa equazione per la dimensione del contesto è il valore 10.000. Poiché abbiamo cercato di creare contesti più ampi con gamme di numeri non infinite, il valore di 10.000 è diventato un fattore limitante: dopo tutto ci sono solo un certo numero di vettori che puoi creare con quel numero come base.

Figura 1 da “RoFormer: trasformatore avanzato con incorporamento della posizione rotante”.

Sebbene sia possibile addestrare un nuovo modello da zero utilizzando un valore base più ampio per le codifiche posizionali, ci sono alcuni motivi che impediscono alle persone in generale di farlo. Innanzitutto, vi è un costo enorme associato alla formazione da zero. Poiché attualmente solo poche organizzazioni al mondo dispongono delle risorse per farlo, l’onere di farlo è enorme. In secondo luogo, è incredibilmente difficile trovare un grande volume di testo lungo di alta qualità. Poiché la formazione richiede trilioni di token, trovare dati lunghi e di qualità su quella scala è una sfida importante.

Di conseguenza, i ricercatori hanno proposto diverse metodologie per espandere RoPE a theta più grandi.

Il primo metodo è l'interpolazione posizionale lineare (PI), in cui è possibile espandere il numero di posizioni possibili riducendo theta di un valore λ. L'equazione seguente utilizza Beta per rappresentare l'equazione θ^(2/d) che abbiamo utilizzato per connettere tutti i theta di prima.

Equazione 2 pollici la carta

Sebbene ciò funzioni, gli autori dell’articolo notano che esiste un effetto di affollamento in cui alcune informazioni finiscono per perdersi dopo la riduzione.

Il secondo metodo è YaRN (Yet another RoPE extensioN Method) in cui dividiamo le dimensioni RoPE in 3 gruppi e assegniamo un fattore lineare diverso a ciascuno di essi. L'idea di base è che i token che appaiono frequentemente non dovrebbero essere alterati (il loro λ := 1) e quelli che lo appaiono meno vengono alterati. Dal grafico sottostante, possiamo vedere che funziona bene per espandere la lunghezza del contesto fino a 128k. La questione in gioco qui è determinare i raggruppamenti. I gruppi sono determinati da persone e quindi possono essere prese decisioni non ottimali che riducono le prestazioni.

Figura 1 da “YaRN: estensione efficiente della finestra di contesto di grandi dimensioni
Modelli linguisticiâ€

Pertanto, sebbene sia YaRN che Linear Projection (PI) funzionino, presentano limitazioni che li frenano. Long RoPE prende il meglio da ogni idea e trova un modo intelligente per combinarle.

I ricercatori di Long RoPE si sono resi conto che per migliorare i metodi precedenti, avrebbero introdotto due idee chiave: (1) la distribuzione del bene λ è irregolare, quindi cercare λ è meglio che assumere una risposta corretta e (2) esiste una sottoinsieme di token che semplicemente non dovrebbero avere la loro posizione modificata.

Entrambi questi risultati si trovano nella formula seguente. Per trovare la λ ottimale hanno creato una funzione di perdita che potevano minimizzare. La formula seguente è una versione riformattata di RoPE con il risultato di ð •€ e ( n/ βio ) che rappresenta il ridimensionamento effettuato al nostro vettore posizionale. Quando trovano la perdita più piccola, scelgono quella corrispondente λ.

Equazione 3 da la carta

La funzione del passo ð •€ è il modo in cui attualizziamo il sottoinsieme di token che non dovrebbero essere alterati. Scegliendo un valore pari a 1, segnaliamo che le codifiche posizionali dovrebbero rimanere le stesse. Per mantenere limitata la ricerca, hanno considerato solo i valori n-hat di {0, 1, 2, 4, 8, 12, 16, 20, 24, 28, 32, 64, 128, 256}. Maggiore è il valore di n-hat, maggiore sarà il numero di token che manterranno le codifiche posizionali originali.

Ora che abbiamo trattato la teoria, vediamo i risultati!

Figura 3 da la carta

Long RoPE funziona sia senza regolazione fine che con. Il grafico sopra mostra le prestazioni di LongRoPE quando applicato a LLaMA2–7B. Il contesto originale per quel modello era 4k. Trovando la λ ottimale sono stati in grado di espandere la finestra di contesto a 32k token senza un notevole cambiamento nella perplessità! Ciò che è così incredibile è che il calcolo necessario per apportare una modifica come questa è quasi trascurabile rispetto ai costi per la messa a punto. Un'espansione 8x senza grandi spese di calcolo è incredibile.

Per ottenere un'enorme espansione è necessaria una combinazione di messa a punto e ricerca della λ. I ricercatori dell'articolo hanno ottenuto un'espansione 512x seguendo questa metodologia. Per prima cosa hanno portato il modello a una dimensione di 128k e 256k. Hanno ottimizzato per 400 passaggi su 128k e poi sono passati a utilizzare i fattori 256k per ulteriori 600 passaggi. Poiché questo ha funzionato meglio della semplice regolazione diretta di 256k, sembra che l'apprendimento di una distribuzione più generale piuttosto che solo di una di quelle in scala offra prestazioni migliori. Hanno quindi ottimizzato nuovamente per il meglio λ e sono arrivati ​​a una finestra di contesto di 2048k, un aumento di 512 rispetto alla finestra di contesto originale di 4k!

Una delle difficoltà di un contesto più ampio è la perdita di prestazioni per compiti con contesti piccoli. Questo comportamento è già stato osservato in precedenza e la teoria è che i dati all'inizio vengono condensati in un intervallo più piccolo, con conseguente perdita di attenzione.

Hanno risolto questo problema nel modello della finestra di contesto da 2048k trovando la λ ideale per lunghezze più brevi (nel documento erano 4k e 8k). Durante l'inferenza, se il contesto viene determinato come piccolo, l'LLM passerà dinamicamente all'utilizzo della λ più piccola per i dati di codifica posizionale.

Gli LLM sono straordinari nel ragionamento e continuano a stupirci con le loro applicazioni nel mondo reale. Con una finestra di contesto più ampia, soprattutto ottenibile a costi limitati pur mantenendo prestazioni elevate, vedremo solo crescere le loro applicazioni.

Una domanda interessante è se i calcoli di codifica posizionale dinamica siano la via del futuro. Se riesci a mettere a punto codifiche di posizioni multiple e ottenere prestazioni di qualità per 2 λ, allora è possibile che abbiamo 1 modello in grado di passare senza problemi tra più λ al momento dell'inferenza.

Una delle cose che trovo più entusiasmante nello spazio LLM è la possibilità di vagliare i dati. Sebbene Internet abbia svolto un lavoro straordinario nel democratizzare l’accesso alle informazioni, purtroppo ha anche inondato le nostre vite di rumore. Ci sono molte cose che ci vengono mostrate online che non hanno quasi alcuna conseguenza per noi. Con uno strumento in grado di estrarre le informazioni importanti da quelle banali e persino deleterie, possiamo sfruttare Internet al massimo delle sue potenzialità.

Con finestre di contesto più ampie, la capacità del LLM di riassumere e condensare le informazioni può essere utilizzata con un effetto ancora maggiore. Potrebbe anche arrivare un momento in cui grandi passi in avanti arriveranno dal fornire agli LLM due serie di informazioni apparentemente disparate e far loro capire qualcosa di nuovo che può essere ragionato date le premesse di ciascuna serie.

È un momento emozionante per costruire.

Fonte: towardsdatascience.com

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *