Amazon SageMaker model kaydı PlatoBlockchain Data Intelligence'ı kullanarak hesaplar arası bir MLOps iş akışı oluşturun. Dikey Arama. Ai.

Amazon SageMaker model kayıt defterini kullanarak hesaplar arası bir MLOps iş akışı oluşturun

Herhangi bir yazılım geliştirme iş akışını etkin bir şekilde ölçeklendirmek için iyi tasarlanmış bir CI/CD işlem hattı gereklidir. AWS, üretim CI/CD ardışık düzenlerini tasarlarken kaynakları izole etmek, güvenlik tehditlerini kontrol altına almak ve faturalandırmayı basitleştirmek için birden çok hesaptan yararlanmayı önerir ve veri bilimi ardışık düzenleri de farklı değildir. AWS'de, MLOps iş akışını basitleştirmek için yenilik yapmaya devam ediyoruz.

Bu gönderide, yeni hesaplar arası özelliklerden bazılarını ele alıyoruz. Amazon Adaçayı Yapıcı bu, model gruplarını daha iyi paylaşmanıza ve yönetmenize ve ayrıca model sürümlerini yönetmenize olanak tanır. İzlenecek örnek bir hesap yapısı için kuruluş birimi en iyi uygulamaları hesaplar arasında SageMaker uç noktalarını kullanan modelleri barındırmak için bkz. MLOps İş Yükü Orkestratörü.

Çözüme genel bakış

Aşağıdaki diyagram, paylaşılan model kayıt mimarimizi göstermektedir.

Önceki mimaride dikkat edilmesi gereken bazı şeyler:

Aşağıdaki adımlar şemaya karşılık gelir:

  1. Bir veri bilimcisi, veri bilimi hesabındaki bir modeli, paylaşılan hizmetler SageMaker model kaydına kaydeder. PendingManualApproval durum. Model yapısı, paylaşılan hizmetler hesabında oluşturulur Amazon Basit Depolama Hizmeti (Amazon S3) kovası.
  2. Yeni bir model versiyon kaydı üzerine, metriklere göre modeli onaylama yetkisine sahip bir kişinin modeli onaylaması veya reddetmesi gerekir.
  3. Model onaylandıktan sonra, dağıtım hesabındaki CI/CD ardışık düzeni dağıtmak için tetiklendi KG hesabındaki güncellenen model ayrıntılarını ve aşamayı KG olarak güncelleyin.
  4. Test sürecini geçtikten sonra, CI/CD sürecinizde manuel bir onay adımına sahip olmayı seçebilir veya CI/CD işlem hattınızın modeli doğrudan üretime dağıtmasını ve aşamayı Prod olarak güncellemesini sağlayabilirsiniz.
  5. Üretim ortamı, onaylanan modele ve koda atıfta bulunur, belki de Üretimde A/B testi. Bir denetim veya modelle ilgili herhangi bir sorun olması durumunda, Amazon SageMaker ML Köken İzleme. Veri hazırlığından model dağıtımına kadar bir makine öğrenimi (ML) iş akışının adımları hakkında bilgi oluşturur ve depolar. İzleme bilgileriyle iş akışı adımlarını yeniden oluşturabilir, modeli ve veri kümesi kökenini izleyebilir ve model yönetişimi ve denetim standartları oluşturabilirsiniz.

Tüm süreç boyunca, paylaşılan model kaydı eski model sürümlerini korur. Bu, ekibin değişiklikleri geri almasına ve hatta barındırmasına olanak tanır. üretim varyantları.

Önkoşullar

