

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Déployer une recommandation d'inférence générative basée sur l'IA
<a name="generative-ai-inference-recommendations-deploy"></a>

Lorsqu'une tâche de recommandation est terminée, chaque recommandation inclut une configuration prête à être déployée. Vous pouvez déployer la configuration choisie sur un point de terminaison d'inférence SageMaker AI en une seule action depuis SageMaker AI Studio ou par programmation via l'API.

## Comprendre les configurations de déploiement
<a name="generative-ai-inference-recommendations-deploy-overview"></a>

Chaque recommandation contenue dans la réponse au travail contient un `DeploymentConfiguration` objet contenant les informations suivantes :

`ImageUri`  
L'URI de l'image du conteneur optimisé pour le type d'instance recommandé.

`InstanceType`  
Type d'instance recommandé pour le déploiement.

`InstanceCount`  
Le nombre d'instances nécessaires pour atteindre l'objectif de performance.

`CopyCountPerInstance`  
Le nombre de copies du modèle à exécuter par instance. Lorsqu'il est défini sur une valeur supérieure à un, plusieurs copies du modèle sont chargées sur chaque instance pour augmenter le débit.

`EnvironmentVariables`  
Variables d'environnement configurées pour des performances optimales, telles que la taille parallèle du tenseur et la longueur de séquence maximale.

`S3`  
Références de canal S3 pour les artefacts du modèle, y compris les sorties de modèle optimisées.

## Déploiement à l'aide de l'API
<a name="generative-ai-inference-recommendations-deploy-api"></a>

Pour déployer une recommandation par programmation, utilisez le package de modèles inclus dans la recommandation pour créer un modèle et un point de SageMaker terminaison d'IA. Chaque recommandation inclut un `ModelDetails` objet portant l'ARN du package du modèle et le nom de la spécification d'inférence. Il s'agit du chemin de déploiement le plus simple car le package du modèle contient déjà l'image du conteneur, les variables d'environnement et les canaux d'artefacts du modèle.

```
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.")
```

Une fois le point de terminaison créé, vous pouvez surveiller son état à l'aide de l'`DescribeEndpoint`API jusqu'à ce qu'il atteigne son `InService` statut.

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

## Déploiement depuis SageMaker AI Studio
<a name="generative-ai-inference-recommendations-deploy-studio"></a>

Vous pouvez également déployer une configuration recommandée directement depuis SageMaker AI Studio en une seule action. Dans SageMaker AI Studio, accédez à la tâche de recommandation terminée, passez en revue les recommandations et leurs indicateurs de performance, puis choisissez la configuration que vous souhaitez déployer.