

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éployez des modèles à l' JumpStart aide de kubectl
<a name="sagemaker-hyperpod-model-deployment-deploy-js-kubectl"></a>

Les étapes suivantes vous montrent comment déployer un JumpStart modèle sur un HyperPod cluster à l'aide de kubectl.

Les instructions suivantes contiennent des cellules de code et des commandes conçues pour être exécutées dans un terminal. Assurez-vous d'avoir configuré votre environnement avec des AWS informations d'identification avant d'exécuter ces commandes. 

## Conditions préalables
<a name="kubectl-prerequisites"></a>

Avant de commencer, vérifiez les points suivants : 
+ Configurez des fonctionnalités d'inférence sur vos SageMaker HyperPod clusters Amazon. Pour de plus amples informations, veuillez consulter [Configuration de vos HyperPod clusters pour le déploiement de modèles](sagemaker-hyperpod-model-deployment-setup.md).
+ Vous avez installé l’utilitaire [kubectl](https://kubernetes.io/docs/reference/kubectl/) et configuré [jq](https://jqlang.org/) dans votre terminal.

## Installation et configuration
<a name="kubectl-prerequisites-setup-and-configuration"></a>

1. Sélectionnez votre région.

   ```
   export REGION=<region>
   ```

1. Consultez tous les modèles et HyperPod clusters de hubs SageMaker publics.

1. Sélectionnez-en un `JumpstartModel` dans le JumpstartPublic Hub. JumpstartPublic hub dispose d'un grand nombre de modèles disponibles, vous pouvez donc les utiliser `NextToken` pour répertorier de manière itérative tous les modèles disponibles dans le hub public.

   ```
   aws sagemaker list-hub-contents --hub-name SageMakerPublicHub --hub-content-type Model --query '{Models: HubContentSummaries[].{ModelId:HubContentName,Version:HubContentVersion}, NextToken: NextToken}' --output json
   ```

   ```
   export MODEL_ID="deepseek-llm-r1-distill-qwen-1-5b"
   export MODEL_VERSION="2.0.4"
   ```

1. Configurez l’ID du modèle et le nom du cluster que vous avez sélectionnés dans les variables ci-dessous.
**Note**  
Vérifiez auprès de l’administrateur de votre cluster que les autorisations sont accordées pour ce rôle ou cet utilisateur. Vous pouvez exécuter `!aws sts get-caller-identity --query "Arn"` pour vérifier le rôle ou l’utilisateur que vous utilisez sur votre terminal.

   ```
   aws sagemaker list-clusters --output table
   
   # Select the cluster name where you want to deploy the model.
   export HYPERPOD_CLUSTER_NAME="<insert cluster name here>"
   
   # Select the instance that is relevant for your model deployment and exists within the selected cluster.
   # List availble instances in your HyperPod cluster
   aws sagemaker describe-cluster --cluster-name=$HYPERPOD_CLUSTER_NAME --query "InstanceGroups[].{InstanceType:InstanceType,Count:CurrentCount}" --output table
   
   # List supported instance types for the selected model
   aws sagemaker describe-hub-content --hub-name SageMakerPublicHub --hub-content-type Model --hub-content-name "$MODEL_ID" --output json | jq -r '.HubContentDocument | fromjson | {Default: .DefaultInferenceInstanceType, Supported: .SupportedInferenceInstanceTypes}'
   
   
   # Select and instance type from the cluster that is compatible with the model. 
   # Make sure that the selected instance is either default or supported instance type for the jumpstart model 
   export INSTANCE_TYPE="<Instance_type_In_cluster"
   ```

1. Vérifiez auprès de l’administrateur du cluster quel espace de noms vous êtes autorisé à utiliser. L’administrateur doit avoir créé un compte de service `hyperpod-inference` dans votre espace de noms.

   ```
   export CLUSTER_NAMESPACE="default"
   ```

1. Définissez un nom pour le point de terminaison et l’objet personnalisé à créer.

   ```
   export SAGEMAKER_ENDPOINT_NAME="deepsek-qwen-1-5b-test"
   ```

1. Voici un exemple de déploiement de modèle `deepseek-llm-r1-distill-qwen-1-5b` à partir de Jumpstart. Créez un fichier yaml de déploiement similaire basé sur le modèle sélectionné à l’étape ci-dessus.
**Note**  
Si votre cluster utilise le partitionnement GPU avec MIG, vous pouvez demander des profils MIG spécifiques en ajoutant le `acceleratorPartitionType` champ à la spécification du serveur. Pour de plus amples informations, veuillez consulter [Soumission de tâches avec MIG](sagemaker-hyperpod-eks-gpu-partitioning-task-submission.md).

   ```
   cat << EOF > jumpstart_model.yaml
   ---
   apiVersion: inference.sagemaker.aws.amazon.com/v1
   kind: JumpStartModel
   metadata:
     name: $SAGEMAKER_ENDPOINT_NAME
     namespace: $CLUSTER_NAMESPACE 
   spec:
     sageMakerEndpoint:
       name: $SAGEMAKER_ENDPOINT_NAME
     model:
       modelHubName: SageMakerPublicHub
       modelId: $MODEL_ID
       modelVersion: $MODEL_VERSION
     server:
       instanceType: $INSTANCE_TYPE
       # Optional: Specify GPU partition profile for MIG-enabled instances
       # acceleratorPartitionType: "1g.10gb"
     metrics:
       enabled: true
     environmentVariables:
       - name: SAMPLE_ENV_VAR
         value: "sample_value"
     maxDeployTimeInSeconds: 1800
     autoScalingSpec:
       cloudWatchTrigger:
         name: "SageMaker-Invocations"
         namespace: "AWS/SageMaker"
         useCachedMetrics: false
         metricName: "Invocations"
         targetValue: 10
         minValue: 0.0
         metricCollectionPeriod: 30
         metricStat: "Sum"
         metricType: "Average"
         dimensions:
           - name: "EndpointName"
             value: "$SAGEMAKER_ENDPOINT_NAME"
           - name: "VariantName"
             value: "AllTraffic"
   EOF
   ```

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

**Mise à jour de votre configuration Kubernetes et déploiement de votre modèle**

1. Configurez kubectl pour vous connecter au HyperPod cluster orchestré par Amazon EKS.

   ```
   export EKS_CLUSTER_NAME=$(aws --region $REGION sagemaker describe-cluster --cluster-name $HYPERPOD_CLUSTER_NAME \
     --query 'Orchestrator.Eks.ClusterArn' --output text | \
     cut -d'/' -f2)
   aws eks update-kubeconfig --name $EKS_CLUSTER_NAME --region $REGION
   ```

1. Déployez votre JumpStart modèle.

   ```
   kubectl apply -f jumpstart_model.yaml
   ```

**Surveillance du statut du déploiement de votre modèle**

1. Vérifiez que le modèle a été déployé avec succès.

   ```
   kubectl describe JumpStartModel $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE
   ```

1. Vérifiez que le point de terminaison est correctement créé.

   ```
   aws sagemaker describe-endpoint --endpoint-name=$SAGEMAKER_ENDPOINT_NAME --output table
   ```

1. Invoquez le point de terminaison de votre modèle. Vous pouvez extraire par programmation des exemples de données utiles à partir de l’objet `JumpStartModel`.

   ```
   aws sagemaker-runtime invoke-endpoint \
     --endpoint-name $SAGEMAKER_ENDPOINT_NAME \
     --content-type "application/json" \
     --body '{"inputs": "What is AWS SageMaker?"}' \
     --region $REGION \
     --cli-binary-format raw-in-base64-out \
     /dev/stdout
   ```

## Gestion de votre déploiement
<a name="kubectl-manage-your-deployment"></a>

Supprimez le déploiement de votre JumpStart modèle une fois que vous n'en avez plus besoin.

```
kubectl delete JumpStartModel $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE
```

**Résolution des problèmes**

Utilisez ces commandes de débogage si votre déploiement ne fonctionne pas comme prévu.

1. Vérifiez le statut du déploiement Kubernetes. Cette commande inspecte l’objet de déploiement Kubernetes sous-jacent qui gère les pods exécutant votre modèle. Utilisez-le pour résoudre les problèmes de planification des pods, d’allocation des ressources et de démarrage des conteneurs.

   ```
   kubectl describe deployment $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE
   ```

1. Vérifiez l'état de votre ressource JumpStart modèle. Cette commande examine la ressource `JumpStartModel` personnalisée qui gère la configuration de haut niveau du modèle et le cycle de vie de déploiement. Utilisez-le pour résoudre les problèmes spécifiques au modèle, tels que les erreurs de configuration ou les problèmes de création de points de terminaison par SageMaker l'IA.

   ```
   kubectl describe JumpStartModel $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE
   ```

1. Vérifiez le statut de tous les objets Kubernetes. Cette commande fournit une vue d’ensemble complète de toutes les ressources Kubernetes associées dans votre espace de noms. Utilisez-la pour une surveillance rapide de l’état général des pods, des services, des déploiements et des ressources personnalisées associés au déploiement de votre modèle.

   ```
   kubectl get pods,svc,deployment,JumpStartModel,sagemakerendpointregistration -n $CLUSTER_NAMESPACE
   ```