Heim  >  Artikel  >  Technologie-Peripheriegeräte  >  7B? 13B? 175B? Parameter großer Modelle interpretieren

7B? 13B? 175B? Parameter großer Modelle interpretieren

PHPz
PHPzOriginal
2024-06-12 20:04:15713Durchsuche

Große Modelle variieren auch in der Größe und ihre Größe wird an der Anzahl der Parameter gemessen. GPT-3 hat 17,5 Milliarden Parameter und Grok-1 ist mit 31,4 Milliarden Parametern sogar noch beeindruckender. Natürlich gibt es auch schlankere wie Llama, deren Parameterzahl nur zwischen 7 und 70 Milliarden liegt.

Der hier erwähnte 70B bezieht sich möglicherweise nicht auf die Menge der Trainingsdaten, sondern auf die dicht gepackten Parameter im Modell. Diese Parameter sind wie kleine „Gehirnzellen“. Je größer sie sind, desto intelligenter kann das Modell sein und desto besser kann es die komplizierten Zusammenhänge in den Daten verstehen. Mit diesen „Gehirnzellen“ können Modelle bei Aufgaben möglicherweise bessere Leistungen erbringen. Allerdings können diese Parameter, insbesondere bei großmaßstäblichen Modellen, oft Probleme verursachen. Diese „Gehirnzellen“ können bei der Verarbeitung von Aufgaben miteinander interagieren, was es für das Modell schwierig macht, die komplexen Zusammenhänge in den Daten zu verstehen. Mit diesen „Gehirnzellen“ können Modelle bei Aufgaben möglicherweise bessere Leistungen erbringen. Daher müssen wir einen Weg finden, die Beziehung zwischen diesen Parametern bei der Arbeit an der Aufgabe zu verwalten. Eine häufig verwendete Methode ist die Regularisierung. Die Parameter dieser großen Modelle sind wie die „Architekten“ im Modell. Durch komplexe Algorithmen und Trainingsprozesse wird diese riesige Sprachwelt Stück für Stück aufgebaut. Jeder Parameter hat seine Rolle und sie arbeiten zusammen, damit das Modell unsere Sprache genauer verstehen und passendere Antworten geben kann.

Wie setzen sich also die Parameter im großen Modell zusammen? 1. Parameter in großen Modellen „Drähte“ im Netzwerk verbinden jedes Neuron. Sie sind dafür verantwortlich, die „Lautstärke“ der Signalübertragung anzupassen, sodass wichtige Informationen weiter übertragen und weniger wichtige Informationen leiser übertragen werden können. In der vollständig verbundenen Schicht ist die Gewichtsmatrix W beispielsweise eine „Karte“, die uns sagt, welche Eingabemerkmale am engsten mit den Ausgabemerkmalen verknüpft sind.

Vorurteile: Vorurteile sind wie die „kleinen Assistenten“ von Neuronen, die dafür verantwortlich sind, eine Basislinie für die Reaktion von Neuronen festzulegen. Dadurch wissen Neuronen, auf welcher Ebene sie aktiv sein sollen.

Aufmerksamkeitsparameter: In einem Transformer-basierten Modell sind diese Parameter wie ein „Kompass“, der dem Modell sagt, welche Informationen am meisten Aufmerksamkeit verdienen. Dazu gehören Abfragematrizen, Schlüsselmatrizen, Wertmatrizen usw., die dem Finden der kritischsten „Hinweise“ in einer großen Menge an Informationen ähneln.

Einbettungsmatrizen: Bei der Verarbeitung von Textdaten ist die Einbettungsmatrix das „Wörterbuch“ des Modells. Jede Spalte stellt ein Wort dar und eine Zahl wird zur Darstellung des Wortes verwendet. Auf diese Weise kann das Modell die Bedeutung des Textes verstehen.

    Initialisierungsparameter für den verborgenen Zustand (Initial Hidden State Parameters): Diese Parameter werden verwendet, um den anfänglichen verborgenen Zustand des Modells festzulegen, genau wie das Festlegen eines Tons für das Modell, damit es weiß, wo es mit dem „Denken“ beginnen soll.
  • ......
  • Diese Parameter verwenden im Allgemeinen 4 Ausdrucks- und Speicherformate:
  • Float: 32-Bit-Gleitkommazahl, also 4 Bytes
  • Half/BF16: 16-Bit-Gleitkommazahl , also 2 Bytes
  • Int8: 8-Bit-Ganzzahl, also 1 Byte

