İçeriğe geç

YOLO11'i Amazon SageMaker Uç Noktalarına Dağıtma Kılavuzu

Ultralytics'in YOLO11 gibi gelişmiş bilgisayarla görme modellerini Amazon SageMaker Uç Noktalarında dağıtmak, çeşitli makine öğrenimi uygulamaları için çok çeşitli olanaklar sunar. Bu modelleri etkili bir şekilde kullanmanın anahtarı, kurulumlarını, yapılandırmalarını ve dağıtım süreçlerini anlamaktan geçer. YOLO11, AWS tarafından sağlanan sağlam ve ölçeklenebilir bir makine öğrenimi hizmeti olan Amazon SageMaker ile sorunsuz bir şekilde entegre edildiğinde daha da güçlü hale gelir.

Bu kılavuz, YOLO11 PyTorch modellerini Amazon SageMaker Uç Noktalarına adım adım dağıtma sürecinde size yol gösterecektir. 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, makine öğrenimi modelleri oluşturma, eğitme ve dağıtma sürecini basitleştiren Amazon Web Services'in (AWS) 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, modelleri ayarlamak için otomatikleştirilmiş özellikleri, modelleri ölçeklenebilir bir şekilde eğitme seçeneklerini ve modelleri üretime dağıtmak için basit yöntemleri içerir. SageMaker, çeşitli projeler için gereken esnekliği sunarak popüler makine öğrenimi çerçevelerini destekler. Özellikleri ayrıca veri etiketleme, iş akışı yönetimi ve performans analizini de kapsar.

Amazon SageMaker Uç Noktalarında YOLO11 Dağıtımı

Amazon SageMaker'da YOLO11 dağıtımı, gerçek zamanlı çıkarım için yönetilen ortamını kullanmanıza ve otomatik ölçeklendirme gibi özelliklerden yararlanmanıza olanak tanır. Aşağıdaki AWS mimarisine göz atın.

AWS Mimarisi

Adım 1: AWS Ortamınızı Kurun

İlk olarak, aşağıdaki ön koşulların yerine getirildiğinden emin olun:

  • Bir AWS Hesabı: Henüz bir hesabınız yoksa, bir AWS hesabına kaydolun.

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

  • AWS CLI: Henüz kurulmadıysa, AWS Command Line Interface'i (CLI) indirip kurun ve hesap bilgilerinizle yapılandırın. Kurulum için AWS CLI talimatlarını izleyin.

  • AWS CDK: Henüz kurulmadıysa, dağıtımı betiklemek için kullanılacak olan AWS Cloud Development Kit'i (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 doğrulayın: biri ml.m5.4xlarge uç nokta kullanımı için ve diğeri de ml.m5.4xlarge notebook örneği kullanımı için. Bunların her biri minimum bir kota değeri gerektirir. Mevcut kotalarınız bu gereksinimin altındaysa, her biri için bir artış talep etmek önemlidir. Kota artışı talebinde bulunmak için içindeki ayrıntılı talimatları izleyebilirsiniz. AWS Hizmet Kotaları dokümantasyonu.

Adım 2: YOLO11 SageMaker Deposu'nu Klonlayın

Bir sonraki adım, YOLO11'i SageMaker'a 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 yürütün:

    git clone https://github.com/aws-samples/host-yolov8-on-sagemaker-endpoint.git
    
  • Klonlanan Dizine Gitme: Dizinizi klonlanmış depoya değiştirin:

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

Adım 3: CDK Ortamını Kurun

Gerekli koda sahip olduğunuza göre, AWS CDK ile dağıtım 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. Şunu çalıştırın:

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

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

    pip3 install -r requirements.txt
    
  • AWS CDK Kütüphanesini Yükseltin: AWS CDK kütüphanesinin 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ı Başlatma: AWS ortamınızı CDK dağıtımına 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: YOLO Modelini Dağıtma

Dağıtım talimatlarına geçmeden önce, Ultralytics tarafından sunulan YOLO11 modelleri yelpazesine göz atmayı unutmayın. Bu, proje gereksinimleriniz için en uygun modeli seçmenize yardımcı olacaktır.

AWS CloudFormation Yığınını oluşturduktan sonraki adım, YOLO11'i dağıtmaktır.

  • Not Defteri Örneğini Açın: AWS Konsolu'na gidin ve Amazon SageMaker hizmetine gidin. Kontrol panelinden "Not Defteri Örnekleri"ni seçin, ardından CDK dağıtım komut dosyanız tarafından oluşturulan not defteri örneğini bulun. Jupyter ortamına erişmek için not defteri örneğini açın.

  • inference.py'ye Erişin ve Değiştirin: SageMaker not defteri örneğini Jupyter'de açtıktan sonra, inference.py dosyasını bulun. Aşağıda gösterildiği gibi inference.py içindeki output_fn fonksiyonunu düzenleyin ve sözdizimi hatası olmadığından emin olarak komut dosyasındaki değişikliklerinizi 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)
    
  • Uç Noktayı 1_DeployEndpoint.ipynb Kullanarak Dağıtın: Jupyter ortamında, sm-notebook dizininde bulunan 1_DeployEndpoint.ipynb not defterini açın. Not defterindeki talimatları izleyin ve YOLO11 modelini indirmek, güncellenmiş çıkarım koduyla paketlemek ve bir Amazon S3 klasörüne yüklemek için hücreleri çalıştırın. Not defteri, YOLO11 modeli için bir SageMaker uç noktası oluşturma ve dağıtma konusunda size yol gösterecektir.

