Freigeben über


Gut durchdachte Überlegungen für KI-Workloads in der Azure-Infrastruktur (IaaS)

Bewährte Methoden zur Optimierung der Zuverlässigkeit, Sicherheit, Betriebliche Effizienz, Kostenverwaltung und Leistung von KI-Lösungen sind gut durchdachte Überlegungen für KI-Infrastruktur. Diese Prinzipien stellen eine robuste Bereitstellung, sichere Datenverarbeitung, effiziente Modelloperation und skalierbare Infrastruktur auf der IaaS-Plattform von Azure sicher. Durch die Anwendung dieser Prinzipien können Organisationen robuste, sichere und kostengünstige KI-Modelle erstellen, die den Geschäftsanforderungen entsprechen.

Zuverlässigkeit

Zuverlässigkeit beinhaltet die Minimierung von Ausfallzeiten und die Sicherstellung einer konsistenten Leistung für KI-Anwendungen in der Azure-Infrastruktur. Die Gewährleistung zuverlässiger Vorgänge über verteilte virtuelle Computer (VMs) und die Aufrechterhaltung der Leistung während Infrastrukturänderungen verhindert Dienstunterbrechungen. Diese Methoden sind wichtig, da sie eine kontinuierliche Modellverfügbarkeit gewährleisten und die Benutzererfahrung verbessern.

  • Verteilen Sie virtuelle Computer über Verfügbarkeitszonen hinweg. Minimieren Sie Ausfallzeiten von Hardwarefehlern oder Wartungsereignissen mithilfe von Verfügbarkeitszonen. Sie verteilen virtuelle Computer über Fehler- und Updatedomänen, um den fortgesetzten Anwendungsbetrieb sicherzustellen.

  • Richten Sie die Integritätsüberwachung mit Azure Monitor ein. Verfolgen Sie die CPU-, Arbeitsspeicher- und Netzwerkleistung auf Ihren virtuellen Computern mithilfe von Azure Monitor, und konfigurieren Sie Warnungen, um Sie über Leistungsbeeinträchtigungen oder Fehler in der Infrastruktur zu informieren, die Ihre Modelle unterstützen. Weitere Informationen finden Sie unter Azure Monitor VM Insights.

  • Automatisieren Sie Patching und Updates mit rollierenden Instanzen. Verwenden Sie Azure Update Management, um Patches auf rollierende Weise anzuwenden, sodass eine Instanz aktualisiert werden kann, während andere weiterhin Datenverkehr bedienen und Ausfallzeiten während der Wartung verhindern.

  • Design für eine ordnungsgemäße Beeinträchtigung bei Teilfehlern. Stellen Sie sicher, dass kernige Funktionen weiterhin verfügbar bleiben, indem sie weniger komplexe KI-Modelle bedienen oder bestimmte Features einschränken, wenn einige VMs nicht verfügbar sind, sodass Benutzer auch während Ausfällen auf wichtige Dienste zugreifen können.

  • Implementieren Sie regelmäßige Sicherungen für wichtige Ressourcen. Sichern Sie regelmäßig Modelldaten, Schulungsdatensätze und Konfigurationen, um eine schnelle Wiederherstellung zu ermöglichen, wenn ein Fehler aufgetreten ist, und schützen Sie wertvolle Fortschritte und Daten.

Sicherheit

