İç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 ihtiyacınız olacak. 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, content_type):
    """Formats model outputs as JSON string according to content_type, 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 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, 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.



Oluşturma 2024-01-04, Güncelleme 2024-05-03
Yazarlar: glenn-jocher (3), abirami-vina (1)

Yorumlar