Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Implemente modelos personalizados y ajustados de Amazon S3 y Amazon mediante kubectl FSx
Los siguientes pasos muestran cómo implementar modelos almacenados en Amazon S3 o Amazon en un SageMaker HyperPod clúster de Amazon FSx mediante kubectl.
Las siguientes instrucciones contienen celdas de código y comandos diseñados para ejecutarse en una terminal. Asegúrese de haber configurado su entorno con AWS credenciales antes de ejecutar estos comandos.
Requisitos previos
Antes de comenzar, compruebe que:
-
Configure las capacidades de inferencia en sus SageMaker HyperPod clústeres de Amazon. Para obtener más información, consulte Configuración de los HyperPod clústeres para la implementación de modelos.
-
Ha instalado la utilidad kubectl
y configurado jq en su terminal.
Ajustes y configuración
Reemplace todos los valores marcadores de posición por los identificadores de recursos reales.
-
Seleccione su región en su entorno.
export REGION=<region> -
Inicialice el nombre de su clúster. Esto identifica el HyperPod clúster en el que se implementará el modelo.
nota
Consulte con el administrador del clúster para asegurarse de que se concedan los permisos a ese rol o usuario. Puede ejecutar
!aws sts get-caller-identity --query "Arn"para comprobar qué rol o usuario se está utilizando en la terminal.# 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" -
Inicialice el espacio de nombres de su clúster. El administrador del clúster ya debería haber creado una cuenta de servicio de inferencia de hiperpods en su espacio de nombres.
cluster_namespace="<namespace>" -
Cree una CRD con una de las siguientes opciones:
Configure el almacenamiento en caché KV y el enrutamiento inteligente para mejorar el rendimiento
-
Habilite el almacenamiento en caché de KV configurando
enableL1Cachey enenableL2Cachetrue.A continuación, configúreloredisy actualícelol2CacheLocalUrlconl2CacheSpecla URL del clúster de Redis.kvCacheSpec: enableL1Cache: true enableL2Cache: true l2CacheSpec: l2CacheBackend: <redis | tieredstorage> l2CacheLocalUrl: <redis cluster URL if l2CacheBackend is redis >nota
Si el clúster de Redis no está dentro de la misma Amazon VPC que HyperPod el clúster, no se garantiza el cifrado de los datos en tránsito.
nota
No necesita l2 CacheLocalUrl si se selecciona el almacenamiento por niveles.
-
Active el enrutamiento inteligente
enabledconfigurándolo en under.trueintelligentRoutingSpecPuede especificar la estrategia de enrutamiento que desea utilizarroutingStrategy. Si no se especifica ninguna estrategia de enrutamiento, el valor predeterminado es.prefixawareintelligentRoutingSpec: enabled: true routingStrategy: <routing strategy to use> -
Habilite las métricas del router y las métricas de almacenamiento en caché
enabledconfigurándolas en debajo.truemetricsElportvalor debe ser el mismo que elcontainerPortvalor inferiormodelInvocationPort.metrics: enabled: true modelMetrics: port: <port value> ... modelInvocationPort: containerPort: <port value>
Implemente su modelo desde Amazon S3 o Amazon FSx
-
Obtenga el nombre del clúster de Amazon EKS del ARN del HyperPod clúster para la autenticación de 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 -
Implemente su InferenceEndpointConfig modelo con una de las siguientes opciones:
Verificación del estado de la implementación
-
Compruebe si el modelo se ha implementado correctamente.
kubectl describe InferenceEndpointConfig $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE -
Compruebe que el punto de conexión se haya creado correctamente.
kubectl describe SageMakerEndpointRegistration $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE -
Pruebe el punto de conexión implementado para comprobar que funciona correctamente. Este paso confirma que el modelo se ha implementado correctamente y que puede procesar las solicitudes de inferencia.
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
Administración de la implementación
Cuando termine de probar la implementación, utilice los siguientes comandos para limpiar los recursos.
nota
Verifique que ya no necesita el modelo implementado ni los datos almacenados antes de continuar.
Eliminación de sus recursos
-
Elimine la implementación de la inferencia y los recursos de Kubernetes asociados. Esto detiene los contenedores del modelo en ejecución y elimina el SageMaker punto final.
kubectl delete inferenceendpointconfig $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE -
Compruebe que la limpieza se ha realizado correctamente.
# # 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
Resolución de problemas
Use estos comandos de depuración si la implementación no funciona según lo previsto.
-
Compruebe el estado de la implementación de Kubernetes.
kubectl describe deployment $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE -
Compruebe el InferenceEndpointConfig estado para ver el estado de la implementación de alto nivel y cualquier problema de configuración.
kubectl describe InferenceEndpointConfig $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE -
Compruebe el estado de todos los objetos de Kubernetes. Obtendrá una visión completa de todos los recursos de Kubernetes relacionados en su espacio de nombres. Esto le proporciona una visión general rápida de lo que se está ejecutando y lo que podría faltar.
kubectl get pods,svc,deployment,InferenceEndpointConfig,sagemakerendpointregistration -n $CLUSTER_NAMESPACE