Aşağıdaki ön koşullara sahip olduğunuzdan emin olun:

  • Tedarik edilmiş çoklu hesap yapısı – Talimatlar için bkz. AWS Kuruluşları ile Kuruluş Birimleri İçin En İyi Uygulamalar. Bu blogun amaçları doğrultusunda aşağıdaki hesaplardan yararlanıyoruz:
    • Veri bilimi hesabı – Veri bilimcilerin eğitim verilerine erişebildiği ve modelleri oluşturabildiği bir hesap.
    • Paylaşılan hizmetler hesabı – Farklı iş yükü hesaplarından erişilecek olan model eserlerini (mimari diyagramda gösterildiği gibi) depolamak için merkezi bir hesap.
    • Dağıtım hesabı – Değişiklikleri çeşitli hesaplara dağıtmaktan sorumlu bir hesap.
    • İş yükü hesapları – Bunlar genellikle, yazılım mühendislerinin makine öğrenimi modelini kullanmak için uygulamalar oluşturabildikleri QA ve üretim ortamlarıdır.
  • Uygun izinlere sahip bir dağıtım hesabı – Çok hesaplı bir OU yapısıyla ilgili en iyi uygulamalar hakkında daha fazla bilgi için bkz. Dağıtımlar kuruluş birimi. Bu hesap, paylaşılan hizmetler hesabının model kaydındaki iş yükü hesaplarını istenen modele yönlendirmekten sorumludur.

Hesaplar arası politikaları tanımlayın

En az ayrıcalık ilkesini takip ederken, diğer hesaplardan erişim izni vermek için öncelikle paylaşılan hizmetler kaynaklarına hesaplar arası kaynak ilkeleri eklememiz gerekir.

Model yapıları, paylaşılan hizmetler hesabının S3 klasöründe depolandığından, eğitimli modelleri Amazon S3'e iletmek için veri bilimi hesabının Amazon S3 okuma/yazma erişimine ihtiyacı vardır. Aşağıdaki kod, bu ilkeyi göstermektedir, ancak henüz paylaşılan hizmetler hesabına eklemeyin:

#Data Science account's policy to access Shared Services' S3 bucket
 {
    'Version': '2012-10-17',
    'Statement': [{
        'Sid': 'AddPerm',
        'Effect': 'Allow',
        'Principal': {
            'AWS': 'arn:aws:iam:::root'
        }, 
        "Action": [ 
            's3:PutObject', 
            's3:PutObjectAcl',
            's3:GetObject', 
            's3:GetObjectVersion'
        ], #read/write
        'Resource': 'arn:aws:s3:::/*'
    }]
}

SageMaker uç noktalarına dağıtmak üzere model yapıtlarını kullanabilmesi için dağıtım hesabına yalnızca S3 klasörüne okuma erişimi verilmesi gerekir. Ayrıca paylaşılan hizmetler S3 klasörüne aşağıdaki politikayı eklememiz gerekir:

#Deployment account's policy to access Shared Services' S3 bucket
 {
    'Version': '2012-10-17',
    'Statement': [{
        'Sid': 'AddPerm',
        'Effect': 'Allow',
        'Principal': {
            'AWS': 'arn:aws:iam:::root'
        },
        'Action': [ 
            's3:GetObject', 
            's3:GetObjectVersion'
        ], #read
        'Resource': 'arn:aws:s3:::/*'
    }]
}

Aşağıdaki nihai politikayı elde etmek için her iki politikayı birleştiriyoruz. Uygun hesap kimliklerini değiştirdikten sonra paylaşılan hizmetler hesabında bu politikayı oluşturun:

{
  "Version": "2012-10-17",
  "Statement": [{
    "Sid": "AddPerm",
    "Effect": "Allow",
    "Principal": {
      "AWS": "arn:aws:iam:::root"    
    },
    "Action": [
      "s3:PutObject",
      "s3:PutObjectAcl",
      "s3:GetObject",
      "s3:GetObjectVersion"    ],
    "Resource": "arn:aws:s3:::/*"  
    },
    {
      "Sid": "AddPermDeployment",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam:::root"      
      },
      "Action": [
        "s3:GetObject",
        "s3:GetObjectVersion"      ], 
      "Resource": "arn:aws:s3:::/*"    
    }
  ]
}

Farklı bir hesapta oluşturulmuş bir modeli konuşlandırabilmek için kullanıcının SageMaker eylemlerine erişimi olan bir rolü olmalıdır; AmazonSageMakerFullAccess yönetilen politika bakın Farklı Bir Hesaptan Model Sürümü Dağıtma Ek ayrıntılar için.

