Heim  >  Artikel  >  Technologie-Peripheriegeräte  >  32 Karten, 176 % Trainingsbeschleunigung, Open-Source-Trainingsframework für große Modelle Megatron-LLaMA ist da

32 Karten, 176 % Trainingsbeschleunigung, Open-Source-Trainingsframework für große Modelle Megatron-LLaMA ist da

WBOY
WBOYnach vorne
2023-09-14 16:01:05587Durchsuche

Taotian Group und Aicheng Technology haben am 12. September offiziell das Open-Source-Schulungsframework für große Modelle Megatron-LLaMA veröffentlicht. Ziel dieses Frameworks ist es, Technologieentwicklern die Verbesserung der Trainingsleistung großer Sprachmodelle zu erleichtern, die Trainingskosten zu senken und die Kompatibilität mit der LLaMA-Community aufrechtzuerhalten. Die Testergebnisse zeigen, dass Megatron-LLaMA beim 32-Karten-Training eine Beschleunigung von 176 % im Vergleich zur direkt auf HuggingFace erhaltenen Codeversion erreichen kann. Megatron-LLaMA dehnt sich nahezu linear aus und ist gegenüber dem Netzwerk instabil hohes Maß an Toleranz. Derzeit ist Megatron-LLaMA in der Open-Source-Community online. Open-Source-Adresse: https://github.com/alibaba/Megatron-LLaMA. Die herausragende Leistung großer Sprachmodelle hat die Vorstellungskraft der Menschen übertroffen Mal wieder. In den letzten Monaten wurden LLaMA und LLaMA2 der Open-Source-Community allgemein zugänglich gemacht und bieten eine großartige Option für diejenigen, die ihre eigenen großen Sprachmodelle trainieren möchten. In der Open-Source-Community gibt es bereits viele auf LLaMA basierende Modelle, darunter kontinuierliches Training/SFT (wie Alpaca, Vicuna, WizardLM, Platypus, StableBegula, Orca, OpenBuddy, Linly, Ziya usw.) und Training von Grund auf ( wie Baichuan, QWen, InternLM, OpenLLaMA) funktionieren. Diese Arbeiten zeigten nicht nur eine gute Leistung bei verschiedenen objektiven Bewertungslisten für die Fähigkeiten großer Modelle, sondern zeigten auch eine hervorragende Leistung in praktischen Anwendungsszenarien wie dem Verstehen langer Texte, der Generierung langer Texte, dem Schreiben von Code und dem mathematischen Lösen. Darüber hinaus sind in der Branche viele interessante Produkte entstanden, wie z. B. LLaMA in Kombination mit dem Voice-Chat-Roboter von Whisper, LLaMA in Kombination mit der Malsoftware von Stable Diffusion und Hilfsberatungsrobotern im medizinischen/juristischen Bereich usw.

Obwohl Sie können Holen Sie sich LLaMA vom HuggingFace-Modellcode, aber das Trainieren eines LLaMA-Modells mit Ihren eigenen Daten ist keine kostengünstige und einfache Aufgabe für einzelne Benutzer oder kleine und mittlere Organisationen. Das Volumen großer Modelle und der Umfang der Daten machen es unmöglich, ein effektives Training auf gewöhnlichen Rechenressourcen durchzuführen, und Rechenleistung und Kosten sind zu ernsthaften Engpässen geworden. Die Nutzer der Megatron-LM-Community haben diesbezüglich sehr dringende Forderungen.

Taotian Group und Aicheng Technology verfügen über sehr breite Anwendungsszenarien für große Modellanwendungen und haben viel in die effiziente Schulung großer Modelle investiert. Das Aufkommen von LLaMA hat vielen Unternehmen, darunter der Taotian Group und Aicheng Technology, viel Inspiration in Bezug auf Datenverarbeitung, Modelldesign, Feinabstimmung und Verstärkungs-Learning-Feedback-Anpassung gegeben und auch dazu beigetragen, neue Durchbrüche in Geschäftsanwendungsszenarien zu erzielen. . Um der gesamten LLaMA-Open-Source-Community etwas zurückzugeben und die Entwicklung der chinesischen Open-Source-Community für vorab trainierte große Modelle zu fördern, damit Entwickler die Trainingsleistung großer Sprachmodelle leichter verbessern und die Trainingskosten senken können, hat Taotian Group und Aicheng Technology werden einige interne Optimierungen der Technologie und Open Source kombinieren, Megatron-LLaMA veröffentlichen und freuen sich darauf, mit allen Partnern das Megatron- und LLaMA-Ökosystem aufzubauen.

