Zephyrnet Logosu

Amazon SageMaker Pipelines ile çok hesaplı model dağıtımı

Tarih:

Amazon SageMaker Ardışık Düzenleri ilk amaca yöneliktir CI/CD makine öğrenimi (ML) için hizmet. Uçtan uca ML iş akışlarını oluşturmanıza, otomatikleştirmenize, yönetmenize ve ölçeklendirmenize ve DevOps'un en iyi CI/CD uygulamalarını ML'ye (MLOps olarak da bilinir) uygulamanıza yardımcı olur.

Kuruluşunuzun tüm kaynaklarını düzenlemek için birden çok hesap oluşturmak, iyi DevOps uygulaması. Çoklu hesap stratejisi, yalnızca yönetişimi iyileştirmek için değil, aynı zamanda kuruluşunuzun işini destekleyen kaynakların güvenliğini ve kontrolünü artırmak için de önemlidir. Bu strateji, üretim ortamını müşterileriniz için güvenli ve kullanılabilir tutarken kuruluşunuzdaki birçok farklı ekibin denemeler yapmasına, yenilik yapmasına ve daha hızlı entegre etmesine olanak tanır.

Pipelines, aynı stratejiyi ML modellerini dağıtmak için uygulamayı kolaylaştırır. Her ortam için bir tane olmak üzere üç farklı AWS hesabınızın olduğu bir kullanım senaryosu hayal edin: veri bilimi, hazırlama ve üretim. Veri bilimcisi, deneyleri yürütme ve farklı modelleri her zaman kendi hesabına eğitme ve optimize etme özgürlüğüne sahiptir. Bir model üretimde konuşlandırılacak kadar iyi olduğunda, veri bilimcisinin sadece model onay durumunu değiştirmesi gerekir. Approved. Bundan sonra, otomatikleştirilmiş bir süreç, modeli hazırlama hesabına dağıtır. Burada modelin testini birim testleri veya entegrasyon testleri ile otomatikleştirebilir veya modeli manuel olarak test edebilirsiniz. Manüel veya otomatik bir onaydan sonra model, gerçek dünya verileri üzerinde çıkarımlar sunmak için kullanılan daha sıkı kontrol edilen bir ortam olan üretim hesabına dağıtılır. Pipelines ile kullanıma hazır bir çok hesaplı ortam uygulayabilirsiniz.

Bu gönderide, kendi çok hesaplı ML işlem hattınızı uygulamak için Pipelines'ı nasıl kullanacağınızı öğreneceksiniz. İlk olarak, ortamınızı nasıl yapılandıracağınızı ve önceden tanımlanmış bir şablonu bir şablon olarak kullanmaya nasıl hazırlayacağınızı öğrenirsiniz. SageMaker projesi bir modeli iki farklı hesapta eğitmek ve dağıtmak için: hazırlama ve üretim. Ardından, bu özel şablonun nasıl oluşturulduğunu ve kendi SageMaker projeleriniz için şablonların nasıl oluşturulacağını ve özelleştirileceğini ayrıntılı olarak görürsünüz.

Ortamın hazırlanması

Bu bölümde, üç farklı AWS hesabı yapılandırır ve kullanırsınız. Adaçayı Yapıcı Stüdyo CI/CD ardışık düzenini bir veri bilimcisi tarafından oluşturulan ML işlem hattıyla bütünleştiren bir proje oluşturmak. Aşağıdaki şema, SageMaker özel projesi tarafından oluşturulan ortamın referans mimarisini ve nasıl yapıldığını gösterir. AWS Kuruluşları farklı hesapları birleştirir.

Aşağıdaki şema, SageMaker özel projesi tarafından oluşturulan ortamın referans mimarisini ve AWS Kuruluşlarının farklı hesapları nasıl entegre ettiğini gösterir.

Diyagram, Kuruluşlar tarafından yönetilen üç farklı hesap içerir. Ayrıca, bu ortamı üç farklı kullanıcı rolü (aynı kişi olabilir) çalıştırır:

  • makine öğrenimi mühendisi – CI/CD ardışık düzenini, model kayıt defterini ve diğer kaynakları oluşturan SageMaker Studio projesinin sağlanmasından sorumludur
  • Veri bilimcisi – Model grubuna kayıtlı eğitimli bir modelle biten ML işlem hattının oluşturulmasından sorumludur (aynı zamanda model paket grubu)
  • itirafçı – Hazırlama hesabına dağıtılan modeli test etmekten ve üretim dağıtımını onaylamaktan sorumlu