Int4: 4-Bit-Ganzzahl, also 0,5 Bytes

  1. Im Allgemeinen ist die Anzahl der Parameter der Hauptfaktor, der sich auswirkt die Leistung großer Modelle. Beispielsweise ist das 13B-int8-Modell im Allgemeinen besser als das 7B-BF16-Modell derselben Architektur.
  2. 2. Speicherbedarf für große Modellparameter
  3. Für Ingenieure stellt sich die Frage, wie viele Speicherressourcen während des Trainings oder der Inferenz großer Modelle verbraucht werden. Auch wenn der V100 (mit 32 GB GPU-Speicher) oder der A100 (mit 40 GB GPU-Speicher) sehr leistungsstark sind, können große Modelle immer noch nicht auf einer einzelnen GPU trainiert werden, etwa mit Tensorflow oder PyTorch.
  4. 2.1 Speicherbedarf während der Trainingsphase
Während des Modelltrainings spiegelt es sich hauptsächlich im Speicherbedarf für Modellstatus und Aktivitätsprozesse wider. Der Modellzustand besteht aus Tensoren, die aus Optimiererzustand, Gradienten und Parametern bestehen. Im aktiven Prozess sind alle im Vorwärtskanal erstellten Tensoren enthalten, die für Gradientenberechnungen im Rückwärtskanal erforderlich sind. Um die Speichernutzung zu optimieren, können folgende Aspekte berücksichtigt werden: 1. Reduzieren Sie die Anzahl der Modellparameter: Sie können die Anzahl der Parameter reduzieren und die Speichernutzung reduzieren, indem Sie die Modellgröße reduzieren oder Techniken wie dünn besetzte Matrizen verwenden. 2. Speicherung des Optimiererstatus: Sie können wählen, nur den erforderlichen Optimiererstatus zu speichern, anstatt alle Zustände zu speichern. Der Optimiererstatus kann nach Bedarf selektiv aktualisiert und gespeichert werden. 3. Ändern Sie den Datentyp des Tensors:

Zu jedem Zeitpunkt des Trainings muss für jeden Modellparameter immer genügend GPU-Speicher zum Speichern vorhanden sein:

  • Die Anzahl der von Modellparametern kopierten Bytes, um ein stabiles Training aufrechtzuerhalten und numerische Anomalien zu vermeiden.
  • Das bedeutet, dass der folgende Speicher erforderlich ist, um alle Modellstatus- und Prozessdaten während des Trainings zu speichern: (x+y+12) * model_size
  • 2.2 Speicherbedarf für die Inferenzphase

Die Inferenzphase wird mit Pre- abgeschlossen. geschulte LLM-Aufgaben wie Texterstellung oder Übersetzung. Hier sind die Speicheranforderungen in der Regel geringer, wobei die wichtigsten Einflussfaktoren folgende sind:

Eingeschränkter Kontext: Inferenz befasst sich normalerweise mit kürzeren Eingabesequenzen und erfordert weniger Speicher zum Speichern von Aktivierungen, die mit kleineren Textblöcken verbunden sind.

Keine Backpropagation: Während der Inferenz muss LLM die Zwischenwerte der Backpropagation nicht beibehalten, einer Technik, die für das Training zum Anpassen von Parametern verwendet wird. Dadurch wird viel Speicheraufwand eingespart.
  • Die Inferenzphase erfordert nicht mehr Speicher als ein Viertel des Speichers, der für die Trainingsphase für die gleiche Parameteranzahl und den gleichen Parametertyp erforderlich ist. Beispielsweise sind für ein 7B-Modell im Allgemeinen für die Verwendung der Gleitkomma-Präzision 28 GB Speicher, für die Verwendung der BF16-Präzision 14 GB Speicher und für die Verwendung der Int8-Präzision 7 GB Speicher erforderlich. Diese grobe Schätzmethode kann entsprechend auf andere Versionen des Modells angewendet werden.
  • Außerdem erfordert die Feinabstimmung bei der Optimierung von LLM für eine bestimmte Aufgabe einen höheren Speicherbedarf. Die Feinabstimmung umfasst typischerweise längere Trainingssequenzen, um die Nuancen der Zielaufgabe zu erfassen. Dies wird zu größeren Aktivierungen führen, da das LLM mehr Textdaten verarbeitet. Der Backpropagation-Prozess erfordert die Speicherung von Zwischenwerten für die Gradientenberechnung, die zur Aktualisierung der Modellgewichte während des Trainings verwendet werden. Dies führt im Vergleich zur Inferenz zu einer erheblichen Speicherbelastung.

