top of page

Memory Layers: efficienza e scalabilità nei LLM

Immagine del redattore: Andrea ViliottiAndrea Viliotti

“Memory Layers at Scale” di Vincent-Pierre Berges, Barlas Oğuz e Daniel Haziza, realizzato da Meta FAIR, propone un sistema per inserire livelli di memoria trainabili nei modelli di linguaggio di ultima generazione. L’obiettivo principale delle Memory Layers è ridurre il carico computazionale sfruttando chiavi e valori addestrabili, immagazzinando conoscenze specifiche con costi energetici ridotti. Questa prospettiva risulta interessante per imprenditori e dirigenti, poiché prefigura soluzioni in grado di gestire grandi volumi di dati e offrire risposte più precise nei compiti che richiedono il recupero di informazioni fattuali, senza incrementare eccessivamente il budget computazionale.

Memory Layers
Memory Layers: efficienza e scalabilità nei LLM

Principi tecnici e funzionamento delle Memory Layers

Il cuore della proposta risiede nella creazione di livelli di memoria che archiviano informazioni sotto forma di coppie chiave-valore trainabili. Ogni chiave è un vettore appreso che punta a un valore corrispondente, in modo che il modello possa recuperare rapidamente nozioni mirate senza aumentare il numero di operazioni (FLOPs). Le Memory Layers introducono una divisione tra il nucleo principale del modello (o “base model”) e una sezione dedicata alla memoria, concepita come un archivio interno efficiente e a basso costo computazionale.


I ricercatori mettono in evidenza un meccanismo di lookup trainabile e sparso: ogni token in ingresso viene elaborato per individuare la chiave più pertinente, e solo quest’ultima (insieme alle chiavi più simili) viene attivata, limitando i calcoli. Le Memory Layers consentono di espandere significativamente i parametri nella memoria senza incrementare in modo lineare i tempi di esecuzione. I test dimostrano che un modello base da 1,3 miliardi di parametri, potenziato da 64 milioni di chiavi, raggiunge performance vicine a un classico modello da 7 miliardi di parametri, ma con un decimo del budget computazionale. Sono inoltre stati sperimentati blocchi di memoria che arrivano fino a 128 miliardi di parametri, concentrandosi su compiti factual (ad esempio question answering su dataset come NaturalQuestions e TriviaQA).

Un aspetto chiave è l’efficienza selettiva: invece di effettuare un calcolo denso su tutte le chiavi, si adotta una procedura top-k che considera solo i valori più affini alla query.


Il procedimento può essere riassunto nella formula:

I = SelectTopkIndices(Kq)

s = Softmax(KI q)

y = s V_I


Dove q è la query, K è la matrice delle chiavi e V rappresenta i relativi valori. La selezione top-k consente di intervenire solo su una frazione degli elementi disponibili, riducendo notevolmente i FLOPs. Con un addestramento che arriva a un trilione di token, i risultati di accuratezza possono superare il 100% rispetto a un modello denso di pari dimensioni, in particolare sui compiti di question answering. Ciò si traduce in una maggiore stabilità delle prestazioni e in un notevole risparmio di risorse per chi deve mantenere una base di conoscenza in continua evoluzione.


Le Memory Layers risultano parzialmente indipendenti dal modello denso, quindi aggiornabili senza dover ricalibrare l’intero sistema. Nel contesto aziendale, questo si traduce in una capacità di modificare il contenuto della memoria con costi computazionali contenuti, utile per settori che richiedono grandi repository di dati e risposte affidabili.

