─░├žeri─če ge├ž

Amazon SageMaker U├ž Noktalar─▒nda YOLOv8 'u Da─č─▒tma K─▒lavuzu

Deploying advanced computer vision models like Ultralytics' YOLOv8 on Amazon SageMaker Endpoints opens up a wide range of possibilities for various machine learning applications. The key to effectively using these models lies in understanding their setup, configuration, and deployment processes. YOLOv8 becomes even more powerful when integrated seamlessly with Amazon SageMaker, a robust and scalable machine learning service by AWS.

Bu k─▒lavuz size YOLOv8 PyTorch modellerini Amazon SageMaker U├ž Noktalar─▒na da─č─▒tma s├╝recini ad─▒m ad─▒m anlatacakt─▒r. AWS ortam─▒n─▒z─▒ haz─▒rlaman─▒n, modeli uygun ┼čekilde yap─▒land─▒rman─▒n ve da─č─▒t─▒m i├žin AWS CloudFormation ve AWS Cloud Development Kit (CDK) gibi ara├žlar─▒ kullanman─▒n temellerini ├Â─čreneceksiniz.

Amazon SageMaker

Amazon SageMaker'a Genel Bak─▒┼č

Amazon SageMaker, Amazon Web Services (AWS) taraf─▒ndan sunulan ve makine ├Â─črenimi modelleri olu┼čturma, e─čitme ve da─č─▒tma s├╝recini basitle┼čtiren bir makine ├Â─črenimi hizmetidir. Makine ├Â─črenimi i┼č ak─▒┼člar─▒n─▒n ├že┼čitli y├Ânlerini ele almak i├žin geni┼č bir ara├ž yelpazesi sunar. Bu ara├žlar aras─▒nda modelleri ayarlamaya y├Ânelik otomatik ├Âzellikler, modelleri geni┼č ├Âl├žekte e─čitmeye y├Ânelik se├ženekler ve modelleri ├╝retime da─č─▒tmaya y├Ânelik basit y├Ântemler yer al─▒r. SageMaker, pop├╝ler makine ├Â─črenimi ├žer├ževelerini destekleyerek ├že┼čitli projeler i├žin gereken esnekli─či sunar. ├ľzellikleri ayr─▒ca veri etiketleme, i┼č ak─▒┼č─▒ y├Ânetimi ve performans analizini de kapsar.

Amazon SageMaker U├ž Noktalar─▒na YOLOv8 adresini da─č─▒tma

YOLOv8 adresini Amazon SageMaker'da da─č─▒tmak, ger├žek zamanl─▒ ├ž─▒kar─▒m i├žin y├Ânetilen ortam─▒n─▒ kullanman─▒z─▒ ve otomatik ├Âl├žeklendirme gibi ├Âzelliklerden yararlanman─▒z─▒ sa─člar. A┼ča─č─▒daki AWS mimarisine bir g├Âz at─▒n.

AWS Mimarisi

Ad─▒m 1: AWS Ortam─▒n─▒z─▒ Kurun

├ľncelikle, a┼ča─č─▒daki ├Ân ko┼čullara sahip oldu─čunuzdan emin olun:

  • Bir AWS Hesab─▒: Hen├╝z bir hesab─▒n─▒z yoksa, bir AWS hesab─▒ i├žin kaydolun.

  • Configured IAM Roles: You'll need an IAM role with the necessary permissions for Amazon SageMaker, AWS CloudFormation, and Amazon S3. This role should have policies that allow it to access these services.

  • AWS CLI: Hen├╝z y├╝klenmemi┼čse, AWS Komut Sat─▒r─▒ Aray├╝z├╝n├╝ (CLI) indirip y├╝kleyin ve hesap bilgilerinizle yap─▒land─▒r─▒n. Kurulum i├žin AWS CLI talimatlar─▒n─▒ izleyin.

  • AWS CDK: Hen├╝z kurulmad─▒ysa, da─č─▒t─▒m─▒n komut dosyas─▒n─▒ yazmak i├žin kullan─▒lacak olan AWS Bulut Geli┼čtirme Kitini (CDK) kurun. Kurulum i├žin AWS CDK talimatlar─▒n─▒ izleyin.

  • Yeterli Hizmet Kotas─▒: Amazon SageMaker'da iki ayr─▒ kaynak i├žin yeterli kotan─▒z oldu─čunu onaylay─▒n: biri ml.m5.4xlarge u├ž nokta kullan─▒m─▒ i├žin ve di─čeri ml.m5.4xlarge notebook ├Ârne─či kullan─▒m─▒ i├žin. Bunlar─▒n her biri en az bir kota de─čeri gerektirir. Mevcut kotalar─▒n─▒z bu gereksinimin alt─▒ndaysa, her biri i├žin bir art─▒┼č talep etmeniz ├Ânemlidir. Kota art─▒r─▒m─▒ i├žin a┼ča─č─▒daki ayr─▒nt─▒l─▒ talimatlar─▒ izleyerek talepte bulunabilirsiniz AWS Hizmet Kotalar─▒ belgeleri.