2.3 Speicherschätzung großer Transformer-basierter Modelle

Versuchen Sie insbesondere für große Transformer-basierte Modelle, den für das Training erforderlichen Speicher zu berechnen Anzahl der Aufmerksamkeitsköpfe

b: Stapelgröße

s: Sequenzlänge

    h: Dimensionsgröße der verborgenen Schicht
  • p: Genauigkeit
  • Hier stellt bshp = b * s * h * p die Menge dar Eingabedaten der Größe von. Im linearen Schichtteil des Transformators werden für nachfolgende Aktivierungen etwa 9bshp+bsh Platz benötigt. Im Aufmerksamkeitsteil kann die Selbstaufmerksamkeit ausgedrückt werden als: softmax((XQ)(XK)^T)XV
  • Dann benötigen XQ, XK und XV alle Platz in BSHP-Größe. In der Standard-Selbstaufmerksamkeit ist das Ergebnis der Multiplikation von (XQ) * (XK) ^ T nur eine b * s * s-Matrix, die logit enthält. In der Praxis muss jedoch aufgrund der Verwendung eines Mehrkopf-Aufmerksamkeitsmechanismus für jeden Kopf ein separater s * s-Speicherplatz eingerichtet werden. Dies bedeutet, dass Abssp-Bytes an Speicherplatz erforderlich sind und das Speichern der Softmax-Ausgabe ebenfalls Abssp-Bytes erfordert. Nach Softmax werden im Allgemeinen zusätzliche Abss-Bytes zum Speichern der Maske benötigt, sodass der Aufmerksamkeitsteil 2 Abssp + Abss-Speicherplatz erfordert.
  • Zusätzlich gibt es im Transformator zwei Norm-Layer, die jeweils noch BSHP-Speicherplatz benötigen, also insgesamt 2 BSHP.
  • Der für das Training großer Modelle basierend auf Transformer erforderliche Speicher beträgt also ungefähr: L(9bshp+bsh+2abssp+abss +2bshp) = Lbshp[16+2/p+(as/h)(2+1/p)]
Erklären Sie, dass der zum Trainieren eines großen Modells basierend auf Transformer erforderliche Speicher ungefähr ist: die Anzahl der Schichten des Modells x die Größe des Trainingsstapels x die Sequenzlänge x die Dimension der verborgenen Schicht x die Genauigkeit Eine theoretische Untergrenze zum Speicherbedarf von Modellparametern während des Trainings.

3. GPU-Anforderungen für große Modellparameter