Megatron-LLaMA bietet eine Reihe von 32 Karten, 176 % Trainingsbeschleunigung, Open-Source-Trainingsframework für große Modelle Megatron-LLaMA ist daStandard-Megatron-LM-implementierten LLaMA

und stellt

Tools für den kostenlosen Wechsel mit dem HuggingFace-Format

bereit, um die Kompatibilität mit gemeinschaftlichen ökologischen Tools zu erleichtern. Megatron-LLaMA hat den umgekehrten Prozess von Megatron-LM neu gestaltet, sodass er unabhängig davon erreicht werden kann, wo die Anzahl der Knoten klein ist und die große Gradientenaggregation (GA) aktiviert werden muss oder wenn die Anzahl der Knoten groß ist Es muss ein kleiner GA verwendet werden. Hervorragende Trainingsleistung.

  • Im 32-Karten-Training kann Megatron-LLaMA eine Beschleunigung von 176 % erreichen; selbst mit der durch DeepSpeed ​​​​und FlashAttention optimierten Version kann Megatron-LLaMA die Geschwindigkeit immer noch reduzieren um mindestens 19 % der Ausbildungszeit.
  • Im groß angelegten Training verfügt Megatron-LLaMA im Vergleich zu 32 Karten über eine nahezu lineare Skalierbarkeit. Wenn beispielsweise 512 A100 zur Reproduktion des Trainings von LLaMA-13B verwendet wird, kann der umgekehrte Mechanismus von Megatron-LLaMA im Vergleich zum DistributedOptimizer des nativen Megatron-LM mindestens zwei Tage einsparen, ohne dass es zu Genauigkeitsverlusten kommt.
  • Megatron-LLaMA weist eine hohe Toleranz gegenüber Netzwerkinstabilität auf. Selbst auf dem aktuellen kostengünstigen 8xA100-80GB-Trainingscluster mit 4x200 Gbit/s Kommunikationsbandbreite (diese Umgebung ist normalerweise eine gemischte Bereitstellungsumgebung, das Netzwerk kann nur die Hälfte der Bandbreite nutzen, die Netzwerkbandbreite stellt einen ernsthaften Engpass dar, aber der Mietpreis ist relativ niedrig) kann Megatron-LLaMA immer noch eine lineare Expansionsfähigkeit von 0,85 erreichen, Megatron-LM kann bei diesem Indikator jedoch nur weniger als 0,7 erreichen.

Die Megatron-LM-Technologie bietet leistungsstarke LLaMA-Trainingsmöglichkeiten

LLaMA ist derzeit ein wichtiges Werk in der großen Open-Source-Community für Sprachmodelle. LLaMA führt Optimierungstechnologien wie BPE-Zeichenkodierung, RoPE-Positionskodierung, SwiGLU-Aktivierungsfunktion, RMSNorm-Regularisierung und Untied Embedding in die Struktur von LLM ein und hat in vielen objektiven und subjektiven Bewertungen hervorragende Ergebnisse erzielt. LLaMA bietet Versionen 7B, 13B, 30B, 65B/70B, die für verschiedene Szenarien mit großen Modellanforderungen geeignet sind und auch von Entwicklern bevorzugt werden. Da der Beamte wie bei vielen anderen Open-Source-Großmodellen nur die Inferenzversion des Codes bereitstellt, gibt es kein Standardparadigma für die Durchführung eines effizienten Trainings zu den niedrigsten Kosten. Megatron-LM ist eine elegante Hochleistungs-Trainingslösung. Megatron-LM bietet Tensorparallelität (Tensor Parallel, TP, das große Multiplikationen auf mehrere Karten zur parallelen Berechnung verteilt), Pipeline-Parallelität (Pipeline Parallel, PP, das verschiedene Schichten des Modells zur Verarbeitung auf verschiedene Karten verteilt) und Sequenzparallelität ( Sequenzparallel). Parallel, SP, verschiedene Teile der Sequenz werden von verschiedenen Karten verarbeitet, wodurch Videospeicher gespart wird), DistributedOptimizer-Optimierung (ähnlich wie DeepSpeed ​​​​Zero Stage-2, Aufteilung von Farbverläufen und Optimierungsparametern auf alle Rechenknoten) und andere Technologien kann die Videospeichernutzung erheblich reduzieren und die GPU-Auslastung verbessern. Megatron-LM betreibt eine aktive Open-Source-Community und neue Optimierungstechnologien und funktionale Designs werden weiterhin in das Framework integriert.

