Implemente modelos JumpStart utilizando kubectl - Amazon SageMaker AI

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:

Ajustes y configuración

  1. Selecciona tu región.

    export REGION=<region>
  2. Vea todos los modelos y HyperPod clústeres de centros SageMaker públicos.

  3. Seleccione uno JumpstartModel de JumpstartPublic Hub. JumpstartPublic El hub tiene una gran cantidad de modelos disponibles, por lo que puede utilizar NextToken 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"
  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"
  5. 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"
  6. 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"
  7. 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
  1. 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
  2. Implemente su modelo. JumpStart

    kubectl apply -f jumpstart_model.yaml
Supervise el estado de la implementación de su modelo
  1. Compruebe que el modelo se ha implementado correctamente.

    kubectl describe JumpStartModel $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE
  2. Compruebe que el punto final se haya creado correctamente.

    aws sagemaker describe-endpoint --endpoint-name=$SAGEMAKER_ENDPOINT_NAME --output table
  3. 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.

  1. 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
  2. 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
  3. 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