Ad─▒m 2: YOLOv8 SageMaker Deposunu Klonlay─▒n

Bir sonraki ad─▒m, YOLOv8 adresini SageMaker'da da─č─▒tmak i├žin kaynaklar─▒ i├žeren belirli AWS deposunu klonlamakt─▒r. GitHub'da bar─▒nd─▒r─▒lan bu depo, gerekli CDK komut dosyalar─▒n─▒ ve yap─▒land─▒rma dosyalar─▒n─▒ i├žerir.

  • GitHub Deposunu Klonlay─▒n: Host-yolov8-on-sagemaker-endpoint deposunu klonlamak i├žin terminalinizde a┼ča─č─▒daki komutu ├žal─▒┼čt─▒r─▒n:
git clone https://github.com/aws-samples/host-yolov8-on-sagemaker-endpoint.git
  • Klonlanm─▒┼č Dizine gidin: Dizininizi klonlanm─▒┼č depoya de─či┼čtirin:
cd host-yolov8-on-sagemaker-endpoint/yolov8-pytorch-cdk

Ad─▒m 3: CDK Ortam─▒n─▒ Kurun

Art─▒k gerekli koda sahip oldu─čunuza g├Âre, AWS CDK ile da─č─▒t─▒m yapmak i├žin ortam─▒n─▒z─▒ ayarlay─▒n.

  • Bir Python Sanal Ortam─▒ olu┼čturun: Bu, Python ortam─▒n─▒z─▒ ve ba─č─▒ml─▒l─▒klar─▒n─▒z─▒ izole eder. ├çal─▒┼čt─▒r─▒n:
python3 -m venv .venv
  • Sanal Ortam─▒ etkinle┼čtirin:
source .venv/bin/activate
  • Ba─č─▒ml─▒l─▒klar─▒ Y├╝kleyin: Proje i├žin gerekli Python ba─č─▒ml─▒l─▒klar─▒n─▒ y├╝kleyin:
pip3 install -r requirements.txt
  • AWS CDK Kitapl─▒─č─▒n─▒ y├╝kseltin: AWS CDK kitapl─▒─č─▒n─▒n en son s├╝r├╝m├╝ne sahip oldu─čunuzdan emin olun:
pip install --upgrade aws-cdk-lib

Ad─▒m 4: AWS CloudFormation Y─▒─č─▒n─▒n─▒ Olu┼čturun

  • CDK Uygulamas─▒n─▒ sentezleyin: CDK kodunuzdan AWS CloudFormation ┼čablonunu olu┼čturun:
cdk synth
  • CDK Uygulamas─▒n─▒ ├ľny├╝kleyin: AWS ortam─▒n─▒z─▒ CDK da─č─▒t─▒m─▒ i├žin haz─▒rlay─▒n:
cdk bootstrap
  • Y─▒─č─▒n─▒ Da─č─▒t─▒n: Bu, gerekli AWS kaynaklar─▒n─▒ olu┼čturacak ve modelinizi da─č─▒tacakt─▒r:
cdk deploy

Ad─▒m 5: YOLOv8 Modelini Da─č─▒t─▒n

Da─č─▒t─▒m talimatlar─▒na ge├žmeden ├Ânce, Ultralytics taraf─▒ndan sunulanYOLOv8 modelleri yelpazesine g├Âz att─▒─č─▒n─▒zdan emin olun. Bu, proje gereksinimleriniz i├žin en uygun modeli se├žmenize yard─▒mc─▒ olacakt─▒r.

AWS CloudFormation Stack'i olu┼čturduktan sonra, bir sonraki ad─▒m YOLOv8 adresini da─č─▒tmakt─▒r.

  • Not Defteri ├ľrne─čini a├ž─▒n: AWS Console'a gidin ve Amazon SageMaker hizmetine gidin. Kontrol panelinden "Notebook ├ľrnekleri "ni se├žin, ard─▒ndan CDK da─č─▒t─▒m komut dosyan─▒z taraf─▒ndan olu┼čturulan notebook ├Ârne─čini bulun. Jupyter ortam─▒na eri┼čmek i├žin notebook ├Ârne─čini a├ž─▒n.

  • inference.py dosyas─▒na eri┼čin ve de─či┼čtirin: Jupyter'de SageMaker notebook ├Ârne─čini a├žt─▒ktan sonra inference.py dosyas─▒n─▒ bulun. inference.py dosyas─▒ndaki output_fn i┼člevini a┼ča─č─▒da g├Âsterildi─či gibi d├╝zenleyin ve s├Âz dizimi hatas─▒ olmad─▒─č─▒ndan emin olarak de─či┼čikliklerinizi beti─če kaydedin.

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)
  • 1_DeployEndpoint.ipynb Kullanarak U├ž Noktay─▒ Da─č─▒t─▒n: Jupyter ortam─▒nda, sm-notebook dizininde bulunan 1_DeployEndpoint.ipynb not defterini a├ž─▒n. Not defterindeki talimatlar─▒ izleyin ve YOLOv8 modelini indirmek, g├╝ncellenmi┼č ├ž─▒kar─▒m koduyla paketlemek ve bir Amazon S3 kovas─▒na y├╝klemek i├žin h├╝creleri ├žal─▒┼čt─▒r─▒n. Not defteri, YOLOv8 modeli i├žin bir SageMaker u├ž noktas─▒ olu┼čturma ve da─č─▒tma konusunda size rehberlik edecektir.

