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à.
Implementa una raccomandazione di inferenza generativa per l'intelligenza artificiale
Una volta completato un processo di raccomandazione, ogni raccomandazione include una configurazione pronta per la distribuzione. Puoi implementare la configurazione scelta su un endpoint di inferenza SageMaker AI con una singola azione da SageMaker AI Studio o programmaticamente tramite l'API.
Comprensione delle configurazioni di implementazione
Ogni raccomandazione nella risposta al lavoro contiene un DeploymentConfiguration oggetto con le seguenti informazioni:
ImageUri-
L'URI dell'immagine del contenitore ottimizzato per il tipo di istanza consigliato.
InstanceType-
Il tipo di istanza consigliato per la distribuzione.
InstanceCount-
Il numero di istanze necessarie per raggiungere l'obiettivo prestazionale.
CopyCountPerInstance-
Il numero di copie del modello da eseguire per istanza. Se impostato su un valore maggiore di uno, vengono caricate più copie del modello su ogni istanza per aumentare la velocità effettiva.
EnvironmentVariables-
Variabili di ambiente configurate per prestazioni ottimali, come la dimensione parallela del tensore e la lunghezza massima della sequenza.
S3-
Riferimenti ai canali S3 per gli artefatti del modello, inclusi eventuali output ottimizzati del modello.
Esegui la distribuzione utilizzando l'API
Per implementare una raccomandazione a livello di codice, utilizza il pacchetto di modelli contenuto nella raccomandazione per creare un modello e un endpoint di SageMaker intelligenza artificiale. Ogni raccomandazione include un ModelDetails oggetto con l'ARN del pacchetto del modello e il nome della specifica di inferenza. Questo è il percorso di implementazione più semplice perché il pacchetto del modello contiene già l'immagine del contenitore, le variabili di ambiente e i canali degli artefatti del modello.
import boto3 client = boto3.client("sagemaker", region_name="us-west-2") # Get the recommendation from a completed job response = client.describe_ai_recommendation_job( AIRecommendationJobName="my-recommendation-job" ) # Select a recommendation (e.g., the first one) recommendation = response["Recommendations"][0] model_details = recommendation["ModelDetails"] deploy_config = recommendation["DeploymentConfiguration"] # Create a model from the model package. # The model package already contains the container image, environment # variables, and S3 data channels (base model + optimization artifacts). model_name = "my-recommended-model" container_def = { "ModelPackageName": model_details["ModelPackageArn"], } # If the recommendation uses a named inference specification (e.g., for # a specific optimization variant), specify it so SageMaker selects the # correct container and instance configuration from the model package. if model_details.get("InferenceSpecificationName"): container_def["InferenceSpecificationName"] = model_details["InferenceSpecificationName"] client.create_model( ModelName=model_name, PrimaryContainer=container_def, ExecutionRoleArn="arn:aws:iam::111122223333:role/ExampleRole", ) # Create an endpoint configuration endpoint_config_name = "my-recommended-endpoint-config" production_variant = { "VariantName": "AllTraffic", "ModelName": model_name, "InstanceType": deploy_config["InstanceType"], "InitialInstanceCount": deploy_config.get("InstanceCount", 1), } copy_count = deploy_config.get("CopyCountPerInstance") if copy_count and copy_count > 1: production_variant["InferenceAmiVersion"] = "al2-ami-sagemaker-inference-gpu-2" production_variant["RoutingConfig"] = {"RoutingStrategy": "LEAST_OUTSTANDING_REQUESTS"} client.create_endpoint_config( EndpointConfigName=endpoint_config_name, ProductionVariants=[production_variant], ) # Create the endpoint endpoint_name = "my-recommended-endpoint" client.create_endpoint( EndpointName=endpoint_name, EndpointConfigName=endpoint_config_name, ) print(f"Endpoint {endpoint_name} is being created.")
Dopo aver creato l'endpoint, puoi monitorarne lo stato utilizzando l'DescribeEndpointAPI fino a quando non raggiunge lo stato. InService
import time while True: response = client.describe_endpoint(EndpointName=endpoint_name) status = response["EndpointStatus"] print(f"Endpoint status: {status}") if status in ("InService", "Failed"): break time.sleep(60)
Esegui la distribuzione da SageMaker AI Studio
Puoi anche implementare una configurazione consigliata direttamente da SageMaker AI Studio con una sola azione. In SageMaker AI Studio, vai al processo di raccomandazione completato, esamina i consigli e le relative metriche prestazionali e scegli la configurazione che desideri implementare.