Sicherheit umfasst Schutzmaßnahmen zum Schutz von KI-Modellen, -Daten und -Infrastrukturen vor unbefugtem Zugriff und Bedrohungen. Implementieren Sie Updates, überwachen Sie die Modellintegrität und steuern Sie den Zugriff, um Sicherheitsrisiken zu verhindern, die vertrauliche Informationen gefährden könnten. Diese Schritte sind unerlässlich, um den Datenschutz und die Vertrauenswürdigkeit von KI-Lösungen in Produktionsumgebungen aufrechtzuerhalten.

  • Planen Sie Updates für Azure-Ressourcen. Verwenden Sie Wartungskonfigurationen, um bestimmte Updatezeitpläne für VMs und Erweiterungen festzulegen, wodurch Sicherheitsrisikofenster reduziert werden.

  • Patchen Sie virtuelle Computer und Containerimages regelmäßig. Aktivieren Sie das automatische Gastpatching für VMs und Skalierungssätze, um die Sicherheit vor neuen Bedrohungen aufrechtzuerhalten. Weitere Informationen finden Sie unter Gastupdates und Hostwartungsübersicht.

  • Überwachen Sie die Modellabweichung, und stellen Sie die Integrität sicher. Stellen Sie die Modellintegrität sicher, indem Sie Sicherheitsmechanismen wie digitale Signaturen oder Hashüberprüfungen für Modelldateien implementieren, um nicht autorisierte Änderungen zu verhindern. Verwenden Sie Azure Monitor, um wichtige Leistungsmetriken nachzuverfolgen und Modellabweichungen zu identifizieren, die potenzielle Sicherheitsrisiken oder Datenverschiebungen angeben können. Sie können benutzerdefinierte Metriken (Genauigkeit, F1-Bewertung und Datenverteilung auf Ihren Modellen) in Ihrem Code mithilfe des Azure Monitor Metrics SDK definieren. Mit dem Azure Monitor Metrics SDK können Sie die Leistungsstatistiken und Datenabweichungsmessungen Ihres Modells an Azure Monitor senden. Die Überwachung auf Leistungsänderungen im Laufe der Zeit kann dabei helfen, zu erkennen, wann das Verhalten eines Modells abweicht, potenziell einen Angriff signalisiert oder eine Neuschulung erforderlich ist. Dieser proaktive Ansatz trägt dazu bei, die Modellintegrität zu schützen und die Sicherheitscompliance aufrechtzuerhalten.

  • Implementieren Sie Überwachungs- und Zugriffsprotokolle. Verwenden Sie Azure Monitor und Log Analytics, um den Zugriff auf Modelle und VMs zu protokollieren, um unbefugten Zugriff oder ungewöhnliche Verwendungsmuster zu identifizieren. Weitere Informationen finden Sie in den Aktivitätsprotokollen in Azure Monitor.

  • Verwenden Sie die Versionssteuerung für Modelldateien. Speichern Sie Modelldateien in Azure Storage (Blob, Datei oder Datenträger) mit Versionsverwaltung, um Änderungen nachzuverfolgen, und stellen Sie einen klaren Überwachungspfad zum Identifizieren und Zurücksetzen schädlicher Änderungen sicher. Die Verwendung von Azure DevOps für die Versionssteuerung verbessert die Sicherheit, indem der Zugriff auf Codeänderungen verwaltet und bewährte Methoden in Codeüberprüfungen erzwungen werden. Dieser mehrschichtige Ansatz mindert Risiken nicht autorisierter Änderungen und bietet Rechenschaftspflicht. Weitere Informationen finden Sie unter Blob-Versionsverwaltung in Azure Storage.

  • Richten Sie die Anomalieerkennung für Modellausgaben ein. Verwenden Sie Azure Monitor, um die Ausgabemetriken Ihrer Modelle nachzuverfolgen und Warnungen für ungewöhnliches Verhalten einzurichten. Die Überwachung von API-Antworten aus Ihrem Modell kann z. B. dazu beitragen, eine ungewöhnliche Ausgabe zu erkennen. Sie können die Anomalieerkennung für eine Metrik wie die Vorhersagegenauigkeit festlegen, um automatisch zu erkennen, wenn sie außerhalb eines erwarteten Bereichs fällt. Weitere Informationen finden Sie unter Erstellen und Verwalten von metrischen Warnungen mit dynamischen Schwellenwerten.

  • Erzwingen von Modellzugriffsrichtlinien. Verwenden Sie die rollenbasierte Zugriffssteuerung (Azure Role-Based Access Control, RBAC) und microsoft Entra-ID, um den Zugriff auf VMs und Modelldateien zu sichern und den Zugriff nur auf autorisierte Benutzer zu beschränken.

  • Aktualisieren Sie regelmäßig Modelle gegen aktualisierte Daten. Durch die Implementierung der regelmäßigen Neuvalidierung Ihres Modells mithilfe automatisierter Skripts oder Workflows auf Ihren virtuellen Computern wird sichergestellt, dass das Modell korrekt und effektiv für aktuelle Datasets bleibt und risiken von veralteten oder ungenauen Vorhersagen mindert. Durch die Planung dieser Aufgaben mit Azure Automation oder Azure Logic Apps können Sie die Einhaltung von Datenstandards beibehalten und die Allgemeine Modellsicherheit verbessern. Dieser proaktive Ansatz hilft dabei, Sicherheitsrisiken frühzeitig zu erkennen und eine kontinuierliche Verbesserung sicherzustellen und vor potenziellen Bedrohungen zu schützen. Sie können Ihre Automatisierungsworkflows so planen, dass sie regelmäßig Neuvalidierungsaufgaben auslösen. Beginnen Sie mit einem Azure Automation-Runbook, das auf dem virtuellen Computer ausgeführt wird, erstellen Sie einen geeigneten Zeitplan , um Validierungsergebnisse zu erhalten.

  • Nachverfolgen von Datenlinien- und Modelldateiänderungen. Aktivieren Sie die Versionsverwaltung in Azure Blob Storage, und verfolgen Sie Daten, die in Schulungen und Rückschlüssen verwendet werden, und stellen Sie sicher, dass sich keine nicht autorisierten Daten auf die Modellergebnisse auswirken.

  • Wenden Sie Ressourcenkontingente und Zinsgrenzwerte an. Implementieren Sie Ratelimits und Kontingente für Ihre Modell-APIs über Azure API Management, um übermäßigen Nutzen oder Missbrauch zu verhindern, was zu Systemrisiken oder Dienstausfällen führen kann. Mit dieser Strategie wird sichergestellt, dass das System während des hohen Datenverkehrs reaktionsfähig bleibt und Risiken im Zusammenhang mit Denial-of-Service-Angriffen verringert. Durch die Steuerung des Zugriffs können Sie die Leistung beibehalten und vertrauliche Daten vor potenziellen Nutzungs-API-Verwaltungskontingenten und -grenzwerten schützen.

  • Führen Sie regelmäßige Überprüfungen von Sicherheitsrisiken durch. Verwenden Sie die Microsoft Defender-Sicherheitsrisikoüberprüfung, um Sicherheitsrisikobewertungen Ihrer virtuellen Computer und zugehörigen Ressourcen durchzuführen. Überprüfen Sie regelmäßig auf Sicherheitsprobleme oder Fehlkonfigurationen in Ihrem VM-Setup, die Ihre Modelle verfügbar machen könnten. Microsoft Defender-Sicherheitsrisikoüberprüfung.

