Amazon SageMaker PlatoBlockchain Data Intelligence'ı kullanarak Terraform ile makine öğrenimi işlem hatlarını dağıtın ve yönetin. Dikey Arama. Ai.

Amazon SageMaker kullanarak Terraform ile makine öğrenimi ardışık düzenlerini devreye alın ve yönetin

AWS müşterileri, bulut altyapılarını tasarlamak, geliştirmek ve yönetmek için Kod Olarak Altyapıya (IaC) güveniyor. IaC, geliştirme operasyonları (DevOps) alanındaki en iyi uygulamaları izleyebilirken müşteri altyapısının ve hizmetlerinin tutarlı, ölçeklenebilir ve tekrarlanabilir olmasını sağlar.

AWS altyapısını ve hizmetlerini IaC ile yönetmek için olası bir yaklaşım, Terraform, geliştiricilerin altyapılarını yeniden kullanılabilir kod modüllerinde düzenlemelerine olanak tanır. Bu yön, makine öğrenimi (ML) alanında giderek daha fazla önem kazanmaktadır. IaC olarak Terraform ile eğitim ve çıkarım da dahil olmak üzere ML ardışık düzenlerini geliştirmek ve yönetmek, altyapıyı sıfırdan geliştirmek zorunda kalmadan birden çok ML kullanım durumu veya Bölge için kolayca ölçeklendirmenizi sağlar. Ayrıca, ML ardışık düzeninin farklı uygulamaları arasında eğitim ve çıkarım için altyapı (örneğin, örnek türü ve boyutu) için tutarlılık sağlar. Bu, istekleri ve gelen trafiği farklı yönlere yönlendirmenizi sağlar. Amazon Adaçayı Yapıcı uç noktalar.

Bu gönderide, Terraform ve Amazon SageMaker kullanarak ML işlem hatlarını nasıl dağıtacağınızı ve yöneteceğinizi gösteriyoruz.

Çözüme genel bakış

Bu gönderi, kod sağlar ve Amazon SageMaker kullanarak model eğitimi ve çıkarımı için Terraform ile ML işlem hatları için AWS altyapısını dağıtmak için gerekli adımlarda size yol gösterir. ML işlem hattı şu şekilde yönetilir: AWS Basamak İşlevleri Aşağıdaki şekilde gösterildiği gibi ML işlem hattında uygulanan farklı adımları düzenlemek için.

Adım Fonksiyon Adımlar

Step Functions bir AWS Lambda Daha sonra bir SageMaker eğitim işi başlatılırken kullanılan benzersiz bir iş kimliği oluşturan işlev. Step Functions ayrıca çıkarım için kullanılan bir model, uç nokta konfigürasyonu ve uç nokta oluşturur. Ek kaynaklar aşağıdakileri içerir:

Bir Docker görüntüsüyle eğitim ve çıkarım için ML ile ilgili kod, esas olarak aşağıdaki mevcut çalışmalara dayanır: GitHub deposu.

Aşağıdaki şema, çözüm mimarisini göstermektedir:

mimari diyagram

Aşağıdaki üst düzey adımlarda size yol gösteriyoruz:

  1. AWS altyapınızı Terraform ile devreye alın.
  2. Docker imajınızı Amazon ECR'ye aktarın.
  3. ML işlem hattını çalıştırın.
  4. Uç noktanızı çağırın.

depo yapısı

Bu gönderi için kullanılan kodu ve verileri içeren depoyu aşağıda bulabilirsiniz. GitHub deposu.

Depo aşağıdaki dizinleri içerir:

  • /terraform – Aşağıdaki alt klasörlerden oluşur:
    • ./infrastructure – Altyapıyı dağıtmak için kullandığımız değişken bildirimlere ek olarak ML ardışık düzen modülünü çağıran main.tf dosyasını içerir
    • ./ml-pipeline-module – Yeniden kullanabileceğimiz Terraform ML ardışık düzen modülünü içerir
  • /src – Aşağıdaki alt klasörlerden oluşur:
    • ./container – Docker görüntüsünün tanımlarıyla birlikte eğitim ve çıkarım için örnek kod içerir
    • ./lambda_function – SageMaker eğitim işi için benzersiz bir iş kimliği gibi konfigürasyonları oluşturan Lambda işlevi için Python kodunu içerir
  • /data – Aşağıdaki dosyayı içerir:
    • ./iris.csv – ML modelini eğitmek için veri içerir

