İçeriğe geç

Amazon SageMaker Uç Noktalarında YOLOv8 'u Dağıtma Kılavuzu

Amazon SageMaker Uç Noktalarında Ultralytics' YOLOv8 gibi gelişmiş bilgisayarla görme modellerini dağıtmak, çeşitli makine öğrenimi uygulamaları için geniş bir olasılık yelpazesi sunar. Bu modelleri etkili bir şekilde kullanmanın anahtarı, kurulum, yapılandırma ve dağıtım süreçlerini anlamakta yatıyor. YOLOv8 , AWS'nin sağlam ve ölçeklenebilir bir makine öğrenimi hizmeti olan Amazon SageMaker ile sorunsuz bir şekilde entegre edildiğinde daha da güçlü hale geliyor.

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.

  • Yapılandırılmış IAM Rolleri: Amazon SageMaker, AWS CloudFormation ve Amazon S3 için gerekli izinlere sahip bir IAM rolüne sahip olmanız gerekir. Bu rol, bu hizmetlere erişmesine izin veren ilkelere sahip olmalıdır.

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

  • Test Not Defteri'ni çalıştırın: Dağıtılan SageMaker uç noktasını test etmek için not defterindeki talimatları izleyin. Bu, uç noktaya görüntü göndermeyi ve çıkarımları çalıştırmayı içerir. Ardından, aşağıda gösterildiği gibi modelin performansını ve doğruluğunu görselleştirmek için çıktıyı çizeceksiniz.

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.

SSS

Amazon SageMaker Uç Noktalarında Ultralytics YOLOv8 modelini nasıl dağıtabilirim?

Amazon SageMaker Uç Noktalarında Ultralytics YOLOv8 modelini dağıtmak için aşağıdaki adımları izleyin:

  1. AWS Ortamınızı Kurun: Bir AWS Hesabınız, gerekli izinlere sahip IAM rolleriniz ve AWS CLI yapılandırılmış olduğundan emin olun. Henüz yapılmadıysa AWS CDK'yı yükleyin (AWS CDK talimatlarına bakın).
  2. YOLOv8 SageMaker Deposunu Klonlama:
    git clone https://github.com/aws-samples/host-yolov8-on-sagemaker-endpoint.git
    cd host-yolov8-on-sagemaker-endpoint/yolov8-pytorch-cdk
    
  3. CDK Ortamını Kurma: Bir Python sanal ortamı oluşturun, etkinleştirin, bağımlılıkları yükleyin ve AWS CDK kütüphanesini yükseltin.
    python3 -m venv .venv
    source .venv/bin/activate
    pip3 install -r requirements.txt
    pip install --upgrade aws-cdk-lib
    
  4. AWS CDK kullanarak dağıtma: CloudFormation yığınını sentezleyin ve dağıtın, ortamı önyükleyin.
    cdk synth
    cdk bootstrap
    cdk deploy
    

Daha fazla ayrıntı için dokümantasyon bölümünü inceleyin.

Amazon SageMaker'da YOLOv8 'u dağıtmak için ön koşullar nelerdir?

Amazon SageMaker'da YOLOv8 adresini dağıtmak için aşağıdaki ön koşullara sahip olduğunuzdan emin olun:

  1. AWS Hesabı: Aktif AWS hesabı(buradan kaydolun).
  2. IAM Rolleri: SageMaker, CloudFormation ve Amazon S3 için izinlere sahip yapılandırılmış IAM rolleri.
  3. AWS CLI: AWS Komut Satırı Arayüzü kuruldu ve yapılandırıldı(AWS CLI kurulum kılavuzu).
  4. AWS CDK: AWS Bulut Geliştirme Kiti(CDK kurulum kılavuzu) yüklendi.
  5. Hizmet Kotaları: için yeterli kota ml.m5.4xlarge hem uç nokta hem de notebook kullanımı için örnekler (kota artırımı talebi).

Ayrıntılı kurulum için bu bölüme bakın.

Neden Amazon SageMaker'da Ultralytics YOLOv8 adresini kullanmalıyım?

Amazon SageMaker'da Ultralytics YOLOv8 adresini kullanmak çeşitli avantajlar sunar:

  1. Ölçeklenebilirlik ve Yönetim: SageMaker, gerçek zamanlı çıkarım ihtiyaçlarına yardımcı olan otomatik ölçeklendirme gibi özelliklerle yönetilen bir ortam sağlar.
  2. AWS Hizmetleri ile Entegrasyon: Veri depolama için S3, kod olarak altyapı için CloudFormation ve izleme için CloudWatch gibi diğer AWS hizmetleriyle sorunsuz bir şekilde entegre olun.
  3. Dağıtım Kolaylığı: AWS CDK komut dosyalarını kullanarak basitleştirilmiş kurulum ve kolaylaştırılmış dağıtım süreçleri.
  4. Performans: Büyük ölçekli çıkarım görevlerini verimli bir şekilde çalıştırmak için Amazon SageMaker'ın yüksek performanslı altyapısından yararlanın.

Giriş bölümünde SageMaker kullanmanın avantajları hakkında daha fazlasını keşfedin.

Amazon SageMaker'da YOLOv8 için çıkarım mantığını özelleştirebilir miyim?

Evet, Amazon SageMaker'da YOLOv8 için çıkarım mantığını özelleştirebilirsiniz:

  1. Değiştirmek inference.py: Bulun ve özelleştirin output_fn fonksiyonu içinde inference.py dosyasını çıktı biçimlerini uyarlamak için kullanabilirsiniz.

    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. Güncellenmiş Modeli Dağıtın: Sağlanan Jupyter not defterlerini kullanarak modeli yeniden dağıttığınızdan emin olun (1_DeployEndpoint.ipynb) bu değişiklikleri içerecek şekilde düzenleyin.

Değiştirilmiş modeli dağıtmak için ayrıntılı adımlara bakın.

Dağıtılan YOLOv8 modelini Amazon SageMaker üzerinde nasıl test edebilirim?

Dağıtılan YOLOv8 modelini Amazon SageMaker üzerinde test etmek için:

  1. Test Defterini Açın: Bulmak 2_TestEndpoint.ipynb SageMaker Jupyter ortamında not defteri.
  2. Not Defterini çalıştırın: Uç noktaya bir görüntü göndermek, çıkarım yapmak ve sonuçları görüntülemek için not defterinin talimatlarını izleyin.
  3. Sonuçları Görselleştirin: Algılanan nesnelerin etrafındaki sınırlayıcı kutular gibi performans ölçümlerini görselleştirmek için yerleşik çizim işlevlerini kullanın.

Kapsamlı test talimatları için test bölümünü ziyaret edin.



Oluşturma 2024-01-04, Güncelleme 2024-07-05
Yazarlar: glenn-jocher (7), ambitious-octopus (1), sergiuwaxmann (1), abirami-vina (1)

Yorumlar