Kostenoptimierung

Die Kostenoptimierung umfasst die Anpassung der Ressourcennutzung an den Arbeitsauslastungsanforderungen, um unnötige Ausgaben zu vermeiden. Die Rechtegröße von virtuellen Computern, das Commit für reservierte Instanzen und das Einrichten der automatischen Skalierung tragen dazu bei, Kosten zu verwalten, ohne die Leistung zu beeinträchtigen. Die Kontrolle der Kosten für die Azure-Infrastruktur ist für langfristige Nachhaltigkeit und Skalierbarkeit von KI-Bereitstellungen von entscheidender Bedeutung.

  • Commit für reservierte Instanzen. Sparen Sie Kosten für virtuelle Computer (VM), indem Sie sich zu einer ein- oder dreijährigen Laufzeit verpflichten, die ermäßigte Tarife bietet.

  • Verwenden Sie Azure Virtual Machine Scale Sets für die automatische Skalierung. Automatische Skalierung VM-Instanzen basierend auf Metriken wie der CPU-Auslastung, nur für das, was Sie benötigen und die Überbereitstellung verhindern.

  • Legen Sie automatische Herunterfahren für Leerlaufinstanzen fest. Vermeiden Sie Kosten von nicht verwendeten Ressourcen, indem Sie das automatische Herunterfahren aktivieren, insbesondere für Entwicklungs- und Testumgebungen.

  • Verwenden Sie Azure Savings Plans für eine vorhersehbare Nutzung. Senken Sie die Kosten im Vergleich zu den Kosten für die Kosten für die nutzungsbasierte Kosten, indem Sie sich für eine konsistente Nutzung in vm-Größen und Regionen verpflichten.

  • Verwenden Sie Azure Spot-Instanzen für fehlertolerante Workloads. Erhalten Sie erhebliche Rabatte auf die Ersatzkapazität für Workloads, die Unterbrechungen tolerieren können.

  • Wählen Sie die richtige Speicherlösung aus. Ausgleich von Kosten und Leistung auf der Grundlage der Arbeitsauslastungsanforderungen. Wählen Sie Azure Managed Lustre (AMLFS) für hochdurchsatzreiche Anwendungen, große Anwendungen und Azure NetApp Files (ANF) für erweiterte Datenverwaltung und Zuverlässigkeit aus.

