Pilih preferensi cookie Anda

Kami menggunakan cookie penting serta alat serupa yang diperlukan untuk menyediakan situs dan layanan. Kami menggunakan cookie performa untuk mengumpulkan statistik anonim sehingga kami dapat memahami cara pelanggan menggunakan situs dan melakukan perbaikan. Cookie penting tidak dapat dinonaktifkan, tetapi Anda dapat mengklik “Kustom” atau “Tolak” untuk menolak cookie performa.

Jika Anda setuju, AWS dan pihak ketiga yang disetujui juga akan menggunakan cookie untuk menyediakan fitur situs yang berguna, mengingat preferensi Anda, dan menampilkan konten yang relevan, termasuk iklan yang relevan. Untuk menerima atau menolak semua cookie yang tidak penting, klik “Terima” atau “Tolak”. Untuk membuat pilihan yang lebih detail, klik “Kustomisasi”.

Menyebarkan Model dari Registry dengan Python

Mode fokus
Menyebarkan Model dari Registry dengan Python - Amazon SageMaker AI

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Setelah Anda mendaftarkan versi model dan menyetujuinya untuk penerapan, terapkan ke titik akhir SageMaker AI untuk inferensi waktu nyata. Anda dapat menerapkan model Anda dengan menggunakan SageMaker AI SDK atau. AWS SDK untuk Python (Boto3)

Saat Anda membuat project machine learning operations (MLOps) dan memilih templat MLOps proyek yang menyertakan penerapan model, versi model yang disetujui dalam Registri Model secara otomatis akan diterapkan ke produksi. Untuk informasi tentang penggunaan MLOps proyek SageMaker AI, lihatMLOps Otomatisasi Dengan SageMaker Proyek.

Anda juga dapat mengaktifkan AWS akun untuk menerapkan versi model yang dibuat di akun lain dengan menambahkan kebijakan sumber daya lintas akun. Misalnya, satu tim di organisasi Anda mungkin bertanggung jawab atas model pelatihan, dan tim yang berbeda bertanggung jawab untuk menerapkan dan memperbarui model.

Menerapkan Model dari Registry (SageMaker AI SDK)

Untuk menerapkan versi model menggunakan Amazon SageMaker Python SDK gunakan cuplikan kode berikut:

from sagemaker import ModelPackage from time import gmtime, strftime model_package_arn = 'arn:aws:sagemaker:us-east-2:12345678901:model-package/modeltest/1' 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')

Menyebarkan Model dari Registry (Boto3)

Untuk menerapkan versi model menggunakan AWS SDK untuk Python (Boto3), selesaikan langkah-langkah berikut:

  1. Cuplikan kode berikut mengasumsikan Anda sudah membuat klien SageMaker AI Boto3 sm_client dan versi model yang ARN-nya disimpan dalam variabel. model_version_arn

    Buat objek model dari versi model dengan memanggil operasi API create_model. Lulus Amazon Resource Name (ARN) dari versi model sebagai bagian dari Containers objek model:

    model_name = 'DEMO-modelregistry-model-' + strftime("%Y-%m-%d-%H-%M-%S", gmtime()) print("Model name : {}".format(model_name)) container_list = [{'ModelPackageName': model_version_arn}] create_model_response = sm_client.create_model( ModelName = model_name, ExecutionRoleArn = role, Containers = container_list ) print("Model arn : {}".format(create_model_response["ModelArn"]))
  2. Buat konfigurasi titik akhir dengan memanggilcreate_endpoint_config. Konfigurasi titik akhir menentukan jumlah dan jenis EC2 instans Amazon yang akan digunakan untuk titik akhir.

    endpoint_config_name = 'DEMO-modelregistry-EndpointConfig-' + strftime("%Y-%m-%d-%H-%M-%S", gmtime()) print(endpoint_config_name) create_endpoint_config_response = sm_client.create_endpoint_config( EndpointConfigName = endpoint_config_name, ProductionVariants=[{ 'InstanceType':'ml.m4.xlarge', 'InitialVariantWeight':1, 'InitialInstanceCount':1, 'ModelName':model_name, 'VariantName':'AllTraffic'}])
  3. Buat titik akhir dengan meneleponcreate_endpoint.

    endpoint_name = 'DEMO-modelregistry-endpoint-' + strftime("%Y-%m-%d-%H-%M-%S", gmtime()) print("EndpointName={}".format(endpoint_name)) create_endpoint_response = sm_client.create_endpoint( EndpointName=endpoint_name, EndpointConfigName=endpoint_config_name) print(create_endpoint_response['EndpointArn'])

Menerapkan Versi Model dari Akun yang Berbeda

Anda dapat mengizinkan AWS akun untuk menerapkan versi model yang dibuat di akun lain dengan menambahkan kebijakan sumber daya lintas akun. Misalnya, satu tim di organisasi Anda mungkin bertanggung jawab atas model pelatihan, dan tim yang berbeda bertanggung jawab untuk menerapkan dan memperbarui model. Saat membuat kebijakan sumber daya ini, Anda menerapkan kebijakan tersebut ke sumber daya tertentu yang ingin Anda berikan aksesnya. Untuk informasi selengkapnya tentang kebijakan sumber daya lintas akun AWS, lihat Logika evaluasi kebijakan lintas akun di AWS Identity and Access Management Panduan Pengguna.