Dağıtmak istediğimiz model versiyonlarını içeren model grubunu tanımlamamız gerekiyor. Ayrıca, veri bilimi hesabına izinler vermek istiyoruz. Bu, aşağıdaki adımlarda gerçekleştirilebilir. Hesaplara şu şekilde atıfta bulunuyoruz:

  • paylaşılan_hizmetler_hesap_kimliği – Model kaydının olduğu ve modelin olmasını istediğimiz hesap
  • data_science_account_id – Eğiteceğimiz ve dolayısıyla gerçek model yapıtını oluşturacağımız hesap
  • dağıtım_hesap_kimliği – Bu model için uç noktayı barındırmak istediğimiz hesap

Öncelikle model paket gruplarının var olduğundan emin olmamız gerekiyor. Boto3 API'lerini aşağıdaki örnekte gösterildiği gibi kullanabilir veya AWS Yönetim Konsolu Model paketini oluşturmak için. bakın Model Paket Grubu Oluştur daha fazla ayrıntı için. Bu, Boto3'ün kurulu olduğunu varsayar.

model_package_group_name = "cross-account-example-model"
sm_client = boto3.Session().client("sagemaker")

create_model_package_group_response = sm_client.create_model_package_group(
    ModelPackageGroupName=model_package_group_name,
    ModelPackageGroupDescription="Cross account model package group",
    Tags=[
          {
              'Key': 'Name',
              'Value': 'cross_account_test'
          },
      ]

)

print('ModelPackageGroup Arn : {}'.format(create_model_package_group_response['ModelPackageGroupArn']))

Bu model paket grubuna ait izinler için aşağıdaki koda benzer bir JSON belgesi oluşturabilirsiniz. Gerçek hesap kimliklerini ve model paket grubu adını kendi değerlerinizle değiştirin.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AddPermModelPackageGroupCrossAccount",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam:::root"      
      },
      "Action": [
        "sagemaker:DescribeModelPackageGroup"      
        ],
      "Resource": "arn:aws:sagemaker:::model-package-group/"    
    },
    {
      "Sid": "AddPermModelPackageVersionCrossAccount",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam:::root"      
      },
      "Action": [
        "sagemaker:DescribeModelPackage",
        "sagemaker:ListModelPackages",
        "sagemaker:UpdateModelPackage",
        "sagemaker:CreateModelPackage",
        "sagemaker:CreateModel"      
      ],
      "Resource": "arn:aws:sagemaker:::model-package//*"    
    }
  ]
}

Son olarak, ilkeyi model paket grubuna uygulayın. Bu politikayı konsol aracılığıyla paket grubuyla ilişkilendiremezsiniz. SDK'ya ihtiyacınız var veya AWS Komut Satırı Arayüzü (AWS CLI) erişimi. Örneğin, aşağıdaki kod Boto3'ü kullanır:

# Convert the policy from JSON dict to string
model_package_group_policy = dict( )
model_package_group_policy = json.dumps(model_package_group_policy)

# Set the new policy
sm_client = boto3.Session().client("sagemaker")
response = sm_client.put_model_package_group_policy(
    ModelPackageGroupName = model_package_group_name,
    ResourcePolicy = model_package_group_policy)

Ayrıca bir adete ihtiyacımız var AWS Anahtar Yönetim Hizmeti Modeli Amazon S3'te depolarken şifrelemek için (AWS KMS) anahtarı. Bunun veri bilimi hesabı kullanılarak yapılması gerekir. AWS KMS konsolunda şuraya gidin: Anahtar kullanım izinlerini tanımlayın sayfa. İçinde Diğer AWS hesapları bölümü, seçim Başka bir AWS hesabı ekleyin. Dağıtım hesabı için AWS hesap numarasını girin. Bu KMS anahtarını SageMaker eğitim işi için kullanırsınız. Eğitim işi için bir KMS anahtarı belirtmezseniz, SageMaker varsayılan olarak bir Amazon S3 sunucu tarafı şifreleme anahtarı kullanır. Varsayılan bir Amazon S3 sunucu tarafı şifreleme anahtarı başka bir AWS hesabıyla paylaşılamaz veya başka bir AWS hesabı tarafından kullanılamaz.

