Görüntü oluşturma CI/CD işlem hatlarıyla Amazon SageMaker projeleri oluşturun

Kaynak Düğüm: 1876821

Amazon SageMaker projeleri vardır AWS Hizmet Kataloğu Kolayca uçtan uca makine öğrenimi (ML) çözümleri oluşturmanıza olanak tanıyan, sağlanan ürünler. SageMaker projeleri, kuruluşlara makine öğrenimi geliştirmenin başlangıç ​​zamanını hızlandırmak amacıyla kullanıcılarınızın makine öğrenimi çözümlerini önyükleyen şablonları kullanma yeteneği sağlar.

Artık SageMaker projelerini, üzerinde birinci taraf şablonu olarak kullanılabilen bir görüntü oluşturma sürekli entegrasyonu ve sürekli teslim (CI/CD) hattı aracılığıyla özel bağımlılıkları yönetmek için kullanabilirsiniz. Amazon SageMaker Stüdyosu. Bu yeni özellik, geliştiricilere, projenizin kaynak kontrol depolarındaki kapsayıcı dosyalarını değiştirerek eğitim, işleme ve çıkarım için kullandığınız görüntülerde güncelleme yapma esnekliği sağlar; bu, otomatik olarak bir görüntü oluşturma hattını tetikler. Şablonun kullandığı AWS CodeCommit kod deposu olarak. Yeni oluşturulan görüntüleri bir SageMaker boru hattı işleme, eğitim ve çıkarım için.

Yeni şablon seçenekleri artık aşağıdaki ekran görüntüsünde gösterildiği gibi SageMaker Python SDK aracılığıyla veya Studio IDE içerisinde mevcuttur.

Yeni şablonun kullanım alanları AWS Kod Ardışık Düzeni görüntüleri oluşturmak ve göndermek için Amazon ECR'si ve ardından bir modeli eğiten ve onu sisteme kaydeden bir SageMaker işlem hattını tetikleyin. SageMaker Model Kaydı. Model kaydına girdikten sonra model durumu onaylı olarak güncellenebilir, bu da CodePipeline aracılığıyla model dağıtım sürecini tetikler.

Çözüme genel bakış

Aşağıdaki mimari diyagram, model oluşturma ve model dağıtım kodu için CodeCommit depolarını içermez. Odak noktası, yeni şablondaki görüntü oluşturma özellikleridir.

Bu yazının ilerleyen kısımlarında daha ayrıntılı olarak ele alınan aşağıdaki kaynakları sağlamak ve yapılandırmak için görüntü oluşturma CI/CD'sine yönelik yeni MLOps proje şablonunu kullanıyoruz:

  • SageMaker kod depoları – Proje şablonu tarafından beş CodeCommit deposundan oluşan bir küme oluşturulur. Bu depolardan üçü, işleme, eğitim ve çıkarım için kullanılan görüntülerin oluşturulmasına yönelik kodu içerir. Görüntünüzü özelleştirmek için değiştirebileceğiniz tohum kodunu içerirler. SageMaker işlem hattını kullanan model eğitim kodu için bir havuz ve SageMaker işlem hattını kullanan model dağıtım kodu için bir havuz vardır. AWS CloudFormation ve CodePipeline. Kullanıcı arayüzü aracılığıyla, CI/CD işlem hattının bir parçası olarak hangi görüntüleri oluşturmak istediğinizi seçebilirsiniz ve yalnızca bu depolar oluşturulur.
  • Amazon ECR depoları – Amazon ECR depoları görüntülerin eğitimi, işlenmesi ve çıkarımı için oluşturulur.
  • Tetikleyicileri modelleyin ve dağıtın - Amazon EventBridge Amazon ECR durumu değişikliklerinde model oluşturma CodePipeline işlem hattını tetiklemek için kurallar oluşturulur. Bu, konteynerlerin yeni sürümleri oluşturulduğunda ve Amazon ECR'ye aktarıldığında SageMaker işlem hattını tetikleme sürecini otomatikleştirir. Model dağıtımı CodePipeline ardışık düzeni, model kayıt defterindeki bir modelin durumu onaylandı olarak değiştiğinde EventBridge tarafından tetiklenecek şekilde yapılandırılmıştır.
  • MLOps S3 kovası - Bir Amazon Basit Depolama Hizmeti MLOps ardışık düzenine yönelik (Amazon S3) paketi, projenizin ve ardışık düzeninizin girdileri ve yapıları için kullanılır.

