Zum Inhalt springen

Ein Leitfaden fĂŒr den Einsatz von YOLOv8 auf Amazon SageMaker-Endpunkten

Der Einsatz fortschrittlicher Computer-Vision-Modelle wie Ultralytics' YOLOv8 auf Amazon SageMaker Endpunkten eröffnet eine Vielzahl von Möglichkeiten fĂŒr verschiedene Machine-Learning-Anwendungen. Der SchlĂŒssel zur effektiven Nutzung dieser Modelle liegt im VerstĂ€ndnis ihrer Einrichtung, Konfiguration und Bereitstellung. YOLOv8 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 dich Schritt fĂŒr Schritt durch den Einsatz von YOLOv8 PyTorch Modellen auf Amazon SageMaker Endpoints. Du lernst, wie du deine AWS-Umgebung vorbereitest, das Modell richtig konfigurierst und Tools wie AWS CloudFormation und das AWS Cloud Development Kit (CDK) fĂŒr den Einsatz verwendest.

Amazon SageMaker

Amazon SageMaker Übersicht

Amazon SageMaker ist ein Service fĂŒr maschinelles Lernen von Amazon Web Services (AWS), der das Erstellen, Trainieren und Bereitstellen von Modellen fĂŒr maschinelles Lernen vereinfacht. Er bietet eine breite Palette von Tools fĂŒr verschiedene Aspekte von Machine Learning Workflows. Dazu gehören automatisierte Funktionen fĂŒr das Tuning von Modellen, Optionen fĂŒr das Training von Modellen in großem Umfang und einfache Methoden fĂŒr den Einsatz 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 YOLOv8 auf Amazon SageMaker Endpunkten

Wenn du YOLOv8 auf Amazon SageMaker einsetzt, kannst du die verwaltete Umgebung fĂŒr Echtzeit-Inferenzen nutzen und von Funktionen wie der automatischen Skalierung profitieren. Sieh dir unten die AWS-Architektur an.

AWS Architektur

Schritt 1: Einrichten deiner AWS-Umgebung

Zuerst musst du sicherstellen, dass du die folgenden Voraussetzungen erfĂŒllst:

  • Ein AWS-Konto: Wenn du noch keins hast, melde dich fĂŒr ein AWS-Konto an.

  • Konfigurierte IAM-Rollen: Du brauchst 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 erlauben.

  • AWS CLI: Falls noch nicht installiert, lade die AWS-Befehlszeilenschnittstelle (CLI) herunter, installiere sie und konfiguriere sie mit deinen Kontodaten. Befolge fĂŒr die Installation die Anweisungen von AWS CLI .

  • AWS CDK: Falls noch nicht installiert, installiere das AWS Cloud Development Kit (CDK), das fĂŒr das Skripting der Bereitstellung verwendet wird. Befolge die Anweisungen fĂŒr die Installation des AWS CDK.

  • Angemessene Service-Quota: BestĂ€tige, dass du ĂŒber ausreichende Quoten fĂŒr zwei separate Ressourcen in Amazon SageMaker verfĂŒgst: eine fĂŒr ml.m5.4xlarge fĂŒr die Endpunktnutzung und eine weitere fĂŒr ml.m5.4xlarge fĂŒr die Notebook-Instanznutzung. FĂŒr jede dieser Ressourcen ist mindestens ein Quota-Wert erforderlich. Wenn deine aktuellen Quotas unter dieser Anforderung liegen, musst du eine Erhöhung fĂŒr jede dieser Quotas beantragen. Du kannst eine Quota-Erhöhung beantragen, indem du den detaillierten Anweisungen in der Dokumentation zu den AWS Service Quotas folgst.

Schritt 2: Klone das YOLOv8 SageMaker Repository