Politika ve izinler şu kalıbı takip eder:

  • Amazon S3 politikasında belirtilen shared_services_account veri bilimi hesabına ve dağıtım hesabına izinler verir
  • Belirtilen KMS anahtar politikası shared_services_account veri bilimi hesabına ve dağıtım hesabına izinler verir

Paylaşılan hizmetler hesabının ve dağıtım hesabının, modeli eğitmek için kullanılan Docker görüntülerine erişimi olduğundan emin olmamız gerekir. Bu görüntüler genellikle AWS hesaplarında barındırılır ve henüz erişiminiz yoksa hesap yöneticiniz erişim elde etmenize yardımcı olabilir. Bu gönderi için, modeli eğittikten sonra herhangi bir özel Docker görüntüsü oluşturmuyoruz ve bu nedenle görüntüler için belirli bir Amazon ECR politikasına ihtiyacımız yok.

İş yükü hesaplarında (QA veya prod), iki tane oluşturmamız gerekiyor. AWS Kimlik ve Erişim Yönetimi (IAM) politikaları aşağıdakine benzer. Bunlar satır içi politikalar, yani bir IAM kimliğine gömülüdürler. Bu, bu hesaplara model kaydına erişim sağlar.

İlk satır içi ilke, bir rolün, model yapıtını içeren paylaşılan hizmetler hesabındaki Amazon S3 kaynağına erişmesine izin verir. S3 klasörünün adını ve modelinizi sağlayın:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::/sagemaker//output/model.tar.gz"
        }
    ]
}

İkinci satır içi politika, daha sonra oluşturacağımız bir rolün paylaşılan hizmetler hesabında KMS anahtarını kullanmasına izin verir. Paylaşılan hizmetler hesabı ve KMS anahtar kimliği için hesap kimliğini belirtin:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowUseOfTheKey",
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt"
            ],
            "Resource": [
                "arn:aws:kms:us-east-1::key/{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}"
            ]
        }
    ]
}

Son olarak, ihtiyacımız var bir IAM rolü oluştur SageMaker için. Bu rolün sahip olduğu AmazonSageMakerFullAccess ekli poliçe. Daha sonra bu iki satır içi politikayı oluşturduğumuz role iliştiriyoruz. Mevcut bir SageMaker yürütme rolü kullanıyorsanız, bu iki ilkeyi o role ekleyin. Talimatlar için bkz. Roller oluşturma ve ilkeler ekleme (konsol).

Artık her hesabın politikalarını tanımladığımıza göre, onu eylem halinde görmek için bir örnek kullanalım.

SageMaker ardışık düzeni kullanarak bir model oluşturun ve eğitin

Veri işleme, model eğitimi ve değerlendirmeyi gerçekleştirmek için önce veri bilimi hesabında bir SageMaker ardışık düzeni oluşturuyoruz. StatLib kütüphanesinden elde edilen California konut veri setini kullanıyoruz. Aşağıdaki kod parçacığında, özel bir ön işleme komut dosyası kullanıyoruz preprocess.py Aşağıdakiler kullanılarak oluşturulabilen özellik ölçeklendirme gibi bazı basit özellik dönüşümlerini gerçekleştirmek için defter. Bu betik ayrıca veri setini eğitim ve test veri setlerine ayırır.

Bir yaratıyoruz SKLearnProcessor Bu ön işleme komut dosyasını çalıştırmak için nesne. SageMaker işlem hattında, bir işleme adımı (ProcessingStep) kullanarak işleme kodunu çalıştırmak için SKLearnProcessor. Bu işleme kodu, SageMaker ardışık düzeni başlatıldığında çağrılır. oluşturan kod SKLearnProcessor ve ProcessingStep aşağıdaki kodda gösterilmiştir. Bu bölümdeki tüm kodun veri bilimi hesabında çalıştırıldığını unutmayın.