Bu kaynakları kullanarak uçtan uca CI/CD hattını kurmak için gereken tüm sağlama ve yapılandırma, SageMaker projeleri tarafından otomatik olarak gerçekleştirilir.

Artık yeni özelliğin nasıl çalıştığını anlattığımıza göre, tek seferlik kurulum görevlerine ve ardından yeni şablonları kullanmaya geçelim.

Yeni bir SageMaker projesi oluşturun

SageMaker projenizi oluşturmak için aşağıdaki adımları tamamlayın:

  1. Studio konsolunda, SageMaker kaynakları.
  2. Açılır menüden şunu seçin: Projeler.
  3. Klinik proje oluşturma.
  4. İçin SageMaker proje şablonları, seçmek Görüntü oluşturma, model oluşturma ve model dağıtımı için MLOps şablonu.
  5. Klinik Proje şablonunu seçin.
  6. Görüntü oluşturma sürecini yapılandırmak için çeşitli parametreler sağlamanız gerekir:
    1. İşleme görüntüsü oluşturma hattını dahil et – Bu, işleme görüntüsü için bir görüntü oluşturma CI/CD altyapısı oluşturur. Buna CodePipeline işlem hattı, CodeBuild işi, Amazon ECR deposu ve SageMaker görüntüsü dahildir.
    2. Çıkarım görüntüsü oluşturma hattını dahil et – Bu, çıkarım görüntüsü için bir görüntü oluşturma CI/CD altyapısı oluşturur. Buna CodePipeline işlem hattı, CodeBuild işi, Amazon ECR deposu ve SageMaker görüntüsü dahildir.
    3. Eğitim görüntüsü oluşturma hattını dahil edin – Bu, eğitim görüntüsü için bir görüntü oluşturma CI/CD altyapısı oluşturur. Buna CodePipeline işlem hattı, CodeBuild işi, Amazon ECR deposu ve SageMaker görüntüsü dahildir.
    4. Ortam türü – Görüntüyü oluştururken CodeBuild tarafından kullanılan ortamın türü.
    5. işlem türü – CodeBuild tarafından kullanılan derleme ortamının işlem türü değeri.
    6. Kapsayıcı etiketi adı – Kapsayıcı görselinin etiketi. Bu bir AWS etiketi değil Docker etiketidir.
  7. Klinik proje oluşturma.

SageMaker'ın kaynakları sağladığını ve yapılandırdığını gösteren bir mesaj görünür.

Proje tamamlandığında başarılı bir mesaj alırsınız.

Projeniz artık listeleniyor Projeler liste.

  1. Her bir depoyu seçerek klonlayın klon deposu… Studio kullanıcı arayüzünde.

Bu proje şablonu tarafından beş CodeCommit deposu oluşturulur:

  • sagemaker-image-building-cicd-demo-project-p-1jrh7jnlz3lx-processing-imagebuild
  • sagemaker-image-building-cicd-demo-project-p-1jrh7jnlz3lx-inference-imagebuild
  • sagemaker-image-building-cicd-demo-project-p-1jrh7jnlz3lx-modelbuild
  • sagemaker-image-building-cicd-demo-project-p-1jrh7jnlz3lx-training-imagebuild
  • sagemaker-image-building-cicd-demo-project-p-1jrh7jnlz3lx-modeldeploy

Beş havuzun tümü klonlandıktan sonra Studio kullanıcı arayüzünde kullanılabilirler.

Görüntü oluşturma deposu