Optimaler Betrieb

Die operative Exzellenz umfasst die Optimierung der Konfiguration und Verwaltung von Azure-Ressourcen, um die Funktionalität von KI-Anwendungen zu verbessern. Effiziente Ressourcenzuordnung, Leistungsoptimierung und verteilte Schulungen unterstützen einen reibungslosen Betrieb und Anpassungsfähigkeit an unterschiedliche Anforderungen. Durch diesen Fokus auf die betriebliche Effizienz wird sichergestellt, dass KI-Modelle ohne übermäßigen Ressourceneinsatz wie beabsichtigt funktionieren.

  • Optimieren Sie die Ressourcenzuordnung. Überprüfen Sie regelmäßig azure VM-Größen und -Konfigurationen basierend auf der tatsächlichen Ressourcenauslastung, um die Workloadanforderungen zu erfüllen. Verwenden Sie Azure Advisor für Empfehlungen zur optimalen Größenanpassung und Skalierung.

  • Konfigurieren Sie die automatische Skalierung für Effizienz. Richten Sie die automatische Skalierung für VMs oder Container ein, um Workloadanforderungen ohne Überbereitstellung zu verarbeiten. Verwenden Sie Azure Virtual Machine Scale Sets, um Ressourcen dynamisch basierend auf Bedarf anzupassen. Weitere Informationen finden Sie unter Microsoft Azure Virtual Machine Scale Sets.

  • Führen Sie regelmäßige Leistungsoptimierung durch. Profilieren Sie die Anwendung kontinuierlich, um Leistungsengpässe zu identifizieren und zu beheben. Verwenden Sie Application Insights Profiler , um Modellcode und Ressourcennutzung zu analysieren.

  • Implementieren Sie verteilte Schulungen zur Effizienz. Verwenden Sie verteilte Schulungstechniken, falls zutreffend, um die Schulungszeit mithilfe mehrerer virtueller Computer zu reduzieren. Frameworks wie Horovod und PyTorch unterstützen verteilte Schulungen auf Azure.

  • Speichern Sie Prüfpunkte in Azure Blob Storage. Speichern Sie Modellzustände, Gewichtungen und Konfigurationen regelmäßig in Azure Blob Storage. Sie können Azure SDKs oder Bibliotheken verwenden, die in der Programmiersprache verfügbar sind, die Sie für die LLM verwenden. Speichern Sie die Prüfpunkte in einem strukturierten Format, z. B. TensorFlow SavedModel- oder PyTorch-Prüfpunktdateien. Ändern Sie Ihren Schulungs- oder Rückschlusscode so, dass er Prüfpunktlogik enthält. Beginnen Sie mit dem Festlegen von Intervallen (nach jeder Epoche oder einigen Iterationen), um den Zustand des Modells zu speichern. Verwenden Sie eine konsistente Benennungskonvention für Prüfpunktdateien, um den neuesten Zustand einfach nachzuverfolgen.

  • Entwurf für die Zustandswiederherstellung. Stellen Sie sicher, dass Ihre Anwendung von einem gespeicherten Prüfpunkt wiederhergestellt werden kann. Implementieren Sie Logik zum Laden des Modellzustands aus Azure Blob Storage, wenn die Anwendung gestartet wird. Es enthält, überprüft auf vorhandene Prüfpunkte und lädt den neuesten Prüfpunkt, falls verfügbar, sodass die Anwendung fortgesetzt werden kann, ohne den Fortschritt zu verlieren.

Effiziente Leistung

Die Leistungseffizienz bezieht sich auf die Maximierung der Verarbeitungsleistung der Azure-Infrastruktur zur Erfüllung der KI-Modellanforderungen. Sie sollten GPU-Einstellungen optimieren, Eingabe-/Ausgabeprozesse (E/A) optimieren und Benchmarktests ausführen, um die Rechengeschwindigkeit und Reaktionsfähigkeit zu verbessern. Die Sicherstellung von hoher Leistung unterstützt die Ausführung komplexer KI-Modelle im großen Maßstab, wodurch die Benutzerzufriedenheit verbessert und die Latenz reduziert wird.

GPU-Optimierung

