Overslaan naar inhoud

Een handleiding voor het implementeren van YOLOv8 op Amazon SageMaker eindpunten

Het implementeren van geavanceerde computer vision modellen zoals Ultralytics' YOLOv8 op Amazon SageMaker Endpoints opent een breed scala aan mogelijkheden voor verschillende machine learning toepassingen. De sleutel tot het effectief gebruiken van deze modellen ligt in het begrijpen van hun setup-, configuratie- en implementatieprocessen. YOLOv8 wordt nog krachtiger wanneer het naadloos wordt geïntegreerd met Amazon SageMaker, een robuuste en schaalbare machine learning service van AWS.

Deze handleiding neemt je stap voor stap mee door het proces van het implementeren van YOLOv8 PyTorch modellen op Amazon SageMaker Endpoints. Je leert de essentie van het voorbereiden van je AWS omgeving, het op de juiste manier configureren van het model en het gebruik van tools zoals AWS CloudFormation en de AWS Cloud Development Kit (CDK) voor de implementatie.

Amazon SageMaker

Overzicht Amazon SageMaker

Amazon SageMaker is een machine learning service van Amazon Web Services (AWS) die het proces van het bouwen, trainen en inzetten van machine learning modellen vereenvoudigt. Het biedt een breed scala aan tools voor het afhandelen van verschillende aspecten van machine learning workflows. Dit omvat geautomatiseerde functies voor het afstemmen van modellen, opties voor het trainen van modellen op schaal en eenvoudige methoden voor het implementeren van modellen in productie. SageMaker ondersteunt populaire machine learning frameworks en biedt daarmee de flexibiliteit die nodig is voor uiteenlopende projecten. De functies omvatten ook gegevenslabeling, workflowbeheer en prestatieanalyse.

YOLOv8 inzetten op Amazon SageMaker eindpunten

Door YOLOv8 te implementeren op Amazon SageMaker kun je de beheerde omgeving gebruiken voor real-time inferentie en gebruik maken van functies zoals autoscaling. Bekijk de AWS-architectuur hieronder.

AWS-architectuur

Stap 1: Je AWS-omgeving instellen

Zorg er eerst voor dat je aan de volgende voorwaarden voldoet:

  • Een AWS-account: Als je er nog geen hebt, meld je dan aan voor een AWS account.

  • Geconfigureerde IAM rollen: Je hebt een IAM rol nodig met de benodigde rechten voor Amazon SageMaker, AWS CloudFormation en Amazon S3. Deze rol moet beleidsregels hebben die toegang geven tot deze diensten.

  • AWS CLI: Download en installeer de AWS Command Line Interface (CLI) als deze nog niet is geïnstalleerd en configureer deze met je accountgegevens. Volg de AWS CLI instructies voor installatie.

  • AWS CDK: Als deze nog niet is geïnstalleerd, installeer dan de AWS Cloud Development Kit (CDK), die zal worden gebruikt voor het scripten van de implementatie. Volg de AWS CDK instructies voor installatie.

  • Voldoende servicequota: Bevestig dat je voldoende quota hebt voor twee afzonderlijke bronnen in Amazon SageMaker: één voor ml.m5.4xlarge voor eindpuntgebruik en een andere voor ml.m5.4xlarge voor het gebruik van notebookinstanties. Elk van deze vereist een minimum van één quotumwaarde. Als je huidige quota's lager zijn dan deze vereiste, is het belangrijk om voor elk een verhoging aan te vragen. Je kunt een quotaverhoging aanvragen door de gedetailleerde instructies te volgen in de AWS Servicequota documentatie.

Stap 2: Kloon de YOLOv8 SageMaker Repository

De volgende stap is het klonen van de specifieke AWS repository die de bronnen bevat voor het implementeren van YOLOv8 op SageMaker. Deze repository, gehost op GitHub, bevat de benodigde CDK scripts en configuratiebestanden.

  • Kloon de GitHub Repository: Voer het volgende commando in je terminal uit om de host-yolov8-on-sagemaker-endpoint repository te klonen:
git clone https://github.com/aws-samples/host-yolov8-on-sagemaker-endpoint.git
  • Navigeer naar de gekloonde map: Verander je map naar de gekloonde repository:
cd host-yolov8-on-sagemaker-endpoint/yolov8-pytorch-cdk

Stap 3: De CDK-omgeving instellen

Nu je de benodigde code hebt, stel je je omgeving in om te implementeren met AWS CDK.

  • Maak een Python virtuele omgeving: Dit isoleert je Python omgeving en afhankelijkheden. Uitvoeren:
python3 -m venv .venv
  • Activeer de virtuele omgeving:
source .venv/bin/activate
  • Afhankelijkheden installeren: Installeer de vereiste Python afhankelijkheden voor het project:
pip3 install -r requirements.txt
  • AWS CDK-bibliotheek upgraden: Zorg ervoor dat je de nieuwste versie van de AWS CDK-bibliotheek hebt:
