Ultralytics YOLO27:
Get Started

YOLO26'yı Amazon SageMaker Uç Noktalarına Dağıtma Kılavuzu#

Ultralytics'in YOLO26 modeli gibi gelişmiş bilgisayarlı görü modellerini Amazon SageMaker Uç Noktalarına dağıtmak, çeşitli makine öğrenimi uygulamaları için çok sayıda olasılığın önünü açar. Bu modellerden etkili biçimde yararlanmanın anahtarı, kurulum, yapılandırma ve dağıtım süreçlerini anlamaktır. AWS'nin güçlü ve ölçeklenebilir bir makine öğrenimi hizmeti olan Amazon SageMaker ile sorunsuz biçimde entegre edildiğinde YOLO26 daha da güçlü hale gelir.

Bu kılavuzda, YOLO26 PyTorch modellerini Amazon SageMaker Uç Noktalarına dağıtma sürecini adım adım anlatacağız. AWS ortamını hazırlamanın, modeli uygun şekilde yapılandırmanın ve dağıtım için AWS CloudFormation ile AWS Cloud Development Kit (CDK) gibi araçları kullanmanın temel adımlarını öğreneceksin.

Amazon SageMaker#

Amazon SageMaker ML platform architecture

Amazon SageMaker, makine öğrenimi modelleri oluşturma, eğitme ve dağıtma süreçlerini kolaylaştıran Amazon Web Services (AWS) makine öğrenimi hizmetidir. Makine öğrenimi iş akışlarının farklı yönlerini yönetmek için geniş bir araç yelpazesi sunar. Bu araçlar arasında modelleri ayarlamaya yönelik otomatik özellikler, modelleri büyük ölçekte eğitme seçenekleri ve modelleri üretime dağıtmaya yönelik basit yöntemler bulunur. SageMaker, popüler makine öğrenimi çerçevelerini destekleyerek farklı projeler için gereken esnekliği sağlar. Özellikleri veri etiketleme, iş akışı yönetimi ve performans analizini de kapsar.

YOLO26'yı Amazon SageMaker Uç Noktalarına Dağıtma#

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

AWS SageMaker YOLO training architecture

Adım 1: AWS ortamını yapılandır#

Öncelikle aşağıdaki ön koşulların karşılandığından emin ol:

  • Bir AWS hesabı: Henüz 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 rol, söz konusu hizmetlere erişmesine izin veren politikalara sahip olmalıdır.

  • AWS CLI: Henüz yüklü değilse AWS Command Line Interface (CLI) aracını indirip yükle ve hesap bilgilerinle yapılandır. Kurulum için AWS CLI yönergelerini izle.

  • AWS CDK: Henüz yüklü değilse dağıtım betiklerini oluşturmak için kullanacağın AWS Cloud Development Kit (CDK) aracını yükle. Kurulum için AWS CDK yönergelerini 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. 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ışını, AWS Hizmet Kotaları belgelerindeki ayrıntılı yönergeleri izleyerek talep edebilirsin.

Adım 2: YOLO26 SageMaker deposunu klonla#

Sonraki adım, YOLO26'yı SageMaker'a dağıtmak için gereken kaynakları içeren AWS deposunu klonlamaktır. GitHub'da barındırılan bu depoda gerekli CDK betikleri ve yapılandırma dosyaları bulunur.

  • GitHub Deposunu Klonla: host-yolov8-on-sagemaker-endpoint deposunu klonlamak için terminalinde şu komutu çalıştır:

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

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

Adım 3: CDK ortamını kur#

Gerekli koda artık sahip olduğuna göre AWS CDK ile dağıtım yapmak için ortamını kur.

  • 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 gerekli Python bağımlılıklarını yükle:

    pip3 install -r requirements.txt
  • AWS CDK Kütüphanesini Yükselt: AWS CDK kütüphanesinin en son sürümüne sahip olduğundan emin ol:

    pip install --upgrade aws-cdk-lib

Adım 4: AWS CloudFormation yığınını oluştur#

  • CDK Uygulamasını Derle: 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şturup modelini dağıtır:

    cdk deploy

Adım 5: YOLO modelini dağıt#

