notizia

Nvidia gioca con potatura e distillazione: dimezzare i parametri di Llama 3.1 8B per ottenere prestazioni migliori a parità di dimensioni

2024-08-16

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Rapporto sul cuore della macchina

Editori: Du Wei, Chen Chen, Zenan

L'ascesa dei piccoli modelli.

Il mese scorso, Meta ha rilasciato la serie di modelli Llama 3.1, che include il modello 405B più grande di Meta fino ad oggi, oltre a due modelli più piccoli con rispettivamente 70 miliardi e 8 miliardi di parametri.

Si ritiene che Llama 3.1 inauguri una nuova era dell'open source. Tuttavia, sebbene i modelli di nuova generazione siano potenti in termini di prestazioni, richiedono comunque una grande quantità di risorse di calcolo una volta implementati.

Pertanto, nel settore è emersa un’altra tendenza, ovvero lo sviluppo di piccoli modelli linguistici (SLM) che funzionino abbastanza bene in molti compiti linguistici e siano anche molto economici da implementare.

Recentemente, la ricerca NVIDIA ha dimostrato che la riduzione del peso strutturato combinata con la distillazione della conoscenza può gradualmente ottenere modelli linguistici più piccoli da un modello inizialmente più grande.



Anche Yann LeCun, vincitore del Premio Turing e capo scienziato dell'intelligenza artificiale di Meta, ha apprezzato lo studio e lo ha ripubblicato.

Dopo la potatura e la distillazione, il team di ricerca NVIDIA ha perfezionato Llama 3.1 8B in Llama-3.1-Minitron 4B e lo ha reso open source. Questo è il primo lavoro di NVIDIA nella serie open source Llama 3.1.

Llama-3.1-Minitron 4B supera i modelli open source all'avanguardia di dimensioni simili, tra cui Minitron 4B, Phi-2 2.7B, Gemma2 2.6B e Qwen2-1.5B.



Il documento relativo a questa ricerca è stato pubblicato già il mese scorso.



  • Link al documento: https://www.arxiv.org/pdf/2407.14679
  • Titolo dell'articolo: Modelli linguistici compatti tramite potatura e distillazione della conoscenza

potatura e distillazione

La potatura rende il modello più piccolo e snello e può essere ottenuta rimuovendo gli strati (potatura in profondità) o rimuovendo i neuroni e le teste di attenzione e incorporando i canali (potatura in larghezza). La potatura è solitamente accompagnata da un certo grado di riqualificazione per ripristinare la precisione.

La distillazione del modello è una tecnica per trasferire la conoscenza da un modello ampio e complesso (spesso chiamato modello insegnante) a un modello studentesco più piccolo e più semplice. L'obiettivo è creare un modello più efficiente che mantenga gran parte del potere predittivo del modello originale più grande, funzionando più velocemente e consumando meno risorse.

Esistono due metodi di distillazione principali: la messa a punto degli SDG e la distillazione della conoscenza classica. Questi due metodi di distillazione sono complementari. Questo articolo si concentra sui metodi classici di distillazione della conoscenza.

NVIDIA utilizza un metodo che combina la potatura e la distillazione classica della conoscenza per costruire modelli di grandi dimensioni. La figura seguente mostra il processo di potatura e distillazione di un singolo modello (in alto) e la catena di potatura e distillazione del modello (in basso). Il processo specifico è il seguente:

1. NVIDIA inizia con un modello 15B, valuta l'importanza di ciascun componente (strati, neuroni, teste e canali di incorporamento), quindi ordina e riduce il modello per raggiungere la dimensione target: modello 8B.

2. Quindi utilizzare la distillazione del modello per la riqualificazione leggera, con il modello originale come insegnante e il modello tagliato come studente.

3. Dopo l'addestramento, utilizzare il modello piccolo (8B) come punto di partenza, potarlo e distillarlo in un modello 4B più piccolo.



Il processo di potatura e distillazione dal modello 15B.

Una cosa da notare è che prima di sfoltire il modello, è necessario capire quali parti del modello sono importanti. NVIDIA propone una strategia di valutazione dell'importanza pura basata sull'attivazione che calcola simultaneamente le informazioni in tutte le dimensioni rilevanti (profondità, neuroni, testa e canali di incorporamento), utilizzando un piccolo set di dati di calibrazione di 1024 campioni ed è richiesta solo la propagazione in avanti. Questo approccio è più semplice e più conveniente rispetto alle strategie che si basano sulle informazioni del gradiente e richiedono la backpropagation.

Durante la potatura, si alterna iterativamente tra la potatura e la stima dell'importanza per un dato asse o una combinazione di assi. Studi empirici mostrano che l’utilizzo di un’unica stima dell’importanza è sufficiente e che le stime iterative non apportano vantaggi aggiuntivi.

Riqualificazione utilizzando la distillazione della conoscenza classica