Önkoşullar

Bu izlenecek yol için aşağıdaki ön koşullara sahip olmalısınız:

AWS altyapınızı Terraform ile devreye alın

ML ardışık düzenini dağıtmak için birkaç değişkeni ve adı ihtiyaçlarınıza göre ayarlamanız gerekir. Bu adımın kodu, /terraform dizin.

İlk kez başlatırken dosyayı açın terraform/infrastructure/terraform.tfvars ve değişkeni ayarlayın proje Adı değişkene ek olarak projenizin adına bölge başka bir Bölgede dağıtmak istiyorsanız. Eğitim ve çıkarım için örnek türleri gibi ek değişkenleri de değiştirebilirsiniz.

Ardından, altyapıyı Terraform ile dağıtmak için aşağıdaki komutları kullanın:

export AWS_PROFILE=<your_aws_cli_profile_name>
cd terraform/infrastructure
terraform init
terraform plan
terraform apply

Çıktıyı kontrol edin ve planlanan kaynakların doğru göründüğünden emin olun ve başvuru aşamasında her şey doğruysa evet ile onaylayın. Ardından Amazon ECR konsoluna gidin (veya terminaldeki Terraform çıktısını kontrol edin) ve Terraform aracılığıyla oluşturduğunuz ECR deponuzun URL'sini alın.

Çıktı, ECR veri havuzu URL'si dahil olmak üzere aşağıdaki görüntülenen çıktıya benzer görünmelidir:

Apply complete! Resources: 19 added, 0 changed, 0 destroyed. Outputs: ecr_repository_url = <account_number>.dkr.ecr.eu-west-1.amazonaws.com/ml-pipeline-terraform-demo

Docker imajınızı Amazon ECR'ye aktarın

ML işlem hattı ve SageMaker'ın çıkarım için bir SageMaker uç noktası eğitmesi ve sağlaması için bir Docker görüntüsü sağlamanız ve bunu Amazon ECR'de depolamanız gerekir. Dizinde bir örnek bulabilirsiniz src/container. Daha önceki adımdan itibaren AWS altyapısını zaten uyguladıysanız, açıklandığı gibi Docker görüntüsünü aktarabilirsiniz. Docker imajınız geliştirildikten sonra aşağıdaki işlemleri yapabilir ve Amazon ECR'ye aktarabilirsiniz (Amazon ECR URL'sini ihtiyaçlarınıza göre ayarlayın):

cd src/container
export AWS_PROFILE=<your_aws_cli_profile_name>
aws ecr get-login-password --region eu-west-1 | docker login --username AWS --password-stdin <account_number>.dkr.ecr.eu-west-1.amazonaws.com
docker build -t ml-training .
docker tag ml-training:latest <account_number>.dkr.ecr.eu-west-1.amazonaws.com/<ecr_repository_name>:latest
docker push <account_number>.dkr.ecr.eu-west-1.amazonaws.com/<ecr_repository_name>

AWS altyapısını Terraform ile zaten uyguladıysanız, kodunuzdaki ve Docker imajınızdaki değişiklikleri tekrar Terraform aracılığıyla dağıtmadan doğrudan Amazon ECR'ye iletebilirsiniz.

ML ardışık düzenini çalıştırın

ML işlem hattını eğitmek ve çalıştırmak için Step Functions konsoluna gidin ve uygulamayı başlatın. Durum makinesinin görselleştirilmesinde her adımın ilerlemesini kontrol edebilirsiniz. Ayrıca SageMaker eğitim işinin ilerlemesini ve SageMaker uç noktanızın durumunu da kontrol edebilirsiniz.

Adım İşlevini Başlat

Durum makinesini Step Functions'da başarıyla çalıştırdıktan sonra SageMaker bitiş noktasının oluşturulduğunu görebilirsiniz. SageMaker konsolunda seçin sonuç gezinme bölmesinde, ardından Uç noktalar. Durumun InService olarak değişmesini beklediğinizden emin olun.

SageMaker Uç Nokta Durumu

Uç noktanızı çağırın