pip install --upgrade aws-cdk-lib

Stap 4: Maak de AWS CloudFormation Stack aan

  • Syntheseer de CDK toepassing: Genereer het AWS CloudFormation-sjabloon van je CDK-code:
cdk synth
  • De CDK-toepassing opstarten: Bereid je AWS-omgeving voor op de inzet van CDK:
cdk bootstrap
  • Deploy the Stack: Hiermee worden de benodigde AWS-resources aangemaakt en wordt je model uitgerold:
cdk deploy

Stap 5: Het model YOLOv8 implementeren

Voordat je je verdiept in de implementatie-instructies, moet je eerst de reeks YOLOv8 modellen bekijken die Ultralytics aanbiedt. Dit zal je helpen bij het kiezen van het meest geschikte model voor jouw projectvereisten.

Na het maken van de AWS CloudFormation Stack is de volgende stap het implementeren van YOLOv8.

  • Open de Notebook Instance: Ga naar de AWS Console en navigeer naar de Amazon SageMaker service. Selecteer "Notebook Instances" op het dashboard en zoek dan de notebook instance die is aangemaakt door je CDK deployment script. Open de notebook instance om toegang te krijgen tot de Jupyter-omgeving.

  • Inference.py openen en wijzigen: Na het openen van de SageMaker notebook instantie in Jupyter, zoek je het inference.py bestand. Bewerk de output_fn functie in inference.py zoals hieronder getoond en sla je wijzigingen op in het script, waarbij je ervoor zorgt dat er geen syntaxfouten zijn.

import json

def output_fn(prediction_output, content_type):
    """Formats model outputs as JSON string according to content_type, 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)
  • Implementeer het eindpunt met behulp van 1_DeployEndpoint.ipynb: Open in de Jupyter-omgeving het 1_DeployEndpoint.ipynb notitieblok in de sm-notebook map. Volg de instructies in de notebook en voer de cellen uit om het YOLOv8 model te downloaden, het te verpakken met de bijgewerkte inferentiecode en het te uploaden naar een Amazon S3 bucket. Het notitieboek leidt je door het maken en implementeren van een SageMaker eindpunt voor het YOLOv8 model.

Stap 6: Je implementatie testen

Nu je YOLOv8 model is geïmplementeerd, is het belangrijk om de prestaties en functionaliteit te testen.

  • Open het testnotitieboek: Zoek en open in dezelfde Jupyter-omgeving het notitieboek 2_TestEndpoint.ipynb, ook in de map sm-notebook.

  • Start de Test Notebook: Volg de instructies in het notitieboek om het SageMaker endpoint te testen. Dit omvat het sturen van een afbeelding naar het eindpunt en het uitvoeren van inferenties. Daarna plot je de uitvoer om de prestaties en nauwkeurigheid van het model te visualiseren, zoals hieronder te zien is.

Testresultaten YOLOv8

  • Hulpmiddelen voor opschonen: Het testboek begeleidt je ook bij het opschonen van het eindpunt en het gehoste model. Dit is een belangrijke stap om de kosten en middelen effectief te beheren, vooral als u niet van plan bent om het ingezette model meteen te gebruiken.

Stap 7: Bewaking en beheer

Na het testen zijn continue bewaking en beheer van je geïmplementeerde model essentieel.

  • Monitoren met Amazon CloudWatch: Controleer regelmatig de prestaties en gezondheid van je SageMaker endpoint met Amazon CloudWatch.

  • Beheer het eindpunt: Gebruik de SageMaker console voor doorlopend beheer van het endpoint. Dit omvat het schalen, bijwerken of opnieuw implementeren van het model als dat nodig is.

Als je deze stappen hebt doorlopen, heb je met succes een YOLOv8 model ingezet en getest op Amazon SageMaker Endpoints. Dit proces geeft je niet alleen praktische ervaring in het gebruik van AWS services voor machine learning implementaties, maar legt ook de basis voor het implementeren van andere geavanceerde modellen in de toekomst.

Samenvatting

Deze handleiding neemt je stap voor stap mee door YOLOv8 te implementeren op Amazon SageMaker Endpoints met behulp van AWS CloudFormation en de AWS Cloud Development Kit (CDK). Het proces omvat het klonen van de benodigde GitHub repository, het opzetten van de CDK omgeving, het uitrollen van het model met behulp van AWS services en het testen van de prestaties op SageMaker.

Raadpleeg voor meer technische details dit artikel op de AWS Machine Learning Blog. Je kunt ook de officiële Amazon SageMaker Documentatie bekijken voor meer inzicht in de verschillende functies en mogelijkheden.

Wil je meer weten over de verschillende YOLOv8 integraties? Bezoek de Ultralytics integratiegids pagina om extra tools en mogelijkheden te ontdekken die je machine-learning projecten kunnen verbeteren.



Aangemaakt 2024-01-04, Bijgewerkt 2024-05-03
Auteurs: glenn-jocher (3), abirami-vina (1)

Reacties