Dağıtım yönergelerine geçmeden önce Ultralytics'in sunduğu YOLO26 modelleri yelpazesine göz at. Böylece proje gereksinimlerine en uygun modeli seçebilirsin.

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

  • Not Defteri Örneğini Aç: AWS Konsolu'na git ve Amazon SageMaker hizmetine geç. Kontrol panelinden "Notebook Instances" seçeneğini belirle, ardından CDK dağıtım betiğinin oluşturduğu not defteri örneğini bul. Jupyter ortamına erişmek için not defteri örneğini aç.

  • inference.py Dosyasına Eriş ve Dosyayı Düzenle: 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 betiğe kaydet.

    import json
    
    def output_fn(prediction_output, content_type):
        """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 ile Uç Noktayı Dağıt: Jupyter ortamında sm-notebook dizinindeki 1_DeployEndpoint.ipynb not defterini aç. Not defterindeki yönergeleri izle ve YOLO26 modelini indirmek, güncellenmiş çıkarım koduyla paketlemek ve Amazon S3 kovasına yüklemek için hücreleri çalıştır. Not defteri, YOLO26 modeli için bir SageMaker uç noktası oluşturup dağıtma sürecinde sana yol gösterecek.

Adım 6: Dağıtımını test et#

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

  • Test Not Defterini Aç: Aynı Jupyter ortamında yine 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 yönergeleri izle. Bu, uç noktaya bir görüntü göndermeyi ve çıkarım ç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ının grafiğini oluştur.

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, özellikle maliyetleri ve kaynakları etkili biçimde yönetmek için bu adım önemlidir.

Adım 7: İzleme ve yönetim#

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

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

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

Bu adımları tamamlayarak YOLO26 modelini Amazon SageMaker Endpoints üzerinde başarıyla dağıtmış ve test etmiş olacaksın. Bu süreç, makine öğrenimi dağıtımı için AWS hizmetlerini kullanma konusunda uygulamalı deneyim kazandırmanın yanı sıra gelecekte diğer gelişmiş modelleri dağıtmanın da temelini oluşturur.

Özet#

Bu kılavuzda, AWS CloudFormation ve AWS Bulut Geliştirme Kiti (CDK) kullanarak YOLO26'yı Amazon SageMaker Endpoints üzerinde dağıtma süreci adım adım anlatıldı. Süreç; gerekli GitHub deposunu klonlamayı, CDK ortamını kurmayı, AWS hizmetlerini kullanarak modeli dağıtmayı ve SageMaker üzerindeki performansını test etmeyi kapsar.

Daha fazla teknik ayrıntı için AWS Machine Learning Blog'daki bu makaleye göz at. Çeşitli özellikler ve işlevler hakkında daha fazla bilgi edinmek için resmî Amazon SageMaker Belgeleri sayfasını da inceleyebilirsin.

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 entegrasyon kılavuzu sayfasını ziyaret et.

Sık Sorulan Sorular#

  • Ultralytics YOLO26 modelini Amazon SageMaker Endpoints üzerinde dağıtmak için şu adımları izle:

    1. AWS Ortamını Kur: Bir AWS hesabın, gerekli izinlere sahip IAM rollerin ve yapılandırılmış AWS CLI'ın olduğundan emin ol. Henüz yüklemediysen AWS CDK'yı yükle (AWS CDK talimatlarına göz at).
    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ı Kur: Bir Python sanal ortamı oluşturup 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 ile Dağıt: CloudFormation yığınını sentezleyip dağıt ve 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 üzerinde dağıtmak için şu ön koşulları yerine getirdiğinden emin ol:

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

    Ayrıntılı kurulum için bu bölüme göz at.

  • Ultralytics YOLO26'yı Amazon SageMaker üzerinde kullanmanın çeşitli avantajları vardır:

    1. Ölçeklenebilirlik ve Yönetim: SageMaker, gerçek zamanlı çıkarım gereksinimlerini karşılamaya yardımcı olan otomatik ölçeklendirme gibi özelliklerle yönetilen bir ortam sağlar.
    2. AWS Hizmetleriyle Entegrasyon: Veri depolama için S3, kod olarak altyapı için CloudFormation ve izleme için CloudWatch gibi diğer AWS hizmetleriyle sorunsuz biçimde entegre ol.
    3. Kolay Dağıtım: AWS CDK betikleriyle 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 biçimde yürütmek için Amazon SageMaker'ın yüksek performanslı altyapısından yararlan.

    SageMaker kullanmanın avantajları hakkında daha fazla bilgi için giriş bölümüne göz at.

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

    1. inference.py Dosyasını Değiştir: Çıktı biçimlerini özelleştirmek için inference.py dosyasındaki output_fn işlevini bulup düzenle.

      import json
      
      def output_fn(prediction_output, content_type):
          """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()
              # Gerekirse daha fazla işleme mantığı ekle
          return json.dumps(infer)
    2. Güncellenmiş Modeli Dağıt: Bu değişiklikleri dahil etmek için modeli sağlanan Jupyter not defterlerini (1_DeployEndpoint.ipynb) kullanarak yeniden dağıt.

    Değiştirilen modeli dağıtmak için ayrıntılı adımlara göz at.

  • Dağıtılan YOLO26 modelini Amazon SageMaker üzerinde 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 görüntü gönderme, çıkarım yapma ve sonuçları görüntüleme talimatlarını izleyerek not defterini çalıştır.
    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