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 personalizzati e ottimizzati da Amazon S3 e Amazon utilizzando kubectl FSx
I passaggi seguenti mostrano come distribuire modelli archiviati su Amazon S3 o Amazon su un cluster FSx SageMaker HyperPod Amazon utilizzando kubectl.
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
Sostituisci tutti i valori segnaposto con gli tuoi identificatori delle risorse effettivi.
-
Seleziona la tua Regione nell’ambiente.
export REGION=<region> -
Inizializza il nome del cluster. Questo identifica il HyperPod cluster in cui verrà distribuito il tuo modello.
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.# Specify your hyperpod cluster name here HYPERPOD_CLUSTER_NAME="<Hyperpod_cluster_name>" # NOTE: For sample deployment, we use g5.8xlarge for deepseek-r1 1.5b model which has sufficient memory and GPU instance_type="ml.g5.8xlarge" -
Inizializza il namespace del cluster. L’amministratore del cluster dovrebbe aver già creato un account di servizio hyperpod-inference nel tuo namespace.
cluster_namespace="<namespace>" -
Crea una CRD utilizzando una delle seguenti opzioni:
Configura la memorizzazione nella cache KV e il routing intelligente per migliorare le prestazioni
-
Abilita la memorizzazione nella cache KV impostando
enableL1CacheeenableL2Cachesutrue.Quindi, impostaredise aggiornal2CacheLocalUrlcon l'URL dell2CacheSpeccluster Redis.kvCacheSpec: enableL1Cache: true enableL2Cache: true l2CacheSpec: l2CacheBackend: <redis | tieredstorage> l2CacheLocalUrl: <redis cluster URL if l2CacheBackend is redis >Nota
Se il cluster redis non si trova all'interno dello stesso Amazon VPC HyperPod del cluster, la crittografia dei dati in transito non è garantita.
Nota
Non è necessario l2 CacheLocalUrl se è selezionato lo storage su più livelli.
-
Abilita il routing intelligente impostando su under.
enabledtrueintelligentRoutingSpecÈ possibile specificare la strategia di routing da utilizzare.routingStrategySe non viene specificata alcuna strategia di routing, l'impostazione predefinita è.prefixawareintelligentRoutingSpec: enabled: true routingStrategy: <routing strategy to use> -
Abilita le metriche del router e le metriche di memorizzazione nella cache impostando su under.
enabledtruemetricsIlportvalore deve essere uguale al valore inferiore.containerPortmodelInvocationPortmetrics: enabled: true modelMetrics: port: <port value> ... modelInvocationPort: containerPort: <port value>
Implementa il tuo modello da Amazon S3 o Amazon FSx
-
Ottieni il nome del cluster Amazon EKS dall'ARN del HyperPod cluster per l'autenticazione kubectl.
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 -
Implementa il tuo InferenceEndpointConfig modello con una delle seguenti opzioni:
Verifica dello stato dell’implementazione
-
Verifica se il modello è stato implementato correttamente.
kubectl describe InferenceEndpointConfig $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE -
Verifica che l’endpoint sia stato creato correttamente.
kubectl describe SageMakerEndpointRegistration $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE -
Testa l’endpoint implementato per verificare che funzioni correttamente. Questa fase conferma che il modello è stato implementato correttamente e può elaborare le richieste di inferenza.
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
Al termine dei test sull’implementazione, utilizza i comandi seguenti per pulire le risorse.
Nota
Verifica di non aver più bisogno del modello implementato o dei dati archiviati prima di procedere.
Pulizia delle risorse
-
Elimina l’implementazione dell’inferenza e le risorse Kubernetes associate. Ciò interrompe l'esecuzione dei contenitori del modello e rimuove l' SageMakerendpoint.
kubectl delete inferenceendpointconfig $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE -
Verifica che la pulizia sia stata eseguita correttamente.
# # Check that Kubernetes resources are removed kubectl get pods,svc,deployment,InferenceEndpointConfig,sagemakerendpointregistration -n $CLUSTER_NAMESPACE# Verify SageMaker endpoint is deleted (should return error or empty) aws sagemaker describe-endpoint --endpoint-name $SAGEMAKER_ENDPOINT_NAME --region $REGION
risoluzione dei problemi
Utilizza questi comandi di debug se l’implementazione non funziona come previsto.
-
Controlla lo stato dell’implementazione di Kubernetes.
kubectl describe deployment $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE -
Controlla lo InferenceEndpointConfig stato per vedere lo stato di implementazione di alto livello e gli eventuali problemi di configurazione.
kubectl describe InferenceEndpointConfig $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE -
Controlla lo stato di tutti gli oggetti Kubernetes. Ottieni una visione completa di tutte le risorse Kubernetes correlate nel tuo namespace. Questa funzionalità ti offre una panoramica rapida su tutto ciò che è in esecuzione e sugli eventuali elementi mancanti.
kubectl get pods,svc,deployment,InferenceEndpointConfig,sagemakerendpointregistration -n $CLUSTER_NAMESPACE