AWS Lambda PlatoBlockchain Veri Zekasında model uç noktalarınızı barındıran bir MLOps çözümü dağıtın. Dikey Arama. Ai.

AWS Lambda'da model uç noktalarınızı barındıran bir MLOps çözümü dağıtın

2019'da Amazon, iklim rehin. Taahhüdün hedefi, 2040 yılına kadar net sıfır karbon elde etmektir. Bu, Paris anlaşmasının ana hatlarından 10 yıl öncedir. Kayıt olan şirketler düzenli raporlama, karbon eliminasyonu ve güvenilir denkleştirmeler taahhüt eder. Bu yazının yazıldığı sırada 377 şirket iklim taahhüdünü imzaladı ve bu sayı hâlâ artıyor.

AWS, bulut çözümleri ve makine öğrenimi (ML) aracılığıyla net sıfır hedefinize ulaşmanıza yardımcı olmayı taahhüt ettiğinden, karbon emisyonlarını azaltan birçok proje halihazırda geliştirilmiş ve devreye alınmıştır. İmalat, bu tür projelerden büyük fayda sağlayabilecek sektörlerden biridir. Şirketler, imalat fabrikalarındaki kompresörler veya soğutma grupları gibi makinelerin optimize edilmiş enerji yönetimi sayesinde makine öğrenimi ile karbon ayak izlerini azaltabilir.

Makine öğrenimi deneme aşamasından üretim aşamasına etkili bir şekilde geçiş yapmak zordur. Model eğitimini ve yeniden eğitimini otomatikleştirmek, bir model kaydına sahip olmak ve deneyleri ve devreye almayı izlemek temel zorluklardan bazılarıdır. Üretim şirketleri için başka bir karmaşıklık katmanı daha vardır, yani dağıtılan bu modellerin uçta nasıl çalışabileceği.

Bu gönderide, sürdürülebilir bir enerji yönetimi çözümü barındıran bir makine öğrenimi işlemleri (MLOps) şablonu sağlayarak bu zorlukları ele alıyoruz. Çözüm, kullanım durumları için agnostiktir; bu, modeli ve verileri değiştirerek kullanım durumlarınıza uyarlayabileceğiniz anlamına gelir. Modelleri nasıl entegre edeceğinizi gösteriyoruz. Amazon SageMaker Ardışık Düzenleri, bir Monte Carlo Simülasyonu ile bir eğitim işini ve isteğe bağlı olarak bir işleme işini çalıştıran, makine öğrenimi ardışık düzenleri oluşturmaya yönelik yerel bir iş akışı düzenleme aracı. Deneyler izlenir Amazon SageMaker Deneyleri. Modeller takip edilir ve kayıt altına alınır. Amazon SageMaker model kaydı. Son olarak, nihai modelinizin bir AWS Lambda fonksiyonu.

Lambda, sunucuları yönetmeden veya sağlamadan kod çalıştırmanıza izin veren bir bilgi işlem hizmetidir. Lambda'nın otomatik ölçeklendirmesi, istek başına ödemeli faturalandırması ve kullanım kolaylığı, onu veri bilimi ekipleri için yaygın bir dağıtım seçeneği haline getiriyor. Bu gönderi ile veri bilimcileri, modellerini uygun maliyetli ve ölçeklenebilir bir Lambda işlevine dönüştürebilirler. Ayrıca, Lambda ile entegrasyon sağlar AWS IoT Greengrass, sürdürülebilir bir enerji yönetimi çözümünde olduğu gibi, cihazlarınızın ürettikleri veriler üzerinde uçta hareket etmelerini sağlayan yazılımlar oluşturmanıza yardımcı olur.

Çözüme genel bakış

Dağıttığımız mimari (aşağıdaki şekle bakın), makine öğrenimine tamamen CI/CD odaklı bir yaklaşımdır. Tek bir yekpare çözüme sahip olmamak için elemanlar ayrıştırılır.

