Nachricht

Nvidia spielt mit Beschneidung und Destillation: Halbierung der Llama 3.1 8B-Parameter, um bei gleicher Größe eine bessere Leistung zu erzielen

2024-08-16

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

Maschinenherzbericht

Herausgeber: Du Wei, Chen Chen, Zenan

Der Aufstieg kleiner Modelle.

Letzten Monat veröffentlichte Meta die Modellreihe Llama 3.1, zu der das bislang größte 405B-Modell von Meta sowie zwei kleinere Modelle mit 70 Milliarden bzw. 8 Milliarden Parametern gehören.

Llama 3.1 gilt als der Beginn einer neuen Ära von Open Source. Obwohl die Modelle der neuen Generation leistungsstark sind, erfordern sie bei der Bereitstellung immer noch große Mengen an Rechenressourcen.

Daher ist in der Branche ein weiterer Trend entstanden, der darin besteht, kleine Sprachmodelle (SLM) zu entwickeln, die bei vielen Sprachaufgaben eine ausreichende Leistung erbringen und zudem sehr kostengünstig in der Bereitstellung sind.

Kürzlich haben Untersuchungen von NVIDIA gezeigt, dass durch strukturierte Gewichtsbereinigung in Kombination mit Wissensdestillation nach und nach kleinere Sprachmodelle aus einem zunächst größeren Modell gewonnen werden können.



Yann LeCun, Gewinner des Turing-Preises und leitender KI-Wissenschaftler von Meta, hat die Studie ebenfalls mit „Gefällt mir“ markiert und erneut veröffentlicht.

Nach der Beschneidung und Destillation hat das NVIDIA-Forschungsteam Llama 3.1 8B zu Llama-3.1-Minitron 4B verfeinert und als Open Source bereitgestellt. Dies ist NVIDIAs erstes Werk in der Open-Source-Reihe Llama 3.1.

Llama-3.1-Minitron 4B übertrifft modernste Open-Source-Modelle ähnlicher Größe, darunter Minitron 4B, Phi-2 2.7B, Gemma2 2.6B und Qwen2-1.5B.



Das Papier zu dieser Forschung wurde bereits letzten Monat veröffentlicht.



  • Link zum Papier: https://www.arxiv.org/pdf/2407.14679
  • Titel des Papiers: Kompakte Sprachmodelle durch Beschneiden und Wissensdestillation

Beschneiden und Destillieren

Das Beschneiden macht das Modell kleiner und schlanker und kann durch das Entfernen von Schichten (Tiefenbeschneiden) oder das Entfernen von Neuronen und Aufmerksamkeitsköpfen sowie das Einbetten von Kanälen (Breitenbeschneiden) erreicht werden. Mit dem Beschneiden geht in der Regel ein gewisses Maß an Umschulung einher, um die Genauigkeit wiederherzustellen.

Die Modelldestillation ist eine Technik zur Wissensübertragung von einem großen, komplexen Modell (oft als Lehrermodell bezeichnet) auf ein kleineres, einfacheres Schülermodell. Das Ziel besteht darin, ein effizienteres Modell zu erstellen, das einen Großteil der Vorhersagekraft des ursprünglichen größeren Modells beibehält, gleichzeitig schneller läuft und weniger Ressourcen verbraucht.

Es gibt zwei Hauptdestillationsmethoden: SDG-Feinabstimmung und klassische Wissensdestillation. Diese beiden Destillationsmethoden ergänzen sich. Dieser Artikel konzentriert sich auf klassische Methoden zur Wissensdestillation.

NVIDIA erstellt große Modelle durch die Kombination von Bereinigung und klassischer Wissensdestillation. Die folgende Abbildung zeigt den Bereinigungs- und Destillationsprozess eines einzelnen Modells (oben) und die Kette der Modellbereinigung und -destillation (unten). Der spezifische Prozess ist wie folgt:

1. NVIDIA beginnt mit einem 15B-Modell, bewertet die Bedeutung jeder Komponente (Schichten, Neuronen, Köpfe und Einbettungskanäle) und sortiert und beschneidet das Modell dann auf die Zielgröße: 8B-Modell.