catatan

Anda harus menggunakan kunci KMS untuk mengenkripsi tindakan konfigurasi data keluaran selama pelatihan untuk penerapan model lintas akun.

Untuk mengaktifkan penerapan model lintas akun di SageMaker AI, Anda harus menyediakan kebijakan sumber daya lintas akun untuk Grup Model yang berisi versi model yang ingin Anda terapkan, repositori Amazon ECR tempat gambar inferensi untuk Grup Model berada, dan bucket Amazon S3 tempat versi model disimpan.

Untuk dapat menerapkan model yang dibuat di akun yang berbeda, Anda harus memiliki peran yang memiliki akses ke tindakan SageMaker AI, seperti peran dengan kebijakan AmazonSageMakerFullAccess terkelola. Untuk informasi tentang kebijakan yang dikelola SageMaker AI, lihatAWS kebijakan terkelola untuk Amazon SageMaker AI.

Contoh berikut membuat kebijakan lintas akun untuk ketiga sumber daya ini, dan menerapkan kebijakan ke sumber daya. Contoh ini juga mengasumsikan bahwa Anda sebelumnya mendefinisikan variabel berikut:

  • bucket- Bucket Amazon S3 tempat versi model disimpan.

  • kms_key_id— Kunci KMS digunakan untuk mengenkripsi output pelatihan.

  • sm_client- SageMaker Klien AI Boto3.

  • model_package_group_name— Grup Model tempat Anda ingin memberikan akses lintas akun.

  • model_package_group_arn— ARN Grup Model tempat Anda ingin memberikan akses lintas akun.

import json # The cross-account id to grant access to cross_account_id = "123456789012" # Create the policy for access to the ECR repository ecr_repository_policy = { 'Version': '2012-10-17', 'Statement': [{ 'Sid': 'AddPerm', 'Effect': 'Allow', 'Principal': { 'AWS': f'arn:aws:iam::{cross_account_id}:root' }, 'Action': ['ecr:*'] }] } # Convert the ECR policy from JSON dict to string ecr_repository_policy = json.dumps(ecr_repository_policy) # Set the new ECR policy ecr = boto3.client('ecr') response = ecr.set_repository_policy( registryId = account, repositoryName = 'decision-trees-sample', policyText = ecr_repository_policy ) # Create a policy for accessing the S3 bucket bucket_policy = { 'Version': '2012-10-17', 'Statement': [{ 'Sid': 'AddPerm', 'Effect': 'Allow', 'Principal': { 'AWS': f'arn:aws:iam::{cross_account_id}:root' }, 'Action': 's3:*', 'Resource': f'arn:aws:s3:::{bucket}/*' }] } # Convert the policy from JSON dict to string bucket_policy = json.dumps(bucket_policy) # Set the new policy s3 = boto3.client('s3') response = s3.put_bucket_policy( Bucket = bucket, Policy = bucket_policy) # Create the KMS grant for encryption in the source account to the # Model Registry account Model Group client = boto3.client('kms') response = client.create_grant( GranteePrincipal=cross_account_id, KeyId=kms_key_id Operations=[ 'Decrypt', 'GenerateDataKey', ], ) # 3. Create a policy for access to the Model Group. model_package_group_policy = { 'Version': '2012-10-17', 'Statement': [{ 'Sid': 'AddPermModelPackageGroup', 'Effect': 'Allow', 'Principal': { 'AWS': f'arn:aws:iam::{cross_account_id}:root' }, 'Action': ['sagemaker:DescribeModelPackageGroup'], 'Resource': f'arn:aws:sagemaker:{region}:{account}:model-package-group/{model_package_group_name}' },{ 'Sid': 'AddPermModelPackageVersion', 'Effect': 'Allow', 'Principal': { 'AWS': f'arn:aws:iam::{cross_account_id}:root' }, 'Action': ["sagemaker:DescribeModelPackage", "sagemaker:ListModelPackages", "sagemaker:UpdateModelPackage", "sagemaker:CreateModel"], 'Resource': f'arn:aws:sagemaker:{region}:{account}:model-package/{model_package_group_name}/*' }] } # Convert the policy from JSON dict to string model_package_group_policy = json.dumps(model_package_group_policy) # Set the policy to the Model Group response = sm_client.put_model_package_group_policy( ModelPackageGroupName = model_package_group_name, ResourcePolicy = model_package_group_policy) print('ModelPackageGroupArn : {}'.format(create_model_package_group_response['ModelPackageGroupArn'])) print("First Versioned ModelPackageArn: " + model_package_arn) print("Second Versioned ModelPackageArn: " + model_package_arn2) print("Success! You are all set to proceed for cross-account deployment.")
PrivasiSyarat situsPreferensi cookie
© 2025, Amazon Web Services, Inc. atau afiliasinya. Semua hak dilindungi undang-undang.