As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Implemente uma recomendação generativa de inferência de IA
Quando um trabalho de recomendação é concluído, cada recomendação inclui uma configuração pronta para implantação. Você pode implantar a configuração escolhida em um endpoint de inferência de SageMaker IA com uma única ação do SageMaker AI Studio ou programaticamente por meio da API.
Entendendo as configurações de implantação
Cada recomendação na resposta do trabalho contém um DeploymentConfiguration objeto com as seguintes informações:
ImageUri-
O URI da imagem do contêiner otimizado para o tipo de instância recomendado.
InstanceType-
O tipo de instância recomendado para implantação.
InstanceCount-
O número de instâncias necessárias para atingir a meta de desempenho.
CopyCountPerInstance-
O número de cópias do modelo a serem executadas por instância. Quando definido com um valor maior que um, várias cópias do modelo são carregadas em cada instância para aumentar a taxa de transferência.
EnvironmentVariables-
Variáveis de ambiente configuradas para desempenho ideal, como tamanho paralelo do tensor e comprimento máximo da sequência.
S3-
Referências de canais S3 para artefatos de modelo, incluindo qualquer saída de modelo otimizada.
Implemente usando a API
Para implantar uma recomendação programaticamente, use o pacote de modelos da recomendação para criar um modelo de SageMaker IA e um endpoint. Cada recomendação inclui um ModelDetails objeto com o ARN do pacote de modelos e o nome da especificação de inferência. Esse é o caminho de implantação mais simples porque o pacote do modelo já contém a imagem do contêiner, as variáveis de ambiente e os canais do artefato do modelo.
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.")
Depois que o endpoint for criado, você poderá monitorar seu status usando a DescribeEndpoint API até que ele atinja o InService status.
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)
Implemente a partir do SageMaker AI Studio
Você também pode implantar uma configuração recomendada diretamente do SageMaker AI Studio com uma única ação. No SageMaker AI Studio, navegue até o trabalho de recomendação concluído, analise as recomendações e suas métricas de desempenho e escolha a configuração que você deseja implantar.