Déployez des modèles à l' JumpStart aide de kubectl - Amazon SageMaker AI

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

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.

Prérequis

Avant de commencer, vérifiez que vous avez :

Installation et configuration

  1. Sélectionnez votre région.

    export REGION=<region>
  2. Consultez tous les modèles et HyperPod clusters de hubs SageMaker publics.

  3. 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"
  4. 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"
  5. Vérifiez auprès de l'administrateur du cluster quel espace de noms vous êtes autorisé à utiliser. L'administrateur doit avoir créé un compte hyperpod-inference de service dans votre espace de noms.

    export CLUSTER_NAMESPACE="default"
  6. Définissez un nom pour le point de terminaison et l'objet personnalisé à créer.

    export SAGEMAKER_ENDPOINT_NAME="deepsek-qwen-1-5b-test"
  7. Voici un exemple de déploiement de deepseek-llm-r1-distill-qwen-1-5b modèle à partir de Jumpstart. Créez un fichier yaml de déploiement similaire basé sur le modèle sélectionné à l'étape ci-dessus.

    cat << EOF > jumpstart_model.yaml --- apiVersion: inference.sagemaker.aws.amazon.com/v1alpha1 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 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

Mettez à jour votre configuration Kubernetes et déployez 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
  2. Déployez votre JumpStart modèle.

    kubectl apply -f jumpstart_model.yaml
Surveillez l'état du déploiement de votre modèle
  1. Vérifiez que le modèle est correctement déployé.

    kubectl describe JumpStartModel $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE
  2. Vérifiez que le point de terminaison est correctement créé.

    aws sagemaker describe-endpoint --endpoint-name=$SAGEMAKER_ENDPOINT_NAME --output table
  3. Appelez le point de terminaison de votre modèle. Vous pouvez récupérer par programmation des exemples de charges 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

Gérez votre déploiement

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 l'état du déploiement de 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
  2. Vérifiez l'état de votre ressource JumpStart modèle. Cette commande examine la JumpStartModel ressource 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
  3. Vérifiez l'état 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-le pour un contrôle 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