2. Verwenden Sie dann die Modelldestillation für eine leichte Umschulung, wobei das ursprüngliche Modell der Lehrer und das beschnittene Modell der Schüler ist.

3. Verwenden Sie nach dem Training das kleine Modell (8B) als Ausgangspunkt, beschneiden Sie es und destillieren Sie es in ein kleineres 4B-Modell.



Der Prozess des Beschneidens und Destillierens vom 15B-Modell.

Beachten Sie, dass Sie vor dem Beschneiden des Modells verstehen müssen, welche Teile des Modells wichtig sind. NVIDIA schlägt eine aktivierungsbasierte Strategie zur reinen Wichtigkeitsbewertung vor, die gleichzeitig Informationen in allen relevanten Dimensionen (Tiefe, Neuron, Kopf und Einbettungskanäle) berechnet und dabei einen kleinen Kalibrierungsdatensatz von 1024 Proben verwendet und nur eine Vorwärtsausbreitung erforderlich ist. Dieser Ansatz ist einfacher und kostengünstiger als Strategien, die auf Gradienteninformationen basieren und eine Backpropagation erfordern.

Beim Bereinigen wechseln Sie iterativ zwischen dem Bereinigen und der Wichtigkeitsschätzung für eine bestimmte Achse oder Achsenkombination. Empirische Studien zeigen, dass die Verwendung einer einzigen Wichtigkeitsschätzung ausreichend ist und dass iterative Schätzungen keinen zusätzlichen Nutzen bringen.

Umschulung mittels klassischer Wissensdestillation

Abbildung 2 unten zeigt den Destillationsprozess, bei dem das N-Schicht-Schülermodell (das beschnittene Modell) aus dem M-Schicht-Lehrermodell (dem ursprünglichen, nicht beschnittenen Modell) destilliert wird. Das Schülermodell wird durch Minimierung der Kombination aus eingebettetem Ausgabeverlust, Logit-Verlust und Transformer-Encoder-spezifischem Verlust erlernt, der dem Schülerblock S und dem Lehrerblock T zugeordnet ist.



Abbildung 2: Verlust des Destillationstrainings.

Best Practices für Schnitt und Destillation

Basierend auf umfangreicher Ablationsforschung zu Beschneidung und Wissensdestillation in kompakten Sprachmodellen fasst NVIDIA seine Lernergebnisse in den folgenden Best Practices für die strukturierte Komprimierung zusammen.

Eine davon ist die Größenänderung.

  • Um eine Reihe von LLMs zu trainieren, wird zuerst das größte LLM trainiert und dann iterativ beschnitten und destilliert, um kleinere LLMs zu erhalten.
  • Wenn eine mehrstufige Trainingsstrategie zum Trainieren des größten Modells verwendet wird, ist es besser, das in der letzten Trainingsphase erhaltene Modell zu beschneiden und neu zu trainieren.
  • Beschneiden Sie das verfügbare Quellmodell, das der Zielgröße am nächsten kommt.

Der zweite ist das Beschneiden.

  • Priorisieren Sie die Breitenbeschneidung vor der Tiefenbeschneidung, was für Modelle mit einer Parametergröße unter 15B gut funktioniert.
  • Verwenden Sie die einmalige Wichtigkeitsschätzung, da die iterative Wichtigkeitsschätzung keinen Nutzen bringt.

Der dritte Punkt ist die Umschulung.

  • Umschulung nur unter Verwendung des Destillationsverlusts anstelle des regulären Trainings.
  • Wenn die Tiefe erheblich reduziert ist, verwenden Sie Logit, Zwischenzustände und die Einbettungsdestillation.
  • Wenn die Tiefe nicht wesentlich abnimmt, wird die reine Logit-Destillation verwendet.

Llama-3.1-Minitron: Best Practices in die Praxis umsetzen

Meta hat kürzlich die leistungsstarke Llama 3.1-Familie von Open-Source-Modellen auf den Markt gebracht, die in vielen Benchmarks mit Closed-Source-Modellen mithalten können. Die Parameter von Llama 3.1 reichen von riesigen 405B bis hin zu 70B und 8B.