İsterseniz (önerilmese de) benzer bir çözümü Kuruluşlar olmadan da çalıştırmak mümkündür. Ancak, hesaplarınız arasındaki izinleri ve güven ilişkisini manuel olarak hazırlamanız ve Kuruluşlar bağımlılığını kaldırmak için şablonu değiştirmeniz gerekir. Ayrıca, birden çok AWS hesabı ve ekibi olan bir kuruluşsanız, AWS Kontrol Kulesi hesapları ve Kuruluşları sağlamak için. AWS Control Tower, yeni ve güvenli bir çok hesaplı AWS ortamını kurmanın ve yönetmenin en kolay yolunu sağlar. Bu gönderi için, çözümü yalnızca Kuruluşlarla uygulamayı tartışıyoruz.

Ancak devam etmeden önce, sonraki bölümlerde ayrıntıları verilen aşağıdaki adımları tamamlamanız gerekir:

  1. Veri bilimcileri tarafından kullanılacak bir AWS hesabı oluşturun (veri bilimi hesabı).
  2. Oluşturun ve yapılandırın SageMaker Studio etki alanı veri bilimi hesabında.
  3. Üretim ve hazırlama için iki ek hesap oluşturun.
  4. Kuruluşları kullanarak bir kuruluş yapısı oluşturun, ardından ek hesapları davet edin ve entegre edin.
  5. İşlem hatlarını çalıştırmak ve modelleri dış hesaplara dağıtmak için gereken izinleri yapılandırın.
  6. Modelleri birden fazla hesaba dağıtmak için SageMaker proje şablonunu içe aktarın ve SageMaker Studio için kullanılabilir hale getirin.

Hesabınızda SageMaker Studio'yu Yapılandırma

Pipelines, aşağıdakiler için yerleşik destek sağlar: MLOps şablonları makine öğrenimi projeleriniz için CI/CD'yi kullanmanızı kolaylaştırmak için. Bu MLOps şablonları şu şekilde tanımlanır: Amazon BulutFormasyonu şablonlar ve aracılığıyla yayınlanan AWS Hizmet Kataloğu. Bunlar, ML için bir IDE olan SageMaker Studio aracılığıyla veri bilimcilerin kullanımına sunulur. Studio'yu hesabınızda yapılandırmak için aşağıdaki adımları tamamlayın:

  1. SageMaker Studio etki alanınızı hazırlayın.
  2. Bu hesap ve Studio kullanıcıları için SageMaker proje şablonlarını ve SageMaker JumpStart'ı etkinleştirin.

Mevcut bir alan adınız varsa, bu seçeneği etkinleştirmek için alan adının veya bireysel kullanıcıların ayarlarını düzenleyebilirsiniz. Bu seçeneğin etkinleştirilmesi iki farklı AWS Kimlik ve Hesap Yönetimi AWS hesabınızdaki (IAM) rolleri:

  • AmazonSageMakerServiceKatalogÜrünlerLansmanRol – Proje şablonlarını çalıştırmak ve gerekli altyapı kaynaklarını oluşturmak için SageMaker tarafından kullanılır
  • AmazonSageMakerHizmetKatalogÜrünlerKullanımRol – Bir işi çalıştırmak ve modelleri hedef hesaplara dağıtmak için CI/CD ardışık düzeni tarafından kullanılır

SageMaker Studio etki alanınızı re:Invent 2020'den önce oluşturduysanız, devam eden tüm çalışmaları kaydederek ortamınızı yenilemeniz önerilir. Üzerinde fileto menü seç kapanmave seçiminizi onaylayın.

  1. Henüz sahip değilseniz, hazırlama ve üretim için iki AWS hesabı daha oluşturun ve hazırlayın.

Organizasyonları Yapılandırma

Veri bilimi hesabını ve iki ek hesabı Kuruluşlar'daki bir yapıya eklemeniz gerekir. Kuruluşlar, AWS kaynaklarınızı büyütüp ölçekledikçe ortamınızı merkezi olarak yönetmenize ve yönetmenize yardımcı olur. Ücretsizdir ve yönetim stratejinize fayda sağlar.