Uç noktanızı çağırmak için (bu örnekte, iris veri kümesi için), aşağıdaki Python betiğini aşağıdakilerle birlikte kullanabilirsiniz: Python için AWS SDK (Boto3). Bunu bir SageMaker not defterinden yapabilir veya aşağıdaki kod parçacığını bir Lambda işlevine gömebilirsiniz:

import boto3
from io import StringIO
import pandas as pd client = boto3.client('sagemaker-runtime') endpoint_name = 'Your endpoint name' # Your endpoint name.
content_type = "text/csv"   # The MIME type of the input data in the request body. payload = pd.DataFrame([[1.5,0.2,4.4,2.6]])
csv_file = StringIO()
payload.to_csv(csv_file, sep=",", header=False, index=False)
payload_as_csv = csv_file.getvalue() response = client.invoke_endpoint(
EndpointName=endpoint_name,
ContentType=content_type,
Body=payload_as_csv
) label = response['Body'].read().decode('utf-8')
print(label)

Temizlemek

Terraform'un oluşturduğu altyapıyı terraform yok et komutu ile yok edebilirsiniz ancak öncelikle S3 klasörlerindeki veri ve dosyaları silmeniz gerekiyor. Ayrıca, SageMaker uç noktası (veya birden çok kez çalıştırılırsa birden çok SageMaker uç noktası) Step Functions aracılığıyla oluşturulur ve Terraform aracılığıyla yönetilmez. Bu, dağıtımın Step Functions ile ML ardışık düzenini çalıştırırken gerçekleştiği anlamına gelir. Bu nedenle, gereksiz maliyetlerden kaçınmak için SageMaker uç noktasını veya Step Functions ML ardışık düzeni aracılığıyla oluşturulan uç noktalarını da sildiğinizden emin olun. Aşağıdaki adımları tamamlayın:

  1. Amazon S3 konsolunda, S3 eğitim paketindeki veri kümesini silin.
  2. Amazon S3 konsolu veya AWS CLI aracılığıyla S3 modelleri kovasındaki ML ardışık düzeni aracılığıyla eğittiğiniz tüm modelleri silin.
  3. Terraform ile oluşturulan altyapıyı yok edin:
    cd terraform/infrastructure
    terraform destroy

  4. SageMaker konsolunda veya AWS CLI aracılığıyla Step Functions aracılığıyla oluşturulan SageMaker uç noktalarını, uç nokta yapılandırmasını ve modelleri silin.

Sonuç

Tebrikler! Terraform ile SageMaker kullanarak bir ML işlem hattını dağıttınız. Bu örnek çözüm, ML işlem hatları için AWS altyapısını ve hizmetlerini yeniden kullanılabilir bir şekilde nasıl kolayca dağıtabileceğinizi gösterir. Bu, birden çok kullanım senaryosu veya Bölge için ölçeklendirmenize olanak tanır ve ML modellerini tek bir tıklamayla tutarlı bir şekilde eğitmeye ve dağıtmaya olanak tanır. Ayrıca, örneğin yeni veriler mevcut olduğunda veya algoritma kodunu değiştirmek istediğinizde ML ardışık düzenini birden çok kez çalıştırabilirsiniz. Ayrıca istekleri veya trafiği farklı SageMaker uç noktalarına yönlendirmeyi de seçebilirsiniz.

Sizi ihtiyaçlarınıza ve potansiyel şirket standartlarına göre güvenlik özellikleri eklemeye ve en iyi güvenlik uygulamalarını benimsemeye teşvik ediyorum. Ek olarak, bu çözümü CI/CD işlem hatlarınıza yerleştirmek, gereksinimlerinize göre DevOps en iyi uygulamalarını ve standartlarını benimseme ve oluşturma konusunda size daha fazla yetenek sağlayacaktır.


Yazar Hakkında

Amazon SageMaker PlatoBlockchain Data Intelligence'ı kullanarak Terraform ile makine öğrenimi işlem hatlarını dağıtın ve yönetin. Dikey Arama. Ai.Oliver Zollikofer Amazon Web Services'te Veri Bilimcisidir. Global kurumsal müşterilerin makine öğrenimi modelleri oluşturmasına, eğitmesine ve dağıtmasına ve ayrıca MLOps ile ML modeli yaşam döngüsünü yönetmesine olanak tanır. Ayrıca, ilgili bulut çözümlerini oluşturur ve tasarlar.

Zaman Damgası:

Den fazla AWS Makine Öğrenimi