Mit der Erfahrung der Nemotron-Destillation machte sich NVIDIA daran, das Llama 3.1 8B-Modell in ein kleineres und effizienteres 4B-Modell zu destillieren und ergriff dabei die folgenden Maßnahmen:

  • Feinabstimmung des Lehrers
  • Nur Tiefenschnitt
  • Beschneiden nur in der Breite
  • Genauigkeits-Benchmark
  • Leistungsbenchmark

Feinabstimmung des Lehrers

Um die Verteilungsverzerrung des ursprünglichen Datensatzes, auf dem das Modelltraining basierte, zu korrigieren, hat NVIDIA zunächst das ungekürzte 8B-Modell in seinem Datensatz (94B-Token) verfeinert. Experimente zeigen, dass das Lehrermodell bei der Destillierung eine suboptimale Anleitung für den Datensatz liefert, wenn die Verteilungsverzerrung nicht korrigiert wird.

Nur Tiefenschnitt

Um von 8B auf 4B zu reduzieren, hat NVIDIA 16 Schichten (50 %) beschnitten. Sie bewerten zunächst die Bedeutung jeder Schicht oder Gruppe aufeinanderfolgender Unterschichten, indem sie sie aus dem Modell entfernen, und beobachten einen Anstieg des LM-Verlusts oder eine Abnahme der Genauigkeit bei nachgelagerten Aufgaben.

Abbildung 5 unten zeigt die LM-Verlustwerte im Validierungssatz nach dem Entfernen von 1, 2, 8 oder 16 Schichten. Das rote Diagramm von Schicht 16 zeigt beispielsweise an, dass ein LM-Verlust auftritt, wenn die ersten 16 Schichten gelöscht werden. Schicht 17 bedeutet, dass bei Beibehaltung der ersten Schicht und Löschung der Schichten 2 bis 17 auch ein LM-Verlust auftritt. Nvidia stellt fest: Die Start- und Endschicht sind die wichtigsten.



Abbildung 5: Die Bedeutung des reinen Tiefenschnitts der Mittelschichten.

Allerdings stellt NVIDIA fest, dass dieser LM-Verlust nicht unbedingt direkt mit der Downstream-Leistung zusammenhängt.

Abbildung 6 unten zeigt die Winogrande-Genauigkeit jedes beschnittenen Modells. Es zeigt, dass es am besten ist, die Schichten 16 bis 31 zu löschen, wobei die Schicht 31 die vorletzte Schicht ist. Die 5-Schuss-Genauigkeit des beschnittenen Modells ist deutlich höher als die zufällige Genauigkeit. 0,5). Nvidia hat diese Erkenntnis übernommen und die Schichten 16 bis 31 entfernt.



Abbildung 6: Genauigkeit der Winogrande-Aufgabe, wenn 16 Schichten entfernt werden.

Beschneiden nur in der Breite

NVIDIA beschneidet die Einbettungs- (versteckt) und MLP-Zwischenabmessungen entlang der Breitenachse, um Llama 3.1 8B zu komprimieren. Insbesondere verwenden sie die zuvor beschriebene aktivierungsbasierte Strategie, um Wichtigkeitswerte für jeden Aufmerksamkeitskopf, jeden Einbettungskanal und jede versteckte MLP-Dimension zu berechnen.

Nach Einschätzung der Bedeutung entschied sich NVIDIA

  • Beschneiden Sie die MLP-Zwischendimension von 14336 auf 9216.
  • Versteckte Größe von 4096 auf 3072 reduzieren.
  • Passen Sie die Anzahl der Aufmerksamkeitsköpfe und die Anzahl der Schichten an.

Es ist erwähnenswert, dass nach dem Beschneiden einer einzelnen Probe der LM-Verlust beim Breitenbeschneiden höher ist als beim Tiefenbeschneiden. Nach einer kurzen Umschulungsphase kehrte sich der Trend jedoch um.

Genauigkeits-Benchmark

NVIDIA destilliert das Modell anhand der folgenden Parameter

  • Spitzenlernrate = 1e-4
  • Mindestlernrate = 1e-5
  • 40-stufiges lineares Vorheizen
  • Kosinus-Zerfallsschema
  • Globale Batchgröße = 1152

