Seleziona le tue preferenze relative ai cookie

Utilizziamo cookie essenziali e strumenti simili necessari per fornire il nostro sito e i nostri servizi. Utilizziamo i cookie prestazionali per raccogliere statistiche anonime in modo da poter capire come i clienti utilizzano il nostro sito e apportare miglioramenti. I cookie essenziali non possono essere disattivati, ma puoi fare clic su \"Personalizza\" o \"Rifiuta\" per rifiutare i cookie prestazionali.

Se sei d'accordo, AWS e le terze parti approvate utilizzeranno i cookie anche per fornire utili funzionalità del sito, ricordare le tue preferenze e visualizzare contenuti pertinenti, inclusa la pubblicità pertinente. Per continuare senza accettare questi cookie, fai clic su \"Continua\" o \"Rifiuta\". Per effettuare scelte più dettagliate o saperne di più, fai clic su \"Personalizza\".

Distribuisci un modello dal registro con Python

Modalità Focus
Distribuisci un modello dal registro con Python - Amazon SageMaker AI

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Dopo aver registrato una versione del modello e averne approvato la distribuzione, distribuiscila su un SageMaker endpoint AI per l'inferenza in tempo reale. Puoi implementare il tuo modello utilizzando l'AI SDK o il SageMaker . AWS SDK for Python (Boto3)

Quando crei un progetto di machine learning operations (MLOps) e scegli un modello di MLOps progetto che includa la distribuzione del modello, le versioni del modello approvate nel Model Registry vengono automaticamente distribuite in produzione. Per informazioni sull'utilizzo dei MLOps progetti di SageMaker intelligenza artificiale, consultaMLOps Automazione con SageMaker progetti.

Puoi anche consentire a un AWS account di distribuire versioni del modello create in un account diverso aggiungendo una politica delle risorse per più account. Ad esempio, un team dell'organizzazione può essere responsabile dei modelli di addestramento e un altro team responsabile della distribuzione e dell'aggiornamento dei modelli.

Implementa un modello dal registro (SageMaker AI SDK)

Per distribuire una versione del modello utilizzando l'SDK Amazon SageMaker Python, usa il seguente frammento di codice:

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')

Implementazione di un modello dal registro (boto3)

Per distribuire una versione del modello utilizzando il, completa i AWS SDK for Python (Boto3) seguenti passaggi:

  1. Il seguente frammento di codice presuppone che tu abbia già creato il client SageMaker AI Boto3 sm_client e una versione del modello il cui ARN è memorizzato nella variabile. model_version_arn

    Crea un oggetto modello dalla versione del modello chiamando l'operazione API create_model. Passa l'Amazon Resource Name (ARN) della versione del modello come parte dell'oggetto Containers for the 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. Creazione di una configurazione dell'endpoint chiamando create_endpoint_config. La configurazione dell'endpoint specifica il numero e il tipo di EC2 istanze Amazon da utilizzare per l'endpoint.

    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. Crea l'endpoint chiamando create_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'])

Implementazione di una versione del modello da un account diverso

Puoi consentire a un AWS account di distribuire versioni del modello create in un account diverso aggiungendo una politica delle risorse per più account. Ad esempio, un team dell'organizzazione può essere responsabile dei modelli di addestramento e un altro team responsabile della distribuzione e dell'aggiornamento dei modelli. Quando si creano queste policy relative alle risorse, le si applica alla risorsa specifica a cui si desidera concedere l'accesso. Per ulteriori informazioni sulle politiche relative alle risorse tra account in AWS, consulta Logica di valutazione delle politiche tra account nella Guida per l'utente.AWS Identity and Access Management

Nota

È necessario utilizzare una chiave KMS per crittografare l'azione di configurazione dei dati di output durante l'addestramento per la distribuzione del modello tra account.

Per abilitare l'implementazione di modelli tra account nell' SageMaker intelligenza artificiale, devi fornire una politica di risorse per più account per il Model Group che contenga le versioni del modello che desideri distribuire, il repository Amazon ECR in cui risiede l'immagine di inferenza per il Model Group e il bucket Amazon S3 in cui sono archiviate le versioni del modello.

Per poter implementare un modello creato in un account diverso, devi avere un ruolo che abbia accesso alle azioni di SageMaker intelligenza artificiale, ad esempio un ruolo con la policy AmazonSageMakerFullAccess gestita. Per informazioni sulle politiche gestite dall' SageMaker IA, consultaAWS politiche gestite per Amazon SageMaker AI.

L'esempio seguente crea policy tra account per tutte e tre queste risorse, applicandole alle stesse. L'esempio presuppone inoltre che in precedenza siano state definite le seguenti variabili:

  • bucket— Il bucket Amazon S3 in cui sono archiviate le versioni del modello.

  • kms_key_id— La chiave KMS utilizzata per crittografare l'output dell'allenamento.

  • sm_client— Un client SageMaker AI Boto3.

  • model_package_group_name— Il gruppo di modelli a cui desideri concedere l'accesso su più account.

  • model_package_group_arn— L'ARN del gruppo di modelli a cui si desidera concedere l'accesso su più account.

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.")
PrivacyCondizioni del sitoPreferenze cookie
© 2025, Amazon Web Services, Inc. o società affiliate. Tutti i diritti riservati.