Erhöhen Sie die Taktfrequenz einer Grafikverarbeitungseinheit (GPU), um die Leistung zu verbessern, insbesondere für Aufgaben, die hohe grafische Verarbeitung oder komplexe Berechnungen erfordern. Höhere Taktgeschwindigkeiten ermöglichen es der GPU, mehr Vorgänge in einem bestimmten Zeitraum auszuführen, wodurch die Gesamteffizienz verbessert wird. Verwenden Sie dieses GPU-Optimierungsskript , um die GPU-Taktfrequenzen auf ihre Maximalwerte festzulegen.

  • Aktivieren Sie beschleunigtes Netzwerk. Das beschleunigte Netzwerk ist eine Hardwarebeschleunigungstechnologie, mit der virtuelle Computer einzelne Stamm-E/A-Virtualisierung (SR-IOV) auf unterstützten virtuellen Computertypen verwenden können. Sie bietet geringere Latenz, reduziertes Jitter und verringerte CPU-Auslastung. Enable accelerated Networking bietet erhebliche Verbesserungen bei der Front-End-Netzwerkleistung.

E/A-Optimierung

  • Optimieren Sie den Kratzspeicher. Scratch muss einen hohen Durchsatz und eine niedrige Latenz aufweisen. Der Schulungsauftrag erfordert das Lesen von Daten, die Verarbeitung und die Verwendung dieses Speicherorts als Entwurfsspeicherort, während der Auftrag ausgeführt wird. Im Idealfall würden Sie die lokale SSD direkt auf jedem virtuellen Computer verwenden. Wenn Sie ein freigegebenes Dateisystem für Grund auf grund benötigen, kann die Kombination aller NVMe-SSDs zum Erstellen eines parallelen Dateisystems (Parallel File System, PFS) eine gute Option in Bezug auf Kosten und Leistung sein, vorausgesetzt, sie verfügt über ausreichende Kapazität. Eine Methode ist die Verwendung von Azure Managed Lustre. Wenn Azure Managed Lustre nicht geeignet ist, können Sie Speicheroptionen wie Azure NetApp Files oder Azure Native Qumulo erkunden.

  • Implementieren Des Prüfpunktspeichers. Große Deep Learning-Schulungsaufträge können wochenlang ausgeführt werden, abhängig von der Anzahl der verwendeten VMs. Genau wie jeder HPC-Cluster können Fehler auftreten, wie z. B. InfiniBand-Probleme, Dual-In-Line-Speichermodulfehler (DIMM), Fehler bei der Fehlerkorrektur von Ode (ECC) im GPU-Speicher. Es ist wichtig, eine Prüfpunktstrategie zu haben. Kennen Sie das Prüfpunktintervall (wenn Daten gespeichert werden). Verstehen, wie viele Daten jedes Mal übertragen werden. Verfügen Sie über eine Speicherlösung, die die Kapazitäts- und Leistungsanforderungen erfüllt. Verwenden Sie Blob Storage, wenn sie den Leistungsanforderungen entspricht.

Benchmarking-Tests

Benchmarking-Tests helfen dabei, verteilte Deep Learning Training Performance auf GPUs zu bewerten und zu verbessern, insbesondere für großflächige Modelle. Diese Tests messen die Effizienz der GPU-Kommunikation über Knoten hinweg, um Engpässe bei der Datenübertragung während der verteilten Schulung zu reduzieren. Die drei behandelten Tests umfassen:

  • Megatron Framework: Unterstützt groß angelegte Sprachmodelle, indem die verteilte Trainingseffizienz verbessert wird.
  • Die NVIDIA Collective Communications Library (NCCL) und ROCm Communication Collectives Library (RCCL)-Tests: Bewerten der Leistung und Genauigkeit in multi-GPU-Kommunikation mithilfe von NCCL- oder RCCL-Bibliotheken, Testmuster wie alle reduzieren und punktieren.

Diese Tests sorgen für Skalierbarkeit und optimale Leistung für LLMs, wobei Megatron sich auf Modellschulungen und NCCL/RCCL für die GPU-Kommunikation konzentriert.

NVIDIA Megatron-LM Test