Tabelle 1 unten zeigt den Leistungsvergleich der Modellvarianten Llama-3.1-Minitron 4B (Breitenbeschneidung und Tiefenbeschneidung) mit dem Originalmodell Llama 3.1 8B und anderen Modellen ähnlicher Größe bei Benchmarks in mehreren Domänen. Insgesamt bestätigte NVIDIA erneut die Wirksamkeit einer umfassenden Pruning-Strategie im Vergleich zu einem tiefen Pruning, das Best Practices folgt.



Tabelle 1: Genauigkeitsvergleich des Minitron 4B-Basismodells im Vergleich zu Basismodellen ähnlicher Größe.

Um zu überprüfen, ob das destillierte Modell zu einem leistungsstarken Befehlsmodell werden kann, hat NVIDIA NeMo-Aligner zur Feinabstimmung des Llama-3.1-Minitron 4B-Modells verwendet.

Sie nutzten Nemotron-4 340B-Trainingsdaten und führten eine Auswertung von IFEval, MT-Bench, ChatRAG-Bench und dem Berkeley Function Calling Leaderboard (BFCL) durch, um Anweisungen zu befolgen, Rollenspiele, RAG und Funktionsaufruffähigkeiten zu testen. Schließlich wurde bestätigt, dass das Llama-3.1-Minitron 4B-Modell ein zuverlässiges Unterrichtsmodell werden kann und seine Leistung besser ist als die anderer Basis-SLMs.



Tabelle 2: Vergleich der Genauigkeit ausgerichteter Minitron 4B-Basismodelle mit ausgerichteten Modellen ähnlicher Größe.

Leistungsbenchmark

NVIDIA optimierte die Modelle Llama 3.1 8B und Llama-3.1-Minitron 4B mit NVIDIA TensorRT-LLM, einem Open-Source-Toolkit zur Optimierung der LLM-Inferenz.

Die nächsten beiden Abbildungen zeigen die Durchsatzanforderungen pro Sekunde bei FP8- und FP16-Präzision für verschiedene Modelle in verschiedenen Anwendungsfällen, ausgedrückt als Kombination aus Eingabesequenzlänge und Ausgabesequenzlänge (ISL/OSL) mit einer Stapelgröße von 32 für das 8B-Modell und Das 4B-Modell Die Batchgröße ist eine Kombination aus Eingabesequenzlänge und Ausgabesequenzlänge (ISL/OSL) von 64, da die kleineren Gewichte eine größere Batchgröße auf einer NVIDIA H100 80-GB-GPU ermöglichen.

Die Llama-3.1-Minitron-4B-Depth-Base-Variante ist mit einem durchschnittlichen Durchsatz von etwa dem 2,7-fachen des Llama 3.1 8B die schnellste, während die Llama-3.1-Minitron-4B-Width-Base-Variante einen durchschnittlichen Durchsatz von hat über Lama 3.1 1,8x 8B. Der Einsatz im FP8 verbessert außerdem die Leistung dieser drei Modelle um etwa das 1,3-fache im Vergleich zu BF16.





Abbildung 8: Kombination: Llama 3.1 8B bei BS=32, Llama-3.1-Minitron 4B-Modell bei BS=64 1x H100 80GB GPU.

abschließend

Das Beschneiden und die klassische Wissensverfeinerung ist eine sehr kostengünstige Methode, um schrittweise LLMs kleinerer Größe zu erhalten und in allen Bereichen eine höhere Genauigkeit zu erreichen als das Training von Grund auf. Dies ist ein effizienterer und dateneffizienterer Ansatz als die Feinabstimmung synthetischer Daten oder das Vortraining von Grund auf.

Llama-3.1-Minitron 4B ist NVIDIAs erster Versuch, die fortschrittlichste Open-Source-Llama-3.1-Serie zu nutzen. Informationen zur Verwendung der SDG-Feinabstimmung von Llama-3.1 mit NVIDIA NeMo finden Sie im Abschnitt /sdg-law-title-generation auf GitHub.

Weitere Informationen finden Sie in den folgenden Ressourcen:

  • 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/