Her hesap farklı bir hesaba eklenmelidir kuruluş birimi (OU).

  1. Kuruluşlar konsolunda, aşağıdakine benzer bir kuruluş birimi yapısı oluşturun:
  • Kök
    • multi-account-deployment (OU)
      • 111111111111 (veri bilimi hesabı—SageMaker Studio)
      • production (OU)
        • 222222222222 (AWS hesabı)
      • staging (OU)
        • 333333333333 (AWS hesabı)

Kuruluşu yapılandırdıktan sonra, her hesap sahibi bir davet alır. Sahiplerin davetleri kabul etmesi gerekir, aksi takdirde hesaplar kuruluşa dahil edilmez.

  1. Şimdi yapman gerek AWS kuruluşlarıyla güvenilir erişimi etkinleştirin ("Tüm özellikleri etkinleştirin" ve "StackSets'te güvenilir erişimi etkinleştirin").

Bu işlem, veri bilimi hesabınızın hedef hesaplardaki kaynakları sağlamasına olanak tanır. Bunu yapmazsanız, dağıtım işlemi başarısız olur. Ayrıca, bu özellik seti, Kuruluşlarla çalışmak için tercih edilen yoldur ve birleştirici faturalandırma özelliklerini içerir.

  1. Ardından, Kuruluşlar konsolunda öğesini seçin. Hesapları düzenleyin.
  2. Klinik sahneleme.
  3. OU kimliğini not edin.
  4. için bu işlemi tekrarlayın. production VEYA.

Üretim OU'su için bu işlemi tekrarlayın.

İzinleri yapılandırma

Her ek hesapta bir SageMaker yürütme rolü oluşturmanız gerekir. Bu roller üstlenilen AmazonSageMakerServiceCatalogProductsUseRole uç noktaları hedef hesaplara dağıtmak ve test etmek için veri bilimi hesabında.

  1. Adresinde oturum açın AWS Yönetim Konsolu evreleme hesabı ile.
  2. Aşağıdakileri çalıştırın CloudFormation şablonu.

Bu şablon sizin için yeni bir SageMaker rolü oluşturur.

  1. Aşağıdaki parametreleri sağlayın:
    1. Adaçayı YapıcıRolSoneki – Aşağıdaki önekten sonra rol adına eklenen kısa bir dize (boşluk veya alfasayısal karakter içermeyen maksimum 10 küçük harf): sagemaker-role-. Nihai rol adı sagemaker-role-<<sagemaker_role_suffix>>.
    2. Boru HattıYürütmeRolüArn – Oluşturmakta olduğunuz SageMaker rolünü üstlenen veri bilimi hesabındaki rolün ARN'si. ARN'yi bulmak için konsolda veri bilimi hesabıyla oturum açın. IAM konsolunda şunu seçin: Roller ve arama AmazonSageMakerServiceCatalogProductsUseRole. Bu rolü seçin ve ARN'yi kopyalayın (arn:aws:iam::<<data_science_acccount_id>>:role/service-role/AmazonSageMakerServiceCatalogProductsUseRole).
  2. Hazırlama hesabında bu rolü oluşturduktan sonra, üretim hesabı için bu işlemi tekrarlayın.

Veri bilimi hesabında, artık aşağıdakilerin politikasını yapılandırırsınız: Amazon Basit Depolama Hizmeti Eğitimli modeli depolamak için kullanılan (Amazon S3) kovası. Bu gönderi için, mevcut Bölgenin varsayılan SageMaker paketini kullanıyoruz. Aşağıdaki ad biçimine sahiptir: sagemaker-<<region>>-<<aws_account_id>>.

  1. Amazon S3 konsolunda, kullandığınız Bölgeyi ve veri bilimi hesabının kimliğini sağlayarak bu paketi arayın.

