Eine Anleitung zum Einsatz von YOLO11 auf Amazon SageMaker-Endpunkten
Der Einsatz von fortschrittlichen Computer-Vision-Modellen wie Ultralytics' YOLO11 auf Amazon SageMaker-Endpunkten eröffnet eine breite Palette von Möglichkeiten für verschiedene Anwendungen des maschinellen Lernens. Der Schlüssel zur effektiven Nutzung dieser Modelle liegt im Verständnis ihrer Einrichtung, Konfiguration und Bereitstellungsprozesse. YOLO11 wird noch leistungsfähiger, wenn es nahtlos in Amazon SageMaker integriert wird, einem robusten und skalierbaren Service für maschinelles Lernen von AWS.
Dieser Leitfaden führt Sie Schritt für Schritt durch den Prozess des Einsatzes von YOLO11 PyTorch Modelle auf Amazon SageMaker-Endpunkten Schritt für Schritt. Sie lernen das Wesentliche über die Vorbereitung Ihrer AWS-Umgebung, die entsprechende Konfiguration des Modells und die Verwendung von Tools wie AWS CloudFormation und das AWS Cloud Development Kit (CDK) für den Einsatz.
Amazon SageMaker
Amazon SageMaker ist ein Service für maschinelles Lernen von Amazon Web Services (AWS), der den Prozess der Erstellung, des Trainings und der Bereitstellung von Modellen für maschinelles Lernen vereinfacht. Er bietet eine breite Palette von Tools für die Handhabung verschiedener Aspekte von Workflows für maschinelles Lernen. Dazu gehören automatisierte Funktionen für die Abstimmung von Modellen, Optionen für das Training von Modellen in großem Umfang und unkomplizierte Methoden für die Bereitstellung von Modellen in der Produktion. SageMaker unterstützt gängige Frameworks für maschinelles Lernen und bietet so die nötige Flexibilität für unterschiedliche Projekte. Die Funktionen umfassen auch die Datenbeschriftung, das Workflow-Management und die Leistungsanalyse.
Einsatz von YOLO11 auf Amazon SageMaker-Endpunkten
Wenn Sie YOLO11 auf Amazon SageMaker bereitstellen, können Sie die verwaltete Umgebung für Echtzeit-Inferenzen nutzen und von Funktionen wie der automatischen Skalierung profitieren. Werfen Sie einen Blick auf die AWS-Architektur unten.
Schritt 1: Einrichten Ihrer AWS-Umgebung
Stellen Sie zunächst sicher, dass Sie die folgenden Voraussetzungen erfüllen:
-
Ein AWS-Konto: Wenn Sie noch keins haben, melden Sie sich für ein AWS-Konto an.
-
Konfigurierte IAM-Rollen: Sie benötigen eine IAM-Rolle mit den erforderlichen Berechtigungen für Amazon SageMaker, AWS CloudFormation und Amazon S3. Diese Rolle sollte über Richtlinien verfügen, die ihr den Zugriff auf diese Dienste ermöglichen.
-
AWS CLI: Falls noch nicht installiert, laden Sie die AWS-Befehlszeilenschnittstelle (CLI) herunter, installieren Sie sie und konfigurieren Sie sie mit Ihren Kontodaten. Befolgen Sie für die Installation die Anweisungen von AWS CLI .
-
AWS CDK: Falls noch nicht installiert, installieren Sie das AWS Cloud Development Kit (CDK), das für das Skripting der Bereitstellung verwendet wird. Befolgen Sie die Anweisungen für die Installation des AWS CDK.
-
Angemessene Service-Quote: Stellen Sie sicher, dass Sie über ausreichende Quoten für zwei separate Ressourcen in Amazon SageMaker verfügen: eine für
ml.m5.4xlarge
für die Endpunktnutzung und eine weitere fürml.m5.4xlarge
für die Nutzung von Notebook-Instanzen. Für jede dieser Instanzen ist mindestens ein Quotenwert erforderlich. Wenn Ihre aktuellen Kontingente unter dieser Anforderung liegen, müssen Sie für jedes eine Erhöhung beantragen. Sie können eine Quotenerhöhung beantragen, indem Sie die detaillierten Anweisungen in der Dokumentation zu AWS-Servicekontingenten.
Schritt 2: Klonen Sie das SageMaker-Repository YOLO11
Der nächste Schritt besteht darin, das spezielle AWS-Repository zu klonen, das die Ressourcen für den Einsatz von YOLO11 auf SageMaker enthält. Dieses Repository, das auf GitHub gehostet wird, enthält die erforderlichen CDK-Scripts und Konfigurationsdateien.
- Klonen Sie das GitHub-Repository: Führen Sie den folgenden Befehl in Ihrem Terminal aus, um das host-yolov8-on-sagemaker-endpoint-Repository zu klonen:
- Navigieren Sie zu dem geklonten Verzeichnis: Wechseln Sie Ihr Verzeichnis in das geklonte Repository:
Schritt 3: Einrichten der CDK-Umgebung
Nachdem Sie nun den erforderlichen Code haben, richten Sie Ihre Umgebung für die Bereitstellung mit AWS CDK ein.
- Erstellen Sie eine virtuelle Umgebung Python : Dies isoliert Ihre Python Umgebung und Abhängigkeiten. Ausführen:
- Aktivieren Sie die virtuelle Umgebung:
- Abhängigkeiten installieren: Installieren Sie die erforderlichen Python Abhängigkeiten für das Projekt:
- Aktualisieren Sie die AWS CDK-Bibliothek: Stellen Sie sicher, dass Sie die neueste Version der AWS CDK-Bibliothek haben:
Schritt 4: Erstellen des AWS CloudFormation-Stapels
- Synthetisieren Sie die CDK-Anwendung: Generieren Sie die AWS CloudFormation-Vorlage aus Ihrem CDK-Code:
- Bootstrap der CDK-Anwendung: Bereiten Sie Ihre AWS-Umgebung für die CDK-Bereitstellung vor:
- Stellen Sie den Stack bereit: Dadurch werden die erforderlichen AWS-Ressourcen erstellt und Ihr Modell bereitgestellt:
Schritt 5: Einsetzen des YOLO Modells
Bevor Sie sich mit den Einrichtungsanweisungen befassen, sollten Sie sich über die verschiedenen YOLO11 Modelle informieren, die von Ultralytics angeboten werden. Dies wird Ihnen helfen, das für Ihre Projektanforderungen am besten geeignete Modell auszuwählen.
Nach der Erstellung des AWS CloudFormation Stack ist der nächste Schritt die Bereitstellung von YOLO11.
-
Öffnen Sie die Notebook-Instanz: Rufen Sie die AWS-Konsole auf und navigieren Sie zum Amazon SageMaker-Service. Wählen Sie "Notebook Instances" aus dem Dashboard und suchen Sie dann die Notebook-Instanz, die von Ihrem CDK-Bereitstellungsscript erstellt wurde. Öffnen Sie die Notebook-Instanz, um auf die Jupyter-Umgebung zuzugreifen.
-
Greifen Sie auf inference.py zu und ändern Sie sie: Nachdem Sie die SageMaker-Notebook-Instanz in Jupyter geöffnet haben, suchen Sie die Datei inference.py. Bearbeiten Sie die Funktion output_fn in inference.py wie unten gezeigt und speichern Sie Ihre Änderungen im Skript, um sicherzustellen, dass es keine Syntaxfehler gibt.
import json
def output_fn(prediction_output):
"""Formats model outputs as JSON string, extracting attributes like boxes, masks, keypoints."""
print("Executing output_fn from inference.py ...")
infer = {}
for result in prediction_output:
if result.boxes is not None:
infer["boxes"] = result.boxes.numpy().data.tolist()
if result.masks is not None:
infer["masks"] = result.masks.numpy().data.tolist()
if result.keypoints is not None:
infer["keypoints"] = result.keypoints.numpy().data.tolist()
if result.obb is not None:
infer["obb"] = result.obb.numpy().data.tolist()
if result.probs is not None:
infer["probs"] = result.probs.numpy().data.tolist()
return json.dumps(infer)
- Stellen Sie den Endpunkt mit 1_DeployEndpoint.ipynb bereit: Öffnen Sie in der Jupyter-Umgebung das Notizbuch 1_DeployEndpoint.ipynb im Verzeichnis sm-notebook. Folgen Sie den Anweisungen im Notizbuch und führen Sie die Zellen aus, um das Modell YOLO11 herunterzuladen, es mit dem aktualisierten Inferenzcode zu verpacken und es in einen Amazon S3-Bucket hochzuladen. Das Notizbuch führt Sie durch die Erstellung und den Einsatz eines SageMaker-Endpunkts für das Modell YOLO11 .
Schritt 6: Testen des Einsatzes
Jetzt, wo Ihr YOLO11 Modell eingesetzt wird, ist es wichtig, seine Leistung und Funktionalität zu testen.
-
Öffnen Sie das Test-Notizbuch: Suchen und öffnen Sie in derselben Jupyter-Umgebung das Notizbuch 2_TestEndpoint.ipynb, das sich ebenfalls im Verzeichnis sm-notebook befindet.
-
Führen Sie das Testnotizbuch aus: Folgen Sie den Anweisungen im Notizbuch, um den eingesetzten SageMaker-Endpunkt zu testen. Dazu gehört das Senden eines Bildes an den Endpunkt und das Ausführen von Schlussfolgerungen. Anschließend stellen Sie die Ausgabe dar, um die Leistung und Genauigkeit des Modells zu visualisieren, wie unten gezeigt.
- Ressourcen zum Aufräumen: Das Testnotizbuch führt Sie auch durch den Prozess des Aufräumens des Endpunkts und des gehosteten Modells. Dies ist ein wichtiger Schritt, um Kosten und Ressourcen effektiv zu verwalten, insbesondere wenn Sie das bereitgestellte Modell nicht sofort verwenden möchten.
Schritt 7: Überwachung und Management
Nach der Erprobung ist eine kontinuierliche Überwachung und Verwaltung des eingesetzten Modells unerlässlich.
-
Überwachen Sie mit Amazon CloudWatch: Überprüfen Sie regelmäßig die Leistung und den Zustand Ihres SageMaker-Endpunkts mit Amazon CloudWatch.
-
Verwalten Sie den Endpunkt: Verwenden Sie die SageMaker-Konsole für die laufende Verwaltung des Endpunkts. Dazu gehört das Skalieren, Aktualisieren oder Neuverteilen des Modells nach Bedarf.
Wenn Sie diese Schritte abgeschlossen haben, haben Sie erfolgreich ein YOLO11 Modell auf Amazon SageMaker-Endpunkten bereitgestellt und getestet. Dieser Prozess vermittelt Ihnen nicht nur praktische Erfahrung in der Verwendung von AWS-Diensten für die Bereitstellung von maschinellem Lernen, sondern legt auch die Grundlage für die Bereitstellung anderer fortgeschrittener Modelle in der Zukunft.
Zusammenfassung
Diese Anleitung führt Sie Schritt für Schritt durch den Einsatz von YOLO11 auf Amazon SageMaker-Endpunkten mit AWS CloudFormation und dem AWS Cloud Development Kit (CDK). Der Prozess umfasst das Klonen des erforderlichen GitHub-Repositorys, das Einrichten der CDK-Umgebung, das Bereitstellen des Modells mit AWS-Services und das Testen der Leistung auf SageMaker.
Weitere technische Details finden Sie in diesem Artikel auf dem AWS Machine Learning Blog. Sie können auch die offizielle Amazon SageMaker-Dokumentation lesen, um weitere Einblicke in verschiedene Merkmale und Funktionen zu erhalten.
Sind Sie daran interessiert, mehr über die verschiedenen YOLO11 Integrationen zu erfahren? Besuchen Sie die SeiteUltralytics integrations guide, um weitere Tools und Funktionen zu entdecken, die Ihre Machine-Learning-Projekte verbessern können.
FAQ
Wie stelle ich das Modell Ultralytics YOLO11 auf Amazon SageMaker-Endpunkten bereit?
Führen Sie die folgenden Schritte aus, um das Modell Ultralytics YOLO11 auf Amazon SageMaker-Endpunkten einzusetzen:
- Richten Sie Ihre AWS-Umgebung ein: Stellen Sie sicher, dass Sie ein AWS-Konto, IAM-Rollen mit den erforderlichen Berechtigungen und die AWS CLI konfiguriert haben. Installieren Sie AWS CDK, falls noch nicht geschehen (siehe Anweisungen zu AWS CDK).
- Klonen Sie das YOLO11 SageMaker Repository:
- Einrichten der CDK-Umgebung: Erstellen Sie eine virtuelle Umgebung Python , aktivieren Sie sie, installieren Sie Abhängigkeiten und aktualisieren Sie die AWS CDK-Bibliothek.
- Bereitstellen mit AWS CDK: Synthese und Bereitstellung des CloudFormation-Stacks, Bootstrap der Umgebung.
Weitere Einzelheiten finden Sie im Abschnitt Dokumentation.
Was sind die Voraussetzungen für den Einsatz von YOLO11 auf Amazon SageMaker?
Um YOLO11 auf Amazon SageMaker einzusetzen, müssen Sie die folgenden Voraussetzungen erfüllen:
- AWS-Konto: Aktives AWS-Konto(melden Sie sich hier an).
- IAM-Rollen: Konfigurierte IAM-Rollen mit Berechtigungen für SageMaker, CloudFormation und Amazon S3.
- AWS CLI: Installierte und konfigurierte AWS-Befehlszeilenschnittstelle(AWS CLI installation guide).
- AWS CDK: Installiertes AWS Cloud Development Kit(CDK-Einrichtungsanleitung).
- Dienstleistungskontingente: Ausreichende Quoten für
ml.m5.4xlarge
Instanzen für die Verwendung von Endpunkten und Notebooks (eine Quotenerhöhung beantragen).
Einzelheiten zur Einrichtung finden Sie in diesem Abschnitt.
Warum sollte ich Ultralytics YOLO11 auf Amazon SageMaker verwenden?
Die Verwendung von Ultralytics YOLO11 auf Amazon SageMaker bietet mehrere Vorteile:
- Skalierbarkeit und Verwaltung: SageMaker bietet eine verwaltete Umgebung mit Funktionen wie automatischer Skalierung, die bei Echtzeit-Inferenzanforderungen hilft.
- Integration mit AWS-Diensten: Nahtlose Integration mit anderen AWS-Services, wie S3 für die Datenspeicherung, CloudFormation für Infrastruktur als Code und CloudWatch für die Überwachung.
- Leichte Bereitstellung: Vereinfachte Einrichtung mit AWS CDK-Skripten und optimierte Bereitstellungsprozesse.
- Leistung: Nutzen Sie die Hochleistungsinfrastruktur von Amazon SageMaker, um Inferenzaufgaben in großem Umfang effizient auszuführen.
Erfahren Sie mehr über die Vorteile der Verwendung von SageMaker im Abschnitt Einführung.
Kann ich die Schlussfolgerungslogik für YOLO11 auf Amazon SageMaker anpassen?
Ja, Sie können die Schlussfolgerungslogik für YOLO11 auf Amazon SageMaker anpassen:
-
Ändern Sie
inference.py
: Suchen Sie und passen Sie dieoutput_fn
Funktion in derinference.py
Datei für maßgeschneiderte Ausgabeformate.import json def output_fn(prediction_output): """Formats model outputs as JSON string, extracting attributes like boxes, masks, keypoints.""" infer = {} for result in prediction_output: if result.boxes is not None: infer["boxes"] = result.boxes.numpy().data.tolist() # Add more processing logic if necessary return json.dumps(infer)
-
Aktualisiertes Modell bereitstellen: Stellen Sie sicher, dass Sie das Modell mithilfe der bereitgestellten Jupyter-Notebooks (
1_DeployEndpoint.ipynb
), um diese Änderungen zu berücksichtigen.
Lesen Sie die detaillierten Schritte für den Einsatz des geänderten Modells.
Wie kann ich das eingesetzte YOLO11 Modell auf Amazon SageMaker testen?
So testen Sie das eingesetzte YOLO11 Modell auf Amazon SageMaker:
- Öffnen Sie das Testheft: Suchen Sie die
2_TestEndpoint.ipynb
Notizbuch in der SageMaker Jupyter-Umgebung. - Führen Sie das Notebook aus: Befolgen Sie die Anweisungen des Notizbuchs, um ein Bild an den Endpunkt zu senden, eine Inferenz durchzuführen und die Ergebnisse anzuzeigen.
- Ergebnisse visualisieren: Nutzen Sie die integrierten Plot-Funktionen zur Visualisierung von Leistungsmetriken, wie z. B. Bounding Boxes um erkannte Objekte.
Ausführliche Anleitungen zu den Tests finden Sie im Abschnitt Tests.