Bu örnekte, üç görüntü oluşturma deposunun tamamını oluşturduk. Bu bölümde havuzun yapısını görecek ve özel gereksinimlerinizi karşılayacak şekilde nasıl güncellenebileceğini öğreneceksiniz.

Görüntü oluşturma havuzlarının her biri, aşağıdaki ekran görüntüsünde gösterildiği gibi aynı yapıyı takip eder.

Bu depoda oluşturulan görüntü basit bir XGBoost görüntüsüdür ancak bu yapıyı takip ederek Docker dosyası üzerinde çalışılan kullanım senaryosunu karşılayacak şekilde güncellenebilir. codebuild-buildspec.yml Dosya, görüntünün oluşturulup Amazon ECR'ye aktarılabilmesi için CodeBuild'ı yapılandırmak için kullanılır.

Oluşturulan görüntülerin durumunu görmek için CodeBuild konsoluna gidebilirsiniz.

Her depoyla ilişkili CodePipeline işlem hatları, proje oluşturulurken otomatik olarak çalışır. Değişiklikler depoya gönderildiğinde yeni derlemeler tetiklenir. Görüntüleri Amazon ECR konsolunda görebilirsiniz.

Görüntü oluşturma havuzlarından herhangi birine yeni kod gönderildiğinde CodeBuild projesi başlar ve görüntünün yeni sürümü oluşturularak Amazon ECR'ye aktarılır. ML iş akışının her adımını otomatikleştirmek için bir dizi EventBridge kuralı oluşturulur. Bu yeni şablonda, Amazon ECR'ye yeni bir konteyner sürümü gönderildiğinde model oluşturma hattını tetiklemek için EventBridge'de bir kural oluşturulur.

Model oluşturma işlem hattı hedefi, SageMaker işlem hattını çalıştırmaya başlar.

Dockerfile'ı güncelleme

Bu bölümde, depolardan birindeki Dockerfile güncellemesinin, yeni bir görüntü sürümü oluşturup Amazon ECR'ye aktaran CodeBuild sürecini ve ardından başlatılan makine öğrenimi hattını nasıl tetiklediğini gösteriyoruz.

  1. Docker dosyasını güncelleyin.
  2. Kodu CodeCommit'e aktarın.
  3. Yeni görüntü sürümünün oluşturulduğunu doğrulamak için CodeBuild'a gidin.

Aşağıdaki ekran görüntüleri, depoya gönderilen güncellenmiş Docker dosyasını kullanarak kapsayıcıyı oluşturan CodeBuild aşamasının günlüklerini içerir.

Amazon ECR'ye aktarılan görüntü sürümü, model oluşturma deposundaki SageMaker işlem hattını tetikler.

Model, SageMaker Studio'daki diğer MLOps şablonlarındaki iş akışlarına benzer şekilde model kaydında görüntülenebilir ve onaylanabilir.

Özet

Bu yazıda, görüntü oluşturmaya yönelik CI/CD'ye yönelik yeni SageMaker MLOps proje şablonunu inceledik. Şablonda sağlanan yapıyla Dockerfiles'ı kullanım durumunuzu karşılayacak şekilde değiştirebilir, daha fazla görüntü oluşturma deposu içeren özel bir şablon oluşturabilir veya otomatik ardışık düzen tetiklemesi için özel kurallar oluşturabilirsiniz. Deneyin ve herhangi bir sorunuz olursa yorum bölümünde bize bildirin!


Yazar Hakkında

Kirit Thadaka Amazon SageMaker Service SA ekibinde çalışan bir ML Çözüm Mimarıdır. AWS'ye katılmadan önce Kirit, erken aşamadaki yapay zeka girişimlerinde çalışarak ardından yapay zeka araştırmaları, MLOps ve teknik liderlik alanlarında çeşitli rollerde danışmanlık yaptı.

Kaynak: https://aws.amazon.com/blogs/machine-learning/create-amazon-sagemaker-projects-with-image-building-ci-cd-pipelines/

Zaman Damgası:

Den fazla AWS Makine Öğrenimi Blogu