Im nĂ€chsten Schritt klonst du das spezielle AWS-Repository, das die Ressourcen fĂŒr den Einsatz von YOLOv8 auf SageMaker enthĂ€lt. Dieses Repository, das auf GitHub gehostet wird, enthĂ€lt die notwendigen CDK-Skripte und Konfigurationsdateien.

  • Klone das GitHub-Repository: FĂŒhre den folgenden Befehl in deinem Terminal aus, um das host-yolov8-on-sagemaker-endpoint Repository zu klonen:
git clone https://github.com/aws-samples/host-yolov8-on-sagemaker-endpoint.git
  • Navigiere zu dem geklonten Verzeichnis: Wechsle dein Verzeichnis in das geklonte Repository:
cd host-yolov8-on-sagemaker-endpoint/yolov8-pytorch-cdk

Schritt 3: Einrichten der CDK-Umgebung

Jetzt, wo du den nötigen Code hast, richtest du deine Umgebung fĂŒr die Bereitstellung mit AWS CDK ein.

  • Erstelle eine Python Virtuelle Umgebung: Damit isolierst du deine Python Umgebung und AbhĂ€ngigkeiten. AusfĂŒhren:
python3 -m venv .venv
  • Aktiviere die virtuelle Umgebung:
source .venv/bin/activate
  • AbhĂ€ngigkeiten installieren: Installiere die erforderlichen Python AbhĂ€ngigkeiten fĂŒr das Projekt:
pip3 install -r requirements.txt
  • Aktualisiere die AWS CDK-Bibliothek: Stelle sicher, dass du die neueste Version der AWS CDK-Bibliothek hast:
pip install --upgrade aws-cdk-lib

Schritt 4: Erstelle den AWS CloudFormation Stack

  • Synthetisiere die CDK-Anwendung: Erstelle die AWS CloudFormation-Vorlage aus deinem CDK-Code:
cdk synth
  • Bootstrap der CDK-Anwendung: Bereite deine AWS-Umgebung fĂŒr die CDK-Bereitstellung vor:
cdk bootstrap
  • Stelle den Stack bereit: Damit werden die erforderlichen AWS-Ressourcen erstellt und dein Modell bereitgestellt:
cdk deploy

Schritt 5: Einsetzen des YOLOv8 Modells

Bevor du dich mit den Einsatzanweisungen beschĂ€ftigst, solltest du dir die verschiedenen Modelle vonYOLOv8 ansehen, die von Ultralytics angeboten werden. Das wird dir helfen, das am besten geeignete Modell fĂŒr deine Projektanforderungen auszuwĂ€hlen.

Nachdem du den AWS CloudFormation Stack erstellt hast, ist der nÀchste Schritt die Bereitstellung von YOLOv8.

  • Öffne die Notebook-Instanz: Rufe die AWS-Konsole auf und navigiere zum Amazon SageMaker Service. WĂ€hle "Notebook Instances" aus dem Dashboard und suche dann die Notebook Instance, die von deinem CDK Deployment Script erstellt wurde. Öffne die Notebook-Instanz, um auf die Jupyter-Umgebung zuzugreifen.

  • Öffne und Ă€ndere inference.py: Nachdem du die SageMaker-Notebook-Instanz in Jupyter geöffnet hast, suche die Datei inference.py. Bearbeite die Funktion output_fn in inference.py wie unten gezeigt und speichere deine Änderungen im Skript, um sicherzustellen, dass es keine Syntaxfehler gibt.

def output_fn(prediction_output, content_type):
    print("Executing output_fn from inference.py ...")
    infer = {}
    for result in prediction_output:
        if 'boxes' in result._keys and result.boxes is not None:
            infer['boxes'] = result.boxes.numpy().data.tolist()
        if 'masks' in result._keys and result.masks is not None:
            infer['masks'] = result.masks.numpy().data.tolist()
        if 'keypoints' in result._keys and result.keypoints is not None:
            infer['keypoints'] = result.keypoints.numpy().data.tolist()
        if 'probs' in result._keys and result.probs is not None:
            infer['probs'] = result.probs.numpy().data.tolist()
    return json.dumps(infer)
  • Stelle den Endpunkt mit 1_DeployEndpoint.ipynb bereit: Öffne in der Jupyter-Umgebung das Notizbuch 1_DeployEndpoint.ipynb, das sich im Verzeichnis sm-notebook befindet. Befolge die Anweisungen im Notizbuch und fĂŒhre die Zellen aus, um das YOLOv8 Modell herunterzuladen, es mit dem aktualisierten Inferenzcode zu verpacken und es in einen Amazon S3 Bucket hochzuladen. Das Notizbuch fĂŒhrt dich durch die Erstellung und den Einsatz eines SageMaker-Endpunkts fĂŒr das Modell YOLOv8 .