# Useful SageMaker variables - Create a Pipeline session which will lazy init resources
session = PipelineSession()

framework_version = "0.23-1"

# Create SKlearn processor object,
# The object contains information about what instance type to use, the IAM role to use etc.
# A managed processor comes with a preconfigured container, so only specifying version is required.
sklearn_processor = SKLearnProcessor(
    framework_version=framework_version,
    role=role,
    instance_type=processing_instance_type,
    instance_count=1,
    base_job_name="tf2-california-housing-processing-job",
    sagemaker_session=session
)

# Use the sklearn_processor in a SageMaker pipelines ProcessingStep
step_preprocess_data = ProcessingStep(
    name="Preprocess-California-Housing-Data",
    processor=sklearn_processor,
    inputs=[
        ProcessingInput(source=input_data, destination="/opt/ml/processing/input"),
    ],
    outputs=[
        ProcessingOutput(output_name="train", source="/opt/ml/processing/train"),
        ProcessingOutput(output_name="test", source="/opt/ml/processing/test"),
    ],
    code="preprocess.py",
)

Modeli Amazon S3'te depolarken şifrelemek için özel bir KMS anahtarına ihtiyacımız var. Aşağıdaki koda bakın:

kms_client = boto3.client('kms')
response = kms_client.describe_key(
    KeyId='alias/sagemaker/outkey',
)
key_id = response['KeyMetadata']['KeyId']

Modeli eğitmek için bir TensorFlow tahmincisi nesnesi oluşturuyoruz. Eğitim betiğimizle birlikte KMS anahtar kimliğini iletiyoruz train.py, eğitim örneği türü ve sayısı. Biz de bir TrainingStep boru hattımıza eklenecek ve buna TensorFlow tahmin edicisini ekleyin. Aşağıdaki koda bakın:

model_path = f"s3://{bucket}/{prefix}/model/"

hyperparameters = {"epochs": training_epochs}
tensorflow_version = "2.4.1"
python_version = "py37"

tf2_estimator = TensorFlow(
    source_dir="code",
    entry_point="train.py",
    instance_type=training_instance_type,
    instance_count=1,
    framework_version=tensorflow_version,
    role=role,
    base_job_name="tf2-california-housing-train",
    output_path=model_path,
    output_kms_key=key_id,
    hyperparameters=hyperparameters,
    py_version=python_version,
    sagemaker_session=session
)

# Use the tf2_estimator in a SageMaker pipelines ProcessingStep.
# NOTE how the input to the training job directly references the output of the previous step.
step_train_model = TrainingStep(
    name="Train-California-Housing-Model",
    estimator=tf2_estimator,
    inputs={
        "train": TrainingInput(
            s3_data=step_preprocess_data.properties.ProcessingOutputConfig.Outputs[
                "train"
            ].S3Output.S3Uri,
            content_type="text/csv",
        ),
        "test": TrainingInput(
            s3_data=step_preprocess_data.properties.ProcessingOutputConfig.Outputs[
                "test"
            ].S3Output.S3Uri,
            content_type="text/csv",
        ),
    },
)

Eğitime ek olarak, bu örnekte metrik olarak ortalama karesel hata (MSE) kullandığımız model değerlendirmesini gerçekleştirmemiz gerekiyor. bu önceki not defteri ayrıca üretir evaluate.pyMSE kullanan bir modelimizi değerlendirmek için kullandığımız. Biz de bir ProcessingStep kullanarak model değerlendirme betiğini başlatmak için SKLearnProcessor nesne. Aşağıdaki kod bu adımı oluşturur:

from sagemaker.workflow.properties import PropertyFile

# Create SKLearnProcessor object.
# The object contains information about what container to use, what instance type etc.
evaluate_model_processor = SKLearnProcessor(
    framework_version=framework_version,
    instance_type=processing_instance_type,
    instance_count=1,
    base_job_name="tf2-california-housing-evaluate",
    role=role,
    sagemaker_session=session
)