NVIDIA Megatron-LM ist ein Open-Source-Framework für die Schulung großer Sprachmodelle. Es ermöglicht Entwicklern, massive neurale Netzwerke für NLP-Aufgaben zu erstellen, einschließlich:

  • Parallelität: Unterstützt Modell-, Daten- und Pipeline-Parallelität für Milliardenparametermodelle.
  • Skalierbarkeit: Skaliert auf mehrere GPUs und Knoten, um eine effiziente Schulung für große Modelle zu ermöglichen.
  • Flexibilität: Ermöglicht die Konfiguration von Modellarchitektur, Datenlade- und Schulungsstrategien.
  • Optimierungen: Verwendet NVIDIA GPU-Optimierungen für Leistungsgewinne.

Megatron-LM stellt in der Azure HPC-Infrastruktur bereit und verwendet die Skalierbarkeit von Azure für große Sprachmodelle, ohne dass lokale Hardware erforderlich ist.

Megatron-LM Test eingerichtet

Die Bereitstellung von Megatron-LM erfordert spezifische Software und Hardware.

  • Wählen Sie die richtigen Bereitstellungsoptionen aus. Verwenden Sie den CycleCloud-Arbeitsbereich für Slurm, um die Bereitstellung zu vereinfachen. Wählen Sie SKUs der NC-Serie oder der ND-Serie für die GPU-Partition aus. Für die Schulung mit mehreren Knoten wird ND-Reihen-SKUs für die RDMA-Unterstützung empfohlen. Die HPC Marketplace-Images von Azure enthalten im Allgemeinen diese Treiber und Bibliotheken. Wenn Anpassungen erforderlich sind, kann das azhpc-images-Repository kompatibilitätssichern.

  • Verwenden Sie das richtige Bild. Die Softwareanforderungen für das Projekt umfassen ein Linux-basiertes Betriebssystem, in der Regel Ubuntu. Für die Kommunikation mit mehreren GPU- und Multiknoten ist es wichtig, Kommunikationsbibliotheken wie NCCL und MPI zu verwenden. Darüber hinaus müssen geeignete NVIDIA-Treiber installiert werden, um die GPU-Beschleunigung sicherzustellen. Die HPC Marketplace-Images von Azure enthalten diese Treiber und Bibliotheken, die vorinstalliert sind. Wenn die Anpassung jedoch erforderlich ist, kann das Azhpc-Images-Repository verwendet werden, um die Kompatibilität zu gewährleisten.

Megatron-LM Testverwendung

Sie sollten Megatron-LM mit der neuesten Version des PyTorch-Containers von NGC ausführen. Um den Container für einen herkömmlichen slurm-basierten HPC-Cluster auszuführen, müssen Sie diese anderen Komponenten in Ihrem Cluster installieren und konfigurieren:

  • enroot: ein Tool, mit dem Benutzer containerisierte Anwendungen auf HPC-Clustern ausführen können, ohne dass Stammberechtigungen erforderlich sind oder das Hostsystem geändert wird.
  • pyxis: ein Plug-In für Slurm, das eine nahtlose Integration von enroot mit Slurm ermöglicht, sodass Benutzer containerisierte Aufträge an Slurm-Warteschlangen übermitteln und auf HPC-Knoten ausführen können.

Beide Komponenten sind in CycleCloud Workspace für Slurm enthalten, sind jedoch derzeit nicht in Slurm-Clustern enthalten, die über CycleCloud erstellt werden. Sie können diese zusätzlichen Komponenten über Clusterinit mit CycleCloud-Projekten einführen. Mit diesen Anforderungen können Sie Megatron-LM für LLM-Schulungen verwenden:

  • Überprüfen der Leistung Ihres Clusters: Identifizieren Sie potenzielle Hardwareprobleme, bevor Sie Ihre Workload mit Node Health Checks ausführen. Verwenden Sie NCCL-Tests, um die verteilte Gesamtleistung des Clusters zu überprüfen.
  • Auswählen Ihrer Schulungsdaten: Verwenden Sie das CodeParrot-Modell als Ausgangspunkt, um Ihren Workflow zu überprüfen.
  • Vorverarbeitung Ihrer Daten: Verwenden Sie das preprocess_data.py Skript im Megatron-LM-Repository, um Ihre Daten in ein Format zu konvertieren, das mit Megatron-LM kompatibel ist.
  • Schulung mit Megatron-LM: Verwenden Sie die Beispiele in Megatron-LM als Referenz zum Konfigurieren von Megatron für Schulungen.

