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 personalizados e ajustados do Amazon S3 e da Amazon usando kubectl FSx
As etapas a seguir mostram como implantar modelos armazenados no Amazon S3 ou na Amazon em um SageMaker HyperPod cluster da Amazon FSx 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ê:
-
Configure recursos de inferência em seus SageMaker HyperPod clusters da Amazon. Para obter mais informações, consulte Configurando seus HyperPod clusters para implantação de modelos.
-
Instalou o utilitário kubectl
e configurou o jq em seu terminal.
Definição e configuração
Substitua todos os valores de espaço reservado por seus identificadores de recursos.
-
Selecione sua região em seu ambiente.
export REGION=<region> -
Inicialize o nome do seu cluster. Isso identifica o HyperPod cluster em que seu modelo será implantado.
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.# Specify your hyperpod cluster name here HYPERPOD_CLUSTER_NAME="<Hyperpod_cluster_name>" # NOTE: For sample deployment, we use g5.8xlarge for deepseek-r1 1.5b model which has sufficient memory and GPU instance_type="ml.g5.8xlarge" -
Inicialize o namespace do seu cluster. O administrador do cluster já deve ter criado uma conta de serviço hyperpod-inference em seu namespace.
cluster_namespace="<namespace>" -
Crie uma CRD usando uma das seguintes opções:
Configure o cache KV e o roteamento inteligente para melhorar o desempenho
-
Ative o armazenamento em cache KV definindo
enableL1CacheeenableL2Cachecomotrue.Em seguida,l2CacheSpecdefinaredise atualizel2CacheLocalUrlcom a URL do cluster Redis.kvCacheSpec: enableL1Cache: true enableL2Cache: true l2CacheSpec: l2CacheBackend: <redis | tieredstorage> l2CacheLocalUrl: <redis cluster URL if l2CacheBackend is redis >nota
Se o cluster redis não estiver na mesma Amazon VPC que HyperPod o cluster, a criptografia dos dados em trânsito não é garantida.
nota
Não é necessário l2 CacheLocalUrl se o armazenamento em camadas estiver selecionado.
-
Ative o roteamento inteligente configurando como
enabledtrueabaixointelligentRoutingSpec. Você pode especificar emroutingStrategyqual estratégia de roteamento usar. Se nenhuma estratégia de roteamento for especificada, o padrão será.prefixawareintelligentRoutingSpec: enabled: true routingStrategy: <routing strategy to use> -
Ative as métricas do roteador e as métricas de armazenamento em cache definindo
enabledcomotrueabaixometrics. Oportvalor precisa ser igual aocontainerPortvalor abaixomodelInvocationPort.metrics: enabled: true modelMetrics: port: <port value> ... modelInvocationPort: containerPort: <port value>
Implante seu modelo do Amazon S3 ou da Amazon FSx
-
Obtenha o nome do cluster Amazon EKS do ARN do HyperPod cluster para autenticação kubectl.
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 InferenceEndpointConfig modelo com uma das seguintes opções:
Verificar o status da implantação
-
Verifique se o modelo foi implantado com êxito.
kubectl describe InferenceEndpointConfig $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE -
Verifique se o endpoint foi criado com êxito.
kubectl describe SageMakerEndpointRegistration $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE -
Teste o endpoint implantado para verificar se ele está funcionando corretamente. Essa etapa confirma que seu modelo foi implantado com êxito e pode processar solicitações de inferência.
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
Quando você concluir o teste de implantação, use os comandos a seguir para limpar seus recursos.
nota
Antes de continuar, verifique se você não precisa mais do modelo implantado ou dos dados armazenados.
Limpe os seus recursos
-
Exclua a implantação de inferência e os recursos associados do Kubernetes. Isso interrompe a execução dos contêineres do modelo e remove o SageMaker endpoint.
kubectl delete inferenceendpointconfig $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE -
Verifique se a limpeza foi feita com êxito.
# # Check that Kubernetes resources are removed kubectl get pods,svc,deployment,InferenceEndpointConfig,sagemakerendpointregistration -n $CLUSTER_NAMESPACE# Verify SageMaker endpoint is deleted (should return error or empty) aws sagemaker describe-endpoint --endpoint-name $SAGEMAKER_ENDPOINT_NAME --region $REGION
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.
kubectl describe deployment $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE -
Verifique o InferenceEndpointConfig status para ver o estado de implantação de alto nível e quaisquer problemas de configuração.
kubectl describe InferenceEndpointConfig $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE -
Verifique o status de todos os objetos do Kubernetes. Obtenha uma visão abrangente de todos os recursos relacionados do Kubernetes em seu namespace. Isso oferece uma visão geral rápida do que está em execução e do que pode estar faltando.
kubectl get pods,svc,deployment,InferenceEndpointConfig,sagemakerendpointregistration -n $CLUSTER_NAMESPACE