La Figura 2 di seguito mostra il processo di distillazione, in cui il modello dello studente a livello N (il modello sfoltito) viene distillato dal modello dell'insegnante a livello M (il modello originale non sfoltito). Il modello studente viene appreso riducendo al minimo la combinazione di incorporamento della perdita di output, della perdita logit e della perdita specifica del codificatore Transformer mappata al blocco studente S e al blocco insegnante T.



Figura 2: Perdita di formazione della distillazione.

Migliori pratiche di potatura e distillazione

Sulla base di un'ampia ricerca sull'ablazione sulla potatura e sulla distillazione della conoscenza in modelli linguistici compatti, NVIDIA riassume i risultati dell'apprendimento nelle seguenti best practice di compressione strutturata.

Uno è il ridimensionamento.

  • Per addestrare una serie di LLM, viene prima addestrato quello più grande, quindi eliminato e distillato iterativamente per ottenere LLM più piccoli.
  • Se per addestrare il modello più grande viene utilizzata una strategia di formazione in più fasi, è meglio eliminare e riqualificare il modello ottenuto nell'ultima fase di formazione.
  • Elimina il modello di origine disponibile più vicino alla dimensione di destinazione.

La seconda è la potatura.

  • Dai priorità alla potatura della larghezza rispetto alla potatura della profondità, che funziona bene per i modelli con dimensioni dei parametri inferiori a 15B.
  • Utilizzare la stima dell'importanza a colpo singolo poiché non vi è alcun vantaggio dalla stima dell'importanza iterativa.

Il terzo è riqualificarsi.

  • Riqualificati solo utilizzando la perdita di distillazione invece della formazione regolare.
  • Quando la profondità è significativamente ridotta, utilizzare logit, stati intermedi e distillazione per incorporamento.
  • Quando la profondità non diminuisce in modo significativo, viene utilizzata la distillazione solo logit.

Llama-3.1-Minitron: mettere in pratica le migliori pratiche

Meta ha recentemente lanciato la potente famiglia Llama 3.1 di modelli open source che rivaleggiano con i modelli closed source in molti benchmark. I parametri di Llama 3.1 vanno dall'enorme 405B a 70B e 8B.

Con l'esperienza della distillazione Nemotron, NVIDIA ha deciso di distillare il modello Llama 3.1 8B in un modello 4B più piccolo ed efficiente, adottando le seguenti misure:

  • Messa a punto dell'insegnante
  • Potatura di sola profondità
  • Potatura solo in larghezza
  • Benchmark di precisione
  • Punto di riferimento delle prestazioni

Messa a punto dell'insegnante

Per correggere la distorsione della distribuzione del set di dati originale su cui si basava l'addestramento del modello, NVIDIA ha prima messo a punto il modello 8B non eliminato sul proprio set di dati (token da 94B). Gli esperimenti mostrano che se la distorsione della distribuzione non viene corretta, il modello dell’insegnante fornisce una guida non ottimale per il set di dati durante la distillazione.

Potatura di sola profondità

Per ridurre da 8B a 4B, NVIDIA ha eliminato 16 strati (50%). Innanzitutto valutano l'importanza di ogni strato o gruppo di sottostrati consecutivi rimuovendoli dal modello e osservano un aumento della perdita di LM o una diminuzione della precisione nelle attività a valle.

La Figura 5 seguente mostra i valori di perdita LM sul set di validazione dopo aver rimosso 1, 2, 8 o 16 strati. Ad esempio, il grafico rosso dello strato 16 indica che si verifica una perdita di LM se i primi 16 strati vengono eliminati. Lo strato 17 significa che se il primo strato viene mantenuto e gli strati da 2 a 17 vengono eliminati, si verifica anche una perdita LM. Nvidia osserva: Gli strati iniziale e finale sono i più importanti.



Figura 5: L'importanza della potatura solo in profondità degli strati intermedi.

Tuttavia, NVIDIA osserva che questa perdita di LM non è necessariamente direttamente correlata alle prestazioni downstream.

La Figura 6 di seguito mostra la precisione Winogrande di ciascun modello tagliato. Mostra che è meglio eliminare i livelli da 16 a 31, dove il livello 31 è il penultimo livello. La precisione a 5 colpi del modello tagliato è significativamente superiore alla precisione casuale (. 0,5). Nvidia ha adottato questa intuizione e ha rimosso i livelli dal 16 al 31.



Figura 6: precisione dell'attività Winogrande quando vengono rimossi 16 strati.

Potatura solo in larghezza

NVIDIA elimina le dimensioni intermedie di incorporamento (nascosto) e MLP lungo l'asse della larghezza per comprimere Llama 3.1 8B. Nello specifico, utilizzano la strategia basata sull'attivazione descritta in precedenza per calcolare i punteggi di importanza per ciascuna testa di attenzione, canale di incorporamento e dimensione nascosta MLP.