Anhand der Speicheranforderungen für große Modellparameter können wir die Anzahl der GPUs, die für das Training und die Inferenz großer Modelle erforderlich sind, weiter abschätzen. Da die Schätzung der Anzahl der GPUs jedoch auf etwas mehr Parametern beruht, hat jemand (Dr. Walid Soula, https://medium.com/u/e41a20d646a8) eine einfache Formel zur groben Schätzung angegeben, die auch eine gewisse Referenzbedeutung hat Maschinenbau.

Bild

wobei

Modellparameter in Milliarden die Anzahl der Modellparameter in B ist;

18 der Speichernutzungsfaktor verschiedener Komponenten während des Trainings ist;

7B? 13B? 175B? Parameter großer Modelle interpretieren1,25 die erforderliche Speichermenge für den Aktivierungsprozess darstellt Factor,Activation ist eine dynamische Datenstruktur, die sich ändert, wenn das Modell Eingabedaten verarbeitet. GPU-Größe in GB ist die Gesamtmenge des verfügbaren GPU-Speichers

Als praktisches Beispiel: Angenommen, Sie verwenden eine NVIDIA RTX 4090-GPU mit 24 GB VRAM. Berechnen Sie die Anzahl der GPUs, die zum Trainieren des „Llama3 7B“ erforderlich sind 'Modell, ungefähr:
  • Die Gesamtzahl der GPUs≈(7 * 18 * 1,25)/24, was ungefähr 7
  • entspricht

    Als Schlussfolgerung kann es auf 1/8 bis 1/9 der Trainingsphase vereinfacht werden. Dies sind natürlich nur grobe Schätzungen im allgemeinen Sinne.

    4. Von großen Modellparametern zum verteilten Training

    Das Verständnis der Zusammensetzung großer Modellparameter und ihrer Anforderungen an Speicher und GPU wird dazu beitragen, die Herausforderungen, denen sich verteiltes Training in der Ingenieurspraxis gegenübersieht, besser zu verstehen.

    Der Implementierungsprozess verteilter Trainingsstrategien kann durch die Einführung von Frameworks für verteiltes Training wie TensorFlow oder PyTorch, die umfangreiche Tools und APIs bereitstellen, erheblich vereinfacht werden. Durch die Verwendung von Techniken wie der Gradientenakkumulation vor der Aktualisierung des Modells oder der Verwendung von Techniken wie der Gradientenkomprimierung zur Reduzierung des Datenaustauschs zwischen Knoten können die Kommunikationskosten effektiv gesenkt werden. Es ist wichtig, die optimale Batch-Größe für verteiltes Training zu bestimmen (der oben erwähnte Parameter b); ein zu kleiner b-Wert kann den Kommunikationsaufwand erhöhen, während ein zu großer Wert zu unzureichendem Speicher führen kann.

    Die Bedeutung von LLMOps wird immer wichtiger. Die regelmäßige Überwachung der für verteiltes Training konfigurierten Leistungsindikatoren und die Anpassung von Hyperparametern, Partitionierungsstrategien und Kommunikationseinstellungen zur Optimierung der Leistung sind der Schlüssel zur Verbesserung der Trainingseffizienz. Durch die Implementierung eines Checkpointing-Mechanismus für das Modell und eine effiziente Wiederherstellung im Fehlerfall wird sichergestellt, dass der Trainingsprozess fortgesetzt wird, ohne dass bei Null begonnen werden muss.

    Mit anderen Worten ist das Training/Inferenz großer Modelle im Wesentlichen eine komplexe technische Herausforderung für verteilte Systemarchitekturen, wie zum Beispiel:

    • Kommunikationsaufwand: Bei der Durchführung von Gradientenberechnungen und Datenaktualisierungen kann sich die für die Kommunikation erforderliche Zeit auf den Gesamtbeschleunigungseffekt auswirken .
    • Synchronisationskomplexität: Wenn mehrere Maschinen parallel trainiert werden, muss die Komplexität der Synchronisation sorgfältig entworfen werden.
    • Fehlertoleranz und Ressourcenmanagement: Die Auswirkungen von Einzelpunktfehlern auf Modelltraining und -inferenz sowie Ressourcenzuweisungs- und Planungsstrategien für CPU und GPU.
    • ...

    Tatsächlich sind die meisten Ingenieure jedoch möglicherweise nicht direkt an der spezifischen Schulungsarbeit beteiligt, sondern konzentrieren sich darauf, wie die Parameter großer Modelle beim Erstellen von Anwendungen genutzt werden können.

    7B? 13B? 175B? Parameter großer Modelle interpretierenBilder

    5. Parameter, die in großen Modellanwendungen verwendet werden

    Hier konzentrieren wir uns hauptsächlich auf die drei Parameter, die bei Verwendung großer Modelle zur Textausgabe konfiguriert werden können: Temperatur, Top-K und Top-P.

    Der Temperaturparameter wird oft als Schalter missverstanden, der nur die Kreativität des Modells steuert, aber tatsächlich besteht seine tiefere Rolle darin, die „Weichheit“ der Wahrscheinlichkeitsverteilung anzupassen. Wenn der Temperaturwert höher eingestellt ist, wird die Wahrscheinlichkeitsverteilung weicher und gleichmäßiger, was das Modell dazu ermutigt, vielfältigere und kreativere Ergebnisse zu generieren. Umgekehrt wird die Verteilung durch niedrigere Temperaturwerte schärfer und weist deutlichere Spitzen auf, wodurch tendenziell eine Ausgabe ähnlich den Trainingsdaten erzeugt wird.

    Der Top-K-Parameter wird verwendet, um das Modell so zu begrenzen, dass es bei jedem Schritt die wahrscheinlichsten Top-K-Token ausgibt. Auf diese Weise können inkohärente oder bedeutungslose Inhalte in der Ausgabe reduziert werden. Diese Strategie schafft ein Gleichgewicht zwischen der Aufrechterhaltung der bestmöglichen Konsistenz der Ausgabe und der Ermöglichung eines gewissen Maßes an kreativem Sampling.

    Top-P ist eine weitere Decodierungsmethode, die basierend auf dem eingestellten P-Wert (0 ≤ P ≤ 1) einen minimalen Satz von Wörtern auswählt, deren kumulative Wahrscheinlichkeit den P-Wert als Ausgabe überschreitet. Mit dieser Methode kann die Anzahl der ausgewählten Wörter basierend auf der Wahrscheinlichkeitsverteilung des nächsten Wortes dynamisch erhöht oder verringert werden. Insbesondere wenn der P-Wert 1 ist, wählt Top-P alle Wörter aus, was einer Stichprobe aus der gesamten Verteilung entspricht, wodurch eine vielfältigere Ausgabe erzeugt wird, während Top-P nur die Wörter auswählt, wenn der P-Wert 1 ist mit der höchsten Wahrscheinlichkeit, ähnlich wie bei der gierigen Dekodierung, macht die Ausgabe fokussierter und konsistenter.

    Diese drei Parameter wirken zusammen und beeinflussen das Verhalten des Modells. Wenn beispielsweise Temperatur = 0,8, Top-K = 36 und Top-P = 0,7 eingestellt sind, berechnet das Modell zunächst die vollständige nicht normalisierte logarithmische Wahrscheinlichkeitsverteilung des gesamten Vokabulars basierend auf dem Kontext. Temperatur = 0,8 bedeutet, dass jede Log-Wahrscheinlichkeit durch 0,8 geteilt wird, was das Vertrauen des Modells in seine Vorhersagen vor der Normalisierung effektiv erhöht. Top-K=36 bedeutet, dass die 36 Marker mit der höchsten Häufigkeitsverhältnis-Log-Wahrscheinlichkeit ausgewählt werden. Dann wendet Top-P=0,7 die Filterung in diesem Top-K=36-Satz an und sortiert so lange von hoher zu niedriger Wahrscheinlichkeit, bis die kumulative Wahrscheinlichkeit 0,7 erreicht. Abschließend wird dieser gefilterte Satz renormiert und im nachfolgenden Sampling-Prozess verwendet.

    6. Zusammenfassung

    In der Ingenieurspraxis ist es sinnvoll, die Parameter großer Modelle zu verstehen. Parameter spielen bei großen Modellen eine entscheidende Rolle. Sie definieren das Verhalten, die Leistung, die Implementierungskosten und den Ressourcenbedarf großer Modelle. Um die Parameter eines großen Modells im Ingenieurwesen zu verstehen, muss man die Beziehung zwischen der Komplexität, Leistung und den Fähigkeiten des Modells verstehen. Durch die richtige Konfiguration und Optimierung dieser Parameter aus Sicht der Speicherung und Datenverarbeitung können Modelle in praktischen Anwendungen besser ausgewählt und optimiert werden, um sie an unterschiedliche Aufgabenanforderungen und Ressourcenbeschränkungen anzupassen.

    【Referenz】

    • ZeRO: Speicheroptimierungen für das Training von Billionen-Parametermodellen ,https://arxiv.org/pdf/1910.02054v3.pdf
    • Reduzierung der Aktivierungsneuberechnung in großen Transformatormodellen,https://arxiv.org/pdf/2205.05198.pdf
    • https://timdettmers.com/2023/01/30/which-gpu-for-deep-learning/
    • https://blog.eleuther.ai/transformer-math/

Das obige ist der detaillierte Inhalt von7B? 13B? 175B? Parameter großer Modelle interpretieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn