Ultralytics YOLO27:

Amazon SageMaker Uç Noktalarında YOLO26 Dağıtımı Rehberi#

Bilgisayarlı görü modellerini, örneğin Ultralytics YOLO26, Amazon SageMaker Uç Noktalarında dağıtmak, çeşitli makine öğrenimi uygulamaları için geniş olanaklar sunar. Bu modelleri etkili şekilde kullanmanın temelinde kurulum, yapılandırma ve dağıtım süreçlerini anlamak yatar. YOLO26, AWS tarafından sunulan güçlü ve ölçeklenebilir bir makine öğrenimi hizmeti olan Amazon SageMaker ile sorunsuz şekilde entegre edildiğinde daha da güçlü hale gelir.

Bu rehberde, YOLO26 PyTorch modellerini Amazon SageMaker Uç Noktalarında dağıtma sürecini adım adım öğreneceksin. AWS ortamını hazırlama, modeli uygun şekilde yapılandırma ve dağıtım için AWS CloudFormation ile AWS Bulut Geliştirme Kiti (CDK) gibi araçları kullanmanın temellerini öğreneceksin.

Amazon SageMaker#

Amazon SageMaker ML platform architecture

Amazon SageMaker, makine öğrenimi modelleri oluşturma, eğitme ve dağıtma sürecini kolaylaştıran bir Amazon Web Services (AWS) makine öğrenimi hizmetidir. Makine öğrenimi iş akışlarının çeşitli yönlerini yönetmek için geniş bir araç yelpazesi sunar. Buna modelleri ayarlamaya yönelik otomatik özellikler, modelleri büyük ölçekte eğitme seçenekleri ve modelleri üretime dağıtmak için basit yöntemler dahildir. SageMaker, popüler makine öğrenimi çatılarının yanı sıra farklı projeler için gereken esnekliği de destekler. Özellikleri arasında veri etiketleme, iş akışı yönetimi ve performans analizi de bulunur.

Amazon SageMaker Uç Noktalarında YOLO26 Dağıtımı#

YOLO26'yı Amazon SageMaker'da dağıtarak gerçek zamanlı çıkarım için yönetilen ortamını kullanabilir ve otomatik ölçeklendirme gibi özelliklerden yararlanabilirsin. Aşağıdaki AWS mimarisine göz at.

AWS SageMaker YOLO training architecture

Adım: AWS Ortamını Ayarlama#

Öncelikle aşağıdaki ön koşulların hazır olduğundan emin ol:

  • AWS Hesabı: Henüz bir hesabın yoksa bir AWS hesabı oluştur.

  • Yapılandırılmış IAM Rolleri: Amazon SageMaker, AWS CloudFormation ve Amazon S3 için gerekli izinlere sahip bir IAM rolüne ihtiyacın olacak. Bu rolde bu hizmetlere erişime izin veren politikalar bulunmalı.

  • AWS CLI: Henüz yüklü değilse AWS Komut Satırı Arayüzü (CLI) aracını indirip yükle ve hesap bilgilerinle yapılandır. Yükleme için AWS CLI talimatlarını izle.

  • AWS CDK: Henüz yüklü değilse dağıtım komut dosyasını oluşturmak için kullanılacak AWS Bulut Geliştirme Kiti'ni (CDK) yükle. Yükleme için AWS CDK talimatlarını izle.

  • Yeterli Hizmet Kotası: Amazon SageMaker'da iki ayrı kaynak için yeterli kotaya sahip olduğunu doğrula: biri uç nokta kullanımı için ml.m5.4xlarge, diğeri not defteri örneği kullanımı için ml.m5.4xlarge. Bu kaynakların her biri için en az bir kota değeri gerekir. Mevcut kotaların bu gereksinimin altındaysa her biri için artış talep etmen önemlidir. Kota artışı talebini AWS Hizmet Kotaları belgelerindeki ayrıntılı talimatları izleyerek gönderebilirsin.

Adım: YOLO26 SageMaker Deposu'nu Klonlama#

Sıradaki adım, YOLO26'yı SageMaker'da dağıtmak için gerekli kaynakları içeren özel 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 Klonla: host-yolov8-on-sagemaker-endpoint deposunu klonlamak için terminalinde aşağıdaki komutu çalıştır:

    git clone https://github.com/aws-samples/host-yolov8-on-sagemaker-endpoint.git
  • Klonlanan Dizine Git: Dizinini klonlanan depoya değiştir:

    cd host-yolov8-on-sagemaker-endpoint/yolov8-pytorch-cdk

Adım: CDK Ortamını Ayarlama#

Gerekli koda artık sahip olduğuna göre ortamını AWS CDK ile dağıtım yapacak şekilde ayarla.

  • Python Sanal Ortamı Oluştur: Bu işlem Python ortamını ve bağımlılıklarını yalıtır. Şunu çalıştır:

    python3 -m venv .venv
  • Sanal Ortamı Etkinleştir:

    source .venv/bin/activate
  • Bağımlılıkları Yükle: Proje için gereken Python bağımlılıklarını yükle:

    pip3 install -r requirements.txt
  • AWS CDK Kitaplığını Yükselt: AWS CDK kitaplığının en son sürümüne sahip olduğundan emin ol:

    pip install --upgrade aws-cdk-lib

Adım: AWS CloudFormation Yığını Oluşturma#

  • CDK Uygulamasını Sentezle: CDK kodundan AWS CloudFormation şablonunu oluştur:

    cdk synth
  • CDK Uygulamasını Önyükle: AWS ortamını CDK dağıtımı için hazırla:

    cdk bootstrap
  • Yığını Dağıt: Bu işlem gerekli AWS kaynaklarını oluşturur ve modelini dağıtır:

    cdk deploy

Adım: YOLO Modelini Dağıtma#

Dağıtım talimatlarına geçmeden önce Ultralytics tarafından sunulan YOLO26 modellerine göz at. Bu, proje gereksinimlerin için en uygun modeli seçmene yardımcı olur.

AWS CloudFormation Yığını oluşturduktan sonraki adım YOLO26'yı dağıtmaktır.

  • Not Defteri Örneğini Aç: AWS Console'a git ve Amazon SageMaker hizmetine geç. Panodan "Notebook Instances" seçeneğini belirle, ardından CDK dağıtım komut dosyan tarafından oluşturulan not defteri örneğini bul. Jupyter ortamına erişmek için not defteri örneğini aç.

  • inference.py'ye Eriş ve Değiştir: SageMaker not defteri örneğini Jupyter'da açtıktan sonra inference.py dosyasını bul. Aşağıda gösterildiği gibi inference.py içindeki output_fn işlevini düzenle ve söz dizimi hatası olmadığından emin olarak değişikliklerini komut dosyasına kaydet.

    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: Jupyter ortamında sm-notebook dizininde bulunan 1_DeployEndpoint.ipynb not defterini aç. YOLO26 modelini indirmek, güncellenmiş çıkarım koduyla paketlemek ve bir Amazon S3 klasörüne yüklemek için not defterindeki talimatları izle ve hücreleri çalıştır. Not defteri, YOLO26 modeli için bir SageMaker uç noktası oluşturma ve dağıtma sürecinde sana yol gösterecek.

Adım: Dağıtımını Test Etme#

YOLO26 modelin dağıtıldığına göre performansını ve işlevselliğini test etmen önemlidir.

  • Test Not Defterini Aç: Aynı Jupyter ortamında sm-notebook dizininde bulunan 2_TestEndpoint.ipynb not defterini bul ve aç.

  • Test Not Defterini Çalıştır: Dağıtılan SageMaker uç noktasını test etmek için not defterindeki talimatları izle. Buna uç noktaya bir görüntü gönderme ve çıkarım çalıştırma dahildir. Ardından, aşağıda gösterildiği gibi modelin performansını ve doğruluğunu görselleştirmek için çıktıyı çiz.

Testing Results YOLO26

  • Kaynakları Temizle: Test not defteri, uç noktayı ve barındırılan modeli temizleme sürecinde de sana yol gösterecek. Dağıtılan modeli hemen kullanmayı planlamıyorsan bu, maliyetleri ve kaynakları etkili şekilde yönetmek için önemli bir adımdır.

Adım: İzleme ve Yönetim#

Testten sonra dağıtılan modelini sürekli olarak izlemek ve yönetmek çok önemlidir.

  • Amazon CloudWatch ile İzle: Amazon CloudWatch kullanarak SageMaker uç noktanın performansını ve durumunu düzenli olarak kontrol et.

  • Uç Noktayı Yönet: Uç noktanın sürekli yönetimi için SageMaker konsolunu kullan. Buna gerektiğinde modeli ölçeklendirme, güncelleme veya yeniden dağıtma dahildir.