Schritt 6: Testen deines Einsatzes

Jetzt, wo dein YOLOv8 Modell im Einsatz ist, ist es wichtig, seine Leistung und FunktionalitÀt zu testen.

  • Öffne das Test Notebook: Suche in derselben Jupyter-Umgebung das Notizbuch 2_TestEndpoint.ipynb, das sich ebenfalls im Verzeichnis sm-notebook befindet, und öffne es.

  • FĂŒhre das Test Notebook aus: Befolge die Anweisungen im Notizbuch, um den eingesetzten SageMaker-Endpunkt zu testen. Dazu sendest du ein Bild an den Endpunkt und fĂŒhrst Schlussfolgerungen durch. Anschließend stellst du die Ergebnisse dar, um die Leistung und Genauigkeit des Modells zu visualisieren (siehe unten).

Testergebnisse YOLOv8

  • Ressourcen zum AufrĂ€umen: Das Testnotizbuch fĂŒhrt dich 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, vor allem, wenn du nicht vorhast, das bereitgestellte Modell sofort zu nutzen.

Schritt 7: Überwachung und Management

Nach der Erprobung ist eine kontinuierliche Überwachung und Verwaltung deines eingesetzten Modells unerlĂ€sslich.

  • Überwache mit Amazon CloudWatch: ÜberprĂŒfe regelmĂ€ĂŸig die Leistung und den Zustand deines SageMaker-Endpunkts mit Amazon CloudWatch.

  • Verwalte den Endpunkt: Verwende die SageMaker-Konsole fĂŒr die laufende Verwaltung des Endpunkts. Dazu gehört das Skalieren, Aktualisieren oder Umstellen des Modells nach Bedarf.

Wenn du diese Schritte abgeschlossen hast, hast du erfolgreich ein YOLOv8 Modell auf Amazon SageMaker Endpoints eingesetzt und getestet. Dieser Prozess vermittelt dir nicht nur praktische Erfahrung in der Nutzung von AWS-Diensten fĂŒr den Einsatz von maschinellem Lernen, sondern legt auch den Grundstein fĂŒr den Einsatz anderer fortgeschrittener Modelle in der Zukunft.

Zusammenfassung

Dieser Leitfaden fĂŒhrt dich Schritt fĂŒr Schritt durch den Einsatz von YOLOv8 auf Amazon SageMaker Endpoints mit AWS CloudFormation und dem AWS Cloud Development Kit (CDK). Der Prozess umfasst das Klonen des erforderlichen GitHub-Repositorys, das Einrichten der CDK-Umgebung, den Einsatz des Modells mithilfe der AWS-Services und das Testen seiner Leistung auf SageMaker.

Weitere technische Details findest du in diesem Artikel auf dem AWS Machine Learning Blog. Du kannst auch die offizielle Amazon SageMaker-Dokumentation lesen, um mehr ĂŒber die verschiedenen Funktionen und Merkmale zu erfahren.

Bist du daran interessiert, mehr ĂŒber die verschiedenen YOLOv8 Integrationen zu erfahren? Besuche den Ultralytics Integrationsleitfaden, um weitere Tools und Funktionen zu entdecken, die deine Machine-Learning-Projekte verbessern können.



Erstellt am 2024-01-04, Aktualisiert am 2024-01-07
Autoren: glenn-jocher (1), abirami-vina (1)

Kommentare