Implantar modelos do JumpStart usando o kubectl
As etapas a seguir mostram como implantar um modelo do JumpStart em um cluster do HyperPod usando o kubectl.
As instruções a seguir contêm células de código e comandos projetados para serem executados em um terminal. Você deve configurar seu ambiente com credenciais da AWS antes de executar esses comandos.
Pré-requisitos
Antes de começar, verifique se você:
-
Configurou recursos de inferência em seus clusters do Amazon SageMaker HyperPod. Para ter mais informações, consulte Configurar clusters do HyperPod para implantação de modelos.
-
Instalou o utilitário kubectl
e configurou o jq em seu terminal.
Definição e configuração
-
Selecione sua região.
export REGION=<region> -
Visualize todos os modelos de hub público do SageMaker e clusters do HyperPod.
-
Selecione um
JumpstartModelno hub público do hub JumpstartPublic. O hub JumpstartPublic tem um grande número de modelos disponíveis para que você possa usarNextTokenpara 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 jsonexport MODEL_ID="deepseek-llm-r1-distill-qwen-1-5b" export MODEL_VERSION="2.0.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 a esse perfil ou usuário. É possível executar
!aws sts get-caller-identity --query "Arn"para verificar qual perfil 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" -
Confirme com o administrador do cluster qual namespace você tem permissão para usar. O administrador deve ter criado uma conta de serviço
hyperpod-inferenceem seu namespace.export CLUSTER_NAMESPACE="default" -
Defina um nome para o endpoint e o objeto personalizado a serem criados.
export SAGEMAKER_ENDPOINT_NAME="deepsek-qwen-1-5b-test" -
Veja a seguir um exemplo de implantação do modelo
deepseek-llm-r1-distill-qwen-1-5bdo 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
Atualizar a configuração do Kubernetes e implantar o modelo
-
Configure o kubectl para se conectar ao cluster do HyperPod 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 -
Implante seu modelo do JumpStart.
kubectl apply -f jumpstart_model.yaml
Monitorar o status da implantação do modelo
-
Verifique se o modelo foi implantado com êxito.
kubectl describe JumpStartModel $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE -
Verifique se o endpoint foi criado com êxito.
aws sagemaker describe-endpoint --endpoint-name=$SAGEMAKER_ENDPOINT_NAME --output table -
Invoque o endpoint do modelo. Você pode recuperar programaticamente exemplos de carga útil 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
Gerenciar a implantação
Exclua a implantação do modelo do JumpStart 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 a implantação não estiver funcionando conforme o esperado.
-
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 -
Verifique o status do recurso do modelo do JumpStart. Esse comando examina o recurso personalizado
JumpStartModelque gerencia a configuração geral do modelo e o ciclo de vida de implantação. Use isso para solucionar problemas específicos do modelo, como erros de configuração ou problemas de criação de endpoints do SageMaker AI.kubectl describe JumpStartModel $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE -
Verifique o status de todos os objetos do Kubernetes. Esse comando oferece uma visão geral abrangente de todos os recursos relacionados do Kubernetes em seu namespace. Use isso para realizar uma rápida verificação de integridade e 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