Diyagramın sol üst kısmıyla başlayalım. bu İşleme – Görüntü oluşturma bileşen, CI/CD güdümlü bir bileşendir AWS CodeCommit oluşturmanıza ve göndermenize yardımcı olan depo liman işçisi konteyner için Amazon Elastik Konteyner Kayıt Defteri (Amazon ECR'si). Bu işleme kapsayıcısı, makine öğrenimi işlem hattımızın ilk adımı olarak hizmet eder, ancak aynı zamanda son işleme adımları için yeniden kullanılır. Bizim durumumuzda, son işleme olarak bir Monte Carlo Simülasyonu uyguluyoruz. bu Eğitim – Görüntü oluşturma sol altta özetlenen depo, aynı mekanizmaya sahiptir. İşlemde üstünü bloke edin. Temel fark, model eğitimi için kapsayıcı oluşturmasıdır.

ana boru hattı, Model oluşturma (Boru hattı), SageMaker ardışık düzenlerinizi çalıştırmayı otomatikleştiren başka bir CodeCommit deposudur. Bu boru hattı, SageMaker Deneylerinde veri ön işleme, model eğitimi, model metrikleri izleme, veri son işleme ve SageMaker model kayıt defterinde model kataloglama işlemlerini otomatikleştirir ve birbirine bağlar.

Son bileşen sağ altta: Model dağıtımı. Örnekleri takip ederseniz Amazon SageMaker Projeleri, bir SageMaker uç noktası kullanarak modelinizi barındıran bir şablon elde edersiniz. Dağıtım havuzumuz bunun yerine modeli bir Lambda işlevinde barındırır. Gerçek zamanlı tahminler yürütebilen Lambda işlevini dağıtmak için bir yaklaşım gösteriyoruz.

Önkoşullar

Çözümümüzü başarılı bir şekilde dağıtmak için aşağıdakilere ihtiyacınız vardır:

GitHub deposunu indirin

İlk adım olarak, klonlayın GitHub deposu yerel makinenize. Aşağıdaki klasör yapısını içerir:

  • açılma – Dağıtım için ilgili kodu içerir
  • mllib — Ön işleme, eğitim, sunum ve simülasyon için makine öğrenimi kodunu içerir
  • testleri — Birim ve entegrasyon testleri içerir

Dağıtım için anahtar dosya kabuk komut dosyasıdır deployment/deploy.sh. Hesabınızdaki kaynakları dağıtmak için bu dosyayı kullanırsınız. Kabuk betiğini çalıştırmadan önce aşağıdaki adımları tamamlayın:

  1. Açın deployment/app.py ve altındaki bucket_name öğesini değiştirin SageMakerPipelineSourceCodeStack. bucket_name küresel olarak benzersiz olması gerekir (örneğin, tam adınızı ekleyin).
  2. In deployment/pipeline/assets/modelbuild/pipelines/energy_management/pipeline.py, değiştir default_bucket altında get_pipeline 1. adımda belirtilenle aynı ada.

Çözümü AWS CDK ile devreye alın

İlk olarak, AWS CLI'nizi yapılandırın dağıtım yapmak istediğiniz hesap ve Bölge ile. Ardından dağıtım dizinine geçmek için aşağıdaki komutları çalıştırın, sanal bir ortam oluşturun, etkinleştirin, içinde belirtilen gerekli pip paketlerini yükleyin. setup.pyve çalıştır deploy.sh:

cd deployment
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
pre-commit install
chmod u+x deploy.sh
./deploy.sh

deploy.sh aşağıdaki eylemleri gerçekleştirir:

  1. Python'da sanal bir ortam oluşturur.
  2. Sanal ortam etkinleştirme komut dosyasına kaynak sağlar.
  3. AWS CDK'yi ve içinde belirtilen gereksinimleri yükler. setup.py.
  4. Önyüklemeler Çevre.
  5. Dosyanız gibi geliştirdiğiniz gerekli dosyaları sıkıştırır ve kopyalar. mllib dosyaları, bu varlıkların gerekli olduğu ilgili klasörlere yerleştirin.
  6. Runs cdk deploy —require-approval never.
  7. Bir oluşturur AWS CloudFormation AWS CDK aracılığıyla yığınlayın.

Dağıtımın ilk aşaması 5 dakikadan az sürmelidir. Artık, mimari diyagramda belirtildiği gibi, AWS CLI aracılığıyla belirttiğiniz Bölgede CodeCommit'te dört deponuz olmalıdır. bu AWS Kod Ardışık Düzeni Boru hatları aynı anda çalıştırılır. bu modelbuild ve modeldeploy işlem hatları, işleme ve eğitim görüntüsü oluşturma işleminin başarılı bir şekilde çalıştırılmasına bağlıdır. bu modeldeploy boru hattı, başarılı bir model oluşturmaya bağlıdır. Model dağıtımı 1.5 saatten daha kısa sürede tamamlanmalıdır.

Model depolarını Studio'da kopyalayın

Studio kullanıcı arabiriminde AWS CDK dağıtımı yoluyla oluşturulan SageMaker ardışık düzenlerini özelleştirmek için önce depoları Studio'ya klonlamanız gerekir. Studio'da sistem terminalini başlatın ve proje adını ve kimliğini sağladıktan sonra aşağıdaki komutları çalıştırın:

git clone https://git-codecommit.REGION.amazonaws.com/v1/repos/sagemaker-PROJECT_NAME-PROJECT_ID-modelbuild
git clone https://git-codecommit.REGION.amazonaws.com/v1/repos/sagemaker-PROJECT_NAME-PROJECT_ID-modeldeploy
git clone https://git-codecommit.REGION.amazonaws.com/v1/repos/sagemaker-PROJECT_NAME-PROJECT_ID-processing-imagebuild
git clone https://git-codecommit.REGION.amazonaws.com/v1/repos/sagemaker-PROJECT_NAME-PROJECT_ID-training-imagebuild

Depoları klonladıktan sonra, depolara bir taahhüt gönderebilirsiniz. Bu taahhütler, ilgili işlem hatları için bir CodePipeline çalışmasını tetikler.

Ayrıca çözümü yerel makinenize uyarlayabilir ve tercih ettiğiniz IDE üzerinde çalışabilirsiniz.

SageMaker İşlem Hatları ve SageMaker Deneyleri kullanıcı arayüzünde gezinin

Bir SageMaker işlem hattı, kullanılarak tanımlanan birbirine bağlı bir dizi adımdır. Amazon SageMaker Python SDK'sı. Bu ardışık düzen tanımı, bir JSON tanımı olarak dışa aktarılabilen Yönlendirilmiş Asiklik Grafiği (DAG) kullanan bir ardışık düzeni kodlar. Bu tür boru hatlarının yapısı hakkında daha fazla bilgi edinmek için bkz. SageMaker İşlem Hatlarına Genel Bakış.

Şu yöne rotayı ayarla SageMaker kaynakları bölmesini açın ve görüntülemek için İşlem Hatları kaynağını seçin. Altında Name, görmelisin PROJECT_NAME-PROJECT_ID. Çalıştırma kullanıcı arabiriminde, 1 saatten biraz fazla sürmesi beklenen başarılı bir çalıştırma olmalıdır. Boru hattı, aşağıdaki ekran görüntüsünde gösterildiği gibi görünmelidir.

Amazon SageMaker İşlem Hattı

Çalıştırma, AWS CDK yığını dağıtıldıktan sonra otomatik olarak tetiklendi. seçerek bir çalıştırmayı manuel olarak çağırabilirsiniz. oluşturmak uygulamak. Oradan, işleme ve eğitim adımları için örnek tipi ve örnek sayısı gibi kendi boru hattı parametrelerinizi seçebilirsiniz. Ayrıca, çalıştırmaya bir ad ve açıklama verebilirsiniz. Ardışık düzen, ardışık düzen tanımınız boyunca başvurabileceğiniz ve tanımlayabileceğiniz ardışık düzen parametreleri aracılığıyla yüksek düzeyde yapılandırılabilir.

İstediğiniz gibi parametrelerinizle başka bir ardışık düzen çalıştırması başlatmaktan çekinmeyin. Daha sonra şuraya gidin: SageMaker kaynakları tekrar bölme ve seçin Deneyler ve denemeler. Orada yine şöyle bir ada sahip bir satır görmelisiniz: PROJECT_NAME-PROJECT_ID. Deneye gidin ve rastgele kimliğe sahip tek çalıştırmayı seçin. Oradan, eğitim İşiyle ilgili metrikleri keşfetmek için SageMaker eğitim işini seçin.

SageMaker Deneylerinin amacı, deneyler oluşturmayı, bunları denemelerle doldurmayı ve denemeler ve deneyler arasında analitik çalıştırmayı mümkün olduğunca basit hale getirmektir. SageMaker İşlem Hatları, SageMaker Deneyleri ile yakından entegredir ve varsayılan olarak her çalıştırma için bir deney, deneme ve bunların olmaması durumunda deneme bileşenleri oluşturur.

Model kayıt defterinde Lambda dağıtımını onaylayın

Bir sonraki adım olarak, altındaki model kayıt defterine gidin. SageMaker kaynakları. Burada yine şöyle bir ada sahip bir satır bulabilirsiniz. PROJECT_NAME-PROJECT_ID. Var olan tek modele gidin ve onu onaylayın. Bu, model yapısını Lambda'daki bir kapsayıcıda otomatik olarak dağıtır.

Model kayıt defterinde modelinizi onayladıktan sonra, bir Amazon EventBridge olay kuralı tetiklenir. Bu kural, CodePipeline ardışık düzenini şu sonla çalıştırır: *-modeldeploy. Bu bölümde, bu çözümün onaylanmış modeli nasıl kullandığını ve onu bir Lambda işlevinde nasıl barındırdığını ele alıyoruz. CodePipeline, mevcut CodeCommit deposunu alır ve aynı zamanda şununla biter: *-modeldeploy ve bu kodu CodeBuild'de çalıştırmak için kullanır. CodeBuild için ana giriş, buildspec.yml dosya. Önce buna bakalım:

version: 0.2

env:
  shell: bash

phases:
  install:
    runtime_versions:
      python: 3.8
    commands:
      - python3 -m ensurepip --upgrade
      - python3 -m pip install --upgrade pip
      - python3 -m pip install --upgrade virtualenv
      - python3 -m venv .venv
      - source .venv/bin/activate
      - npm install -g aws-cdk@2.26.0
      - pip install -r requirements.txt
      - cdk bootstrap
  build:
    commands:
      - python build.py --model-package-group-name "$SOURCE_MODEL_PACKAGE_GROUP_NAME"
      - tar -xf model.tar.gz
      - cp model.joblib lambda/digital_twin
      - rm model.tar.gz
      - rm model.joblib
      - cdk deploy --require-approval never

Kurulum aşamasında Python kütüphanelerinin güncel olmasını sağlar, sanal ortam oluşturur, AWS CDK v2.26.0 kurulumunu yapar ve kurulumunu gerçekleştiririz. aws-cdk Gereksinimler dosyasını kullanan diğerleri ile birlikte Python kitaplığı. Ayrıca biz AWS hesabını önyükleme. Yapım aşamasında, çalıştırıyoruz build.py, bundan sonra tartışacağız. Bu dosya, en son onaylanmış SageMaker model yapıtını şuradan indirir: Amazon Basit Depolama Hizmeti (Amazon S3) yerel CodeBuild örneğinize. Bu .tar.gz dosya sıkıştırılmış haldedir ve içeriği ana Lambda kodumuzu da içeren klasöre kopyalanır. Lambda işlevi, AWS CDK kullanılarak dağıtılır ve kod, Amazon ECR'den bir Docker kapsayıcısından çalışır. Bu, AWS CDK tarafından otomatik olarak yapılır.

The build.py file çoğunlukla kullanan bir Python dosyasıdır. Python için AWS SDK (Boto3) mevcut model paketlerini listelemek için.

Bu fonksiyon get_approved_package daha önce açıklandığı gibi daha sonra indirilen yapının Amazon S3 URI'sini döndürür.

Modelinizi başarıyla dağıttıktan sonra şunları yapabilirsiniz: test doğrudan konuşlandırmayı seçtiğiniz Bölgedeki Lambda konsolunda. İşlevin adı şunu içermelidir: DigitalTwinStack-DigitalTwin*. İşlevi açın ve şuraya gidin: test sekme. Bir test araması yapmak için aşağıdaki olayı kullanabilirsiniz:

{
  "flow": "[280, 300]",
  "pressure": "[69, 70]",
  "simulations": "10",
  "no_of_trials": "10",
  "train_error_weight": "1.0"
}

Test olayını çalıştırdıktan sonra, aşağıdaki ekran görüntüsünde gösterilene benzer bir yanıt alırsınız.

AWS Lambda işlevini test edin

Daha fazla simülasyon veya deneme çalıştırmak istiyorsanız, Lambda zaman aşımı sınırını artırabilir ve kodla denemeler yapabilirsiniz! Ya da oluşturulan verileri alıp görselleştirmek isteyebilirsiniz. Amazon QuickSight. Aşağıda bir örnek var. Şimdi sıra sende!

Amazon QuickSight

Temizlemek

Daha fazla ücret ödememek için aşağıdaki adımları tamamlayın:

  • AWS CloudFormation konsolunda, EnergyOptimization yığını.
    Bu, tüm çözümü siler.
  • yığını sil DigitalTwinStack, Lambda işlevinizi dağıtan.

Sonuç

Bu gönderide size, her adımı birbirinden ayrı tuttuğumuz bir enerji yönetimi çözümünün CI/CD güdümlü MLOps ardışık düzenini gösterdik. Makine öğrenimi ardışık düzenlerinizi ve denemelerinizi Studio kullanıcı arabiriminde izleyebilirsiniz. Ayrıca farklı bir dağıtım yaklaşımı gösterdik: model kayıt defterindeki bir modelin onaylanmasının ardından, onaylanan modeli barındıran bir Lambda işlevi CodePipeline aracılığıyla otomatik olarak oluşturulur.

AWS'de MLOps ardışık düzenini veya sürdürülebilir enerji yönetimi çözümünü keşfetmekle ilgileniyorsanız şuraya göz atın: GitHub deposu ve yığını kendi AWS ortamınızda devreye alın!


Yazarlar Hakkında

AWS Lambda PlatoBlockchain Veri Zekasında model uç noktalarınızı barındıran bir MLOps çözümü dağıtın. Dikey Arama. Ai.Laurens van der Maas AWS Profesyonel Hizmetler'de Veri Bilimcisidir. AWS'de kendi makine öğrenimi çözümlerini oluşturan müşterilerle yakın bir şekilde çalışıyor ve makine öğreniminin bildiğimiz dünyayı nasıl değiştirdiği konusunda tutkulu.

AWS Lambda PlatoBlockchain Veri Zekasında model uç noktalarınızı barındıran bir MLOps çözümü dağıtın. Dikey Arama. Ai.kangkang wang AWS Profesyonel Hizmetlerinde bir AI/ML danışmanıdır. Sağlık hizmetleri ve yaşam bilimleri dikeyinde AI/ML çözümlerini devreye alma konusunda kapsamlı deneyime sahiptir. Ayrıca kurumsal müşterilerin veri bilimcilerinin bulut yolculuğunu hızlandırmak için ölçeklenebilir AI/ML platformları oluşturmasına yardımcı olmaktan keyif alıyor.

AWS Lambda PlatoBlockchain Veri Zekasında model uç noktalarınızı barındıran bir MLOps çözümü dağıtın. Dikey Arama. Ai.selena tabbara AWS Profesyonel Hizmetler'de Veri Bilimcisidir. AWS platformlarında yenilik yaparak iş sonuçlarına ulaşmak için müşterileriyle her gün birlikte çalışır. Selena boş zamanlarında piyano çalmayı, yürüyüş yapmayı ve basketbol izlemeyi seviyor.

Michael Wallner Michael Wallner AWS Professional Services ile AI/ML'ye odaklanan bir Kıdemli Danışmandır. Michael, müşterilerinin bulut yolculuklarında AWSome olmalarını sağlama konusunda tutkulu. Üretim konusunda heyecanlı ve üretim alanını verilerle dönüştürmeye yardımcı olmaktan keyif alıyor.

Zaman Damgası:

Den fazla AWS Makine Öğrenimi