# Create a PropertyFile
# A PropertyFile is used to be able to reference outputs from a processing step, for instance to use in a condition step.
# For more information, visit https://docs.aws.amazon.com/sagemaker/latest/dg/build-and-manage-propertyfile.html
evaluation_report = PropertyFile(
    name="EvaluationReport", output_name="evaluation", path="evaluation.json"
)

# Use the evaluate_model_processor in a SageMaker pipelines ProcessingStep.
step_evaluate_model = ProcessingStep(
    name="Evaluate-California-Housing-Model",
    processor=evaluate_model_processor,
    inputs=[
        ProcessingInput(
            source=step_train_model.properties.ModelArtifacts.S3ModelArtifacts,
            destination="/opt/ml/processing/model",
        ),
        ProcessingInput(
            source=step_preprocess_data.properties.ProcessingOutputConfig.Outputs[
                "test"
            ].S3Output.S3Uri,
            destination="/opt/ml/processing/test",
        ),
    ],
    outputs=[
        ProcessingOutput(output_name="evaluation", source="/opt/ml/processing/evaluation"),
    ],
    code="evaluate.py",
    property_files=[evaluation_report],
)

Model değerlendirmesinden sonra, model performansı gereksinimleri karşılıyorsa, modelimizi model kaydına kaydetmek için bir adıma da ihtiyacımız var. Bu, aşağıdaki kod kullanılarak gösterilmiştir. RegisterModel adım. Burada paylaşılan hizmetler hesabında bildirdiğimiz model paketini belirtmemiz gerekiyor. Bölge, hesap ve model paketini değerlerinizle değiştirin. Burada kullanılan model adı modeltest, ancak istediğiniz herhangi bir adı kullanabilirsiniz.

# Create ModelMetrics object using the evaluation report from the evaluation step
# A ModelMetrics object contains metrics captured from a model.
model_metrics = ModelMetrics(
    model_statistics=MetricsSource(
        s3_uri=evaluation_s3_uri,
        content_type="application/json",
    )
)

# Create a RegisterModel step, which registers the model with SageMaker Model Registry.
model = Model(
    image_uri=tf2_estimator.training_image_uri(),
    model_data=training_step.properties.ModelArtifacts.S3ModelArtifacts,
    source_dir=tf2_estimator.source_dir,
    entry_point=tf2_estimator.entry_point,
    role=role_arn,
    sagemaker_session=session
)

model_registry_args = model.register(
    content_types=['text/csv'],
    response_types=['application/json'],
    inference_instances=['ml.t2.medium', 'ml.m5.xlarge'],
    transform_instances=['ml.m5.xlarge'],
    model_package_group_name=model_package_group_name,
    approval_status='PendingManualApproval',
    model_metrics=model_metrics
)

 step_register_model= ModelStep(
    name='RegisterModel',
    step_args=model_registry_args
)

Dağıtılabilmesi için (diğer hesabı kullanarak) model yapılarını da oluşturmamız gerekir. Modeli oluşturmak için bir CreateModelStep, aşağıdaki kodda gösterildiği gibi:

from sagemaker.inputs import CreateModelInput 
from sagemaker.workflow.model_step import ModelStep 
step_create_model = ModelStep( 
    name="Create-California-Housing-Model", 
    step_args=model.create(instance_type="ml.m5.large",accelerator_type="ml.eia1.medium"),
 )

Ardışık düzene koşul ekleme, ConditionStep. Bu durumda, yeni model bir doğruluk koşulunu karşılıyorsa, yalnızca yeni model sürümünü model kaydına kaydetmek istiyoruz. Aşağıdaki koda bakın:

from sagemaker.workflow.conditions import ConditionLessThanOrEqualTo
from sagemaker.workflow.condition_step import (
    ConditionStep,
    JsonGet,
)

# Create accuracy condition to ensure the model meets performance requirements.
# Models with a test accuracy lower than the condition will not be registered with the model registry.
cond_lte = ConditionLessThanOrEqualTo(
    left=JsonGet(
        step=step_evaluate_model,
        property_file=evaluation_report,
        json_path="regression_metrics.mse.value",
    ),
    right=accuracy_mse_threshold,
)

