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 JumpStart utilizando kubectl
Los siguientes pasos muestran cómo implementar un JumpStart modelo en un HyperPod clúster mediante kubectl.
Las siguientes instrucciones contienen celdas de código y comandos diseñados para ejecutarse en una terminal. Asegúrese de haber configurado el entorno con AWS credenciales antes de ejecutar estos comandos.
Requisitos previos
Antes de empezar, compruebe que:
-
Configure capacidades de inferencia en sus SageMaker HyperPod clústeres de Amazon. Para obtener más información, consulte Configuración de los clústeres para la implementación de modelos HyperPod .
Ajustes y configuración
-
Selecciona tu región.
export REGION=<region>
-
Vea todos los modelos y HyperPod clústeres de centros SageMaker públicos.
-
Seleccione uno
JumpstartModel
de JumpstartPublic Hub. JumpstartPublic El hub tiene una gran cantidad de modelos disponibles, por lo que puede utilizarNextToken
para enumerar de forma iterativa todos los modelos disponibles en el hub público.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"
-
Configura el ID del modelo y el nombre del clúster que has seleccionado en las siguientes variables.
nota
Consulta con el administrador del clúster para asegurarte de que se concedan los permisos para este rol o usuario. Puedes correr
!aws sts get-caller-identity --query "Arn"
para comprobar qué rol o usuario estás utilizando en tu 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"
-
Confirma con el administrador del clúster qué espacio de nombres puedes usar. El administrador debería haber creado una cuenta de
hyperpod-inference
servicio en tu espacio de nombres.export CLUSTER_NAMESPACE="default"
-
Establezca un nombre para el punto final y el objeto personalizado que se va a crear.
export SAGEMAKER_ENDPOINT_NAME="deepsek-qwen-1-5b-test"
-
El siguiente es un ejemplo de implementación de un
deepseek-llm-r1-distill-qwen-1-5b
modelo desde Jumpstart. Cree un archivo yaml de implementación similar basado en el modelo seleccionado en el paso anterior.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
Implementar el modelo
Actualiza tu configuración de kubernetes e implementa tu modelo
-
Configure kubectl para conectarse al HyperPod clúster organizado por 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
-
Implemente su modelo. JumpStart
kubectl apply -f jumpstart_model.yaml
Supervise el estado de la implementación de su modelo
-
Compruebe que el modelo se ha implementado correctamente.
kubectl describe JumpStartModel $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE
-
Compruebe que el punto final se haya creado correctamente.
aws sagemaker describe-endpoint --endpoint-name=$SAGEMAKER_ENDPOINT_NAME --output table
-
Invoque el punto final de su modelo. Puede recuperar mediante programación cargas útiles de ejemplo del objeto.
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
Administre su despliegue
Elimine la implementación de su JumpStart modelo cuando ya no la necesite.
kubectl delete JumpStartModel $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE
Solución de problemas
Utilice estos comandos de depuración si su implementación no funciona según lo esperado.
-
Comprueba el estado de la implementación de Kubernetes. Este comando inspecciona el objeto de despliegue de Kubernetes subyacente que administra los pods que ejecutan tu modelo. Utilízalo para solucionar problemas relacionados con la programación de los pods, la asignación de recursos y el inicio de los contenedores.
kubectl describe deployment $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE
-
Compruebe el estado del recurso de su JumpStart modelo. Este comando examina el
JumpStartModel
recurso personalizado que administra la configuración del modelo de alto nivel y el ciclo de vida de la implementación. Úselo para solucionar problemas específicos del modelo, como errores de configuración o problemas de creación de terminales de SageMaker IA.kubectl describe JumpStartModel $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE
-
Comprueba el estado de todos los objetos de Kubernetes. Este comando proporciona una visión general completa de todos los recursos de Kubernetes relacionados en tu espacio de nombres. Úselo para comprobar rápidamente el estado general de los pods, los servicios, las implementaciones y los recursos personalizados asociados a la implementación de su modelo.
kubectl get pods,svc,deployment,JumpStartModel,sagemakerendpointregistration -n $CLUSTER_NAMESPACE