Bu adımları tamamlayarak bir YOLO26 modelini Amazon SageMaker Uç Noktalarında başarıyla dağıtmış ve test etmiş olacaksın. Bu süreç, sana 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ğıtman için de temel oluşturur.

Özet#

Bu rehberde AWS CloudFormation ve AWS Bulut Geliştirme Kiti'ni (CDK) kullanarak YOLO26'yı Amazon SageMaker Uç Noktalarında dağıtma sürecini adım adım inceledin. Süreç; gerekli GitHub deposunu klonlamayı, CDK ortamını ayarlamayı, AWS hizmetlerini kullanarak modeli dağıtmayı ve SageMaker'daki performansını test etmeyi içerir.

Daha fazla teknik ayrıntı için AWS Machine Learning Blog'daki bu makaleye başvur. Çeşitli özellikler ve işlevler hakkında daha fazla bilgi edinmek için resmi Amazon SageMaker Belgelerine de göz atabilirsin.

Farklı YOLO26 entegrasyonları hakkında daha fazla bilgi edinmek ister misin? Makine öğrenimi projelerini geliştirebilecek ek araçları ve yetenekleri keşfetmek için Ultralytics entegrasyonları rehberi sayfasını ziyaret et.

SSS#

  • Ultralytics YOLO26 modelini Amazon SageMaker Uç Noktalarında dağıtmak için şu adımları izle:

    1. AWS Ortamını Ayarla: Bir AWS Hesabın, gerekli izinlere sahip IAM rollerin ve yapılandırılmış AWS CLI olmasını sağla. Henüz yapmadıysan AWS CDK'yı yükle (AWS CDK talimatlarına bak).
    2. YOLO26 SageMaker Deposunu Klonla:
      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ı Ayarla: Bir Python sanal ortamı oluştur, etkinleştir, bağımlılıkları yükle ve AWS CDK kitaplığını yükselt.
      python3 -m venv .venv
      source .venv/bin/activate
      pip3 install -r requirements.txt
      pip install --upgrade aws-cdk-lib
    4. AWS CDK Kullanarak Dağıt: CloudFormation yığınını sentezle ve dağıt, ortamı önyükle.
      cdk synth
      cdk bootstrap
      cdk deploy

    Daha fazla ayrıntı için belgeler bölümünü incele.

  • YOLO26'yı Amazon SageMaker'da dağıtmak için aşağıdaki ön koşullara sahip olduğundan emin ol:

    1. AWS Hesabı: Etkin bir AWS hesabı (buradan kaydol).
    2. IAM Rolleri: SageMaker, CloudFormation ve Amazon S3 için izinleri yapılandırılmış IAM rolleri.
    3. AWS CLI: Yüklü ve yapılandırılmış AWS Komut Satırı Arayüzü (AWS CLI yükleme kılavuzu).
    4. AWS CDK: Yüklü AWS Bulut Geliştirme Kiti (CDK kurulum kılavuzu).
    5. Hizmet Kotaları: Hem uç nokta hem de not defteri kullanımı için ml.m5.4xlarge örneklerinde yeterli kotalar (kota artışı talep et).

    Ayrıntılı kurulum için bu bölüme başvur.

  • Ultralytics YOLO26'yı Amazon SageMaker'da kullanmak çeşitli avantajlar sunar:

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

    SageMaker kullanmanın avantajları hakkında giriş bölümünde daha fazla bilgi edin.

  • Evet, Amazon SageMaker'da YOLO26 için çıkarım mantığını özelleştirebilirsin:

    1. inference.py Öğesini Değiştir: Çıktı biçimlerini ihtiyaçlarına göre uyarlamak için inference.py dosyasındaki output_fn işlevini bul ve özelleştir.

      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: Bu değişiklikleri dahil etmek için sağlanan Jupyter not defterlerini (1_DeployEndpoint.ipynb) kullanarak modeli yeniden dağıttığından emin ol.

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

  • Dağıtılan YOLO26 modelini Amazon SageMaker'da test etmek için:

    1. Test Not Defterini Aç: SageMaker Jupyter ortamında 2_TestEndpoint.ipynb not defterini bul.
    2. Not Defterini Çalıştır: Uç noktaya bir görüntü göndermek, çıkarım gerçekleştirmek ve sonuçları görüntülemek için not defterindeki talimatları izle.
    3. Sonuçları Görselleştir: Tespit edilen nesnelerin çevresindeki sınırlayıcı kutular gibi performans ölçümlerini görselleştirmek için yerleşik çizim işlevlerini kullan.

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

Yorumlar