Adım 6: Dağıtımınızı Test Etme

YOLO11 modeliniz dağıtıldığına göre, performansını ve işlevselliğini test etmek önemlidir.

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

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

Test Sonuçları YOLO11

  • Kaynakları Temizleme: Test not defteri ayrıca uç noktanın ve barındırılan modelin temizlenmesi sürecinde 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

Test ettikten sonra, dağıtılan modelinizin sürekli olarak izlenmesi ve yönetimi önemlidir.

  • Amazon CloudWatch ile izleme: Amazon CloudWatch kullanarak SageMaker uç noktanızın performansını ve sağlığını düzenli olarak kontrol edin.

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

Bu adımları tamamlayarak, Amazon SageMaker Uç Noktalarında bir YOLO11 modelini başarıyla dağıtmış ve test etmiş olacaksınız. Bu süreç, sizi yalnızca makine öğrenimi dağıtımı için AWS hizmetlerini kullanma konusunda pratik deneyimle donatmakla 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'i (CDK) kullanarak YOLO11'i Amazon SageMaker Uç Noktalarına dağıtma konusunda size adım adım yol göstermiştir. Süreç, gerekli GitHub deposunun klonlanmasını, CDK ortamının kurulmasını, modelin AWS hizmetleri kullanılarak dağıtılmasını ve SageMaker'da performansının test edilmesini içerir.

Daha teknik ayrıntılar için AWS Machine Learning Blog'daki bu makaleye bakın. Ayrıca, çeşitli özellikler ve işlevler hakkında daha fazla bilgi edinmek için resmi Amazon SageMaker Belgelerine de göz atabilirsiniz.

Farklı YOLO11 entegrasyonları hakkında daha fazla bilgi edinmek ister misiniz? Makine öğrenimi projelerinizi geliştirebilecek ek araçları ve yetenekleri keşfetmek için Ultralytics entegrasyon kılavuzu sayfasını ziyaret edin.

SSS

Ultralytics YOLO11 modelini Amazon SageMaker Uç Noktalarına nasıl dağıtırım?

Ultralytics YOLO11 modelini Amazon SageMaker Uç Noktalarına dağıtmak için şu adımları izleyin:

  1. AWS Ortamınızı Kurun: Bir AWS Hesabınızın, gerekli izinlere sahip IAM rollerinizin ve yapılandırılmış AWS CLI'nızın olduğundan emin olun. Henüz yapılmadıysa AWS CDK'yı kurun (AWS CDK talimatlarına bakın).
  2. YOLO11 SageMaker Deposunu Klonlayın:
    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ı Kurulumu: Bir Python sanal ortamı oluşturun, etkinleştirin, bağımlılıkları yükleyin ve AWS CDK kitaplığını 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ğıt: CloudFormation yığınını sentezleyin ve dağıtın, ortamı bootstrap edin.
    cdk synth
    cdk bootstrap
    cdk deploy
    

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

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

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

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

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

Neden Amazon SageMaker'da Ultralytics YOLO11 kullanmalıyım?

Amazon SageMaker'da Ultralytics YOLO11 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, altyapı olarak kod için CloudFormation ve izleme için CloudWatch gibi diğer AWS hizmetleriyle sorunsuz bir şekilde entegre olur.
  3. Dağıtım Kolaylığı: AWS CDK komut dosyaları 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ın.

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

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

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

  1. Değiştir inference.py: Şunu bulun ve özelleştirin: output_fn fonksiyonu içinde inference.py çıktı formatlarını uyarlamak için dosya.

    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: Sağlanan Jupyter not defterlerini kullanarak modeli yeniden dağıttığınızdan emin olun (1_DeployEndpoint.ipynb), bu değişiklikleri dahil etmek için.

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

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

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

  1. Test Not Defterini Aç: Şunu bulun: 2_TestEndpoint.ipynb SageMaker Jupyter ortamındaki not defteri.
  2. Not Defterini Çalıştır: Bir görüntüyü uç noktaya göndermek, çıkarım gerçekleştirmek 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 metriklerini görselleştirmek için yerleşik çizim işlevlerini kullanın.

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



📅 1 yıl önce oluşturuldu ✏️ 23 gün önce güncellendi

Yorumlar