Diese Einrichtung stellt eine effiziente Bereitstellung und Schulung großer Sprachmodelle in der Infrastruktur von Azure sicher.

NCCL-Bandbreitentest

Führen Sie den NCCL-Bandbreitentest aus, um die GPU-Kommunikation über Knoten hinweg zu überprüfen und zu optimieren. Der NCCL-Bandbreitentest ist ein spezielles Tool innerhalb von NCCL, einer Bibliothek, die eine schnelle Kommunikation zwischen GPUs ermöglicht. NCCL unterstützt kollektive Vorgänge, einschließlich all-reduce, all-gather, reduce, broadcast, and reduce-scatter, across single or multi-GPU nodes, and achieves optimal performance on platforms with PCIe, NVLink, NVswitch, or networking setups like InfiniBand or TCP/IP. Weitere Informationen finden Sie unter NVIDIA/NCCL-Tests.

NCCL-Leistungsmetriken

Verwenden Sie den NCCL-Bandbreitentest, um wichtige Metriken einschließlich Zeit und Bandbreite zu bewerten. "Time" (in Millisekunden) misst den Overhead oder die Latenz in Vorgängen und macht es nützlich, Vorgänge mit kleinen Datengrößen auszuwerten. "Bandbreite" (in GB/s) wertet die Effizienz des Punkt-zu-Punkt-Betriebs aus, z. B. "Senden/Empfangen". "Busbandbreite" spiegelt die Effizienz der Hardwarenutzung wider, indem die Inter-GPU-Kommunikationsgeschwindigkeit und Engpässe in Komponenten wie NVLink oder PCI berücksichtigt werden. Berechnungen für verschiedene kollektive Vorgänge werden bereitgestellt, z. B. AllReduce, ReduceScatter, AllGather, Broadcast und Reduce.

NCCL-Testinitiierung

Um diese Tests innerhalb einer CycleCloud-Bereitstellung zu initiieren, stellen Sie über SSH eine Verbindung mit dem Planerknoten her, und greifen Sie auf einen GPU-ausgestatteten Computeknoten zu. Klonen Sie das Git-Repository für NCCL-Tests, navigieren Sie zum nccl-tests Verzeichnis, und erstellen Sie eine Hostdatei, die die Knoten zum Testen auflistet. Rufen Sie die IP-Adresse des Schedulerknotens aus der Web-App von CycleCloud ab.

NCCL-Testargumente

Geben Sie vor dem Ausführen von Tests verschiedene Argumente an, z. B. die Anzahl der GPUs pro Thread (-g), den Datengrößenbereich (-b für minimale Bytes und -e für maximale Bytes), schrittinkrementieren (-i oder -f), Reduzierungsvorgangstyp (-o), Datentyp (), Stammgerät (-d-r), Iterationsanzahl (-n), Warmupanzahl (-w) und CUDA-Diagrammeinstellungen (-G). Eine vollständige Liste der anpassbaren Parameter finden Sie in der NCCL-Testdokumentation.

RCCL-Tests

ROCm Communication Collectives Library (RCCL) ist eine spezielle Bibliothek, die für eine effiziente Kommunikation zwischen AMD GPUs entwickelt wurde. Es bietet kollektive Vorgänge wie all-reduce, all-gather, broadcast, and reduce, support both intra- and inter-node GPU communication. Für Plattformen mit PCIe- und Netzwerktechnologien wie InfiniBand optimiert, stellt RCCL eine skalierbare Datenübertragung in Multi-GPU-Umgebungen sicher. Sie unterstützt die Integration in Einzel- und Multiprozessworkflows, wie z. B. die verwendung von MPI. Weitere Informationen finden Sie unter ROCm Communication Collectives Library

  • Umgebung einrichten. Installieren Sie ROCm, und stellen Sie sicher, dass RCCL auf allen Knoten ordnungsgemäß installiert ist.
  • Erstellen sie RCCL-Tests. Klonen Sie das Repository, navigieren Sie zum Verzeichnis "rccl-tests", und kompilieren Sie die Tests.
  • Führen Sie Bandbreitentests aus. Verwenden Sie die bereitgestellten ausführbaren Testdateien (rccl-tests), und geben Sie Kommunikationsvorgänge wie alle reduzieren an.
  • Analysieren sie die Leistung. Vergleich der Bandbreiten- und Latenzergebnisse über Knoten und GPUs hinweg.

Nächster Schritt