Das Jahr 2023 erlebte den vollen Aufstieg der KI-Technologie für künstliche Intelligenz, repräsentiert durch große AIGC-Modelle wie ChatGPT, GPT-4, Ernie Bot usw. Sie integrierten mehrere Funktionen wie Textschreiben, Codeentwicklung, Gedichterstellung usw. und haben eindrucksvoll ihre hervorragenden Fähigkeiten bei der Produktion von Inhalten unter Beweis gestellt und die Menschen zutiefst schockiert. Auch als IT-Profi sollte die Kommunikationstechnik hinter den AIGC-Großmodellen tiefes Nachdenken anregen. Ohne ein gutes Netzwerk ist von einer großen Modellausbildung keine Rede. Für den Aufbau eines groß angelegten Trainingsmodellclusters werden nicht nur Grundkomponenten wie GPU-Server, Netzwerkkarten usw. benötigt, sondern auch das Problem des Netzwerkaufbaus muss dringend gelöst werden. Welche Art von leistungsstarkem Netzwerk unterstützt den Betrieb von AIGC? Wie wird die vollständige Ankunft der KI-Welle revolutionäre Veränderungen im traditionellen Netzwerk mit sich bringen?
Der Grund, warum die zuvor erwähnten großen AIGC-Modelle so leistungsstark sind, liegt nicht nur darin, dass ihnen eine große Menge an Daten zugeführt wird, sondern auch darin, dass die Algorithmen ständig weiterentwickelt und aktualisiert werden. Noch wichtiger ist, dass sich das Ausmaß der menschlichen Rechenleistung bis zu einem gewissen Grad weiterentwickelt hat. Die leistungsstarke Rechenleistungsinfrastruktur kann die Rechenanforderungen von AIGC vollständig unterstützen. Da beim Training großer Modelle die Größe des Modells normalerweise den Speicher und die Rechenleistung einer einzelnen GPU übersteigt, sind mehrere GPUs erforderlich, um die Last zu teilen. Beim Training großer Modelle gibt es drei Möglichkeiten der GPU-Lastverteilung, nämlich Tensorparallelität, Pipelineparallelität und Datenparallelität.
Datenparallelität:
Datenparallelität ist eine einfache und direkte Parallelisierungstechnik, bei der vollständige Kopien des Modells auf mehreren Prozessoren (z. B. GPUs) repliziert werden. Jeder Prozessor oder jede GPU erhält eine Kopie des gesamten Modells und führt unabhängig voneinander eine Vorwärts- und Rückwärtsausbreitung verschiedener Teilmengen von Daten durch. Nach jedem Trainingsschritt müssen die Modellgewichtungsaktualisierungen aller Prozessoren zusammengeführt oder synchronisiert werden, was normalerweise durch eine Form einer kollektiven Kommunikationsoperation (z. B. All-Reduce) erfolgt. Durch die Datenparallelität kann das Modell auf größeren Datensätzen trainiert werden, da die Daten in mehrere kleine Stapel aufgeteilt werden, die jeweils auf einem anderen Prozessor verarbeitet werden.
Stellen Sie sich eine große Bibliothek vor, in der Sie alle Bücher kategorisieren müssen. Datenparallelität ist wie die Einstellung mehrerer Bibliothekare, von denen jeder für die Kategorisierung eines Teils der Bücher verantwortlich ist. Beim Modelltraining erhält jede GPU eine Kopie des gesamten Modells, verarbeitet aber nur einen Teil des gesamten Datensatzes. Nachdem alle GPUs ihre jeweiligen Aufgaben erledigt haben, tauschen sie Informationen aus, um die Modellgewichte synchron zu aktualisieren.
Tensorparallelität:
Tensorparallelität wird normalerweise verwendet, wenn das Modell zu groß ist, um in den Speicher eines einzelnen Prozessors zu passen. Bei dieser Parallelisierungsstrategie werden unterschiedliche Teile des Modells (z. B. unterschiedliche Tensoren oder Parametergruppen in neuronalen Netzwerkschichten) unterschiedlichen Prozessoren zugewiesen. Dies bedeutet, dass jeder Prozessor nur für die Berechnung eines Teils des Modells verantwortlich ist. Um die Vorwärts- und Rückwärtsausbreitung des gesamten Modells abzuschließen, müssen die Prozessoren häufig ihre Zwischenergebnisse austauschen, was zu einem hohen Kommunikationsaufwand führen kann. Tensorparallelität erfordert Hochgeschwindigkeitsverbindungen zwischen Prozessoren, um die Latenz dieses Austauschs zu minimieren.
Angenommen, Datenparallelität besteht darin, dass mehrere Bibliothekare jeweils einen Teil der Bücher bearbeiten. In diesem Fall ist Tensorparallelität so, als ob jeder Bibliothekar für einen Teil der Schritte der Kategorisierungsarbeit verantwortlich wäre. Beim Modelltraining ist jede GPU für einen Teil der Berechnung im Modell verantwortlich. Beispielsweise ist eine GPU für die Berechnung der ersten Hälfte der Schichten des Modells verantwortlich und eine andere GPU für die zweite Hälfte. Auf diese Weise kann jede Schicht des Modells über mehrere GPUs berechnet werden.
Pipeline-Parallelität:
Pipeline-Parallelität ist eine Parallelisierungsstrategie, die verschiedene Schichten oder Teile des Modells verschiedenen Prozessoren zuweist und Berechnungen in einer Pipeline-Weise durchführt. Bei der Pipeline-Parallelität werden die Eingabedaten in mehrere Mikrobatches aufgeteilt, die nacheinander jede Schicht des Modells durchlaufen. Wenn ein Mikrobatch die Berechnung der ersten Schicht abgeschlossen hat, wird er sofort an die nächste Schicht weitergegeben, während die erste Schicht mit der Verarbeitung des nächsten Mikrobatches beginnt. Auf diese Weise kann die Leerlaufzeit der Prozessoren reduziert werden, erfordert jedoch eine sorgfältige Verwaltung der Pipeline, um zu große Verzögerungen zu vermeiden, bei denen einige Prozessoren möglicherweise ihre Arbeit unterbrechen, weil sie auf abhängige Berechnungsergebnisse warten.
Pipeline-Parallelität ist wie Arbeiter am Fließband einer Fabrik, bei denen jeder eine bestimmte Aufgabe ausführt und dann das Halbzeug an den nächsten Arbeiter weitergibt. Beim Modelltraining wird das Modell in mehrere Teile aufgeteilt, die jeweils nacheinander auf verschiedenen GPUs ausgeführt werden. Wenn eine GPU ihren Teil der Berechnung abgeschlossen hat, übergibt sie das Zwischenergebnis an die nächste GPU, um die Berechnung fortzusetzen.
Beim praktischen Einsatz muss das Design des Netzwerks die Bandbreiten- und Latenzanforderungen dieser parallelen Strategien berücksichtigen, um die Effizienz und Effektivität des Modelltrainings sicherzustellen. Manchmal werden diese drei parallelen Strategien kombiniert, um den Trainingsprozess weiter zu optimieren. Beispielsweise kann ein großes Modell Datenparallelität auf mehreren GPUs verwenden, um verschiedene Teilmengen von Daten zu verarbeiten, während Tensorparallelität innerhalb jeder GPU verwendet wird, um verschiedene Teile des Modells zu verarbeiten.
Schauen wir uns den Bedarf an KI-Rechenleistung für das Training großer Modelle an. Mit der kontinuierlichen Aktualisierung großer Modelle steigt auch der Bedarf an Rechenleistung für das Modelltraining und verdoppelt sich alle drei Monate. Das GPT-3-Modell (175 Milliarden Parameter, 45 TB Trainingskorpus, verbraucht 3640 PFlops/s-Tage Rechenleistung), ChatGPT3, verwendet 128 A100-Server und insgesamt 1024 A100-Karten für das Training, sodass ein einzelner Serverknoten 4 100G-Netzwerke benötigt Kanäle; Bei ChatGPT4, ChatGPT5 und anderen großen Modellen sind die Netzwerkanforderungen höher.
AIGC hat sich bis heute weiterentwickelt und die Modellparameter für das Training sind von 100 Milliarden auf 10 Billionen gestiegen. Um ein derart umfangreiches Training abzuschließen, hat die Anzahl der GPUs, die die zugrunde liegende Schicht unterstützen, ebenfalls die Größenordnung von 10,000 Karten erreicht.
Die Frage ist also: Was ist der größte Faktor, der die GPU-Auslastung beeinflusst?
Die Antwort ist Netzwerk.
Da es sich um einen Rechencluster mit Zehntausenden GPUs handelt, erfordert die Dateninteraktion mit dem Speichercluster eine enorme Bandbreite. Darüber hinaus sind die GPUs bei der Durchführung von Trainingsberechnungen nicht unabhängig, sondern nutzen gemischte Parallelität. Zwischen GPUs findet ein starker Datenaustausch statt, der ebenfalls eine enorme Bandbreite erfordert.
Wenn das Netzwerk nicht leistungsstark ist, ist die Datenübertragung langsam und die GPU muss auf die Daten warten, was die Auslastung verringert. Durch die geringere Auslastung erhöhen sich die Schulungszeit und die Kosten, und das Benutzererlebnis verschlechtert sich.
Die Branche hat ein Modell zur Berechnung der Beziehung zwischen Netzwerkbandbreitendurchsatz, Kommunikationslatenz und GPU-Auslastung erstellt, wie in der folgenden Abbildung dargestellt:
Bandbreitendurchsatz und GPU-Auslastung
Dynamische Latenz und GPU-Auslastung
Sie sehen, dass die GPU-Auslastung umso höher ist, je stärker der Netzwerkdurchsatz ist. Je größer die dynamische Kommunikationslatenz ist, desto geringer ist die GPU-Auslastung.
Welche Art von Netzwerk kann den Betrieb von AIGC unterstützen?
Um den hohen Anforderungen des KI-Cluster-Computing im Netzwerk gerecht zu werden, hat die Industrie verschiedene Lösungen vorgeschlagen. In traditionellen Strategien sehen wir üblicherweise drei Technologien: Infiniband, RDMA und Frame Switches.
Infiniband-Netzwerk
Für Profis, die sich mit Datenkommunikation auskennen, Unendlich Networking ist nichts Unbekanntes. Es gilt als die beste Möglichkeit, ein Hochleistungsnetzwerk aufzubauen, das eine extrem hohe Bandbreite, keine Überlastung und geringe Latenz gewährleistet. Das von ChatGPT und GPT-4 verwendete Netzwerk ist das Infiniband-Netzwerk. Der Nachteil dieser Technologie besteht jedoch darin, dass sie teuer ist und ein Vielfaches teurer ist als herkömmliche Ethernet-Netzwerke. Darüber hinaus ist diese Technologie relativ geschlossen und es gibt nur einen ausgereiften Anbieter in der Branche, was die Auswahlmöglichkeiten des Benutzers einschränkt.
RDMA-NetzwerkIng.
RDMA steht für Remote Direct Memory Access und ist ein neuartiger Kommunikationsmechanismus. Beim RDMA-Schema können Daten unter Umgehung der CPU und des komplexen Betriebssystems direkt mit der Netzwerkkarte kommunizieren, was nicht nur den Durchsatz deutlich verbessert, sondern auch für eine geringere Latenz sorgt.
Früher wurde RDMA hauptsächlich über das InfiniBand-Netzwerk übertragen. Jetzt wurde es schrittweise auf Ethernet portiert. Das aktuelle Mainstream-Netzwerkschema basiert auf dem RoCE v2-Protokoll, um ein Netzwerk aufzubauen, das unterstützt RDMA. Allerdings werden die PFC- und ECN-Technologien in diesem Schema, obwohl sie zur Vermeidung von Verbindungsüberlastungen generiert werden, bei häufiger Auslösung dazu führen, dass der Absender pausiert oder langsamer wird, wodurch die Kommunikationsbandbreite beeinträchtigt wird.
Rahmenschalter
Einige Internetunternehmen hatten gehofft, Frame-Switches einsetzen zu können, um den Anforderungen leistungsstarker Netzwerke gerecht zu werden. Dieses Schema birgt jedoch Herausforderungen wie unzureichende Skalierbarkeit, hohen Gerätestromverbrauch und große Fehlerdomänen, sodass es nur für die Bereitstellung kleiner KI-Computing-Cluster geeignet ist.
Neue Generation des AIGC-Netzwerks: DDC-Technologie
Angesichts der verschiedenen Einschränkungen traditioneller Systeme entstand eine neue Lösung – DDC (Distributed Disaggregated Chassis). DDC „zerlegt“ den herkömmlichen Frame-Switch, verbessert seine Skalierbarkeit und gestaltet die Netzwerkskala flexibel entsprechend der Größe des KI-Clusters. Auf diese innovative Weise überwindet DDC die Einschränkungen traditioneller Schemata und bietet eine effizientere und flexiblere Netzwerkarchitektur für KI-Computing.
Aus Sicht der Skalierung und des Bandbreitendurchsatzes hat DDC die Netzwerkanforderungen für groß angelegtes KI-Modelltraining vollständig erfüllt. Beim Netzwerkbetrieb geht es jedoch nicht nur um diese beiden Aspekte, er muss auch im Hinblick auf Latenz, Lastausgleich, Verwaltungseffizienz usw. optimiert werden. Zu diesem Zweck verfolgt DDC die folgenden technischen Strategien:
- VOQ+Zellenbasierter Weiterleitungsmechanismus, der Paketverluste effektiv bekämpft
Wenn das Netzwerk auf Burst-Verkehr trifft, kann dies dazu führen, dass der Empfänger langsam verarbeitet, was zu Überlastung und Paketverlust führt. Der von DDC übernommene VOQ+Cell-basierte Weiterleitungsmechanismus kann dieses Problem gut lösen. Der spezifische Prozess ist wie folgt:
Der Absender klassifiziert und speichert die Pakete nach dem Empfang zunächst in VOQs. Vor dem Senden der Pakete sendet der NCP zunächst eine Credit-Nachricht, um zu bestätigen, ob der Empfänger über genügend Pufferspeicher verfügt. Erst wenn der Empfänger bestätigt, dass er über Verarbeitungskapazität verfügt, werden die Pakete in Zellen aufgeteilt und dynamisch auf die Fabric-Knoten verteilt. Sollte der Empfänger vorübergehend nicht in der Lage sein, die Daten zu verarbeiten, werden die Pakete vorübergehend in den VOQs des Senders gespeichert und nicht direkt weitergeleitet. Dieser Mechanismus nutzt den Cache vollständig aus, wodurch Paketverluste erheblich reduziert oder sogar vermieden werden können, wodurch die allgemeine Kommunikationsstabilität verbessert, die Latenz verringert und die Bandbreitennutzung sowie die Effizienz des Geschäftsdurchsatzes erhöht werden.
- PFC-Single-Hop-Bereitstellung, wodurch Deadlocks vollständig vermieden werden
Die PFC-Technologie wird zur Verkehrssteuerung in verlustfreien RDMA-Netzwerken verwendet, wodurch mehrere virtuelle Kanäle für Ethernet-Verbindungen erstellt und Prioritäten für jeden Kanal festgelegt werden können. Allerdings weist PFC auch Deadlock-Probleme auf.
Da im DDC-Netzwerk alle NCPs und NCFs als ganze Geräte betrachtet werden, gibt es keinen mehrstufigen Switch, wodurch das Deadlock-Problem von PFC vollständig vermieden wird.
Schematische Darstellung des PFC-Arbeitsmechanismus
- Verteiltes Betriebssystem zur Verbesserung der Zuverlässigkeit
In der DDC-Architektur wird die Verwaltungsfunktion zentral vom NCC gesteuert, dies kann jedoch ein Single-Point-of-Failure-Risiko darstellen. Um dieses Problem zu vermeiden, verwendet DDC ein verteiltes Betriebssystem, das es jedem NCP und NCF ermöglicht, unabhängig zu verwalten, und über eine unabhängige Steuerungs- und Verwaltungsebene verfügt. Dies verbessert nicht nur die Systemzuverlässigkeit erheblich, sondern erleichtert auch die Bereitstellung.
Fazit: DDC erfüllt durch seine einzigartigen technischen Strategien die Netzwerkanforderungen des groß angelegten KI-Modelltrainings und optimiert außerdem viele Details, um sicherzustellen, dass das Netzwerk unter verschiedenen komplexen Bedingungen stabil und effizient laufen kann.
Ähnliche Produkte:
- QSFP-DD-800G-AOC-3M 3 m (10 Fuß) 800 G QSFP-DD zu QSFP-DD Aktives optisches Kabel $2710.00
- QSFP-DD-800G-AOC-10M 10 m (33 Fuß) 800 G QSFP-DD zu QSFP-DD Aktives optisches Kabel $2750.00
- QSFP112-400G-AOC-3M 3 m (10 Fuß) 400 G QSFP112 zu QSFP112 Aktives optisches Kabel $1643.00
- QSFP112-400G-AOC-10M 10 m (33 Fuß) 400 G QSFP112 zu QSFP112 Aktives optisches Kabel $1669.00
- OSFP-800G-SR8 OSFP 8x100G SR8 PAM4 850nm MTP/MPO-16 100m OM4 MMF FEC Optisches Transceiver-Modul $750.00
- NVIDIA MMS4X00-NM-FLT-kompatibles 800G-Twin-Port-OSFP-2x400G-Flat-Top-PAM4-1310-nm-500-m-DOM-Dual-MTP/MPO-12-SMF-optisches Transceiver-Modul $1200.00
- NVIDIA MMA4Z00-NS-FLT-kompatibles 800 Gbit/s Twin-Port OSFP 2x400G SR8 PAM4 850 nm 100 m DOM Dual MPO-12 MMF optisches Transceiver-Modul $850.00
- NVIDIA MMA4Z00-NS-kompatibles 800-Gbit/s-Twin-Port-OSFP-2x400G-SR8-PAM4-850-nm-100-m-DOM-Dual-MPO-12-MMF-optisches Transceiver-Modul $750.00
- NVIDIA MMS4X00-NS400 kompatibles 400G OSFP DR4 Flat Top PAM4 1310 nm MTP/MPO-12 500 m SMF FEC optisches Transceiver-Modul $800.00
- NVIDIA MMA4Z00-NS400 kompatibles 400G OSFP SR4 Flat Top PAM4 850 nm 30 m auf OM3/50 m auf OM4 MTP/MPO-12 Multimode FEC optisches Transceiver-Modul $650.00
- NVIDIA MMA1Z00-NS400 kompatibles 400G QSFP112 SR4 PAM4 850 nm 100 m MTP/MPO-12 OM3 FEC optisches Transceiver-Modul $650.00
- OSFP-400G-PSM8 400G PSM8 OSFP PAM4 1550nm MTP/MPO-16 300m SMF FEC Optisches Transceiver-Modul $1200.00
- NVIDIA MCA7J60-N004 kompatibles 4 m (13 Fuß) 800G Twin-Port OSFP zu 2x400G OSFP InfiniBand NDR Breakout Aktives Kupferkabel $800.00
- NVIDIA MCA4J80-N004 kompatibles 4 m (13 Fuß) 800G Twin-Port 2x400G OSFP zu 2x400G OSFP InfiniBand NDR Aktives Kupferkabel $650.00
- NVIDIA MCA4J80-N003-FTF-kompatibles 3 m (10 Fuß) 800G Twin-Port 2x400G OSFP zu 2x400G OSFP InfiniBand NDR Aktives Kupferkabel, flache Oberseite an einem Ende und gerippte Oberseite am anderen Ende $600.00
- NVIDIA MFS1S00-H005V kompatibles 5 m (16 Fuß) 200G InfiniBand HDR QSFP56 auf QSFP56 aktives optisches Kabel $405.00