Allerdings ist die Entwicklung auf Basis von Megatron-LM nicht einfach, insbesondere das Debuggen und die Funktionsüberprüfung auf teuren Multi-Card-Maschinen ist sehr kostspielig. Megatron-LLaMA stellt zunächst einen Satz LLaMA-Trainingscode bereit, der auf dem Megatron-LM-Framework basiert, das Modellversionen verschiedener Größen unterstützt und leicht angepasst werden kann, um verschiedene Varianten von LLaMA zu unterstützen, einschließlich Tokenizer, der das HuggingFace-Format direkt unterstützt. Daher kann Megatron-LLaMA ohne übermäßige Anpassung problemlos auf bestehende Offline-Trainingsverbindungen angewendet werden. Im Szenario der kleinen und mittleren Schulung/Feinabstimmung von LLaMA-7b und LLaMA-13b kann Megatron-LLaMA problemlos die branchenführende Hardware-Auslastung (MFU) von mehr als 54 % erreichen Reverse Process Optimization

Der Inhalt, der neu geschrieben werden muss, ist: Abbildung: DeepSpeed ​​​​ZeRO Stage-2

DeepSpeed ​​​​ZeRO ist eine Reihe verteilter Trainingsframeworks, die von Microsoft eingeführt wurden darin sind für viele spätere Rahmenwerke sehr weitreichende Einflüsse. DeepSpeed ​​​​ZeRO Stage-2 (im Folgenden als ZeRO-2 bezeichnet) ist eine Technologie im Framework, die Speicherverbrauch spart, ohne zusätzlichen Rechen- und Kommunikationsaufwand hinzuzufügen. Wie in der Abbildung oben gezeigt, muss jeder Rang aufgrund der Berechnungsanforderungen über alle Parameter verfügen. Für den Optimiererstatus ist jedoch jeder Rang nur für einen Teil davon verantwortlich, und es ist nicht erforderlich, dass alle Ränge vollständig wiederholte Vorgänge gleichzeitig ausführen. Daher schlägt ZeRO-2 vor, den Optimiererstatus gleichmäßig auf jeden Rang aufzuteilen (beachten Sie, dass nicht sichergestellt werden muss, dass jede Variable gleichmäßig aufgeteilt ist oder in einem bestimmten Rang vollständig erhalten bleibt. Jeder Rang muss nur während des Trainingsprozesses aufgeteilt werden). Verantwortlich für die Aktualisierung des Optimiererstatus und der Modellparameter des entsprechenden Teils. In dieser Einstellung können auch Farbverläufe auf diese Weise aufgeteilt werden. Standardmäßig verwendet ZeRO-2 die Reduce-Methode, um Gradienten zwischen allen Ranks in umgekehrter Reihenfolge zu aggregieren, und dann muss jeder Rank nur den Teil der Parameter behalten, für den er verantwortlich ist, was nicht nur redundante wiederholte Berechnungen eliminiert, sondern auch den Speicher reduziert Verwendung.

32 Karten, 176 % Trainingsbeschleunigung, Open-Source-Trainingsframework für große Modelle Megatron-LLaMA ist da

Megatron-LM DistributedOptimizer

Native Megatron-LM implementiert ZeRO-2-ähnliche Gradienten- und Optimierer-Zustandssegmentierung durch DistributedOptimizer, um die Videospeichernutzung während des Trainings zu reduzieren. Wie in der Abbildung oben gezeigt, verwendet DistributedOptimizer den ReduceScatter-Operator, um alle zuvor akkumulierten Farbverläufe auf verschiedene Ränge zu verteilen, nachdem alle durch den voreingestellten Farbverlauf aggregierten Farbverläufe erhalten wurden. Jeder Rang erhält nur einen Teil des Gradienten, den er verarbeiten muss, und aktualisiert dann den Optimiererstatus und die entsprechenden Parameter. Schließlich erhält jeder Rang über AllGather aktualisierte Parameter von anderen Knoten und erhält schließlich alle Parameter. Die tatsächlichen Trainingsergebnisse zeigen, dass die Gradienten- und Parameterkommunikation von Megatron-LM in Reihe mit anderen Berechnungen durchgeführt wird. Bei umfangreichen Vortrainingsaufgaben ist dies normalerweise nicht möglich, um sicherzustellen, dass die Gesamtstapeldatengröße unverändert bleibt Öffnen Sie eine größere GA. Daher wird der Anteil der Kommunikation mit der Zunahme der Maschinen zunehmen. Derzeit führen die Eigenschaften der seriellen Kommunikation zu einer sehr schwachen Skalierbarkeit. Innerhalb der Community besteht auch ein dringender Bedarf dafür effizient in der Gradientenkommunikation. Die Unterfunktionen können mit der Berechnung parallelisiert werden. Im Vergleich zur ZeRO-Implementierung verwendet Megatron-LLaMA insbesondere eine skalierbarere kollektive Kommunikationsmethode, um die Skalierbarkeit durch geschickte Optimierung der Optimierer-Partitionierungsstrategie unter der Prämisse der Parallelität zu verbessern. Das Hauptdesign von OverlappedDistributedOptimizer gewährleistet die folgenden Punkte: a) Das Datenvolumen eines einzelnen Kommunikationsbetreibers ist groß genug, um die Kommunikationsbandbreite vollständig auszunutzen. b) Die für die neue Segmentierungsmethode erforderliche Kommunikationsdatenmenge sollte dem Minimum entsprechen Kommunikationsdatenvolumen, das für die Datenparallelität erforderlich ist; c) Während des Konvertierungsprozesses von vollständigen Parametern oder Verläufen und segmentierten Parametern oder Verläufen können nicht zu viele Videospeicherkopien eingeführt werden.

