

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éploiement de modèles pour l’inférence en temps réel
<a name="realtime-endpoints-deploy-models"></a>

**Important**  
Les politiques IAM personnalisées qui permettent à Amazon SageMaker Studio ou Amazon SageMaker Studio Classic de créer des SageMaker ressources Amazon doivent également accorder des autorisations pour ajouter des balises à ces ressources. L’autorisation d’ajouter des balises aux ressources est requise, car Studio et Studio Classic balisent automatiquement toutes les ressources qu’ils créent. Si une politique IAM autorise Studio et Studio Classic à créer des ressources mais n'autorise pas le balisage, des erreurs « AccessDenied » peuvent se produire lors de la tentative de création de ressources. Pour de plus amples informations, veuillez consulter [Fournir des autorisations pour le balisage des ressources d' SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS politiques gérées pour Amazon SageMaker AI](security-iam-awsmanpol.md)qui donnent des autorisations pour créer des SageMaker ressources incluent déjà des autorisations pour ajouter des balises lors de la création de ces ressources.

Il existe plusieurs options pour déployer un modèle à l'aide des services d'hébergement SageMaker AI. Vous pouvez déployer un modèle de manière interactive avec SageMaker Studio. Vous pouvez également déployer un modèle par programmation à l'aide d'un AWS SDK, tel que le SDK Python ou le SDK pour SageMaker Python (Boto3). Vous pouvez également déployer à l'aide du AWS CLI.

## Avant de commencer
<a name="deploy-prereqs"></a>

Avant de déployer un modèle d' SageMaker IA, repérez et notez les points suivants :
+ L' Région AWS endroit où se trouve votre compartiment Amazon S3
+ Le chemin d’accès d’URI Amazon S3 où sont stockés les artefacts du modèle
+ Le rôle de l'IAM pour l'IA SageMaker 
+ Le chemin de registre d'URI Docker Amazon ECR pour l'image personnalisée contenant le code d'inférence, ou le framework et la version d'une image Docker intégrée prise en charge et par AWS

 Pour obtenir la liste des réseaux Services AWS disponibles dans chacun d'entre eux Région AWS, voir [Cartes des régions et réseaux périphériques](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Pour plus d’informations sur la création d’un rôle IAM, consultez [Création de rôles IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html).

**Important**  
Le compartiment Amazon S3 où les artefacts de modèle sont stockés doit se trouver dans la même Région AWS que le modèle qui vous êtes en train de créer.

## Utilisation partagée des ressources avec plusieurs modèles
<a name="deployed-shared-utilization"></a>

Vous pouvez déployer un ou plusieurs modèles sur un terminal avec Amazon SageMaker AI. Lorsque plusieurs modèles partagent un point de terminaison, ils utilisent conjointement les ressources qui y sont hébergées, telles que les instances de calcul ML et CPUs les accélérateurs. Le moyen le plus flexible de déployer plusieurs modèles sur un point de terminaison consiste à définir chaque modèle en tant que *composant d’inférence*.

### Composants Inférence
<a name="inference-components"></a>

Un composant d'inférence est un objet d'hébergement SageMaker AI que vous pouvez utiliser pour déployer un modèle sur un point de terminaison. Dans les paramètres du composant d’inférence, vous spécifiez le modèle, le point de terminaison et la manière dont le modèle utilise les ressources hébergées par le point de terminaison. Pour spécifier le modèle, vous pouvez spécifier un objet du modèle SageMaker AI, ou vous pouvez directement spécifier les artefacts et l'image du modèle.

Dans les paramètres, vous pouvez optimiser l’utilisation des ressources en personnalisant la manière dont les cœurs de processeur, les accélérateurs et la mémoire requis sont alloués au modèle. Vous pouvez déployer plusieurs composants d’inférence sur un point de terminaison, chaque composant d’inférence contenant un modèle et les besoins d’utilisation des ressources pour ce modèle. 

Après avoir déployé un composant d'inférence, vous pouvez appeler directement le modèle associé lorsque vous utilisez l' InvokeEndpoint action dans l' SageMaker API.

Les composants d’inférence offrent les avantages suivants :

**Flexibilité**  
Le composant d’inférence dissocie les détails de l’hébergement du modèle du point de terminaison lui-même. Cela offre plus de flexibilité et de contrôle sur la manière dont les modèles sont hébergés et servis avec un point de terminaison. Vous pouvez héberger plusieurs modèles sur la même infrastructure et vous pouvez ajouter ou supprimer des modèles d’un point de terminaison selon les besoins. Vous pouvez mettre à jour chaque modèle de manière indépendante.

**Capacité de mise à l’échelle**  
Vous pouvez spécifier le nombre de copies de chaque modèle à héberger et vous pouvez définir un nombre minimum de copies pour garantir que le modèle charge la quantité requise pour répondre aux demandes. Vous pouvez réduire verticalement n’importe quelle copie de composant d’inférence jusqu’à zéro, ce qui libère de l’espace pour qu’une autre copie puisse augmenter verticalement. 

SageMaker L'IA emballe vos modèles sous forme de composants d'inférence lorsque vous les déployez en utilisant :
+ SageMaker Studio classique.
+ Le SDK SageMaker Python pour déployer un objet Model (dans lequel vous définissez le type de point de terminaison sur`EndpointType.INFERENCE_COMPONENT_BASED`).
+  AWS SDK pour Python (Boto3) pour définir les `InferenceComponent` objets que vous déployez sur un point de terminaison.

## Déployez des modèles avec SageMaker Studio
<a name="deploy-models-studio"></a>

Procédez comme suit pour créer et déployer votre modèle de manière interactive via SageMaker Studio. Pour plus d’informations sur Studio, consultez la documentation [Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio.html). Pour plus d'informations sur les différents scénarios de déploiement, consultez le blog [Package et déployez LLMs facilement des modèles de ML classiques avec Amazon SageMaker AI — Partie 2](https://aws.amazon.com/blogs/machine-learning/package-and-deploy-classical-ml-and-llms-easily-with-amazon-sagemaker-part-2-interactive-user-experiences-in-sagemaker-studio/).

### Préparation de vos artefacts et de vos autorisations
<a name="studio-prereqs"></a>

Complétez cette section avant de créer un modèle dans SageMaker Studio.

