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 machtigingen voor Amazon SageMaker, AWS CloudFormation en Amazon S3. Deze rol moet beleid hebben dat toegang geeft tot deze services.

  • 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):
    """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)
  • 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.

  • Voer het testnotitieblok uit: volg de instructies in het notebook om het ge├»mplementeerde SageMaker-eindpunt te testen. Dit omvat het verzenden van een afbeelding naar het eindpunt en het uitvoeren van inferenties. Vervolgens zet u de uitvoer uit om de prestaties en nauwkeurigheid van het model te visualiseren, zoals hieronder weergegeven.

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.

FAQ

Hoe zet ik het Ultralytics YOLOv8 model in op Amazon SageMaker Endpoints?

Volg deze stappen om het Ultralytics YOLOv8 model op Amazon SageMaker Endpoints te implementeren:

  1. Stel je AWS-omgeving in: Zorg ervoor dat je een AWS account hebt, IAM rollen met de nodige machtigingen en de AWS CLI geconfigureerd. Installeer AWS CDK als je dat nog niet hebt gedaan (raadpleeg de AWS CDK instructies).
  2. De YOLOv8 SageMaker-opslagplaats klonen:
    git clone https://github.com/aws-samples/host-yolov8-on-sagemaker-endpoint.git
    cd host-yolov8-on-sagemaker-endpoint/yolov8-pytorch-cdk
    
  3. De CDK-omgeving instellen: Maak een Python virtuele omgeving, activeer deze, installeer de afhankelijkheden en upgrade de AWS CDK bibliotheek.
    python3 -m venv .venv
    source .venv/bin/activate
    pip3 install -r requirements.txt
    pip install --upgrade aws-cdk-lib
    
  4. Implementeren met AWS CDK: De CloudFormation-stack samenstellen en implementeren, de omgeving opstarten.
    cdk synth
    cdk bootstrap
    cdk deploy
    

Raadpleeg de documentatiesectie voor meer informatie.

Wat zijn de vereisten voor het implementeren van YOLOv8 op Amazon SageMaker?

Om YOLOv8 op Amazon SageMaker te implementeren, moet je ervoor zorgen dat je aan de volgende voorwaarden voldoet:

  1. AWS-account: Actief AWS-account(hier aanmelden).
  2. IAM rollen: IAM-rollen geconfigureerd met machtigingen voor SageMaker, CloudFormation en Amazon S3.
  3. AWS CLI: AWS Command Line Interface geïnstalleerd en geconfigureerd(AWS CLI installatiegids).
  4. AWS CDK: Geïnstalleerde AWS Cloud Development Kit(CDK installatiegids).
  5. Servicequota: Voldoende quota voor ml.m5.4xlarge instanties voor zowel eindpunt- als notebookgebruik (een quotumverhoging aanvragen).

Raadpleeg deze sectie voor gedetailleerde instellingen.

Waarom zou ik Ultralytics YOLOv8 gebruiken op Amazon SageMaker?

Het gebruik van Ultralytics YOLOv8 op Amazon SageMaker biedt verschillende voordelen:

  1. Schaalbaarheid en beheer: SageMaker biedt een beheerde omgeving met functies als automatisch schalen, wat helpt bij real-time inferentiebehoeften.
  2. Integratie met AWS-services: Naadloze integratie met andere AWS diensten, zoals S3 voor gegevensopslag, CloudFormation voor infrastructure as code en CloudWatch voor monitoring.
  3. Eenvoudige implementatie: Vereenvoudigde installatie met behulp van AWS CDK-scripts en gestroomlijnde implementatieprocessen.
  4. Prestaties: Maak gebruik van de krachtige infrastructuur van Amazon SageMaker om grootschalige inferentietaken effici├źnt uit te voeren.

Lees meer over de voordelen van SageMaker in de inleiding.

Kan ik de inferentielogica voor YOLOv8 op Amazon SageMaker aanpassen?

Ja, je kunt de inferentielogica voor YOLOv8 aanpassen op Amazon SageMaker:

  1. Aanpassen inference.py: Zoek en pas de output_fn functie in de inference.py bestand om uitvoerformaten op maat te maken.

    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)
    
  2. Geactualiseerd model implementeren: Zorg ervoor dat je het model opnieuw implementeert met behulp van de meegeleverde Jupyter-notebooks (1_DeployEndpoint.ipynb) om deze wijzigingen op te nemen.

Raadpleeg de gedetailleerde stappen voor het implementeren van het gewijzigde model.

Hoe kan ik het ingezette YOLOv8 model testen op Amazon SageMaker?

Om het ingezette YOLOv8 model op Amazon SageMaker te testen:

  1. Open het testnotitieboek: Zoek de 2_TestEndpoint.ipynb notebook in de SageMaker Jupyter omgeving.
  2. Start het notitieboek: Volg de instructies van het notitieboek om een afbeelding naar het eindpunt te sturen, inferentie uit te voeren en resultaten weer te geven.
  3. Resultaten visualiseren: Gebruik de ingebouwde plotfuncties om prestatiecijfers te visualiseren, zoals bounding boxes rond gedetecteerde objecten.

Ga voor uitgebreide testinstructies naar de testsectie.



Aangemaakt 2024-01-04, Bijgewerkt 2024-07-05
Auteurs: glenn-jocher (7), ambitious-octopus (1), sergiuwaxmann (1), abirami-vina (1)

Reacties