32 Karten, 176 % Trainingsbeschleunigung, Open-Source-Trainingsframework für große Modelle Megatron-LLaMA ist da

Insbesondere hat Megatron-LLaMA den DistributedOptimizer verbessert und den OverlappedDistributedOptimizer vorgeschlagen, der zur Optimierung der neuen Segmentierungsmethode im umgekehrten Trainingsprozess verwendet wird. Wie in der Abbildung gezeigt, werden bei der Initialisierung von OverlappedDistributedOptimizer alle Parameter vorab dem Bucket zugewiesen, zu dem sie gehören. Die Parameter in jedem Bucket sind vollständig. Ein Parameter gehört nur zu einem Bucket. Ein Bucket kann mehrere Parameter enthalten. Logischerweise wird jeder Bucket kontinuierlich in P Teile unterteilt (P ist die Anzahl der parallelen Datengruppen), und jeder Rang in der parallelen Datengruppe ist für einen von ihnen verantwortlich.

Bucket wird in die lokale Gradienten-Bucket-Warteschlange gestellt um die Kommunikationsordnung sicherzustellen. Während Trainingsberechnungen durchgeführt werden, tauschen die Datenparallelgruppen durch gemeinsame Kommunikation ihre erforderlichen Gradienten in Bucket-Einheiten aus. In Megatron-LLaMA verwendet die Bucket-Implementierung so weit wie möglich die Adressindizierung, und neuer Speicherplatz wird nur dann zugewiesen, wenn der Wert geändert werden muss, um eine Verschwendung von Videospeicher zu vermeiden Design ermöglicht groß angelegten Betrieb. Bei groß angelegten Schulungen kann Megatron-LLaMA die Hardware voll ausnutzen und eine bessere Beschleunigung erreichen als der native Megatron-LM. In einer häufig verwendeten Netzwerkumgebung kann Megatron-LLaMA durch Erweitern der Trainingsskala von 32 A100-Karten auf 512 A100-Karten immer noch ein Erweiterungsverhältnis von 0,85 erreichen Das von der Taotian Group und Aicheng Technology gemeinsam als Open Source bereitgestellte Schulungsrahmenwerk, das Unterstützung bei der anschließenden Wartung bietet, wurde intern häufig genutzt. Da sich immer mehr Entwickler der Open-Source-Community von LLaMA anschließen und Erfahrungen einbringen, aus denen man voneinander lernen kann, glaube ich, dass es in Zukunft noch mehr Herausforderungen und Möglichkeiten auf der Ebene des Trainingsframeworks geben wird. Megatron-LLaMA wird die Entwicklung der Community genau beobachten und mit Entwicklern zusammenarbeiten, um die Entwicklung in die folgenden Richtungen voranzutreiben:

32 Karten, 176 % Trainingsbeschleunigung, Open-Source-Trainingsframework für große Modelle Megatron-LLaMA ist da

Adaptive optimale Konfigurationsauswahl

Unterstützung für mehr Modellstruktur oder lokale Designänderungen

Die ultimative Lösung für Leistungstraining in unterschiedlichsten Hardwareumgebungen

Projektadresse: https://github.com/alibaba/Megatron-LLaMA

Das obige ist der detaillierte Inhalt von32 Karten, 176 % Trainingsbeschleunigung, Open-Source-Trainingsframework für große Modelle Megatron-LLaMA ist da. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:51cto.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen