Implante modelos JumpStart usando kubectl - SageMaker Inteligência Artificial da Amazon

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Implante modelos JumpStart usando kubectl

As etapas a seguir mostram como implantar um JumpStart modelo em um HyperPod cluster usando kubectl.

As instruções a seguir contêm células de código e comandos projetados para serem executados em um terminal. Certifique-se de ter configurado seu ambiente com AWS credenciais antes de executar esses comandos.

Pré-requisitos

Antes de começar, verifique se você:

Definição e configuração

  1. Selecione sua região.

    export REGION=<region>
  2. Veja todos os modelos e HyperPod clusters de hubs SageMaker públicos.

  3. Selecione um JumpstartModel do JumpstartPublic Hub. JumpstartPublic O hub tem um grande número de modelos disponíveis NextToken para que você possa listar iterativamente todos os modelos disponíveis no 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 o ID do modelo e o nome do cluster que você selecionou nas variáveis abaixo.

    nota

    Consulte o administrador do cluster para garantir que as permissões sejam concedidas para essa função ou usuário. Você pode executar !aws sts get-caller-identity --query "Arn" para verificar qual função ou usuário você está usando no seu 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 com o administrador do cluster qual namespace você tem permissão para usar. O administrador deve ter criado uma conta hyperpod-inference de serviço em seu namespace.

    export CLUSTER_NAMESPACE="default"
  6. Defina um nome para o endpoint e o objeto personalizado a serem criados.

    export SAGEMAKER_ENDPOINT_NAME="deepsek-qwen-1-5b-test"
  7. Veja a seguir um exemplo de implantação de um deepseek-llm-r1-distill-qwen-1-5b modelo do Jumpstart. Crie um arquivo yaml de implantação semelhante com base no modelo selecionado na etapa acima.

    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

Implantar o modelo

Atualize sua configuração de kubernetes e implante seu modelo
  1. Configure o kubectl para se conectar ao HyperPod cluster orquestrado pelo 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. Implante seu JumpStart modelo.

    kubectl apply -f jumpstart_model.yaml
Monitore o status da implantação do seu modelo
  1. Verifique se o modelo foi implantado com sucesso.

    kubectl describe JumpStartModel $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE
  2. Verifique se o endpoint foi criado com sucesso.

    aws sagemaker describe-endpoint --endpoint-name=$SAGEMAKER_ENDPOINT_NAME --output table
  3. Invoque o endpoint do seu modelo. Você pode recuperar programaticamente exemplos de cargas do 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

Gerencie sua implantação

Exclua a implantação do JumpStart modelo quando não precisar mais dela.

kubectl delete JumpStartModel $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE
Solução de problemas

Use esses comandos de depuração se sua implantação não estiver funcionando conforme o esperado.

  1. Verifique o status da implantação do Kubernetes. Esse comando inspeciona o objeto de implantação subjacente do Kubernetes que gerencia os pods que executam seu modelo. Use isso para solucionar problemas de agendamento de pods, alocação de recursos e inicialização de contêineres.

    kubectl describe deployment $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE
  2. Verifique o status do recurso do seu JumpStart modelo. Esse comando examina o JumpStartModel recurso personalizado que gerencia a configuração do modelo de alto nível e o ciclo de vida da implantação. Use isso para solucionar problemas específicos do modelo, como erros de configuração ou problemas de criação de endpoints de SageMaker IA.

    kubectl describe JumpStartModel $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE
  3. Verifique o status de todos os objetos do Kubernetes. Esse comando fornece uma visão geral abrangente de todos os recursos relacionados do Kubernetes em seu namespace. Use isso para uma rápida verificação de integridade para ver o estado geral dos pods, serviços, implantações e recursos personalizados associados à implantação do seu modelo.

    kubectl get pods,svc,deployment,JumpStartModel,sagemakerendpointregistration -n $CLUSTER_NAMESPACE