Deux options s’offrent à vous pour importer vos artefacts et créer un modèle dans Studio :

1. Vous pouvez apporter une archive `tar.gz` prépackagée, qui doit inclure les artefacts de votre modèle, tout code d’inférence personnalisé et toutes les dépendances répertoriées dans un fichier `requirements.txt`.

1. SageMaker L'IA peut emballer vos artefacts pour vous. Vous n'avez qu'à importer les artefacts de votre modèle brut et toutes les dépendances dans un `requirements.txt` fichier, et l' SageMaker IA peut vous fournir le code d'inférence par défaut (ou vous pouvez remplacer le code par défaut par votre propre code d'inférence personnalisé). SageMaker L'IA prend en charge cette option pour les frameworks suivants : PyTorch, XGBoost.

En plus d'apporter votre modèle, votre rôle Gestion des identités et des accès AWS (IAM) et un conteneur Docker (ou le framework et la version souhaités pour lesquels SageMaker AI dispose d'un conteneur prédéfini), vous devez également accorder des autorisations pour créer et déployer des modèles via SageMaker AI Studio.

La [AmazonSageMakerFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerFullAccess.html)politique doit être attachée à votre rôle IAM afin de pouvoir accéder à l' SageMaker IA et aux autres services pertinents. Pour connaître les prix des types d'instances dans Studio, vous devez également joindre la [AWS PriceListServiceFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSPriceListServiceFullAccess.html)politique (ou, si vous ne souhaitez pas joindre la politique dans son intégralité, plus précisément l'`pricing:GetProducts`action).

Si vous choisissez de charger les artefacts de votre modèle lors de la création d’un modèle (ou de charger un exemple de fichier de données utiles pour les recommandations d’inférence), vous devez créer un compartiment Amazon S3. Le nom du compartiment doit être préfixé par le mot `SageMaker AI`. Les capitalisations alternatives de l' SageMaker IA sont également acceptables : `Sagemaker` ou. `sagemaker`

Nous vous recommandons d’utiliser la convention de dénomination des compartiments `sagemaker-{Region}-{accountID}`. Ce compartiment est utilisé pour stocker les artefacts que vous chargez.

Après avoir créé le compartiment, attachez-lui la politique CORS (cross-origin resource sharing, partage des ressources entre origines multiples) suivante :

```
[
    {
        "AllowedHeaders": ["*"],
        "ExposeHeaders": ["Etag"],
        "AllowedMethods": ["PUT", "POST"],
        "AllowedOrigins": ['https://*.sagemaker.aws'],
    }
]
```

Vous pouvez attacher une politique CORS à un compartiment Amazon S3 à l’aide de l’une des méthodes suivantes :
+ Via la page [Modifier le partage des ressources cross-origin (CORS)](https://s3.console.aws.amazon.com/s3/bucket/bucket-name/property/cors/edit) de la console Amazon S3
+ Utilisation de l'API Amazon S3 [PutBucketCors](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketCors.html)
+ À l'aide de la put-bucket-cors AWS CLI commande :

  ```
  aws s3api put-bucket-cors --bucket="..." --cors-configuration="..."
  ```

### Création d’un modèle déployable
<a name="studio-create-model"></a>

Au cours de cette étape, vous créez une version déployable de votre modèle dans SageMaker AI en fournissant vos artefacts ainsi que des spécifications supplémentaires, telles que le conteneur et le framework souhaités, tout code d'inférence personnalisé et les paramètres réseau.

Créez un modèle déployable dans SageMaker Studio en procédant comme suit :

1. Ouvrez l'application SageMaker Studio.

1. Dans le volet de navigation de gauche, choisissez **Modèles**.

1. Choisissez l’onglet **Modèles déployables**.

1. Sur la page **Modèles déployables**, choisissez **Créer**.

1. Sur la page **Créer un modèle déployable**, dans le champ **Nom du modèle**, saisissez un nom pour le modèle.

Vous trouverez plusieurs autres sections à remplir sur la page **Créer un modèle déployable**.

La section **Définition de conteneur** ressemble à la capture d’écran suivante :

![\[Capture d’écran de la section de Définition de conteneur pour créer un modèle dans Studio.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/inference/studio-container-definition.png)


**Dans la section **Définition de conteneur**, procédez comme suit :**

1. Pour **le type de conteneur**, sélectionnez **Conteneur préconstruit** si vous souhaitez utiliser un conteneur géré par l' SageMaker IA, ou sélectionnez **Apportez votre propre conteneur** si vous avez votre propre conteneur.

1. Si vous avez sélectionné **Conteneur préconçu**, sélectionnez le **Framework de conteneur**, la **Version du framework** et le **Type de matériel** que vous souhaitez utiliser.

1. Si vous avez sélectionné **Apporter votre propre conteneur**, saisissez un chemin d’accès Amazon ECR pour le **Chemin d’accès ECR vers l’image du conteneur**.

Ensuite, remplissez la section **Artefacts**, qui ressemble à la capture d’écran suivante :

![\[Capture d’écran de la section Artefacts pour créer un modèle dans Studio.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/inference/studio-artifacts-section.png)


**Pour la section **Artefacts**, procédez comme suit :**

1. **Si vous utilisez l'un des frameworks pris en charge par l' SageMaker IA pour empaqueter des artefacts de modèles (PyTorch ou XGBoost), vous pouvez choisir l'option **Télécharger des artefacts pour les artefacts**.** Avec cette option, vous pouvez simplement spécifier les artefacts de votre modèle brut, tout code d'inférence personnalisé dont vous disposez et votre fichier requirements.txt, et l' SageMaker IA se charge de l'empaquetage de l'archive pour vous. Procédez comme suit :

   1. Pour **Artefacts**, sélectionnez **Charger les artefacts** pour continuer à fournir vos fichiers. Sinon, si vous avez déjà une archive `tar.gz` contenant vos fichiers de modèle, votre code d’inférence et votre fichier `requirements.txt`, sélectionnez **URI S3 d’entrée vers les artefacts prépackagés**.

   1. Si vous avez choisi de télécharger vos artefacts, alors pour le **compartiment S3**, entrez le chemin Amazon S3 vers un compartiment dans lequel vous souhaitez que l' SageMaker IA stocke vos artefacts après les avoir emballés pour vous. Ensuite, procédez comme suit.

   1. Pour **Charger les artefacts de modèle**, chargez vos fichiers de modèle.

   1. Pour le **code d'inférence**, sélectionnez **Utiliser le code d'inférence par défaut** si vous souhaitez utiliser le code par défaut fourni par l' SageMaker IA pour servir l'inférence. Sinon, sélectionnez **Charger un code d’inférence personnalisé** pour utiliser votre propre code d’inférence.

   1. Pour **Charger requirements.txt**, chargez un fichier texte répertoriant les dépendances que vous souhaitez installer lors de l’exécution.

1. Si vous n'utilisez pas de framework compatible avec l' SageMaker IA pour empaqueter les artefacts du modèle, Studio vous propose l'option **Artefacts préemballés**, et vous devez fournir tous vos artefacts déjà empaquetés sous forme d'`tar.gz`archive. Procédez comme suit :

   1. Pour **Artefacts prépackagés**, sélectionnez **URI S3 d’entrée pour les artefacts de modèle prépackagés** si votre archive `tar.gz` a déjà été chargée sur Amazon S3. Sélectionnez **Télécharger des artefacts de modèles préemballés** si vous souhaitez télécharger directement vos archives vers SageMaker AI.

   1. Si vous avez sélectionné **URI S3 d’entrée pour les artefacts de modèle prépackagés**, saisissez le chemin Amazon S3 vers votre archive pour **URI S3**. Sinon, sélectionnez et chargez l’archive à partir de votre machine locale.

La section suivante est **Sécurité**, qui ressemble à la capture d’écran suivante :

![\[Capture d’écran de la section Sécurité pour créer un modèle dans Studio.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/inference/studio-security-section.png)


**Pour la section **Sécurité**, procédez comme suit :**

1. Pour **Rôle IAM**, saisissez l’ARN pour un rôle IAM.

1. (Facultatif) Pour **Cloud privé virtuel (VPC)**, vous pouvez sélectionner un VPC Amazon pour stocker votre configuration et vos artefacts de modèle.

1. (Facultatif) Activez le bouton **Isolement de réseau** si vous souhaitez restreindre l’accès Internet de votre conteneur.

Enfin, vous pouvez éventuellement remplir la section **Options avancées**, qui ressemble à la capture d’écran suivante :

![\[Capture d’écran de la section Options avancées pour créer un modèle dans Studio.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/inference/studio-advanced-options.png)


**(Facultatif) Pour la section **Options avancées**, procédez comme suit :**

1. Activez le bouton **Recommandations d'instance personnalisées** si vous souhaitez exécuter une tâche Amazon SageMaker Inference Recommender sur votre modèle après sa création. Inference Recommender est une fonctionnalité qui vous fournit des types d’instance recommandés pour optimiser les performances et les coûts d’inférence. Vous pouvez consulter ces recommandations d’instances lorsque vous préparez le déploiement de votre modèle.

1. Pour **Ajouter des variables d’environnement**, saisissez une variable d’environnement pour votre conteneur sous forme de paires clé-valeur.

1. Pour **Balises**, saisissez toutes les balises sous forme de paires clé-valeur.

1. Après avoir terminé la configuration de votre modèle et de votre conteneur, sélectionnez **Créer un modèle déployable**.

Vous devriez maintenant disposer dans SageMaker Studio d'un modèle prêt à être déployé.

### Déployer votre modèle
<a name="studio-deploy"></a>

Enfin, vous déployez le modèle que vous avez configuré à l’étape précédente sur un point de terminaison HTTPS. Vous pouvez déployer un modèle unique ou plusieurs modèles sur le point de terminaison.

**Compatibilité entre le modèle et le point de terminaison**  
Avant de pouvoir déployer un modèle sur un point de terminaison, le modèle et le point de terminaison doivent être compatibles en ayant les mêmes valeurs pour les paramètres suivants :  
Le rôle IAM
Le VPC Amazon, y compris ses sous-réseaux et groupes de sécurité
L’isolement du réseau (activé ou désactivé)
Studio vous empêche de déployer des modèles sur des points de terminaison incompatibles de la manière suivante :  
Si vous tentez de déployer un modèle sur un nouveau point de terminaison, l' SageMaker IA configure le point de terminaison avec des paramètres initiaux compatibles. Si vous interrompez la compatibilité en modifiant ces paramètres, Studio affiche une alerte et empêche votre déploiement.
Si vous tentez de déployer sur un point de terminaison existant et que celui-ci est incompatible, Studio affiche une alerte et empêche votre déploiement. 
Si vous tentez d’ajouter plusieurs modèles à un déploiement, Studio vous empêche de déployer des modèles incompatibles entre eux.
Lorsque Studio affiche l’alerte concernant l’incompatibilité du modèle et du point de terminaison, vous pouvez choisir **Afficher les détails** de l’alerte pour voir quels paramètres sont incompatibles.

Pour déployer un modèle, vous pouvez notamment procéder comme suit dans Studio :

1. Ouvrez l'application SageMaker Studio.

1. Dans le volet de navigation de gauche, choisissez **Modèles**.

1. Sur la page **Modèles**, sélectionnez un ou plusieurs modèles dans la liste des modèles d' SageMaker IA.

1. Choisissez **Déployer**.

1. Pour **Nom du point de terminaison**, ouvrez le menu déroulant. Vous pouvez sélectionner un point de terminaison existant ou créer un nouveau point de terminaison sur lequel vous déployez le modèle.

1. Pour **Type d’instance**, sélectionnez le type d’instance à utiliser pour le point de terminaison. Si vous avez déjà exécuté une tâche Inference Recommender pour le modèle, les types d’instance que vous recommandez apparaissent dans la liste sous le titre **Recommandé**. Sinon, vous verrez quelques **Instances potentielles** susceptibles de convenir à votre modèle.
**Compatibilité des types d'instance pour JumpStart**  
Si vous déployez un JumpStart modèle, Studio affiche uniquement les types d'instances pris en charge par le modèle.

1. Dans **Nombre d’instances initial**, saisissez le nombre initial d’instances que vous souhaitez provisionner pour votre point de terminaison.

1. Pour **Nombre maximal d’instances**, spécifiez le nombre maximum d’instances que le point de terminaison peut mettre en service lorsqu’il augmente verticalement pour faire face à une augmentation du trafic.

1. Si le modèle que vous déployez est l'un des modèles les plus utilisés JumpStart LLMs depuis le hub de modèles, l'option **Autres configurations** apparaît après les champs de type d'instance et de nombre d'instances.

   Pour les plus populaires JumpStart LLMs, AWS propose des types d'instances pré-comparés afin d'optimiser les coûts ou les performances. Ces données peuvent vous aider à choisir le type d’instance à utiliser pour déployer votre LLM. Choisissez **Autres configurations** pour ouvrir une boîte de dialogue contenant les données préévaluées. Le panneau ressemble à la capture d’écran suivante :  
![\[Capture d’écran de la boîte Autres configurations\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/inference/studio-jumpstart-alternate-configurations.png)

   Dans la boîte **Autres configurations**, procédez comme suit :

   1. Sélectionnez un type d’instance. Vous pouvez choisir **Coût par heure** ou **Meilleures performances** pour voir les types d’instance qui optimisent le coût ou les performances pour le modèle spécifié. Vous pouvez également sélectionner **Autres instances prises en charge** pour voir la liste des autres types d'instances compatibles avec le JumpStart modèle. Notez que la sélection d’un type d’instance ici remplace toute sélection d’instance précédente spécifiée à l’étape 6.

   1. (Facultatif) Activez le bouton **Personnaliser la configuration sélectionnée** pour spécifier le **Nombre maximum de jetons** (le nombre maximum de jetons que vous souhaitez autoriser, qui est la somme de vos jetons d’entrée et de la sortie générée par le modèle), la **Longueur maximale du jeton d’entrée** (le nombre maximum de jetons que vous souhaitez autoriser pour l’entrée de chaque demande) et le **Nombre maximal de requêtes simultanées** (le nombre maximum de requêtes que le modèle peut traiter à la fois).

   1. Choisissez **Sélectionner** pour confirmer le type d’instance et les paramètres de configuration.

1. Le champ **Modèle** doit déjà être renseigné avec le nom du ou des modèles que vous déployez. Vous pouvez choisir **Ajouter un modèle** pour ajouter d’autres modèles au déploiement. Pour chaque modèle ajouté, renseignez les champs suivants :

   1. Dans **Nombre de cœurs de l’UC**, saisissez les cœurs de processeur que vous souhaitez consacrer à l’utilisation du modèle.

   1. Pour **Nombre minimum de copies**, saisissez le nombre minimum de copies de modèle que vous souhaitez héberger sur le point de terminaison à un moment donné.

   1. Pour **Mémoire minimale de l’UC (Mo)**, saisissez la quantité minimale de mémoire (en Mo) requise par le modèle.

   1. Pour **Mémoire maximale de l’UC (Mo)**, saisissez la quantité maximale de mémoire (en Mo) que vous souhaitez autoriser le modèle à utiliser.

1. (Facultatif) Pour **Options avancées**, procédez comme suit :

   1. Pour le **rôle IAM**, utilisez le rôle d'exécution SageMaker AI IAM par défaut ou spécifiez votre propre rôle doté des autorisations dont vous avez besoin. Notez que ce rôle IAM doit être identique à celui que vous avez spécifié lors de la création du modèle déployable.

   1. Pour **Cloud privé virtuel (VPC)**, vous pouvez spécifier le VPC dans lequel vous souhaitez héberger votre point de terminaison.

   1. Pour la **clé KMS de chiffrement**, sélectionnez une AWS KMS clé pour chiffrer les données sur le volume de stockage attaché à l'instance de calcul ML qui héberge le point de terminaison.

   1. Activez le bouton **Activer l’isolement du réseau** pour restreindre l’accès Internet de votre conteneur.

   1. Pour **Configuration du délai d’attente**, saisissez des valeurs dans les champs **Expiration de téléchargement des données du modèle (secondes)** et **Expiration de surveillance de l’état du démarrage du conteneur (secondes)**. Ces valeurs déterminent le temps maximal accordé par l' SageMaker IA pour télécharger le modèle dans le conteneur et démarrer le conteneur, respectivement.

   1. Pour **Balises**, saisissez toutes les balises sous forme de paires clé-valeur.
**Note**  
SageMaker L'IA configure le rôle IAM, le VPC et les paramètres d'isolation du réseau avec des valeurs initiales compatibles avec le modèle que vous déployez. Si vous interrompez la compatibilité en modifiant ces paramètres, Studio affiche une alerte et empêche votre déploiement.

Une fois vos options configurées, la page doit ressembler à la capture d’écran suivante.

![\[Capture d’écran de la page Déploiement du modèle dans Studio.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/inference/studio-deploy-realtime-model-2.png)


Après avoir configuré votre déploiement, choisissez **Déployer** pour créer le point de terminaison et déployer votre modèle.

## Déployez des modèles avec Python SDKs
<a name="deploy-models-python"></a>

À l'aide du SDK SageMaker Python, vous pouvez créer votre modèle de deux manières. La première consiste à créer un objet modèle à partir de la classe `Model` ou `ModelBuilder`. Si vous utilisez la classe `Model` pour créer votre objet `Model`, vous devez spécifier le package de modèle ou le code d’inférence (en fonction de votre modèle de serveur), les scripts pour gérer la sérialisation et la désérialisation des données entre le client et le serveur, ainsi que toutes les dépendances à charger sur Amazon S3 à des fins de consommation. La deuxième méthode de création de votre modèle consiste à utiliser un `ModelBuilder` pour lequel vous fournissez des artefacts ou un code d’inférence. `ModelBuilder` capture automatiquement vos dépendances, en déduit les fonctions de sérialisation et de désérialisation nécessaires et empaquète vos dépendances pour créer votre objet `Model`. Pour plus d’informations sur `ModelBuilder`, consultez [Créez un modèle dans Amazon SageMaker AI avec ModelBuilder](how-it-works-modelbuilder-creation.md).

La section suivante décrit les deux méthodes permettant de créer votre modèle et de déployer votre objet modèle.

### Configuration
<a name="python-setup"></a>

Les exemples suivants préparent le processus de déploiement du modèle. Ils importent les bibliothèques nécessaires et définissent l’URL S3 qui localise les artefacts du modèle.

------
#### [ SageMaker Python SDK ]

**Example instructions d’importation**  
L'exemple suivant importe des modules depuis le SDK SageMaker Python, le SDK pour Python (Boto3) et la bibliothèque standard Python. Ces modules fournissent des méthodes utiles qui vous aident à déployer des modèles et ils sont utilisés dans les exemples suivants.  

```
import boto3
from datetime import datetime
from sagemaker.compute_resource_requirements.resource_requirements import ResourceRequirements
from sagemaker.predictor import Predictor
from sagemaker.enums import EndpointType
from sagemaker.model import Model
from sagemaker.session import Session
```

------
#### [ boto3 inference components ]

**Example instructions d’importation**  
L’exemple suivant importe des modules à partir du kit SDK pour Python (Boto3) et de la bibliothèque standard Python. Ces modules fournissent des méthodes utiles qui vous aident à déployer des modèles et ils sont utilisés dans les exemples suivants.  

```
import boto3
import botocore
import sys
import time
```

------
#### [ boto3 models (without inference components) ]

**Example instructions d’importation**  
L’exemple suivant importe des modules à partir du kit SDK pour Python (Boto3) et de la bibliothèque standard Python. Ces modules fournissent des méthodes utiles qui vous aident à déployer des modèles et ils sont utilisés dans les exemples suivants.  

```
import boto3
import botocore
import datetime
from time import gmtime, strftime
```

------

**Example URL de l’artefact de modèle**  
Le code suivant permet de créer un exemple d’URL Amazon S3. L’URL localise les artefacts de modèle pour un modèle préentraîné dans un compartiment Amazon S3.  

```
# Create a variable w/ the model S3 URL

# The name of your S3 bucket:
s3_bucket = "amzn-s3-demo-bucket"
# The directory within your S3 bucket your model is stored in:
bucket_prefix = "sagemaker/model/path"
# The file name of your model artifact:
model_filename = "my-model-artifact.tar.gz"
# Relative S3 path:
model_s3_key = f"{bucket_prefix}/"+model_filename
# Combine bucket name, model file name, and relate S3 path to create S3 model URL:
model_url = f"s3://{s3_bucket}/{model_s3_key}"
```
L’URL Amazon S3 complète est stockée dans la variable `model_url`, qui est utilisée dans les exemples suivants. 

### Présentation de
<a name="python-overview"></a>

Il existe plusieurs manières de déployer des modèles avec le SDK SageMaker Python ou le SDK pour Python (Boto3). Les sections suivantes résument les étapes que vous devez suivre pour différentes approches possibles. Ces étapes sont illustrées par les exemples suivants.

------
#### [ SageMaker Python SDK ]

À l'aide du SDK SageMaker Python, vous pouvez créer votre modèle de l'une des manières suivantes :
+ **Créer un objet modèle à partir de la classe `Model`** : vous devez spécifier le package du modèle ou le code d’inférence (en fonction de votre modèle de serveur), les scripts pour gérer la sérialisation et la désérialisation des données entre le client et le serveur, ainsi que toutes les dépendances à télécharger sur Amazon S3 à des fins de consommation. 
+ **Créer un objet modèle à partir de la classe `ModelBuilder`** : vous fournissez des artefacts de modèle ou du code d’inférence et `ModelBuilder` capture automatiquement vos dépendances, en déduit les fonctions de sérialisation et de désérialisation nécessaires, et empaquète vos dépendances pour créer votre objet `Model`.

  Pour plus d’informations sur `ModelBuilder`, consultez [Créez un modèle dans Amazon SageMaker AI avec ModelBuilder](how-it-works-modelbuilder-creation.md). Vous pouvez également consulter le blog [Package et déployer des modèles de ML classiques et LLMs facilement avec SageMaker AI — Partie 1](https://aws.amazon.com/blogs/machine-learning/package-and-deploy-classical-ml-and-llms-easily-with-amazon-sagemaker-part-1-pysdk-improvements/) pour plus d'informations.

Les exemples suivants décrivent les deux méthodes de création de votre modèle et de déploiement de votre objet modèle. Pour déployer un modèle de ces manières, procédez comme suit :

1. Définissez les ressources du point de terminaison à allouer au modèle avec un objet `ResourceRequirements`.

1. Créez un objet modèle à partir des classes `Model` ou `ModelBuilder`. L’objet `ResourceRequirements` est spécifié dans les paramètres du modèle.

1. Déployez le modèle sur un point de terminaison en utilisant la méthode `deploy` de l’objet `Model`.

------
#### [ boto3 inference components ]

Les exemples suivants montrent comment attribuer un modèle à un composant d’inférence, puis déployer le composant d’inférence sur un point de terminaison. Pour déployer un modèle de cette manière, procédez comme suit :

1. (Facultatif) Créez un objet de modèle d' SageMaker IA à l'aide de la [https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/create_model.html](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/create_model.html)méthode.

1. Spécifiez les paramètres de votre point de terminaison en créant un objet de configuration du point de terminaison. Pour en créer un, vous devez utiliser la méthode [https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/create_endpoint_config.html#create-endpoint-config](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/create_endpoint_config.html#create-endpoint-config).

1. Créez votre point de terminaison à l’aide de la méthode [https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/create_endpoint.html](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/create_endpoint.html) et, dans votre demande, indiquez la configuration du point de terminaison que vous avez créée.

1. Créez un composant d’inférence à l’aide de la méthode `create_inference_component`. Dans les paramètres, vous pouvez spécifier un modèle en effectuant l’une des actions suivantes :
   + Spécification d'un objet de modèle d' SageMaker IA
   + Spécification de l’URI de l’image du modèle et de l’URL S3

   Vous allouez également des ressources de point de terminaison au modèle. En créant le composant d’inférence, vous déployez le modèle sur le point de terminaison. Vous pouvez déployer plusieurs modèles sur un point de terminaison en créant plusieurs composants d’inférence, un pour chaque modèle.

------
#### [ boto3 models (without inference components) ]

Les exemples suivants montrent comment créer un objet de modèle, puis déployer le modèle sur un point de terminaison. Pour déployer un modèle de cette manière, procédez comme suit :

1. Créez un modèle d' SageMaker IA à l'aide de la [https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/create_model.html](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/create_model.html)méthode.

1. Spécifiez les paramètres de votre point de terminaison en créant un objet de configuration du point de terminaison. Pour en créer un, vous devez utiliser la méthode [https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/create_endpoint_config.html#create-endpoint-config](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/create_endpoint_config.html#create-endpoint-config). Dans la configuration du point de terminaison, vous attribuez l’objet modèle à une variante de production.

1. Créez votre point de terminaison à l’aide de la méthode [https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/create_endpoint.html](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/create_endpoint.html). Dans votre demande, indiquez la configuration du point de terminaison que vous avez créée. 

   Lorsque vous créez le point de terminaison, l' SageMaker IA provisionne les ressources du point de terminaison et déploie le modèle sur le point de terminaison.

------

### Configurer
<a name="python-configure"></a>

Les exemples suivants configurent les ressources dont vous avez besoin pour déployer un modèle sur un point de terminaison.

------
#### [ SageMaker Python SDK ]

L’exemple suivant affecte des ressources de point de terminaison à un modèle avec un objet `ResourceRequirements`. Ces ressources incluent les cœurs d’UC, les accélérateurs et la mémoire. L’exemple crée ensuite un objet modèle à partir de la classe `Model`. Vous pouvez également créer un objet modèle en instanciant la [ModelBuilder](https://docs.aws.amazon.com/sagemaker/latest/dg/how-it-works-modelbuilder-creation.html)classe et en l'exécutant. `build` Cette méthode est également illustrée dans l'exemple. `ModelBuilder`fournit une interface unifiée pour l'empaquetage des modèles et, dans ce cas, prépare un modèle pour un déploiement de modèles à grande échelle. L’exemple utilise `ModelBuilder` pour construire un modèle Hugging Face. (Vous pouvez également transmettre un JumpStart modèle). Une fois le modèle créé, vous pouvez spécifier les besoins en ressources dans l’objet modèle. Dans l’étape suivante, vous allez utiliser cet objet pour déployer le modèle sur un point de terminaison. 

```
resources = ResourceRequirements(
    requests = {
        "num_cpus": 2,  # Number of CPU cores required:
        "num_accelerators": 1, # Number of accelerators required
        "memory": 8192,  # Minimum memory required in Mb (required)
        "copies": 1,
    },
    limits = {},
)

now = datetime.now()
dt_string = now.strftime("%d-%m-%Y-%H-%M-%S")
model_name = "my-sm-model"+dt_string

# build your model with Model class
model = Model(
    name = "model-name",
    image_uri = "image-uri",
    model_data = model_url,
    role = "arn:aws:iam::111122223333:role/service-role/role-name",
    resources = resources,
    predictor_cls = Predictor,
)
                        
# Alternate mechanism using ModelBuilder
# uncomment the following section to use ModelBuilder
/*
model_builder = ModelBuilder(
    model="<HuggingFace-ID>", # like "meta-llama/Llama-2-7b-hf"
    schema_builder=SchemaBuilder(sample_input,sample_output),
    env_vars={ "HUGGING_FACE_HUB_TOKEN": "<HuggingFace_token>}" }
)

# build your Model object
model = model_builder.build()

# create a unique name from string 'mb-inference-component'
model.model_name = unique_name_from_base("mb-inference-component")

# assign resources to your model
model.resources = resources
*/
```

------
#### [ boto3 inference components ]

L’exemple suivant configure un point de terminaison avec la méthode `create_endpoint_config`. Vous attribuez cette configuration à un point de terminaison lorsque vous le créez. Dans la configuration, vous définissez une ou plusieurs variantes de production. Pour chaque variante, vous pouvez choisir le type d'instance que vous souhaitez qu'Amazon SageMaker AI fournisse, et vous pouvez activer le dimensionnement des instances gérées.

```
endpoint_config_name = "endpoint-config-name"
endpoint_name = "endpoint-name"
inference_component_name = "inference-component-name"
variant_name = "variant-name"

sagemaker_client.create_endpoint_config(
    EndpointConfigName = endpoint_config_name,
    ExecutionRoleArn = "arn:aws:iam::111122223333:role/service-role/role-name",
    ProductionVariants = [
        {
            "VariantName": variant_name,
            "InstanceType": "ml.p4d.24xlarge",
            "InitialInstanceCount": 1,
            "ManagedInstanceScaling": {
                "Status": "ENABLED",
                "MinInstanceCount": 1,
                "MaxInstanceCount": 2,
            },
        }
    ],
)
```

------
#### [ boto3 models (without inference components) ]

**Example définition du modèle**  
L'exemple suivant définit un modèle d' SageMaker IA avec la `create_model` méthode dans le AWS SDK pour Python (Boto3).  

```
model_name = "model-name"

create_model_response = sagemaker_client.create_model(
    ModelName = model_name,
    ExecutionRoleArn = "arn:aws:iam::111122223333:role/service-role/role-name",
    PrimaryContainer = {
        "Image": "image-uri",
        "ModelDataUrl": model_url,
    }
)
```
Cet exemple spécifie les éléments suivants :  
+ `ModelName` : nom de votre modèle (dans cet exemple, il est stocké sous la forme d’une variable de chaîne appelée `model_name`).
+ `ExecutionRoleArn`: le nom de ressource Amazon (ARN) du rôle IAM qu'Amazon SageMaker AI peut assumer pour accéder aux artefacts du modèle et aux images Docker à des fins de déploiement sur des instances de calcul ML ou pour des tâches de transformation par lots.
+ `PrimaryContainer` : l’emplacement de l’image Docker principale contenant le code d’inférence, les artefacts associés et les cartes d’environnement personnalisées que le code d’inférence utilise lorsque le modèle est déployé pour les prédictions.

**Example configuration du point de terminaison ;**  
L’exemple suivant configure un point de terminaison avec la méthode `create_endpoint_config`. Amazon SageMaker AI utilise cette configuration pour déployer des modèles. Dans la configuration, vous identifiez un ou plusieurs modèles, créés avec la `create_model` méthode, pour déployer les ressources que vous souhaitez qu'Amazon SageMaker AI fournisse.  

```
endpoint_config_response = sagemaker_client.create_endpoint_config(
    EndpointConfigName = "endpoint-config-name", 
    # List of ProductionVariant objects, one for each model that you want to host at this endpoint:
    ProductionVariants = [
        {
            "VariantName": "variant-name", # The name of the production variant.
            "ModelName": model_name, 
            "InstanceType": "ml.p4d.24xlarge",
            "InitialInstanceCount": 1 # Number of instances to launch initially.
        }
    ]
)
```
Cet exemple indique les clés suivantes pour le champ `ProductionVariants` :  
+ `VariantName` : nom de la variante de production.
+ `ModelName` : nom du modèle que vous voulez héberger. Il s’agit du nom que vous avez spécifié lors de la création du modèle.
+ `InstanceType` : type d’instance de calcul. Consultez le `InstanceType` champ dans [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProductionVariant.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProductionVariant.html) et la section [Tarification de l'SageMaker IA](https://aws.amazon.com/sagemaker/pricing/) pour obtenir la liste des types d'instances de calcul pris en charge et les tarifs de chaque type d'instance.

------

### Déploiement
<a name="python-deploy"></a>

Les exemples suivants déploient un modèle sur un point de terminaison.

------
#### [ SageMaker Python SDK ]

L’exemple suivant déploie le modèle sur un point de terminaison HTTPS en temps réel avec la méthode `deploy` de l’objet modèle. Si vous spécifiez une valeur pour l’argument `resources` à la fois pour la création et le déploiement du modèle, les ressources que vous spécifiez pour le déploiement sont prioritaires.

```
predictor = model.deploy(
    initial_instance_count = 1,
    instance_type = "ml.p4d.24xlarge", 
    endpoint_type = EndpointType.INFERENCE_COMPONENT_BASED,
    resources = resources,
)
```

Pour le champ `instance_type`, l’exemple indique le nom du type d’instance Amazon EC2 pour le modèle. Pour le champ `initial_instance_count`, il indique le nombre initial d’instances sur lesquelles exécuter le point de terminaison.

L’exemple de code suivant illustre un autre cas où vous déployez un modèle sur un point de terminaison, puis un autre modèle sur le même point de terminaison. Dans ce cas, vous devez fournir le même nom de point de terminaison aux méthodes `deploy` des deux modèles.

```
# Deploy the model to inference-component-based endpoint
falcon_predictor = falcon_model.deploy(
    initial_instance_count = 1,
    instance_type = "ml.p4d.24xlarge", 
    endpoint_type = EndpointType.INFERENCE_COMPONENT_BASED,
    endpoint_name = "<endpoint_name>"
    resources = resources,
)

# Deploy another model to the same inference-component-based endpoint
llama2_predictor = llama2_model.deploy( # resources already set inside llama2_model
    endpoint_type = EndpointType.INFERENCE_COMPONENT_BASED,
    endpoint_name = "<endpoint_name>"  # same endpoint name as for falcon model
)
```

------
#### [ boto3 inference components ]

Une fois que vous avez une configuration de point de terminaison, utilisez la méthode [create\$1point](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/create_endpoint.html) pour créer votre point de terminaison. Le nom du point de terminaison doit être unique au sein de votre AWS compte. Région AWS 

L’exemple suivant crée un point de terminaison à l’aide de la configuration du point de terminaison spécifiée dans la requête. Amazon SageMaker AI utilise le point de terminaison pour provisionner les ressources.

```
sagemaker_client.create_endpoint(
    EndpointName = endpoint_name,
    EndpointConfigName = endpoint_config_name,
)
```

Une fois que vous avez créé un point de terminaison, vous pouvez y déployer un ou plusieurs modèles en créant des composants d’inférence. L’exemple suivant en crée un à l’aide de la méthode `create_inference_component`.

```
sagemaker_client.create_inference_component(
    InferenceComponentName = inference_component_name,
    EndpointName = endpoint_name,
    VariantName = variant_name,
    Specification = {
        "Container": {
            "Image": "image-uri",
            "ArtifactUrl": model_url,
        },
        "ComputeResourceRequirements": {
            "NumberOfCpuCoresRequired": 1, 
            "MinMemoryRequiredInMb": 1024
        }
    },
    RuntimeConfig = {"CopyCount": 2}
)
```

------
#### [ boto3 models (without inference components) ]

**Example déploiement**  

Fournissez la configuration du point de terminaison à SageMaker AI. Le service lance les instances de calcul ML et déploie le ou les modèles tel que spécifié dans la configuration.

Une fois que vous avez votre modèle et votre configuration du point de terminaison, utilisez la méthode [create\$1endpoint](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/create_endpoint.html) pour créer votre point de terminaison. Le nom du point de terminaison doit être unique au sein de votre AWS compte. Région AWS 

L’exemple suivant crée un point de terminaison à l’aide de la configuration du point de terminaison spécifiée dans la requête. Amazon SageMaker AI utilise le point de terminaison pour provisionner des ressources et déployer des modèles.

```
create_endpoint_response = sagemaker_client.create_endpoint(
    # The endpoint name must be unique within an AWS Region in your AWS account:
    EndpointName = "endpoint-name"
    # The name of the endpoint configuration associated with this endpoint:
    EndpointConfigName = "endpoint-config-name")
```

------

## Déployez des modèles avec le AWS CLI
<a name="deploy-models-cli"></a>

Vous pouvez déployer un modèle sur un point de terminaison à l'aide du AWS CLI.

### Présentation de
<a name="deploy-models-cli-overview"></a>

Lorsque vous déployez un modèle avec le AWS CLI, vous pouvez le déployer avec ou sans composant d'inférence. Les sections suivantes résument les commandes que vous exécutez pour les deux approches. Ces commandes sont illustrées par les exemples suivants.

------
#### [ With inference components ]

Pour déployer un modèle avec un composant d’inférence, procédez comme suit :

1. (Facultatif) Créez un modèle à l’aide de la commande [https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-model.html](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-model.html).

1. Spécifiez les paramètres de votre point de terminaison en créant une configuration du point de terminaison. Pour en créer une, vous devez exécuter la commande [https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-endpoint-config.html](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-endpoint-config.html).

1. Créez votre point de terminaison à l’aide de la commande [https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-endpoint.html](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-endpoint.html). Dans le corps de commande, spécifiez la configuration du point de terminaison que vous avez créée.

1. Créez un composant d’inférence à l’aide de la commande `create-inference-component`. Dans les paramètres, vous pouvez spécifier un modèle en effectuant l’une des actions suivantes :
   + Spécification d'un objet de modèle d' SageMaker IA
   + Spécification de l’URI de l’image du modèle et de l’URL S3

   Vous allouez également des ressources de point de terminaison au modèle. En créant le composant d’inférence, vous déployez le modèle sur le point de terminaison. Vous pouvez déployer plusieurs modèles sur un point de terminaison en créant plusieurs composants d’inférence, un pour chaque modèle.

------
#### [ Without inference components ]

Pour déployer un modèle sans utiliser de composant d’inférence, procédez comme suit :

1. Créez un modèle d' SageMaker IA à l'aide de la [https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-model.html](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-model.html)commande.

1. Spécifiez les paramètres de votre point de terminaison en créant un objet de configuration du point de terminaison. Vous utilisez la commande [https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-endpoint-config.html](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-endpoint-config.html) pour en créer un. Dans la configuration du point de terminaison, vous attribuez l’objet modèle à une variante de production.

1. Créez votre point de terminaison à l’aide de la commande [https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-endpoint.html](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-endpoint.html). Dans le corps de commande, spécifiez la configuration du point de terminaison que vous avez créée.

   Lorsque vous créez le point de terminaison, l' SageMaker IA provisionne les ressources du point de terminaison et déploie le modèle sur le point de terminaison.

------

### Configurer
<a name="cli-configure-endpoint"></a>

Les exemples suivants configurent les ressources dont vous avez besoin pour déployer un modèle sur un point de terminaison.

------
#### [ With inference components ]

**Example create-endpoint-config commande**  
L'exemple suivant crée une configuration de point de terminaison avec la [create-endpoint-config](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-endpoint-config.html)commande.  

```
aws sagemaker create-endpoint-config \
--endpoint-config-name endpoint-config-name \
--execution-role-arn arn:aws:iam::111122223333:role/service-role/role-name\
--production-variants file://production-variants.json
```
Dans cet exemple, le fichier `production-variants.json` définit une variante de production avec le code JSON suivant :  

```
[
    {
        "VariantName": "variant-name",
        "ModelName": "model-name",
        "InstanceType": "ml.p4d.24xlarge",
        "InitialInstanceCount": 1
    }
]
```
Si la commande aboutit, elle AWS CLI répond avec l'ARN de la ressource que vous avez créée.  

```
{
    "EndpointConfigArn": "arn:aws:sagemaker:us-west-2:111122223333:endpoint-config/endpoint-config-name"
}
```

------
#### [ Without inference components ]

**Example commande create-model**  
L’exemple suivant crée un modèle à l’aide de la commande [create-model](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-model.html).  

```
aws sagemaker create-model \
--model-name model-name \
--execution-role-arn arn:aws:iam::111122223333:role/service-role/role-name \
--primary-container "{ \"Image\": \"image-uri\", \"ModelDataUrl\": \"model-s3-url\"}"
```
Si la commande aboutit, elle AWS CLI répond avec l'ARN de la ressource que vous avez créée.  

```
{
    "ModelArn": "arn:aws:sagemaker:us-west-2:111122223333:model/model-name"
}
```

**Example create-endpoint-config commande**  
L'exemple suivant crée une configuration de point de terminaison avec la [create-endpoint-config](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-endpoint-config.html)commande.  

```
aws sagemaker create-endpoint-config \
--endpoint-config-name endpoint-config-name \
--production-variants file://production-variants.json
```
Dans cet exemple, le fichier `production-variants.json` définit une variante de production avec le code JSON suivant :  

```
[
    {
        "VariantName": "variant-name",
        "ModelName": "model-name",
        "InstanceType": "ml.p4d.24xlarge",
        "InitialInstanceCount": 1
    }
]
```
Si la commande aboutit, elle AWS CLI répond avec l'ARN de la ressource que vous avez créée.  

```
{
    "EndpointConfigArn": "arn:aws:sagemaker:us-west-2:111122223333:endpoint-config/endpoint-config-name"
}
```

------

### Déploiement
<a name="cli-deploy"></a>

Les exemples suivants déploient un modèle sur un point de terminaison.

------
#### [ With inference components ]

**Example commande create-endpoint**  
L’exemple suivant d’utilisation permet de créer un point de terminaison avec la commande [create-endpoint](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-endpoint.html).  

```
aws sagemaker create-endpoint \
--endpoint-name endpoint-name \
--endpoint-config-name endpoint-config-name
```
Si la commande aboutit, elle AWS CLI répond avec l'ARN de la ressource que vous avez créée.  

```
{
    "EndpointArn": "arn:aws:sagemaker:us-west-2:111122223333:endpoint/endpoint-name"
}
```

**Example create-inference-component commande**  
L'exemple suivant crée un composant d'inférence avec la create-inference-component commande.  

```
aws sagemaker create-inference-component \
--inference-component-name inference-component-name \
--endpoint-name endpoint-name \
--variant-name variant-name \
--specification file://specification.json \
--runtime-config "{\"CopyCount\": 2}"
```
Dans cet exemple, le fichier `specification.json` définit le conteneur et les ressources de calcul avec le JSON suivant :  

```
{
    "Container": {
        "Image": "image-uri",
        "ArtifactUrl": "model-s3-url"
    },
    "ComputeResourceRequirements": {
        "NumberOfCpuCoresRequired": 1,
        "MinMemoryRequiredInMb": 1024
    }
}
```
Si la commande aboutit, elle AWS CLI répond avec l'ARN de la ressource que vous avez créée.  

```
{
    "InferenceComponentArn": "arn:aws:sagemaker:us-west-2:111122223333:inference-component/inference-component-name"
}
```

------
#### [ Without inference components ]

**Example commande create-endpoint**  
L’exemple suivant d’utilisation permet de créer un point de terminaison avec la commande [create-endpoint](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-endpoint.html).  

```
aws sagemaker create-endpoint \
--endpoint-name endpoint-name \
--endpoint-config-name endpoint-config-name
```
Si la commande aboutit, elle AWS CLI répond avec l'ARN de la ressource que vous avez créée.  

```
{
    "EndpointArn": "arn:aws:sagemaker:us-west-2:111122223333:endpoint/endpoint-name"
}
```

------