YOLO Vision 2026:

Amazon SageMaker Uç Noktalarında YOLO26 Dağıtımı için Bir Kılavuz#

Gelişmiş computer vision modellerini Ultralytics' YOLO26 gibi Amazon SageMaker Endpoints üzerinde dağıtmak, çeşitli machine learning uygulamaları için geniş bir olasılık yelpazesi açar. Bu modelleri etkin bir şekilde kullanmanın anahtarı, kurulum, yapılandırma ve dağıtım süreçlerini anlamakta yatar. YOLO26, AWS'nin sağlam ve ölçeklenebilir bir makine öğrenimi servisi olan Amazon SageMaker ile sorunsuz bir şekilde entegre edildiğinde daha da güçlü hale gelir.

Bu kılavuz, YOLO26 PyTorch modellerini Amazon SageMaker Endpoints üzerinde adım adım dağıtma sürecinde sana rehberlik edecek. 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 esaslarını öğreneceksin.

Amazon SageMaker#

Amazon SageMaker ML platform architecture

Amazon SageMaker, Amazon Web Services (AWS) tarafından sunulan ve makine öğrenimi modellerini 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 yönetmek için geniş bir araç yelpazesi sağlar. Buna modelleri ayarlamak için otomatik özellikler, modelleri ölçekli olarak eğitmek için seçenekler ve modelleri üretime dağıtmak için anlaşılır yöntemler dahildir. SageMaker, popüler makine öğrenimi çerçevelerini destekleyerek farklı projeler için gereken esnekliği sunar. Özellikleri ayrıca veri etiketleme, iş akışı yönetimi ve performans analizini de kapsar.

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

YOLO26'yı Amazon SageMaker'da dağıtmak, gerçek zamanlı çıkarım için yönetilen ortamını kullanmanı ve otomatik ölçeklendirme gibi özelliklerden yararlanmanı sağlar. Aşağıdaki AWS mimarisine bir göz at.

AWS SageMaker YOLO training architecture

Adım: AWS Ortamını Kur#

Öncelikle, aşağıdaki önkoşullara sahip olduğundan emin ol:

  • Bir AWS Hesabı: Eğer halihazırda bir hesabın yoksa, bir AWS hesabı için kaydol.

  • 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ün, bu hizmetlere erişmesine izin veren politikalara sahip olması gerekir.

  • AWS CLI: Henüz kurulu değilse, AWS Command Line Interface (CLI) aracını indirip kur ve hesap detaylarınla yapılandır. Kurulum için the AWS CLI instructions adresini takip et.

  • AWS CDK: Henüz kurulu değilse, dağıtımı betiklemek için kullanılacak olan AWS Cloud Development Kit (CDK) aracını kur. Kurulum için the AWS CDK instructions adresini takip et.

  • Yeterli Hizmet Kotası: Amazon SageMaker içinde iki ayrı kaynak için yeterli kotaya sahip olduğunu doğrula: uç nokta kullanımı için ml.m5.4xlarge ve not defteri (notebook) örneği kullanımı için ml.m5.4xlarge. Bunların her biri minimum bir kota değeri gerektirir. Mevcut kotaların bu gereksinimin altındaysa, her biri için artış talebinde bulunman önemlidir. AWS Service Quotas documentation içindeki ayrıntılı talimatları takip ederek bir kota artışı isteyebilirsin.

Adım: YOLO26 SageMaker Deposunu Klonla#

Bir sonraki adım, YOLO26'yı SageMaker üzerinde dağıtmak için gereken kaynakları içeren belirli AWS deposunu klonlamaktır. GitHub'da barındırılan bu depo, gerekli CDK betiklerini 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 Dizinine Git: Dizinini klonlanan depoya değiştir:

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

Adım: CDK Ortamını Kur#

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

  • Python Sanal Ortamı Oluştur: Bu, Python ortamını ve bağımlılıklarını izole eder. Ş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 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ını Oluştur#

  • 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, gerekli AWS kaynaklarını oluşturacak ve modelini dağıtacaktır:

    cdk deploy

Adım: YOLO Modelini Dağıt#

Dağıtım talimatlarına dalmadan önce, YOLO26 models offered by Ultralytics yelpazesini incelediğinden emin ol. Bu, proje gereksinimlerin için en uygun modeli seçmene yardımcı olacaktır.

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

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

  • inference.py Dosyasına Eriş ve Değiştir: SageMaker not defteri örneğini Jupyter'da açtıktan sonra, inference.py dosyasını bul. inference.py içindeki output_fn işlevini aşağıda gösterildiği gibi düzenle ve betikte sözdizimi hatası olmadığından emin olarak değişikliklerini 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ç. Not defterindeki talimatları izle ve YOLO26 modelini indirmek, güncellenmiş çıkarım koduyla paketlemek ve bir Amazon S3 kovasına yüklemek için hücreleri çalıştır. Not defteri, YOLO26 modeli için bir SageMaker uç noktası oluşturma ve dağıtma konusunda sana rehberlik edecektir.

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

