Jüngste Entwicklungen im maschinellen Lernen (ML) haben zu immer größeren Modellen geführt, die teilweise Hunderte Milliarden Parameter erfordern. Obwohl sie leistungsfähiger sind, erfordern Training und Inferenz auf diesen Modellen erhebliche Rechenressourcen. Trotz der Verfügbarkeit fortschrittlicher verteilter Trainingsbibliotheken sind für Trainings- und Inferenzaufgaben häufig Hunderte von Beschleunigern (GPUs oder speziell entwickelte ML-Chips wie z. B AWS-Training machen AWS-Inferenz), und daher Dutzende oder Hunderte von Instanzen.
In solchen verteilten Umgebungen wird die Beobachtbarkeit sowohl der Instanzen als auch der ML-Chips zum Schlüssel für die Feinabstimmung der Modellleistung und die Kostenoptimierung. Mithilfe von Metriken können Teams das Workload-Verhalten verstehen, die Ressourcenzuteilung und -nutzung optimieren, Anomalien diagnostizieren und die Gesamteffizienz der Infrastruktur steigern. Für Datenwissenschaftler sind die Auslastung und Sättigung von ML-Chips auch für die Kapazitätsplanung relevant.
Dieser Beitrag führt Sie durch die Open-Source-Observability-Muster für AWS Inferentia, das Ihnen zeigt, wie Sie die Leistung von ML-Chips überwachen, die in einem verwendet werden Amazon Elastic Kubernetes-Service (Amazon EKS)-Cluster mit Datenebenenknoten basierend auf Amazon Elastic Compute-Cloud (Amazon EC2) Instanzen des Typs Info1 machen Info2.
Das Muster ist Teil des AWS CDK Observability Accelerator, eine Reihe eigenwilliger Module, die Ihnen beim Festlegen der Beobachtbarkeit für Amazon EKS-Cluster helfen. Der AWS CDK Observability Accelerator ist nach Mustern organisiert, bei denen es sich um wiederverwendbare Einheiten für die Bereitstellung mehrerer Ressourcen handelt. Der Open-Source-Beobachtbarkeitssatz von Mustern instrumentiert die Beobachtbarkeit mit Von Amazon verwaltetes Grafana Dashboards, ein AWS-Distribution für OpenTelemetry Collector zum Sammeln von Metriken und Amazon Managed Service für Prometheus um sie zu speichern.
Lösungsüberblick
Das folgende Diagramm zeigt die Lösungsarchitektur.
Diese Lösung stellt einen Amazon EKS-Cluster mit einer Knotengruppe bereit, die Inf1-Instances enthält.
Der AMI-Typ der Knotengruppe ist AL2_x86_64_GPU
, der das benutzt Amazon EKS optimiertes beschleunigtes Amazon Linux AMI. Zusätzlich zur standardmäßigen Amazon EKS-optimierten AMI-Konfiguration umfasst das beschleunigte AMI die NeuronX-Laufzeit.
Um über Kubernetes auf die ML-Chips zuzugreifen, stellt das Muster Folgendes bereit AWS-Neuron Geräte-Plugin.
Metriken werden Amazon Managed Service for Prometheus durch bereitgestellt neuron-monitor
DaemonSet, das einen minimalen Container bereitstellt, mit dem Neuronen-Tools Eingerichtet. Konkret die neuron-monitor
DaemonSet führt das aus neuron-monitor
Befehl in die weitergeleitet neuron-monitor-prometheus.py
Begleitskript (beide Befehle sind Teil des Containers):
Der Befehl verwendet die folgenden Komponenten:
neuron-monitor
sammelt Metriken und Statistiken von den Neuron-Anwendungen, die auf dem System ausgeführt werden, und streamt die gesammelten Daten an stdout in JSON-Formatneuron-monitor-prometheus.py
Ordnet die Telemetriedaten vom JSON-Format in ein Prometheus-kompatibles Format zu und macht sie verfügbar
Die Daten werden in Amazon Managed Grafana durch das entsprechende Dashboard visualisiert.
Der Rest des Setups zum Sammeln und Visualisieren von Metriken mit Amazon Managed Service for Prometheus und Amazon Managed Grafana ähnelt dem, das in anderen Open-Source-basierten Mustern verwendet wird, die im enthalten sind AWS Observability Accelerator for CDK
GitHub-Repository.
Voraussetzungen:
Sie benötigen Folgendes, um die Schritte in diesem Beitrag auszuführen:
Richten Sie die Umgebung ein
Führen Sie die folgenden Schritte aus, um Ihre Umgebung einzurichten:
- Öffnen Sie ein Terminalfenster und führen Sie die folgenden Befehle aus:
- Rufen Sie die Arbeitsbereichs-IDs aller vorhandenen Amazon Managed Grafana-Arbeitsbereiche ab:
Das Folgende ist unsere Beispielausgabe:
- Weisen Sie die Werte zu
id
machenendpoint
auf die folgenden Umgebungsvariablen:
COA_AMG_ENDPOINT_URL
muss einschließen https://
.
- Erstellen Sie einen Grafana-API-Schlüssel aus dem Amazon Managed Grafana-Arbeitsbereich:
- Richten Sie ein Geheimnis ein AWS-Systemmanager:
Auf das Secret wird über das External Secrets-Add-on zugegriffen und es wird als natives Kubernetes-Secret im EKS-Cluster verfügbar gemacht.
Bootstrap der AWS CDK-Umgebung
Der erste Schritt bei jeder AWS CDK-Bereitstellung ist das Bootstrapping der Umgebung. Sie verwenden die cdk bootstrap
Befehl in der AWS CDK-CLI, um die Umgebung (eine Kombination aus AWS-Konto und AWS-Region) mit Ressourcen vorzubereiten, die AWS CDK für die Durchführung von Bereitstellungen in dieser Umgebung benötigt. AWS CDK-Bootstrapping ist für jede Kombination aus Konto und Region erforderlich. Wenn Sie also bereits AWS CDK in einer Region gebootet haben, müssen Sie den Bootstrapping-Vorgang nicht wiederholen.
Stellen Sie die Lösung bereit
Führen Sie die folgenden Schritte aus, um die Lösung bereitzustellen:
- Klonen Sie die cdk-aws-observability-accelerator Repository und installieren Sie die Abhängigkeitspakete. Dieses Repository enthält in TypeScript geschriebenen AWS CDK v2-Code.
Die tatsächlichen Einstellungen für die JSON-Dateien des Grafana-Dashboards werden voraussichtlich im AWS CDK-Kontext angegeben. Sie müssen aktualisieren context
der cdk.json
Datei, die sich im aktuellen Verzeichnis befindet. Der Standort des Dashboards wird durch angegeben fluxRepository.values.GRAFANA_NEURON_DASH_URL
Parameter und neuronNodeGroup
wird verwendet, um den Instanztyp, die Anzahl und festzulegen Amazon Elastic Block-Shop (Amazon EBS) Größe, die für die Knoten verwendet wird.
- Geben Sie den folgenden Ausschnitt ein
cdk.json
, Ersetzencontext
:
Sie können den Inf1-Instanztyp durch Inf2 ersetzen und die Größe nach Bedarf ändern. Um die Verfügbarkeit in Ihrer ausgewählten Region zu überprüfen, führen Sie den folgenden Befehl aus (ändern Values
wie Sie es für richtig halten):
- Installieren Sie die Projektabhängigkeiten:
- Führen Sie die folgenden Befehle aus, um das Open-Source-Observability-Muster bereitzustellen:
Validieren Sie die Lösung
Führen Sie die folgenden Schritte aus, um die Lösung zu validieren:
- Führen Sie die
update-kubeconfig
Befehl. Sie sollten den Befehl aus der Ausgabenachricht des vorherigen Befehls abrufen können:
- Überprüfen Sie die von Ihnen erstellten Ressourcen:
Der folgende Screenshot zeigt unsere Beispielausgabe.
- Stellen Sie sicher, dass die
neuron-device-plugin-daemonset
DaemonSet läuft:
Das Folgende ist unsere erwartete Ausgabe:
- Bestätigen Sie, dass die
neuron-monitor
DaemonSet läuft:
Das Folgende ist unsere erwartete Ausgabe:
- Um zu überprüfen, ob die Neuron-Geräte und -Kerne sichtbar sind, führen Sie Folgendes aus:
neuron-ls
machenneuron-top
Befehle beispielsweise von Ihrem Neuron-Monitor-Pod (den Namen des Pods können Sie der Ausgabe von entnehmenkubectl get pods -A
):
Der folgende Screenshot zeigt unsere erwartete Ausgabe.
Der folgende Screenshot zeigt unsere erwartete Ausgabe.
Visualisieren Sie Daten mit dem Grafana Neuron-Dashboard
Melden Sie sich bei Ihrem Amazon Managed Grafana-Arbeitsbereich an und navigieren Sie zu Armaturenbretter Panel. Sie sollten ein Dashboard mit dem Namen sehen Neuron / Monitor.
Um einige interessante Metriken im Grafana-Dashboard anzuzeigen, wenden wir das folgende Manifest an:
Dies ist ein Beispiel-Workload, der die kompiliert Torchvision ResNet50-Modell und führt wiederholte Inferenzen in einer Schleife aus, um Telemetriedaten zu generieren.
Um zu überprüfen, ob der Pod erfolgreich bereitgestellt wurde, führen Sie den folgenden Code aus:
Sie sollten einen Pod mit dem Namen sehen pytorch-inference-resnet50
.
Nach ein paar Minuten Blick in die Neuron / Monitor Dashboard sollten Sie die gesammelten Metriken ähnlich den folgenden Screenshots sehen.
Grafana Operator und Flux arbeiten immer zusammen, um Ihre Dashboards mit Git zu synchronisieren. Wenn Sie Ihre Dashboards versehentlich löschen, werden sie automatisch neu bereitgestellt.
Aufräumen
Sie können den gesamten AWS CDK-Stack mit dem folgenden Befehl löschen:
Zusammenfassung
In diesem Beitrag haben wir Ihnen gezeigt, wie Sie mit Open-Source-Tools Beobachtbarkeit in einen EKS-Cluster mit einer Datenebene einführen, auf der EC2-Inf1-Instanzen ausgeführt werden. Wir begannen mit der Auswahl des Amazon EKS-optimierten beschleunigten AMI für die Datenebenenknoten, das die Neuron-Container-Laufzeit umfasst und Zugriff auf AWS Inferentia- und Trainium Neuron-Geräte bietet. Anschließend stellten wir das Neuron-Geräte-Plugin bereit, um die Neuron-Kerne und -Geräte Kubernetes zugänglich zu machen. Die eigentliche Erfassung und Zuordnung von Telemetriedaten in ein Prometheus-kompatibles Format wurde über erreicht neuron-monitor
machen neuron-monitor-prometheus.py
. Die Metriken wurden von Amazon Managed Service für Prometheus bezogen und im Neuron-Dashboard von Amazon Managed Grafana angezeigt.
Wir empfehlen Ihnen, zusätzliche Beobachtbarkeitsmuster im zu untersuchen AWS Observability Accelerator für CDK GitHub-Repo. Weitere Informationen zu Neuron finden Sie im AWS Neuron-Dokumentation.
Über den Autor
Riccardo Freschi ist Senior Solutions Architect bei AWS und konzentriert sich auf die Modernisierung von Anwendungen. Er arbeitet eng mit Partnern und Kunden zusammen, um sie bei der Transformation ihrer IT-Landschaften auf ihrem Weg in die AWS Cloud zu unterstützen, indem er bestehende Anwendungen umgestaltet und neue erstellt.
- SEO-gestützte Content- und PR-Distribution. Holen Sie sich noch heute Verstärkung.
- PlatoData.Network Vertikale generative KI. Motiviere dich selbst. Hier zugreifen.
- PlatoAiStream. Web3-Intelligenz. Wissen verstärkt. Hier zugreifen.
- PlatoESG. Kohlenstoff, CleanTech, Energie, Umwelt, Solar, Abfallwirtschaft. Hier zugreifen.
- PlatoHealth. Informationen zu Biotechnologie und klinischen Studien. Hier zugreifen.
- Quelle: https://aws.amazon.com/blogs/machine-learning/open-source-observability-for-aws-inferentia-nodes-within-amazon-eks-clusters/
- :Ist
- $UP
- 09
- 1
- 100
- 15%
- 20
- 23
- 30
- 600
- 7
- 8
- 9
- 900
- a
- Fähig
- Über uns
- oben
- beschleunigt
- Beschleuniger
- Beschleuniger
- Zugang
- Zugriff
- Unfall
- Konto
- erreicht
- aktiv
- präsentieren
- Erweiterung
- Zusatz
- Zusätzliche
- Administrator
- advanced
- Alter
- Zuteilung
- erlauben
- bereits
- ebenfalls
- Obwohl
- immer
- Amazon
- Amazon EC2
- Von Amazon verwaltetes Grafana
- Amazon Web Services
- an
- machen
- Anomalien
- jedem
- Bienen
- Anwendung
- Anwendungen
- Jetzt bewerben
- Architektur
- SIND
- um
- AS
- At
- Authentifizierung
- Im Prinzip so, wie Sie es von Google Maps kennen.
- Verfügbarkeit
- verfügbar
- AWS
- AWS-Inferenz
- basierend
- BE
- wird
- Verhalten
- Milliarden
- Blockieren
- Bootstrap
- Bootstrapping
- beide
- bauen
- Building
- by
- CAN
- Kann bekommen
- Kapazität
- CD
- Übernehmen
- aus der Ferne überprüfen
- Pommes frites
- cli
- eng
- Cloud
- Cluster
- Code
- sammeln
- Sammlung
- Sammler
- sammelt
- COM
- Kombination
- Befehl
- gemeinsam
- Begleiter
- abschließen
- Komponenten
- rechnerisch
- Berechnen
- Konfiguration
- Container
- enthält
- Kontext
- Dazugehörigen
- Kosten
- erstellt
- Strom
- Kunden
- Armaturenbrett
- Dashboards
- technische Daten
- Abhängigkeiten
- Abhängigkeit
- einsetzen
- Einsatz
- Bereitstellen
- Einsatz
- Implementierungen
- setzt ein
- Beschreibung
- erwünscht
- Trotz
- Entwicklungen
- Gerät
- Geräte
- Diagramm
- Verzeichnis
- angezeigt
- verteilt
- verteiltes Training
- Nicht
- e
- jeder
- Effizienz
- Endpunkt
- Arbeitsumfeld
- Umgebungen
- Beispiel
- vorhandenen
- erwartet
- ERKUNDEN
- exportieren
- ausgesetzt
- extern
- Einzigartige
- wenige
- Reichen Sie das
- Mappen
- Vorname
- passen
- FLUX
- Fokussierung
- Folgende
- Aussichten für
- Format
- für
- gesammelt
- erzeugen
- bekommen
- Git
- GitHub
- GPUs
- Gruppe an
- Haben
- he
- Hilfe
- Ultraschall
- Hilfe
- HTML
- http
- HTTPS
- hunderte
- i
- ID
- ids
- if
- zeigt
- in
- In anderen
- das
- inklusive
- Dazu gehören
- Einschließlich
- Erhöhung
- zunehmend
- Infrastruktur
- installieren
- installiert
- Instanz
- Instrumente
- interessant
- in
- einführen
- IT
- Jobs
- Reise
- JSON
- Wesentliche
- Landschaften
- grosse
- LERNEN
- lernen
- geführt
- Bibliotheken
- linux
- located
- Standorte
- suchen
- Maschine
- Maschinelles Lernen
- gemacht
- Main
- um
- verwaltet
- Mapping
- Landkarten
- Nachricht
- Metrik
- minimal
- Minuten
- ML
- Modell
- für
- Modernisierung
- geändert
- Module
- Überwachen
- mehr
- mehrere
- Name
- Namens
- nativen
- Navigieren
- Need
- erforderlich
- Bedürfnisse
- Neu
- Knoten
- Fiber Node
- Anzahl
- of
- on
- Einsen
- XNUMXh geöffnet
- Open-Source-
- Operator
- Rechthaberisch
- Optimierung
- Optimieren
- optimiert
- or
- Organisiert
- Andere
- UNSERE
- Möglichkeiten für das Ausgangssignal:
- Gesamt-
- Pakete
- Tafel
- Parameter
- Parameter
- Teil
- Weg
- Schnittmuster
- Muster
- Ausführen
- Leistung
- Ebene
- Planung
- Plato
- Datenintelligenz von Plato
- PlatoData
- Plugin
- Post
- größte treibende
- Danach
- früher
- Prozessdefinierung
- Projekt
- Protokoll
- Anbieter
- Bereitstellung
- bereit
- empfehlen
- siehe
- Region
- relevant
- wiederholen
- repetitiv
- ersetzen
- Quelle
- erfordern
- falls angefordert
- Ressourcen
- Downloads
- REST
- wiederverwendbar
- Führen Sie
- Laufen
- läuft
- Laufzeit
- Sample
- Wissenschaftler
- Screenshots
- Skript
- Die Geheime
- sehen
- ausgewählt
- Auswahl
- Dienstleistungen
- kompensieren
- Einstellungen
- Setup
- sollte
- zeigte
- Konzerte
- signifikant
- ähnlich
- Größe
- Schnipsel
- So
- Lösung
- Lösungen
- einige
- Quelle
- bezogen
- speziell
- angegeben
- Stapel
- Standard
- begonnen
- Statistik
- Status
- Schritt
- Shritte
- speichern
- Ströme
- Erfolgreich
- so
- sicher
- System
- Systeme und Techniken
- Teams
- Zehn
- Terminal
- Text
- zur Verbesserung der Gesundheitsgerechtigkeit
- Das
- ihr
- Sie
- dann
- deswegen
- vom Nutzer definierten
- fehlen uns die Worte.
- diejenigen
- Durch
- zu
- gemeinsam
- Ausbildung
- Transformieren
- tippe
- Typoskript
- verstehen
- Bereiche
- auf dem neusten Stand
- Aktualisierung
- -
- benutzt
- verwendet
- Verwendung von
- BESTÄTIGEN
- Werte
- überprüfen
- sichtbar
- visualisieren
- geht
- wurde
- we
- Netz
- Web-Services
- waren
- welche
- ganze
- werden wir
- Fenster
- mit
- .
- ohne
- Arbeiten
- zusammenarbeiten
- Werk
- geschrieben
- Du
- Ihr
- Zephyrnet