Bulamazsanız, bu ad biçimini izleyerek yeni bir paket oluşturun.

  1. Üzerinde İzinler sekmesine aşağıdaki politikayı ekleyin:
    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::<<staging_account_id>>:root", "arn:aws:iam::<<production_account_id>>:root" ] }, "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::sagemaker-<<region>>-<<aws_account_id>>", "arn:aws:s3:::sagemaker-<<region>>-<<aws_account_id>>/*" ] } ]
    }

  1. Ayarlarınızı kaydedin.

Hedef hesapların artık dağıtım sırasında eğitilmiş modeli okuma izni var.

Sonraki adım, rollere yeni izinler eklemektir. AmazonSageMakerServiceCatalogProductsUseRole ve AmazonSageMakerServiceCatalogProductsLaunchRole.

  1. Veri bilimi hesabında, IAM konsolunda şunu seçin: Roller.
  2. Bul AmazonSageMakerServiceCatalogProductsUseRole rol ve onu seçin.
  3. Yeni bir politika ekleyin ve aşağıdakini girin JSON kodu.
  4. Değişikliklerinizi kaydedin.
  5. Şimdi bul AmazonSageMakerServiceCatalogProductsLaunchRole rolü seçin ve aşağıdaki içerikle yeni bir politika ekleyin:
    { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::aws-ml-blog/artifacts/sagemaker-pipeline-blog-resources/*" } ]
    }

  1. Değişikliklerinizi kaydedin.

Bu kadar! Ortamınız neredeyse hazır. Sadece bir adıma daha ihtiyacınız var ve modelleri farklı hesaplarda eğitmeye ve dağıtmaya başlayabilirsiniz.

Özel SageMaker Studio proje şablonunu içe aktarma

Bu adımda, özel proje şablonunuzu içe aktarırsınız.

  1. Veri bilimi hesabıyla konsolda oturum açın.
  2. AWS Service Catalog konsolunda, altında Yönetim, seçmek Portfolyolar.
  3. Klinik Yeni bir portföy oluştur.
  4. Portföyü adlandırın SageMaker Organization Templates.
  5. Aşağıdakini indirin şablon bilgisayarınıza.
  6. Yeni portföyü seçin.
  7. Klinik Yeni bir ürün yükle.
  8. İçin Ürün adıgiriş Multi Account Deployment.
  9. İçin Açıklama, girmek Multi account deployment project.
  10. İçin Mal sahibi, adınızı giriniz.
  11. Altında Sürüm ayrıntıları, Için Yöntem, seçmek Bir şablon dosyası kullanın.
  12. Klinik Bir şablon yükleyin.
  13. İndirdiğiniz şablonu yükleyin.
  14. İçin Sürüm başlığı, seçmek 1.0.

Kalan parametreler isteğe bağlıdır.

  1. Klinik Değerlendirme.
  2. Ayarlarınızı gözden geçirin ve seçin Ürün oluştur.
  3. Klinik Yenile Yeni ürünü listelemek için.
  4. Yeni oluşturduğunuz ürünü seçin.
  5. Üzerinde Etiketler sekmesinde ürüne aşağıdaki etiketi ekleyin:
    1. anahtar - sagemaker:studio-visibility
    2. Özellik - True

Portföy ayrıntılarına geri döndüğünüzde, aşağıdaki ekran görüntüsüne benzer bir şey görürsünüz (farklı kimliklerle).

Portföy ayrıntılarına geri döndüğünüzde, aşağıdaki ekran görüntüsüne benzer bir şey görürsünüz (farklı kimliklerle).

  1. Üzerinde Kısıtlamalar sekmesini seçin Kısıt oluştur.
  2. İçin PLATFORM, seçmek Çoklu Hesap Dağıtımı (az önce oluşturduğunuz ürün).
  3. İçin kısıtlama türü, seçmek Başlatmak.
  4. Altında Başlatma Kısıtlaması, Için Yöntem, seçmek IAM rolünü seçin.
  5. Klinik AmazonSageMakerServiceKatalogÜrünlerLansmanRol.
  6. Klinik oluşturmak.
  7. Üzerinde Gruplar, roller ve kullanıcılar sekmesini seçin Gruplar, roller, kullanıcılar ekleyin.
  8. Üzerinde Roller sekmesinde, SageMaker Studio etki alanınızı yapılandırırken kullandığınız rolü seçin.
  9. Klinik Erişim ekle.

Veri bilimi hesabınızda hangi rolü seçtiğinizi hatırlamıyorsanız, SageMaker konsoluna gidin ve Amazon SageMaker Stüdyosu. Stüdyoda Özet bölümünde, özelliği bulun Yürütme rolü. Önceki adımda bu rolün adını arayın.

Sen bittin! Şimdi bu şablonu kullanarak bir proje oluşturma zamanı.

Projenizi oluşturmak

Önceki bölümlerde çoklu hesap ortamını hazırladınız. Sonraki adım, yeni şablonunuzu kullanarak bir proje oluşturmaktır.

  1. Veri bilimi hesabıyla konsolda oturum açın.
  2. SageMaker konsolunda, kullanıcınızla SageMaker Studio'yu açın.
  3. Seçin Bileşenler ve kayıtlar
  4. Açılır menüden şunu seçin: Projeler.
  5. Klinik proje oluşturma.

Proje oluştur'u seçin.

Üzerinde proje oluşturma sayfa, SageMaker şablonları varsayılan olarak seçilir. Bu seçenek yerleşik şablonları listeler. Ancak çok hesaplı dağıtım için hazırladığınız şablonu kullanmak istiyorsunuz.

  1. Klinik Organizasyon şablonları.
  2. Klinik Çoklu Hesap Dağıtımı.
  3. Klinik Proje şablonunu seçin.

Şablonu göremiyorsanız, önceki bölümdeki tüm adımları doğru şekilde tamamladığınızdan emin olun.

Şablonu göremiyorsanız, önceki bölümdeki tüm adımları doğru şekilde tamamladığınızdan emin olun.

  1. içinde Proje detayları bölümü Name, iris-multi-01 girin.

Proje adı 15 veya daha az karakterden oluşmalıdır.

  1. içinde Proje şablonu parametreleri, her bir hedef hesapta (hazırlama ve üretim) oluşturduğunuz rollerin adlarını kullanın ve aşağıdaki özellikleri sağlayın:
    1. SageMakerExecutionRoleStagingName
    2. SageMakerExecutionRoleProdName
  2. Hazırlama ve üretim OU'ları için daha önce oluşturduğunuz OU kimliklerini alın ve aşağıdaki özellikleri sağlayın:
    1. OrganizationalUnitStagingId
    2. OrganizationalUnitProdId
  3. Klinik proje oluşturma.

Proje oluştur'u seçin.

Tüm kaynakların sağlanması birkaç dakika sürer, bundan sonra proje şurada listelenir: Projeler bölüm. Projeyi seçtiğinizde, projenin meta verilerini içeren bir sekme açılır. bu Model grupları sekmesi projenizle aynı ada sahip bir model grubu gösterir. Ayrıca proje sağlama sırasında oluşturulmuştur.

Tüm kaynakların sağlanması birkaç dakika sürer, ardından proje Projeler bölümünde listelenir.

Ortam artık veri bilimcisinin modeli eğitmeye başlaması için hazırdır.

Model eğitimi

Artık projeniz hazır olduğuna göre, bir modeli eğitmenin zamanı geldi.

  1. Atomic Cüzdanı indirin : örnek not defteri Bu izlenecek yol için kullanmak için.
  2. Seçin Dosya Çalışma alanını dosya yönetimine değiştirmek için simge.
  3. Seçin klasör oluşturun
  4. Klasör için bir ad girin.
  5. Klasör adını seçin.
  6. Seçin Dosya yükleme
  7. İndirdiğiniz Jupyter not defterini seçin ve yeni dizine yükleyin.
  8. Yeni bir sekme açmak için not defterini seçin.

Yeni bir sekme açmak için not defterini seçin.

Bir çekirdek seçmeniz istenir.

  1. Klinik Python3 (Veri Bilimi).
  2. Klinik seç.

Seç'i seçin.

  1. Not defterinin ikinci hücresinde, project_name projenize verdiğiniz adla değişken (bu gönderi için, iris-multi-01).

Artık Jupyter not defterini çalıştırabilirsiniz. Bu not defteri, yalnızca iki adımla çok basit bir işlem hattı oluşturur: modeli eğit ve kaydet. kullanır iris veri kümesi ve XGBoost yerleşik kapsayıcı algoritma olarak.

  1. Tüm not defterini çalıştırın.

Aşağıdaki kodu içeren hücreyi çalıştırdıktan sonra işlem biraz zaman alır:

start_response = pipeline.start(parameters={ "TrainingInstanceCount": "1"
})

Bu, tamamlanması yaklaşık 3 dakika süren eğitim işini başlatır. Eğitim tamamlandıktan sonra, Jupyter notebook'un bir sonraki hücresi model kayıt defterindeki modelin en son sürümünü alır ve bunu olarak işaretler. Approved. Alternatif olarak, SageMaker Studio kullanıcı arayüzünden bir modeli onaylayabilirsiniz. Üzerinde Model grupları sekmesinde, model grubunu ve istediğiniz sürümü seçin. Seçmek Güncelleme durumu ve Onaylamak kaydetmeden önce.

Kaydetmeden önce Durumu güncelle ve Onayla'yı seçin

Bu, veri bilimcisinin işinin sonu, ancak CI/CD ardışık düzenini çalıştırmanın başlangıcıdır.

Amazon EventBridge model kayıt defterini izler. Dinleyici, sağlanan ile yeni bir dağıtım işi başlatır. AWS Kod Ardışık Düzeni iş akışı (sizinle birlikte oluşturulan SageMaker Studio projesini başlattı).

  1. CodePipeline konsolunda, önekle başlayan işlem hattını seçin sagemaker-, ardından projenizin adı.

CodePipeline konsolunda, sagemaker- önekiyle başlayan ve ardından projenizin adını takip eden işlem hattını seçin.

Modelinizi onayladıktan kısa bir süre sonra dağıtım işlem hattı çalışmaya başlar. Boru hattının duruma ulaşmasını bekleyin DeployStaging. Bu aşamanın tamamlanması yaklaşık 10 dakika sürebilir. Hazırlama hesabında ilk uç noktayı dağıttıktan sonra işlem hattı test edilir ve ardından bir sonraki adıma geçer, ApproveDeployment. Bu adımda manuel onay bekler.

  1. Klinik Değerlendirme.
  2. Metin kutusuna bir onay nedeni girin.
  3. Klinik Onaylamak.

Model artık üretim hesabına dağıtılır.

Ayrıca, hedef hesaplarda uç noktaları dağıtmak için ardışık düzenin oluşturduğu yığınları ve yığın kümelerini görmek için işlem hattını AWS CloudFormation konsolunda izleyebilirsiniz. Her hesap için dağıtılan uç noktaları görmek için SageMaker konsolunda hazırlama hesabı veya üretim hesabı olarak oturum açın ve Uç noktalar gezinme bölmesinde.

Temizlemek

Bu örnekte sağladığınız tüm kaynakları temizlemek için aşağıdaki adımları tamamlayın:

  1. Ana hesabınızla konsolda oturum açın.
  2. AWS CloudFormation konsolunda, üzerine tıklayın. Yığın Kümeleri ve silme aşağıdaki öğeler (uç noktalar):
    1. Prod - sagemaker-<<sagemaker-project-name>>-<<project-id>>-deploy-prod
    2. Sahneleme - sagemaker-<<sagemaker-project-name>>-<<project-id>>-deploy-staging
  3. Dizüstü bilgisayarınızda veya iş istasyonu terminalinizde, AWS Komut Satırı Arayüzü (AWS CLI) ve projenizi silmek için aşağıdaki kodu girin:
    aws sagemaker delete-project --project-name iris-multi-01

Emin olun AWS CLI'nin en son sürümü.

Kendi SageMaker projeniz için bir şablon oluşturma ve özelleştirme

SageMaker projeleri ve SageMaker MLOps proje şablonları ML modellerini eğitmek, optimize etmek, değerlendirmek ve dağıtmak için gereken tüm altyapıyı otomatik olarak oluşturmak ve yapılandırmak için kullanabileceğiniz güçlü özelliklerdir. SageMaker projesi, kolayca uçtan uca bir makine öğrenimi çözümü oluşturmanıza olanak tanıyan, AWS Hizmet Kataloğu tarafından sağlanan bir üründür. Daha fazla bilgi için bkz. AWS Hizmet Kataloğu Yönetici Kılavuzu.

Ürün, AWS Service Catalog tarafından yönetilen bir CloudFormation şablonudur. Şablonlar ve gereksinimleri hakkında daha fazla bilgi için bkz. AWS CloudFormation şablon biçimleri.

Makine öğrenimi mühendisleri, kod olarak altyapı kavramını (IaC) kullanarak birden çok ortam tasarlayabilir ve bu kurulumun tüm ayrıntılarını bir CloudFormation şablonu olarak ifade edebilir. Bu farklı ortamları ve görevleri bir CI/CD ardışık düzeni kullanarak da entegre edebilirsiniz. SageMaker projeleri, diğer ML mühendisleri ve veri bilimcileri tarafından birçok kez başlatılabilen basit bir proje biçiminde altyapı karmaşıklığını sarmak için kolay, güvenli ve anlaşılır bir yol sağlar.

Aşağıdaki şema, özel SageMaker proje şablonunuzu oluşturmak ve yayınlamak için tamamlamanız gereken ana adımları göstermektedir.

Aşağıdaki şema, özel SageMaker proje şablonunuzu oluşturmak ve yayınlamak için tamamlamanız gereken ana adımları göstermektedir.

Bu adımları bölümlerde daha ayrıntılı olarak açıkladık. Özel SageMaker Studio Projesi şablonunu içe aktarma ve Projenizi oluşturmak.

Bir makine öğrenimi mühendisi olarak tasarlayabilir ve yeni bir CloudFormation şablonu oluşturun proje için bir AWS Hizmet Kataloğu portföyü hazırlayın ve buna yeni bir ürün ekleyin.

Hem veri bilimciler hem de makine öğrenimi mühendisleri, özel şablonla yeni bir proje oluşturmak için SageMaker Studio'yu kullanabilir. SageMaker, AWS Service Catalog'u çağırır ve CloudFormation şablonunda açıklanan altyapıyı sağlamaya başlar.

Bir veri bilimcisi olarak artık modeli eğitmeye başlayabilirsiniz. Model kayıt defterine kaydettikten sonra, CI/CD işlem hattı otomatik olarak çalışır ve modeli hedef hesaplara dağıtır.

Bu gönderideki CloudFormation şablonuna bir metin düzenleyicide bakarsanız, bu gönderide özetlediğimiz mimariyi uyguladığını görebilirsiniz.

Aşağıdaki kod, şablonun bir pasajıdır:

Description: Toolchain template which provides the resources needed to represent infrastructure as code. This template specifically creates a CI/CD pipeline to deploy a given inference image and pretrained Model to two stages in CD -- staging and production.
Parameters: SageMakerProjectName: Type: String SageMakerProjectId: Type: String
…
<<other parameters>>
…
Resources: MlOpsArtifactsBucket: Type: AWS::S3::Bucket DeletionPolicy: Retain Properties: BucketName: …
… ModelDeployCodeCommitRepository: Type: AWS::CodeCommit::Repository Properties: RepositoryName: … RepositoryDescription: … Code: S3: Bucket: … Key: …
… ModelDeployBuildProject: Type: AWS::CodeBuild::Project
… ModelDeployPipeline: Type: AWS::CodePipeline::Pipeline
…

Şablonun iki önemli bölümü vardır: Parameters (şablonun giriş parametreleri) ve Resources. SageMaker proje şablonları, şablonunuza iki giriş parametresi eklemenizi gerektirir: SageMakerProjectName ve SageMakerProjectId. Bu parametreler SageMaker Studio tarafından dahili olarak kullanılır. Gerekirse başka parametreler de ekleyebilirsiniz.

Snippet'in Kaynaklar bölümünde, aşağıdakileri oluşturduğunu görebilirsiniz:

  • Bir aşamadan diğerine geçirilen aracı yapıtları depolamak için CI/CD işlem hattı tarafından kullanılan yeni bir S3 kovası.
  • An AWS CodeCommit dağıtım ve test aşamaları sırasında kullanılan yapıtları depolamak için depo.
  • An AWS Kod Oluşturma artefaktları almak ve bunları proje için doğrulamak ve yapılandırmak için proje. Çoklu hesap şablonunda, bu proje ayrıca yeni modelleri dağıtmak için CI/CD işlem hattı tarafından kullanılan yeni bir model kayıt defteri oluşturur.
  • CI/CD işlem hatlarının tüm adımlarını düzenleyen bir CodePipeline iş akışı.

Model kayıt defterine her yeni model kaydettiğinizde veya CodeCommit deposuna yeni bir yapıt gönderdiğinizde, bu CodePipeline iş akışı başlar. Bu olaylar, bir EventBridge kuralı, aynı şablon tarafından sağlanır. CI/CD ardışık düzeni aşağıdaki aşamaları içerir:

  • Kaynak – CodeCommit deposundaki yapıtları okur ve diğer adımlarla paylaşır.
  • İnşa etmek – Aşağıdakileri yapmak için CodeBuild projesini çalıştırır:
    • Halihazırda bir model kaydının oluşturulup oluşturulmadığını doğrulayın ve gerekirse bir tane oluşturun.
    • Sonraki iki dağıtım aşaması tarafından kullanılan yeni bir CloudFormation şablonu hazırlayın.
  • Aşamayı Dağıt – Aşağıdaki bileşenleri içerir:
    • Kaynakları Dağıt: Aşamalandırma – Hazırlanan CloudFormation şablonunu alır. Build adım ve yeni bir yığın dağıtır. Bu yığın, hedef hesapta yeni bir SageMaker uç noktası dağıtır.
    • Test Aşaması – Dağıtılan uç noktayı test eden özel bir Python betiği çalıştıran ikinci bir CodeBuild projesini çağırır.
    • Dağıtımı Onayla – Bir manuel onay adımı. Onaylanırsa, üretimde bir uç noktayı dağıtmak için bir sonraki aşamaya geçer veya onaylanmazsa iş akışını sona erdirir.
  • DağıtımProd - Benzer DeployStaging, aynı CloudFormation şablonunu kullanır, ancak farklı giriş parametreleriyle. Üretim hesabında yeni bir SageMaker uç noktası dağıtır. 

Yeni bir eğitim süreci başlatabilir ve modelinizi SageMaker projesiyle ilişkili model kayıt defterine kaydedebilirsiniz. Bu gönderide verilen Jupyter not defterini kullanın ve kendinizinkini özelleştirin makine öğrenimi ardışık düzeni Veri kümenizi hazırlamak ve dağıtmadan önce modellerinizi eğitmek, optimize etmek ve test etmek için. Bu özellikler hakkında daha fazla bilgi için bkz. SageMaker Projeleriyle MLO'ları otomatikleştirin. Daha fazla Pipelines örneği için bkz. GitHub repo.

Sonuçlar ve sonraki adımlar

Bu gönderide, SageMaker Pipelines kullanarak ML modellerini birden çok AWS hesabında eğitmek ve dağıtmak için kendi ortamınızı nasıl hazırlayacağınızı gördünüz.

Makine öğrenimi projelerinizi bir SageMaker proje şablonları kitaplığı olarak yönetmeye başlarsanız, SageMaker projeleriyle ortamınızın yönetimi ve güvenliği önemli ölçüde iyileştirilebilir.

Sonraki adım olarak, SageMaker proje şablonunu değiştirmeyi deneyin ve kuruluşunuzun ihtiyaçlarına göre özelleştirin. İstediğiniz kadar adım ekleyin ve kapsamlı çözümler oluşturmak için CI/CD olaylarını yakalayabileceğinizi ve kullanıcıları bilgilendirebileceğinizi veya diğer hizmetleri arayabileceğinizi unutmayın.


Yazar Hakkında

Samir Araujo AWS'de AI/ML Çözümleri Mimarıdır. AI/ML çözümleri oluşturan müşterilerin AWS platformunu kullanarak iş zorluklarını çözmelerine yardımcı olur. Bilgisayarla görme, doğal dil işleme, tahmin, uçta ML ve daha fazlasıyla ilgili çeşitli AI/ML projeleri üzerinde çalışıyor. Boş zamanlarında donanım ve otomasyon projeleri ile oynamayı seviyor ve robotiğe özel bir ilgi duyuyor.

Kaynak: https://aws.amazon.com/blogs/machine-learning/multi-account-model-deployment-with-amazon-sagemaker-pipelines/

spot_img

En Son İstihbarat

spot_img

Bizimle sohbet

Merhaba! Size nasıl yardım edebilirim?