Ad─▒m 6: Da─č─▒t─▒m─▒n─▒z─▒ Test Etme

Art─▒k YOLOv8 modeliniz konu┼čland─▒r─▒ld─▒─č─▒na g├Âre, performans─▒n─▒ ve i┼člevselli─čini test etmek ├Ânemlidir.

  • Test Not Defterini a├ž─▒n: Ayn─▒ Jupyter ortam─▒nda, yine sm-notebook dizininde bulunan 2_TestEndpoint.ipynb not defterini bulun ve a├ž─▒n.

  • Run the Test Notebook: Follow the instructions within the notebook to test the deployed SageMaker endpoint. This includes sending an image to the endpoint and running inferences. Then, you'll plot the output to visualize the model's performance and accuracy, as shown below.

Test Sonu├žlar─▒ YOLOv8

  • Temizleme Kaynaklar─▒: Test not defteri, u├ž noktay─▒ ve bar─▒nd─▒r─▒lan modeli temizleme s├╝recinde de size rehberlik edecektir. Bu, ├Âzellikle da─č─▒t─▒lan modeli hemen kullanmay─▒ planlam─▒yorsan─▒z, maliyetleri ve kaynaklar─▒ etkili bir ┼čekilde y├Ânetmek i├žin ├Ânemli bir ad─▒md─▒r.

Ad─▒m 7: ─░zleme ve Y├Ânetim

Testten sonra, konu┼čland─▒r─▒lm─▒┼č modelinizin s├╝rekli izlenmesi ve y├Ânetilmesi ├žok ├Ânemlidir.

  • Amazon CloudWatch ile izleyin: Amazon CloudWatch kullanarak SageMaker u├ž noktan─▒z─▒n performans─▒n─▒ ve sa─čl─▒─č─▒n─▒ d├╝zenli olarak kontrol edin.

  • U├ž Noktay─▒ Y├Ânetin: U├ž noktan─▒n s├╝rekli y├Ânetimi i├žin SageMaker konsolunu kullan─▒n. Bu, modeli gerekti─či gibi ├Âl├žeklendirmeyi, g├╝ncellemeyi veya yeniden da─č─▒tmay─▒ i├žerir.

Bu ad─▒mlar─▒ tamamlad─▒─č─▒n─▒zda, Amazon SageMaker Endpoints ├╝zerinde bir YOLOv8 modelini ba┼čar─▒yla da─č─▒tm─▒┼č ve test etmi┼č olacaks─▒n─▒z. Bu s├╝re├ž size yaln─▒zca makine ├Â─črenimi da─č─▒t─▒m─▒ i├žin AWS hizmetlerini kullanma konusunda pratik deneyim kazand─▒rmakla kalmaz, ayn─▒ zamanda gelecekte di─čer geli┼čmi┼č modelleri da─č─▒tmak i├žin de temel olu┼čturur.

├ľzet

Bu k─▒lavuz, AWS CloudFormation ve AWS Cloud Development Kit (CDK) kullanarak YOLOv8 adresini Amazon SageMaker U├ž Noktalar─▒na da─č─▒tma konusunda sizi ad─▒m ad─▒m y├Ânlendirdi. S├╝re├ž, gerekli GitHub deposunu klonlamay─▒, CDK ortam─▒n─▒ kurmay─▒, AWS hizmetlerini kullanarak modeli da─č─▒tmay─▒ ve SageMaker ├╝zerindeki performans─▒n─▒ test etmeyi i├žerir.

Daha fazla teknik ayr─▒nt─▒ i├žin AWS Machine Learning Blog'daki bu makaleye bak─▒n. ├çe┼čitli ├Âzellikler ve i┼člevler hakk─▒nda daha fazla bilgi i├žin resmi Amazon SageMaker Belgelerine de g├Âz atabilirsiniz.

Farkl─▒ YOLOv8 entegrasyonlar─▒ hakk─▒nda daha fazla bilgi edinmek ister misiniz? Makine ├Â─črenimi projelerinizi geli┼čtirebilecek ek ara├žlar─▒ ve yetenekleri ke┼čfetmek i├žin Ultralytics entegrasyonlar k─▒lavuzu sayfas─▒n─▒ ziyaret edin.



Created 2024-01-04, Updated 2024-06-02
Authors: glenn-jocher (6), sergiuwaxmann (1), abirami-vina (1)

Yorumlar