Dopo aver stimato l'importanza, NVIDIA ha scelto

  • Elimina la dimensione intermedia MLP da 14336 a 9216.
  • Elimina le dimensioni nascoste da 4096 a 3072.
  • Riqualificare il numero della testa dell'attenzione e il numero di strati.

Vale la pena ricordare che dopo la potatura a campione singolo, la perdita di LM della potatura in larghezza è maggiore di quella della potatura in profondità. Tuttavia, dopo un breve periodo di riqualificazione, la tendenza si è invertita.

Benchmark di precisione

NVIDIA distilla il modello utilizzando i seguenti parametri

  • Tasso di apprendimento massimo = 1e-4
  • Tasso minimo di apprendimento = 1e-5
  • Preriscaldamento lineare a 40 fasi
  • schema di decadimento del coseno
  • Dimensione batch globale = 1152

La tabella 1 seguente mostra il confronto delle prestazioni delle varianti del modello Llama-3.1-Minitron 4B (potatura in larghezza e potatura in profondità) con il modello originale Llama 3.1 8B e altri modelli di dimensioni simili su benchmark in più domini. Nel complesso, NVIDIA ha confermato ancora una volta l'efficacia di un'ampia strategia di potatura rispetto alla potatura profonda che segue le migliori pratiche.



Tabella 1: Confronto della precisione del modello base Minitron 4B rispetto ai modelli base di dimensioni simili.

Per verificare se il modello distillato può diventare un potente modello di istruzioni, NVIDIA ha utilizzato NeMo-Aligner per mettere a punto il modello Llama-3.1-Minitron 4B.

Hanno utilizzato i dati di addestramento del Nemotron-4 340B e hanno eseguito valutazioni su IFEval, MT-Bench, ChatRAG-Bench e Berkeley Function Calling Leaderboard (BFCL) per testare le capacità di seguire istruzioni, giochi di ruolo, RAG e chiamata di funzioni. Infine, è stato confermato che il modello Llama-3.1-Minitron 4B può diventare un modello di istruzioni affidabile e le sue prestazioni sono migliori rispetto ad altri SLM di base.



Tabella 2: Confronto della precisione dei modelli base Minitron 4B allineati e dei modelli allineati di dimensioni simili.

Punto di riferimento delle prestazioni

NVIDIA ha ottimizzato i modelli Llama 3.1 8B e Llama-3.1-Minitron 4B utilizzando NVIDIA TensorRT-LLM, un toolkit open source per ottimizzare l'inferenza LLM.

Le due figure successive mostrano le richieste di throughput al secondo con precisione FP8 e FP16 per diversi modelli in diversi casi d'uso, espresse come combinazione lunghezza della sequenza di input/lunghezza della sequenza di output (ISL/OSL) con una dimensione batch di 32 per il modello 8B e il modello 4B La dimensione del batch è una combinazione di lunghezza della sequenza di input/lunghezza della sequenza di output (ISL/OSL) di 64, grazie ai pesi inferiori che consentono dimensioni del batch maggiori su una GPU NVIDIA H100 da 80 GB.

La variante Llama-3.1-Minitron-4B-Depth-Base è la più veloce, con una produttività media di circa 2,7 volte quella di Llama 3.1 8B, mentre la variante Llama-3.1-Minitron-4B-Width-Base ha una produttività media di circa Lama 3.1 1.8x 8B. L'implementazione nell'FP8 migliora inoltre le prestazioni di questi tre modelli di circa 1,3 volte rispetto al BF16.





Figura 8: Combinazione: Llama 3.1 8B a BS=32, modello Llama-3.1-Minitron 4B a BS=64 1x GPU H100 da 80 GB.

Insomma

La potatura e il perfezionamento della conoscenza classica sono un metodo molto conveniente per ottenere progressivamente LLM di dimensioni più piccole, ottenendo una precisione maggiore rispetto alla formazione da zero in tutti i domini. Si tratta di un approccio più efficiente ed efficiente in termini di dati rispetto alla messa a punto di dati sintetici o alla formazione preliminare da zero.

Llama-3.1-Minitron 4B è il primo tentativo di NVIDIA di utilizzare la serie Llama 3.1 open source più avanzata. Per utilizzare la messa a punto SDG di Llama-3.1 con NVIDIA NeMo, vedere la sezione /sdg-law-title- generation su GitHub.

Per ulteriori informazioni, vedere le seguenti risorse:

  • https://arxiv.org/abs/2407.14679
  • https://github.com/NVlabs/Minitron
  • https://huggingface.co/nvidia/Llama-3.1-Minitron-4B-Width-Base
  • https://huggingface.co/nvidia/Llama-3.1-Minitron-4B-Depth-Base

https://developer.nvidia.com/blog/how-to-prune-and-distill-llama-3-1-8b-to-an-nvidia-llama-3-1-minitron-4b-model/