Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Distribuisci modelli utilizzando JumpStart kubectl
I passaggi seguenti mostrano come distribuire un JumpStart modello in un cluster usando kubectl. HyperPod
Le istruzioni seguenti contengono celle di codice e comandi progettati per essere eseguiti in un terminale. Assicurati di aver configurato il tuo ambiente con le AWS credenziali prima di eseguire questi comandi.
Prerequisiti
Prima di iniziare, verifica di aver:
-
Configura funzionalità di inferenza sui tuoi SageMaker HyperPod cluster Amazon. Per ulteriori informazioni, consulta Configurazione dei HyperPod cluster per l'implementazione dei modelli.
-
Installato l’utilità kubectl
e configurato jq nel terminale.
Installazione e configurazione
-
Scegli la tua Regione.
export REGION=<region> -
Visualizza tutti i modelli e HyperPod i cluster di hub SageMaker pubblici.
-
Seleziona un
JumpstartModelda JumpstartPublic Hub. JumpstartPublic hub dispone di un gran numero di modelli, che puoi utilizzareNextTokenper elencare in modo iterativo tutti i modelli disponibili nell'hub pubblico.aws sagemaker list-hub-contents --hub-name SageMakerPublicHub --hub-content-type Model --query '{Models: HubContentSummaries[].{ModelId:HubContentName,Version:HubContentVersion}, NextToken: NextToken}' --output jsonexport MODEL_ID="deepseek-llm-r1-distill-qwen-1-5b" export MODEL_VERSION="2.0.4" -
Configura l’ID del modello e il nome del cluster che hai selezionato nelle variabili seguenti.
Nota
Rivolgiti all’amministratore del cluster per assicurarti di ottenere le autorizzazioni per questo ruolo o utente. Puoi eseguire
!aws sts get-caller-identity --query "Arn"per verificare quale ruolo o utente stai utilizzando nel terminale.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" -
Rivolgiti all’amministratore del cluster per sapere quale namespace utilizzare. L’amministratore dovrebbe aver creato un account di servizio
hyperpod-inferencenel tuo namespace.export CLUSTER_NAMESPACE="default" -
Imposta un nome per l’endpoint e l’oggetto personalizzato da creare.
export SAGEMAKER_ENDPOINT_NAME="deepsek-qwen-1-5b-test" -
Di seguito è riportato un esempio di implementazione del modello
deepseek-llm-r1-distill-qwen-1-5bda JumpStart. Crea un file yaml di implementazione simile, basato sul modello selezionato nella fase precedente.Nota
Se il cluster utilizza il partizionamento GPU con MIG, è possibile richiedere profili MIG specifici aggiungendo il campo alle specifiche del
acceleratorPartitionTypeserver. Per ulteriori informazioni, consulta Invio di attività con MIG.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
Distribuzione del modello
Aggiornamento della configurazione Kubernetes e implementazione del modello
-
Configura kubectl per la connessione al HyperPod cluster orchestrato da 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 -
JumpStart Implementa il tuo modello.
kubectl apply -f jumpstart_model.yaml
Monitoraggio dello stato di implementazione del modello
-
Verifica che il modello sia stato implementato correttamente.
kubectl describe JumpStartModel $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE -
Verifica che l’endpoint sia stato creato correttamente.
aws sagemaker describe-endpoint --endpoint-name=$SAGEMAKER_ENDPOINT_NAME --output table -
Invoca l’endpoint del modello. Puoi recuperare in modo programmatico i payload di esempio dall’oggetto
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
Gestione dell’implementazione
Elimina la distribuzione JumpStart del modello una volta che non è più necessaria.
kubectl delete JumpStartModel $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE
risoluzione dei problemi
Utilizza questi comandi di debug se l’implementazione non funziona come previsto.
-
Controlla lo stato dell’implementazione Kubernetes. Questo comando ispeziona l’oggetto di implementazione Kubernetes sottostante che gestisce i pod che eseguono il modello. Usalo per risolvere i problemi di pianificazione dei pod, allocazione delle risorse e avvio dei container.
kubectl describe deployment $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE -
Controlla lo stato della risorsa del JumpStart modello. Questo comando esamina la risorsa
JumpStartModelpersonalizzata che gestisce la configurazione generale del modello e il ciclo di vita dell’implementazione. Usalo per risolvere problemi specifici del modello come errori di configurazione o problemi di creazione di endpoint SageMaker AI.kubectl describe JumpStartModel $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE -
Controlla lo stato di tutti gli oggetti Kubernetes. Questo comando fornisce una panoramica completa di tutte le risorse correlate a Kubernetes nel tuo namespace. Usalo per un rapido controllo dell’integrità per conoscere lo stato generale dei pod, dei servizi, delle implementazioni e delle risorse personalizzate associati all’implementazione del modello.
kubectl get pods,svc,deployment,JumpStartModel,sagemakerendpointregistration -n $CLUSTER_NAMESPACE