Confrontando altre soluzioni sparse, come la mixture-of-experts (MOE), o architetture ibride come PEER, si osserva che le Memory Layers mantengono una maggiore immediatezza nel recupero di informazioni fattuali. I ricercatori segnalano inoltre che i modelli Memory+ (versione arricchita con normalizzazione qk e non linearità swilu) forniscono ulteriore robustezza all’addestramento. Alcune prove hanno mostrato che un modello di 1,3 miliardi di parametri con 128 miliardi di parametri di memoria può avvicinarsi alle prestazioni di reti ben più grandi, ma con un consumo inferiore di risorse computazionali. Il repository su GitHub (https://github.com/facebookresearch/memory) offre ottimizzazioni per chi volesse sperimentare in ambito aziendale.

 

Memory Layers: ottimizzazione hardware e scalabilità

Le Memory Layers prevedono un tipo di calcolo sparsificato, diverso dalle tradizionali operazioni dense a cui sono abituate le GPU. Meta FAIR ha sviluppato un’implementazione custom su CUDA che raggiunge 3 TB/s di bandwidth in forward pass, un valore molto vicino alle specifiche delle GPU H100. L’impiego di tecniche come “reverse_indices” o “atomic-free” riduce i rallentamenti nel backpropagation dei gradienti, agevolando i responsabili dell’ottimizzazione infrastrutturale.


Oltre alle prove di question answering, i ricercatori hanno valutato l’architettura Memory+ su test di coding (HumanEval), evidenziando come la struttura a chiave-valore possa contenere funzioni e snippet di codice, facilitando la generazione di frammenti più accurati. Questo aspetto interessa le imprese che producono software complessi, poiché un archivio interno di soluzioni verificate offre assistenza alla programmazione, riducendo errori e tempi di debugging. Tuttavia, si consiglia equilibrio nel numero di blocchi di memoria adottati: eccedere con l’inserimento di troppi layer di memoria può influire su altre capacità del modello.

 

Applicazioni strategiche delle Memory Layers per le aziende

Le Memory Layers si prestano a settori che richiedono sistemi di supporto clienti, data mining o applicazioni in cui è essenziale recuperare con tempestività informazioni aggiornate. Un’azienda potrebbe trarre vantaggio da un modulo di memoria dedicato, in grado di gestire nuovi dati senza rieseguire completamente il training. Ciò risponde all’esigenza di integrare rapidamente conoscenze su prodotti, normative o trend di mercato. L’approccio appare coerente con un modello di architettura ibrida, dove le sezioni dense del modello garantiscono una comprensione linguistica generale, mentre la parte di memoria immagazzina specifiche fattuali, ampliabili all’occorrenza.


Le sperimentazioni hanno toccato diversi benchmark, tra cui TriviaQA, HotpotQA, MMLU, HellaSwag, OBQA e PIQA. Nei compiti di natura factual, i modelli Memory+ si collocano al livello di soluzioni più voluminose che però richiedono un carico di calcolo superiore. Inoltre, la misura di Negative Log Likelihood (NLL) mostra come l’introduzione della memoria trainabile riduca il valore di NLL su compiti incentrati sulla correttezza delle risposte, confermando che la memoria rende il modello più “preciso” sui dati appresi.


Per supportare questo paradigma in un contesto high-performance computing (HPC), il codice rilasciato sfrutta un sistema di parallelizzazione in cui ogni GPU elabora solo una parte delle chiavi e dei valori, agevolando la scalabilità su cluster di dimensioni rilevanti. In parallelo, un’accurata progettazione dei kernel CUDA aiuta a sfruttare in modo ottimale la larghezza di banda, riducendo i tempi di training anche quando si adopera un alto numero di parametri. Gli autori anticipano possibili sviluppi per ridurre il fenomeno dell’hallucination, ipotizzando che uno spazio di archiviazione esplicito per i concetti possa abbassare la probabilità di generare contenuti imprecisi.


È poi necessario un bilanciamento tra layer densi e layer di memoria, perché spostare troppe sezioni feed-forward sul blocco di memoria può indebolire le capacità di ragionamento generale. Meccanismi di gating input-dipendenti, normalizzazioni delle query e l’utilizzo di funzioni non lineari come la swilu riducono la probabilità di comportamenti erratici durante i primi cicli di training.

 

Conclusioni

“Memory Layers at Scale” dimostra come un archivio trainabile possa lavorare in parallelo alle parti dense di una rete neurale, memorizzando informazioni in modo sparso e ottimizzando il rapporto tra dati acquisiti e costi di training. Per le aziende, questo si traduce nella possibilità di aumentare la capacità di memoria senza dover sostenere un incremento sproporzionato di risorse computazionali, con il vantaggio di aggiornare le informazioni in modo selettivo.


Nel panorama dei grandi modelli linguistici, esistono già alternative come la mixture-of-experts o sistemi di retrieval esterno, ma nessuno eguaglia l’efficienza delle Memory Layers nell’assorbire e gestire conoscenze fattuali. Queste ultime si collocano fra i tradizionali modelli densi e i sistemi di retrieval esterno, offrendo prestazioni competitive in ambiti come il question answering e la programmazione assistita. Inoltre, la possibilità di mantenere invariato il modello base aggiornando solo la memoria allinea l’architettura alle esigenze di business, dove mutamenti frequenti nei dati richiedono interventi rapidi.


A confronto con modelli densi di dimensioni ben maggiori, Memory+ raggiunge risultati simili utilizzando meno FLOPs, grazie a un immagazzinamento interno più immediato rispetto a un retrieval integrato da fonti esterne. In prospettiva, sarà cruciale migliorare le implementazioni hardware per contenere ulteriormente i costi, mantenendo uno standard qualitativo elevato. La tendenza verso una crescita della memoria in parallelo a una moderata richiesta di risorse può dunque risultare vantaggiosa in uno scenario in cui l’efficienza e la flessibilità del modello hanno un impatto strategico sia sui costi sia sulle performance.


Comments

Rated 0 out of 5 stars.
No ratings yet

Add a rating
bottom of page