Le mie informazioni di contatto
Posta[email protected]
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.
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.
La seconda è la potatura.
Il terzo è riqualificarsi.
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
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
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
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://developer.nvidia.com/blog/how-to-prune-and-distill-llama-3-1-8b-to-an-nvidia-llama-3-1-minitron-4b-model/