# Create a SageMaker Pipelines ConditionStep, using the preceding condition.
# Enter the steps to perform if the condition returns True / False.
step_cond = ConditionStep(
    name="MSE-Lower-Than-Threshold-Condition",
    conditions=[cond_lte],
    if_steps=[step_register_model, step_create_model],
    else_steps=[step_higher_mse_send_email_lambda],
)

Son olarak, ardışık düzenin başlatılabilmesi için tüm ardışık düzen adımlarını düzenlemek istiyoruz:

from sagemaker.workflow.pipeline import Pipeline

# Create a SageMaker Pipeline.
# Each parameter for the pipeline must be set as a parameter explicitly when the pipeline is created.
# Also pass in each of the preceding steps.
# Note that the order of execution is determined from each step's dependencies on other steps,
# not on the order they are passed in.
pipeline = Pipeline(
    name=pipeline_name,
    parameters=[
        processing_instance_type,
        training_instance_type,
        input_data,
        training_epochs,
        accuracy_mse_threshold,
        endpoint_instance_type,
    ],
    steps=[step_preprocess_data, step_train_model, step_evaluate_model, step_cond],
)

Farklı bir hesaptan model sürümü dağıtma

Model, paylaşılan hizmetler hesabına kaydedildiğine göre, dağıtım hesabındaki CI/CD işlem hattını kullanarak iş yükü hesaplarımıza dağıtmamız gerekir. Rolü ve ilkeyi daha önceki bir adımda zaten yapılandırmıştık. Modeli, model kayıt defterinden dağıtmak için ARN model paketini kullanıyoruz. Aşağıdaki kod dağıtım hesabında çalışır ve onaylanan modelleri QA ve üretime dağıtmak için kullanılır:

from sagemaker import ModelPackage
from time import gmtime, strftime

sagemaker_session = sagemaker.Session(boto_session=sess)

model_package_arn = 'arn:aws:sagemaker:::/modeltest/version_number'
model = ModelPackage(role=role, 
                     model_package_arn=model_package_arn, 
                     sagemaker_session=sagemaker_session)
model.deploy(initial_instance_count=1, instance_type='ml.m5.xlarge')

Sonuç

Bu gönderide, en az ayrıcalık ilkesine dayalı olarak makine öğrenimi için çok hesaplı bir kurulum için gerekli politikaların nasıl ayarlanacağını gösterdik. Ardından, veri bilimi hesabındaki modellerin oluşturulması ve eğitilmesi sürecini gösterdik. Son olarak, onaylanan modellerin en son sürümünü QA ve üretim hesaplarına dağıtmak için dağıtım hesabındaki CI/CD ardışık düzenini kullandık. Ek olarak şunları yapabilirsiniz: modellerin dağıtım geçmişini görüntüleyin ve tetikleyiciler oluşturmak in AWS Kod Oluşturma.

Modelleri barındırmak için bu gönderideki kavramları ölçeklendirebilirsiniz. Amazon Elastik Bilgi İşlem Bulutu (Amazon EC2) veya Amazon Elastik Kubernetes Hizmeti (Amazon EKS) ve bir toplu çıkarım ardışık düzeni oluşturun.

AWS'de makine öğrenimi modelleri oluşturan ayrı hesaplara sahip olma hakkında daha fazla bilgi edinmek için bkz. AWS Kuruluşları ile Kuruluş Birimleri İçin En İyi Uygulamalar ve Üretimdeki modelleri güvenle güncelleyin.


Yazarlar Hakkında

Amazon SageMaker model kaydı PlatoBlockchain Data Intelligence'ı kullanarak hesaplar arası bir MLOps iş akışı oluşturun. Dikey Arama. Ai.Sandeep Verması AWS'de Kıdemli Prototip Oluşturma Mimarıdır. Müşterilerin karşılaştığı zorlukların derinliklerine inmekten ve müşterilerin yeniliği hızlandırması için prototipler oluşturmaktan keyif alıyor. New Knowledge'ın kurucusu olan AI/ML geçmişine sahiptir ve genellikle teknoloji konusunda tutkuludur. Boş zamanlarında ailesiyle birlikte seyahat etmeyi ve kayak yapmayı çok seviyor.

