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 su entorno con AWS credenciales antes de ejecutar estos comandos.

Requisitos previos

Antes de comenzar, compruebe que:

Ajustes y configuración

  1. Elija su 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. Configure el ID del modelo y el nombre del clúster que ha seleccionado en las siguientes variables.

    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.

    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. Confirme con el administrador del clúster qué espacio de nombres se pueden usar. El administrador debería haber creado una cuenta de servicio hyperpod-inference en su espacio de nombres.

    export CLUSTER_NAMESPACE="default"
  6. Establezca un nombre para el punto de conexión y el objeto personalizado que se va a crear.

    export SAGEMAKER_ENDPOINT_NAME="deepsek-qwen-1-5b-test"
  7. A continuación, se muestra un ejemplo de implementación de un modelo deepseek-llm-r1-distill-qwen-1-5b desde Jumpstart. Cree un archivo yaml de implementación similar basado en el modelo seleccionado en el paso anterior.

    nota

    Si su clúster utiliza particiones de GPU con MIG, puede solicitar perfiles MIG específicos añadiendo el acceleratorPartitionType campo a la especificación del servidor. Para obtener más información, consulte Envío de tareas 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

Implementación del modelo

Actualización de la configuración de Kubernetes e implementación del 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
Supervisión del estado de la implementación del modelo
  1. Compruebe que el modelo se haya implementado correctamente.

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

    aws sagemaker describe-endpoint --endpoint-name=$SAGEMAKER_ENDPOINT_NAME --output table
  3. Invoque el punto de conexión de su modelo. Puede obtener las cargas útiles de ejemplo del objeto JumpStartModel mediante programación.

    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

Elimine la implementación de su JumpStart modelo cuando ya no la necesite.

kubectl delete JumpStartModel $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE
Resolución de problemas

Use estos comandos de depuración si la implementación no funciona según lo previsto.

  1. Compruebe el estado de la implementación de Kubernetes. Este comando inspecciona el objeto de implementación de Kubernetes subyacente que administra los pods que ejecutan su modelo. Utilícelo para solucionar problemas relacionados con la programación de los pods, la asignación de recursos y el arranque 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 recurso JumpStartModel personalizado que administra la configuración del modelo general 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. Compruebe el estado de todos los objetos de Kubernetes. Este comando proporciona una visión general completa de todos los recursos de Kubernetes relacionados en su espacio de nombres. Utilícelo 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