Artık 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, 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 talimatları izle. Bu, uç noktaya bir görsel göndermeyi ve çıkarım (inference) çalıştırmayı içerir. Ardından, aşağıda gösterildiği gibi modelin performansını ve accuracy değerini görselleştirmek için çıktıyı çizeceksin.

Testing Results YOLO26

  • Kaynakları Temizle: Test not defteri ayrıca uç noktayı ve barındırılan modeli temizleme sürecinde sana rehberlik edecektir. Bu, özellikle dağıtılan modeli hemen kullanmayı planlamıyorsan, maliyetleri ve kaynakları etkili bir şekilde yönetmek için önemli bir adımdır.

Adım: İzleme ve Yönetim#

Testten sonra, dağıtılan modelinin sürekli izlenmesi ve yönetimi esastır.

  • Amazon CloudWatch kullanarak SageMaker uç noktanın performansını ve sağlığını düzenli olarak kontrol et.

  • Uç Noktayı Yönet: Uç noktanın sürekli yönetimi için SageMaker konsolunu kullan. Bu, gerektiğinde modeli ölçeklendirmeyi, güncellemeyi veya yeniden dağıtmayı içerir.

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

Özet#

Bu kılavuz, AWS CloudFormation ve AWS Cloud Development Kit (CDK) kullanarak Amazon SageMaker Uç Noktalarında YOLO26 dağıtımı konusunda sana adım adım yol gösterdi. Süreç, gerekli GitHub deposunu klonlamayı, CDK ortamını kurmayı, AWS hizmetlerini kullanarak modeli dağıtmayı ve performansını SageMaker üzerinde test etmeyi içerir.

Daha fazla teknik detay için AWS Machine Learning Blog üzerindeki this article kaynağına göz at. Çeşitli özellikler ve işlevler hakkında daha fazla bilgi edinmek için resmi Amazon SageMaker Documentation 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 integrations guide page sayfasını ziyaret et.

SSS#

Ultralytics YOLO26 modelini Amazon SageMaker Uç Noktalarında nasıl dağıtırım?#

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

  1. AWS Ortamını Kur: Bir AWS Hesabına, gerekli izinlere sahip IAM rollerine ve yapılandırılmış bir AWS CLI'ya sahip olduğundan emin ol. Henüz yapmadıysan AWS CDK'yı kur (bkz. AWS CDK instructions).
  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ş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 detay için documentation section kısmını incele.

YOLO26'yı Amazon SageMaker'da dağıtmak için önkoşullar nelerdir?#

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

  1. AWS Hesabı: Etkin AWS hesabı (sign up here).
  2. IAM Rolleri: SageMaker, CloudFormation ve Amazon S3 izinlerine sahip yapılandırılmış IAM rolleri.
  3. AWS CLI: Kurulu ve yapılandırılmış AWS Command Line Interface (AWS CLI installation guide).
  4. AWS CDK: Kurulu AWS Cloud Development Kit (CDK setup guide).
  5. Hizmet Kotaları: Hem uç nokta hem de not defteri kullanımı için ml.m5.4xlarge örnekleri için yeterli kotalar (request a quota increase).

Ayrıntılı kurulum için this section bölümüne bakın.

Neden Amazon SageMaker üzerinde Ultralytics YOLO26 kullanmalıyım?#

Amazon SageMaker üzerinde Ultralytics YOLO26 kullanmak çeşitli avantajlar sunar:

  1. Ölçeklenebilirlik ve Yönetim: SageMaker, gerçek zamanlı çıkarım ihtiyaçlarında yardımcı olan otomatik ölçeklendirme gibi özelliklere sahip 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 ol.
  3. Dağıtım Kolaylığı: AWS CDK betikleri kullanılarak 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.

SageMaker kullanmanın avantajları hakkında daha fazlasını introduction section bölümünde keşfet.

Amazon SageMaker üzerinde YOLO26 için çıkarım mantığını özelleştirebilir miyim?#

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

  1. Modify inference.py: Çıktı biçimlerini özelleştirmek için inference.py dosyasındaki output_fn fonksiyonunu bulun ve özelleştirin.

    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üncellenen 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ştirilen modeli dağıtmak için detailed steps adımlarını incele.

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

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 bir görüntü göndermek, çıkarım yapmak ve sonuçları görüntülemek için not defterinin talimatlarını izle.
  3. Sonuçları Görselleştir: Algılanan nesnelerin etrafındaki sınırlayıcı kutular gibi performans metriklerini görselleştirmek için yerleşik çizim işlevlerini kullan.

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

Yorumlar