Mani Khanuja  Mani Khanuja Amazon Web Services'de (AWS) Yapay Zeka ve Makine Öğrenimi Uzmanı SA'dır. Makine öğrenimini kullanan müşterilerin AWS'yi kullanarak iş zorluklarını çözmelerine yardımcı olur. Zamanının çoğunu derinlere dalarak ve müşterilere bilgisayarla görme, doğal dil işleme, tahmin, uçta ML ve daha fazlasıyla ilgili AI/ML projeleri öğreterek geçiriyor. Uçta ML konusunda tutkulu, bu nedenle, boş zamanlarının çoğunu harcadığı kendi kendine sürüş kiti ve prototip üretim üretim hattı ile kendi laboratuvarını yarattı.

Amazon SageMaker model kaydı PlatoBlockchain Data Intelligence'ı kullanarak hesaplar arası bir MLOps iş akışı oluşturun. Dikey Arama. Ai.samitra vikram Amazon SageMaker ekibinde bir Yazılım Geliştiricisidir ve Chennai, Hindistan'da yerleşiktir. İş dışında koşarak, trekking yaparak ve Himalayalar'da motosiklet sürerek vakit geçirmeyi seviyor.

Amazon SageMaker model kaydı PlatoBlockchain Data Intelligence'ı kullanarak hesaplar arası bir MLOps iş akışı oluşturun. Dikey Arama. Ai.Sreedevi Srinivasan AWS SageMaker'da bir mühendislik lideridir. Makine öğrenimini günlük yaşamları dönüştürmeye ayarlanmış bir platform olarak etkinleştirme konusunda tutkulu ve heyecanlı. Halen SageMaker Özellik Mağazasına odaklanmaktadır. Boş zamanlarında ailesiyle vakit geçirmeyi seviyor.

Amazon SageMaker model kaydı PlatoBlockchain Data Intelligence'ı kullanarak hesaplar arası bir MLOps iş akışı oluşturun. Dikey Arama. Ai. Ruinder Grewal AWS'li bir Kıdemli Ai/ML Uzman Çözüm Mimarıdır. Şu anda SageMaker'da modellerin ve MLO'ların sunumuna odaklanıyor. Bu görevden önce Makine Öğrenimi Mühendisi olarak model oluşturma ve barındırma konusunda çalıştı. İş dışında tenis oynamayı ve dağ yollarında bisiklet sürmeyi sever.

Amazon SageMaker model kaydı PlatoBlockchain Data Intelligence'ı kullanarak hesaplar arası bir MLOps iş akışı oluşturun. Dikey Arama. Ai.Faruk Sabir AWS'de Kıdemli Yapay Zeka ve Makine Öğrenimi Uzmanı Çözüm Mimarıdır. Austin'deki Texas Üniversitesi'nden Elektrik Mühendisliği alanında doktora ve yüksek lisans derecelerine ve Georgia Institute of Technology'den Bilgisayar Bilimleri alanında yüksek lisans derecesine sahiptir. AWS'de müşterilerin veri bilimi, makine öğrenimi, bilgisayar görüşü, yapay zeka, sayısal optimizasyon ve ilgili alanlarda iş sorunlarını formüle etmelerine ve çözmelerine yardımcı olur. 16 yıldan fazla iş tecrübesine sahiptir ve aynı zamanda Dallas'taki The University of Texas'ta yardımcı öğretim üyesidir ve burada Uygulamalı Makine Öğrenimi üzerine yüksek lisans dersi vermektedir. Dallas, Teksas'ta yaşayan o ve ailesi seyahat etmeyi ve uzun yolculuklar yapmayı seviyor.

Zaman Damgası:

Den fazla AWS Makine Öğrenimi