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á.
Use Amazon SageMaker Jobs
Esta seção é baseada na versão original de SageMaker Operators for Kubernetes
Importante
Estamos interrompendo o desenvolvimento e o suporte técnico da versão original do SageMaker Operators for Kubernetes
Se você estiver usando a versão v1.2.2
ou inferior do SageMaker Operators for Kubernetes
Para obter informações sobre as etapas de migração, consulte Migre recursos para os operadores mais recentes.
Para obter respostas às perguntas frequentes sobre o fim do suporte da versão original do SageMaker Operators for Kubernetes, consulte Anunciando o fim do suporte da versão original do SageMaker Operators for Kubernetes
Para executar um SageMaker trabalho da Amazon usando os Operadores para Kubernetes, você pode aplicar um YAML arquivo ou usar os Helm Charts fornecidos.
Todos os trabalhos de operador de amostra nos tutoriais a seguir usam dados de amostra retirados de um conjunto de dados públicoMNIST. Para executar essas amostras, baixe o conjunto de dados em seu bucket do Amazon S3. Você pode encontrar o conjunto de dados em Baixar o MNIST conjunto de dados.
Conteúdo
O TrainingJob operador
Os operadores de tarefas de treinamento conciliam sua especificação de trabalho de treinamento especificada com a SageMaker lançando-a para você em. SageMaker Você pode aprender mais sobre trabalhos de SageMaker treinamento na SageMaker CreateTrainingJob APIdocumentação.
Tópicos
Criar um TrainingJob usando um YAML arquivo
-
Faça o download do YAML arquivo de amostra para treinamento usando o seguinte comando:
wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/xgboost-mnist-trainingjob.yaml
-
Edite o
xgboost-mnist-trainingjob.yaml
arquivo para substituir oroleArn
parâmetro pelo seu<sagemaker-execution-role>
eoutputPath
pelo seu bucket do Amazon S3 ao qual a função de SageMaker execução tem acesso de gravação. ElesroleArn
devem ter permissões para que SageMaker possam acessar o Amazon S3 CloudWatch, o Amazon e outros serviços em seu nome. Para obter mais informações sobre como criar um SageMaker ExecutionRole, consulte SageMaker Funções. Aplique o YAML arquivo usando o seguinte comando:kubectl apply -f xgboost-mnist-trainingjob.yaml
Crie um TrainingJob usando um gráfico de leme
Você pode usar o Helm Charts para executar TrainingJobs.
-
Clone o GitHub repositório para obter a fonte usando o seguinte comando:
git clone https://github.com/aws/amazon-sagemaker-operator-for-k8s.git
-
Navegue até a pasta
amazon-sagemaker-operator-for-k8s/hack/charts/training-jobs/
e edite o arquivovalues.yaml
para substituir valores comorolearn
eoutputpath
por valores que correspondam à sua conta. A função ARN deve ter permissões para que SageMaker possa acessar o Amazon S3 CloudWatch, a Amazon e outros serviços em seu nome. Para obter mais informações sobre como criar um SageMaker ExecutionRole, consulte SageMaker Funções.
Crie o TrainingJob
Com os perfis e os buckets do Amazon S3 substituídos pelos valores apropriados no values.yaml
, você pode criar um trabalho de treinamento usando o seguinte comando:
helm install . --generate-name
A saída será semelhante a:
NAME: chart-12345678 LAST DEPLOYED: Wed Nov 20 23:35:49 2019 NAMESPACE: default STATUS: deployed REVISION: 1 TEST SUITE: None NOTES: Thanks for installing the sagemaker-k8s-trainingjob.
Verifique seu gráfico de treinamento do Helm
Para verificar se o gráfico do Helm foi criado com êxito, execute:
helm ls
A saída será semelhante a:
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION chart-12345678 default 1 2019-11-20 23:35:49.9136092 +0000 UTC deployed sagemaker-k8s-trainingjob-0.1.0 rolebased-12345678 default 1 2019-11-20 23:14:59.6777082 +0000 UTC deployed sagemaker-k8s-operator-0.1.0
O helm install
cria um recurso do TrainingJob
do Kubernetes. O operador inicia o trabalho de treinamento real SageMaker e atualiza o recurso TrainingJob
Kubernetes para refletir o status do trabalho em. SageMaker Você incorre em cobranças pelos SageMaker recursos usados durante a duração do seu trabalho. Você não incorre em nenhuma cobrança quando seu trabalho for concluído ou interrompido.
Observação: SageMaker não permite que você atualize um trabalho de treinamento em execução. Você não pode editar nenhum parâmetro e reaplicar o arquivo de configuração. Altere o nome dos metadados ou exclua o trabalho existente e crie um novo. Semelhante aos operadores de trabalho de treinamento existentes, como TFJob no Kubeflow, não update
é suportado.
Lista TrainingJobs
Use o comando a seguir para listar todos os trabalhos criados usando o operador do Kubernetes:
kubectl get TrainingJob
A saída que lista todos os trabalhos deve ser a seguinte:
kubectl get trainingjobs NAME STATUS SECONDARY-STATUS CREATION-TIME SAGEMAKER-JOB-NAME xgboost-mnist-from-for-s3 InProgress Starting 2019-11-20T23:42:35Z xgboost-mnist-from-for-s3-examplef11eab94e0ed4671d5a8f
Um trabalho de treinamento continua sendo listado após a conclusão ou falha do trabalho. Você pode remover um trabalho TrainingJob
da lista seguindo as etapas Excluir TrainingJobs. Os trabalhos concluídos ou interrompidos não incorrem em nenhuma cobrança por SageMaker recursos.
TrainingJob valores de status
O campo STATUS
pode ter um dos seguintes valores:
-
Completed
-
InProgress
-
Failed
-
Stopped
-
Stopping
Esses status vêm diretamente da APIdocumentação SageMaker oficial.
Além do SageMaker status oficial, é possível STATUS
que sejaSynchronizingK8sJobWithSageMaker
. Isso significa que o operador ainda não processou o trabalho.
Valores de status secundários
Os status secundários vêm diretamente da APIdocumentação SageMaker oficial. Eles contêm informações mais granulares sobre o status do trabalho.
Descreva um TrainingJob
Você pode obter mais detalhes sobre o trabalho de treinamento usando o comando describe
do kubectl
. Isso geralmente é usado para depurar um problema ou verificar os parâmetros de um trabalho de treinamento. Para obter informações sobre o trabalho de treinamento, use o comando a seguir:
kubectl describe trainingjob xgboost-mnist-from-for-s3
A saída do trabalho de treinamento será semelhante a:
Name: xgboost-mnist-from-for-s3 Namespace: default Labels: <none> Annotations: <none> API Version: sagemaker.aws.amazon.com/v1 Kind: TrainingJob Metadata: Creation Timestamp: 2019-11-20T23:42:35Z Finalizers: sagemaker-operator-finalizer Generation: 2 Resource Version: 23119 Self Link: /apis/sagemaker.aws.amazon.com/v1/namespaces/default/trainingjobs/xgboost-mnist-from-for-s3 UID: 6d7uiui-0bef-11ea-b94e-0ed467example Spec: Algorithm Specification: Training Image: 8256416981234.dkr.ecr.us-east-2.amazonaws.com/xgboost:1 Training Input Mode: File Hyper Parameters: Name: eta Value: 0.2 Name: gamma Value: 4 Name: max_depth Value: 5 Name: min_child_weight Value: 6 Name: num_class Value: 10 Name: num_round Value: 10 Name: objective Value: multi:softmax Name: silent Value: 0 Input Data Config: Channel Name: train Compression Type: None Content Type: text/csv Data Source: S 3 Data Source: S 3 Data Distribution Type: FullyReplicated S 3 Data Type: S3Prefix S 3 Uri: https://s3-us-east-2.amazonaws.com/amzn-s3-demo-bucket/sagemaker/xgboost-mnist/train/ Channel Name: validation Compression Type: None Content Type: text/csv Data Source: S 3 Data Source: S 3 Data Distribution Type: FullyReplicated S 3 Data Type: S3Prefix S 3 Uri: https://s3-us-east-2.amazonaws.com/amzn-s3-demo-bucket/sagemaker/xgboost-mnist/validation/ Output Data Config: S 3 Output Path: s3://amzn-s3-demo-bucket/sagemaker/xgboost-mnist/xgboost/ Region: us-east-2 Resource Config: Instance Count: 1 Instance Type: ml.m4.xlarge Volume Size In GB: 5 Role Arn: arn:aws:iam::12345678910:role/service-role/AmazonSageMaker-ExecutionRole Stopping Condition: Max Runtime In Seconds: 86400 Training Job Name: xgboost-mnist-from-for-s3-6d7fa0af0bef11eab94e0example Status: Cloud Watch Log URL: https://us-east-2.console.aws.amazon.com/cloudwatch/home?region=us-east-2#logStream:group=/aws/sagemaker/TrainingJobs;prefix=<example>;streamFilter=typeLogStreamPrefix Last Check Time: 2019-11-20T23:44:29Z Sage Maker Training Job Name: xgboost-mnist-from-for-s3-6d7fa0af0bef11eab94eexample Secondary Status: Downloading Training Job Status: InProgress Events: <none>
Exibir registros de TrainingJobs
Use o comando a seguir para visualizar os registros em log do trabalho de treinamento kmeans-mnist
:
kubectl smlogs trainingjob xgboost-mnist-from-for-s3
O resultado deve ser semelhante ao seguinte: Os registros em log das instâncias são ordenados cronologicamente.
"xgboost-mnist-from-for-s3" has SageMaker TrainingJobName "xgboost-mnist-from-for-s3-123456789" in region "us-east-2", status "InProgress" and secondary status "Starting" xgboost-mnist-from-for-s3-6d7fa0af0bef11eab94e0ed46example/algo-1-1574293123 2019-11-20 23:45:24.7 +0000 UTC Arguments: train xgboost-mnist-from-for-s3-6d7fa0af0bef11eab94e0ed46example/algo-1-1574293123 2019-11-20 23:45:24.7 +0000 UTC [2019-11-20:23:45:22:INFO] Running standalone xgboost training. xgboost-mnist-from-for-s3-6d7fa0af0bef11eab94e0ed46example/algo-1-1574293123 2019-11-20 23:45:24.7 +0000 UTC [2019-11-20:23:45:22:INFO] File size need to be processed in the node: 1122.95mb. Available memory size in the node: 8586.0mb xgboost-mnist-from-for-s3-6d7fa0af0bef11eab94e0ed46example/algo-1-1574293123 2019-11-20 23:45:24.7 +0000 UTC [2019-11-20:23:45:22:INFO] Determined delimiter of CSV input is ',' xgboost-mnist-from-for-s3-6d7fa0af0bef11eab94e0ed46example/algo-1-1574293123 2019-11-20 23:45:24.7 +0000 UTC [23:45:22] S3DistributionType set as FullyReplicated
Excluir TrainingJobs
Use o comando a seguir para interromper um trabalho de treinamento na Amazon SageMaker:
kubectl delete trainingjob xgboost-mnist-from-for-s3
Esse comando remove o trabalho de SageMaker treinamento do Kubernetes. Esse comando retorna a seguinte saída:
trainingjob.sagemaker.aws.amazon.com "xgboost-mnist-from-for-s3" deleted
Se o trabalho ainda estiver em andamento SageMaker, ele será interrompido. Você não incorre em nenhuma cobrança por SageMaker recursos após a interrupção ou conclusão do trabalho.
Nota: SageMaker não exclui trabalhos de treinamento. Os trabalhos interrompidos continuam aparecendo no SageMaker console. O delete
comando leva cerca de 2 minutos para limpar os recursos SageMaker.
O HyperParameterTuningJob operador
Os operadores da tarefa de ajuste de hiperparâmetros reconcilia sua especificação de tarefa de ajuste de hiperparâmetros especificada com a inicialização em SageMaker . SageMaker Você pode aprender mais sobre trabalhos de ajuste de SageMaker hiperparâmetros na SageMaker CreateHyperParameterTuningJob APIdocumentação.
Tópicos
Criar um HyperparameterTuningJob usando um YAML arquivo
-
Faça o download do YAML arquivo de amostra para o trabalho de ajuste de hiperparâmetros usando o seguinte comando:
wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/xgboost-mnist-hpo.yaml
-
Edite o arquivo
xgboost-mnist-hpo.yaml
para substituir o parâmetroroleArn
pelo seusagemaker-execution-role
. Para que o trabalho de ajuste de hiperparâmetros seja bem-sucedido, você também deve alterar os valores des3InputPath
es3OutputPath
para que correspondem à sua conta. Aplique o YAML arquivo de atualizações usando o seguinte comando:kubectl apply -f xgboost-mnist-hpo.yaml
Crie um HyperparameterTuningJob usando um Helm Chart
Você pode usar gráficos do Helm para executar trabalhos de ajuste de hiperparâmetros.
-
Clone o GitHub repositório para obter a fonte usando o seguinte comando:
git clone https://github.com/aws/amazon-sagemaker-operator-for-k8s.git
-
Navegue para a pasta
amazon-sagemaker-operator-for-k8s/hack/charts/hyperparameter-tuning-jobs/
. -
Edite o arquivo
values.yaml
para substituir o parâmetroroleArn
pelo seusagemaker-execution-role
. Para que o trabalho de ajuste de hiperparâmetros seja bem-sucedido, você também deve alterar os valores des3InputPath
es3OutputPath
para que correspondem à sua conta.
Crie o HyperparameterTuningJob
Com os perfis e os caminhos do Amazon S3 substituídos pelos valores apropriados no values.yaml
, você pode criar um trabalho de ajuste de hiperparâmetros usando o seguinte comando:
helm install . --generate-name
Sua saída deve ser semelhante à seguinte:
NAME: chart-1574292948 LAST DEPLOYED: Wed Nov 20 23:35:49 2019 NAMESPACE: default STATUS: deployed REVISION: 1 TEST SUITE: None NOTES: Thanks for installing the sagemaker-k8s-hyperparametertuningjob.
Verificar a instalação do gráfico
Para verificar se o gráfico do Helm foi criado com êxito, execute o seguinte comando:
helm ls
A saída será semelhante a:
NAME NAMESPACE REVISION UPDATED chart-1474292948 default 1 2019-11-20 23:35:49.9136092 +0000 UTC deployed sagemaker-k8s-hyperparametertuningjob-0.1.0 STATUS CHART APP VERSION chart-1574292948 default 1 2019-11-20 23:35:49.9136092 +0000 UTC deployed sagemaker-k8s-trainingjob-0.1.0 rolebased-1574291698 default 1 2019-11-20 23:14:59.6777082 +0000 UTC deployed sagemaker-k8s-operator-0.1.0
O helm install
cria um recurso do HyperParameterTuningJob
do Kubernetes. O operador inicia o trabalho real de otimização de hiperparâmetros SageMaker e atualiza o recurso HyperParameterTuningJob
Kubernetes para refletir o status do trabalho em. SageMaker Você incorre em cobranças pelos SageMaker recursos usados durante a duração do seu trabalho. Você não incorre em nenhuma cobrança quando seu trabalho for concluído ou interrompido.
Observação: SageMaker não permite que você atualize um trabalho de ajuste de hiperparâmetros em execução. Você não pode editar nenhum parâmetro e reaplicar o arquivo de configuração. Você pode alterar o nome dos metadados ou excluir o trabalho existente e crie um novo. Semelhante aos operadores de trabalho de treinamento existentes, como o TFJob
no Kubeflow, a update
não tem suporte.
Lista HyperparameterTuningJobs
Use o comando a seguir para listar todos os trabalhos criados usando o operador do Kubernetes:
kubectl get hyperparametertuningjob
A saída será semelhante a:
NAME STATUS CREATION-TIME COMPLETED INPROGRESS ERRORS STOPPED BEST-TRAINING-JOB SAGEMAKER-JOB-NAME xgboost-mnist-hpo Completed 2019-10-17T01:15:52Z 10 0 0 0 xgboostha92f5e3cf07b11e9bf6c06d6-009-4c7a123 xgboostha92f5e3cf07b11e9bf6c123
Um trabalho de ajuste de hiperparâmetros continua sendo listado após a conclusão ou falha do trabalho. Você pode remover um hyperparametertuningjob
da lista seguindo as etapas em Excluir um HyperparameterTuningJob. Os trabalhos concluídos ou interrompidos não incorrem em nenhuma cobrança por SageMaker recursos.
Valores de status de trabalho de ajuste de hiperparâmetros
O campo STATUS
pode ter um dos seguintes valores:
-
Completed
-
InProgress
-
Failed
-
Stopped
-
Stopping
Esses status vêm diretamente da APIdocumentação SageMaker oficial.
Além do SageMaker status oficial, é possível STATUS
que sejaSynchronizingK8sJobWithSageMaker
. Isso significa que o operador ainda não processou o trabalho.
Contadores de status
A saída tem vários contadores, como COMPLETED
e INPROGRESS
. Eles representam quantos trabalhos de treinamento foram concluídos e quantos estão em andamento, respectivamente. Para obter mais informações sobre como elas são determinadas, consulte TrainingJobStatusCountersa SageMaker API documentação.
Melhor TrainingJob
Essa coluna contém o nome do TrainingJob
que melhor otimizou a métrica selecionada.
Para ver um resumo dos hiperparâmetros ajustados, execute:
kubectl describe hyperparametertuningjob xgboost-mnist-hpo
Para ver informações detalhadas sobre o TrainingJob
, execute:
kubectl describe trainingjobs
<job name>
Desovado TrainingJobs
Você também pode acompanhar todos os 10 trabalhos de treinamento no Kubernetes iniciados pelo HyperparameterTuningJob
executando o seguinte comando:
kubectl get trainingjobs
Descreva um HyperparameterTuningJob
Você pode obter detalhes de depuração usando o comando describe
do kubectl
.
kubectl describe hyperparametertuningjob xgboost-mnist-hpo
Além das informações sobre o trabalho de ajuste, o SageMaker Operator for Kubernetes também expõe o melhor trabalho de treinamento encontrado pelo trabalho de ajuste de hiperparâmetros na saída, da seguinte forma: describe
Name: xgboost-mnist-hpo Namespace: default Labels: <none> Annotations: kubectl.kubernetes.io/last-applied-configuration: {"apiVersion":"sagemaker.aws.amazon.com/v1","kind":"HyperparameterTuningJob","metadata":{"annotations":{},"name":"xgboost-mnist-hpo","namespace":... API Version: sagemaker.aws.amazon.com/v1 Kind: HyperparameterTuningJob Metadata: Creation Timestamp: 2019-10-17T01:15:52Z Finalizers: sagemaker-operator-finalizer Generation: 2 Resource Version: 8167 Self Link: /apis/sagemaker.aws.amazon.com/v1/namespaces/default/hyperparametertuningjobs/xgboost-mnist-hpo UID: a92f5e3c-f07b-11e9-bf6c-06d6f303uidu Spec: Hyper Parameter Tuning Job Config: Hyper Parameter Tuning Job Objective: Metric Name: validation:error Type: Minimize Parameter Ranges: Integer Parameter Ranges: Max Value: 20 Min Value: 10 Name: num_round Scaling Type: Linear Resource Limits: Max Number Of Training Jobs: 10 Max Parallel Training Jobs: 10 Strategy: Bayesian Training Job Early Stopping Type: Off Hyper Parameter Tuning Job Name: xgboostha92f5e3cf07b11e9bf6c06d6 Region: us-east-2 Training Job Definition: Algorithm Specification: Training Image: 12345678910.dkr.ecr.us-east-2.amazonaws.com/xgboost:1 Training Input Mode: File Input Data Config: Channel Name: train Content Type: text/csv Data Source: s3DataSource: s3DataDistributionType: FullyReplicated s3DataType: S3Prefix s3Uri: https://s3-us-east-2.amazonaws.com/amzn-s3-demo-bucket/sagemaker/xgboost-mnist/train/ Channel Name: validation Content Type: text/csv Data Source: s3DataSource: s3DataDistributionType: FullyReplicated s3DataType: S3Prefix s3Uri: https://s3-us-east-2.amazonaws.com/amzn-s3-demo-bucket/sagemaker/xgboost-mnist/validation/ Output Data Config: s3OutputPath: https://s3-us-east-2.amazonaws.com/amzn-s3-demo-bucket/sagemaker/xgboost-mnist/xgboost Resource Config: Instance Count: 1 Instance Type: ml.m4.xlarge Volume Size In GB: 5 Role Arn: arn:aws:iam::123456789012:role/service-role/AmazonSageMaker-ExecutionRole Static Hyper Parameters: Name: base_score Value: 0.5 Name: booster Value: gbtree Name: csv_weights Value: 0 Name: dsplit Value: row Name: grow_policy Value: depthwise Name: lambda_bias Value: 0.0 Name: max_bin Value: 256 Name: max_leaves Value: 0 Name: normalize_type Value: tree Name: objective Value: reg:linear Name: one_drop Value: 0 Name: prob_buffer_row Value: 1.0 Name: process_type Value: default Name: rate_drop Value: 0.0 Name: refresh_leaf Value: 1 Name: sample_type Value: uniform Name: scale_pos_weight Value: 1.0 Name: silent Value: 0 Name: sketch_eps Value: 0.03 Name: skip_drop Value: 0.0 Name: tree_method Value: auto Name: tweedie_variance_power Value: 1.5 Stopping Condition: Max Runtime In Seconds: 86400 Status: Best Training Job: Creation Time: 2019-10-17T01:16:14Z Final Hyper Parameter Tuning Job Objective Metric: Metric Name: validation:error Value: Objective Status: Succeeded Training End Time: 2019-10-17T01:20:24Z Training Job Arn: arn:aws:sagemaker:us-east-2:123456789012:training-job/xgboostha92f5e3cf07b11e9bf6c06d6-009-4sample Training Job Name: xgboostha92f5e3cf07b11e9bf6c06d6-009-4c7a3059 Training Job Status: Completed Training Start Time: 2019-10-17T01:18:35Z Tuned Hyper Parameters: Name: num_round Value: 18 Hyper Parameter Tuning Job Status: Completed Last Check Time: 2019-10-17T01:21:01Z Sage Maker Hyper Parameter Tuning Job Name: xgboostha92f5e3cf07b11e9bf6c06d6 Training Job Status Counters: Completed: 10 In Progress: 0 Non Retryable Error: 0 Retryable Error: 0 Stopped: 0 Total Error: 0 Events: <none>
Exibir registros de HyperparameterTuningJobs
Os trabalhos de ajuste hiperparâmetros não têm logs, mas todos os trabalhos de treinamento lançados por eles têm logs. Esses logs podem ser acessados como se fossem um trabalho normal de treinamento. Para obter mais informações, consulte Exibir registros de TrainingJobs.
Excluir um HyperparameterTuningJob
Use o comando a seguir para interromper um trabalho de hiperparâmetros no SageMaker.
kubectl delete hyperparametertuningjob xgboost-mnist-hpo
Esse comando remove o trabalho de ajuste de hiperparâmetros e os trabalhos de treinamento associados do seu cluster Kubernetes e os interrompe. SageMaker Os trabalhos que foram interrompidos ou concluídos não incorrem em nenhuma cobrança por SageMaker recursos. SageMaker não exclui trabalhos de ajuste de hiperparâmetros. Os trabalhos interrompidos continuam aparecendo no SageMaker console.
A saída será semelhante a:
hyperparametertuningjob.sagemaker.aws.amazon.com "xgboost-mnist-hpo" deleted
Observação: o comando delete leva cerca de 2 minutos para limpar os recursos SageMaker.
O BatchTransformJob operador
Os operadores de trabalho de transformação em lote reconciliam sua especificação de trabalho de transformação em lote especificada com a SageMaker inicialização em. SageMaker Você pode aprender mais sobre o trabalho de transformação em SageMaker lote na SageMaker CreateTransformJob APIdocumentação.
Tópicos
Criar um BatchTransformJob usando um YAML arquivo
Faça o download do YAML arquivo de amostra para o trabalho de transformação em lote usando o seguinte comando:
wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/xgboost-mnist-batchtransform.yaml
-
Edite o arquivo
xgboost-mnist-batchtransform.yaml
para alterar os parâmetros necessários para substituí-losinputdataconfig
pelos dados de entrada e peloss3OutputPath
buckets do Amazon S3 aos quais a função de SageMaker execução tem acesso de gravação. -
Aplique o YAML arquivo usando o seguinte comando:
kubectl apply -f xgboost-mnist-batchtransform.yaml
Crie um BatchTransformJob usando um Helm Chart
Você pode usar gráficos de Helm para executar trabalhos de transformação de lote.
Obtenha o diretório do instalador de Helm
Clone o GitHub repositório para obter a fonte usando o seguinte comando:
git clone https://github.com/aws/amazon-sagemaker-operator-for-k8s.git
Configurar o gráfico de Helm
Navegue para a pasta amazon-sagemaker-operator-for-k8s/hack/charts/batch-transform-jobs/
.
Edite o values.yaml
arquivo para substituí-lo inputdataconfig
pelos dados de entrada e pelos outputPath buckets do S3 aos quais a função de SageMaker execução tem acesso de gravação.
Crie um BatchTransformJob
-
Use o comando a seguir para criar um trabalho de transformação de lote:
helm install . --generate-name
A saída será semelhante a:
NAME: chart-1574292948 LAST DEPLOYED: Wed Nov 20 23:35:49 2019 NAMESPACE: default STATUS: deployed REVISION: 1 TEST SUITE: None NOTES: Thanks for installing the sagemaker-k8s-batch-transform-job.
-
Para verificar se o gráfico de Helm foi criado com êxito, execute o seguinte comando:
helm ls NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION chart-1474292948 default 1 2019-11-20 23:35:49.9136092 +0000 UTC deployed sagemaker-k8s-batchtransformjob-0.1.0 chart-1474292948 default 1 2019-11-20 23:35:49.9136092 +0000 UTC deployed sagemaker-k8s-hyperparametertuningjob-0.1.0 chart-1574292948 default 1 2019-11-20 23:35:49.9136092 +0000 UTC deployed sagemaker-k8s-trainingjob-0.1.0 rolebased-1574291698 default 1 2019-11-20 23:14:59.6777082 +0000 UTC deployed sagemaker-k8s-operator-0.1.0
O comando cria um recurso
BatchTransformJob
do Kubernetes. O operador inicia o trabalho de transformação real SageMaker e atualiza o recursoBatchTransformJob
Kubernetes para refletir o status do trabalho em. SageMaker Você incorre em cobranças pelos SageMaker recursos usados durante a duração do seu trabalho. Você não incorre em nenhuma cobrança quando seu trabalho for concluído ou interrompido.
Observação: SageMaker não permite que você atualize um trabalho de transformação em lote em execução. Você não pode editar nenhum parâmetro e reaplicar o arquivo de configuração. Você pode alterar o nome dos metadados ou excluir o trabalho existente e crie um novo. Semelhante aos operadores de trabalho de treinamento existentes, como o TFJob
no Kubeflow, a update
não tem suporte.
Lista BatchTransformJobs
Use o comando a seguir para listar todos os trabalhos criados usando o operador do Kubernetes:
kubectl get batchtransformjob
A saída será semelhante a:
NAME STATUS CREATION-TIME SAGEMAKER-JOB-NAME xgboost-mnist-batch-transform Completed 2019-11-18T03:44:00Z xgboost-mnist-a88fb19809b511eaac440aa8axgboost
Um trabalho de transformação de lote continua sendo listado após a conclusão ou falha do trabalho. Você pode remover um hyperparametertuningjob
da lista seguindo as etapas Excluir um BatchTransformJob. Os trabalhos concluídos ou interrompidos não incorrem em nenhuma cobrança por SageMaker recursos.
Valores de status da transformação em lote
O campo STATUS
pode ter um dos seguintes valores:
-
Completed
-
InProgress
-
Failed
-
Stopped
-
Stopping
Esses status vêm diretamente da APIdocumentação SageMaker oficial.
Além do SageMaker status oficial, é possível STATUS
que sejaSynchronizingK8sJobWithSageMaker
. Isso significa que o operador ainda não processou o trabalho.
Descreva um BatchTransformJob
Você pode obter detalhes de depuração usando o comando describe
do kubectl
.
kubectl describe batchtransformjob xgboost-mnist-batch-transform
A saída será semelhante a:
Name: xgboost-mnist-batch-transform Namespace: default Labels: <none> Annotations: kubectl.kubernetes.io/last-applied-configuration: {"apiVersion":"sagemaker.aws.amazon.com/v1","kind":"BatchTransformJob","metadata":{"annotations":{},"name":"xgboost-mnist","namespace"... API Version: sagemaker.aws.amazon.com/v1 Kind: BatchTransformJob Metadata: Creation Timestamp: 2019-11-18T03:44:00Z Finalizers: sagemaker-operator-finalizer Generation: 2 Resource Version: 21990924 Self Link: /apis/sagemaker.aws.amazon.com/v1/namespaces/default/batchtransformjobs/xgboost-mnist UID: a88fb198-09b5-11ea-ac44-0aa8a9UIDNUM Spec: Model Name: TrainingJob-20190814SMJOb-IKEB Region: us-east-1 Transform Input: Content Type: text/csv Data Source: S 3 Data Source: S 3 Data Type: S3Prefix S 3 Uri: s3://amzn-s3-demo-bucket/mnist_kmeans_example/input Transform Job Name: xgboost-mnist-a88fb19809b511eaac440aa8a9SMJOB Transform Output: S 3 Output Path: s3://amzn-s3-demo-bucket/mnist_kmeans_example/output Transform Resources: Instance Count: 1 Instance Type: ml.m4.xlarge Status: Last Check Time: 2019-11-19T22:50:40Z Sage Maker Transform Job Name: xgboost-mnist-a88fb19809b511eaac440aaSMJOB Transform Job Status: Completed Events: <none>
Exibir registros de BatchTransformJobs
Use o comando a seguir para visualizar os registros em log do trabalho de transformação de lote xgboost-mnist
:
kubectl smlogs batchtransformjob xgboost-mnist-batch-transform
Excluir um BatchTransformJob
Use o comando a seguir para interromper um trabalho de transformação em lote no SageMaker.
kubectl delete batchTransformJob xgboost-mnist-batch-transform
A saída será semelhante a:
batchtransformjob.sagemaker.aws.amazon.com "xgboost-mnist" deleted
Esse comando remove o trabalho de transformação em lote do seu cluster Kubernetes e o interrompe. SageMaker Os trabalhos que foram interrompidos ou concluídos não incorrem em nenhuma cobrança por SageMaker recursos. A exclusão leva cerca de 2 minutos para limpar os recursos SageMaker.
Nota: SageMaker não exclui trabalhos de transformação em lote. Os trabalhos interrompidos continuam aparecendo no SageMaker console.
O HostingDeployment operador
HostingDeployment os operadores oferecem suporte à criação e exclusão de um endpoint, bem como à atualização de um endpoint existente, para inferência em tempo real. O operador de implantação de hospedagem reconcilia sua especificação de trabalho de implantação de hospedagem especificada SageMaker criando modelos, configurações de endpoints e endpoints em. SageMaker Você pode aprender mais sobre SageMaker inferência na SageMaker CreateEndpointAPIdocumentação.
Tópicos
Configurar um HostingDeployment recurso
Faça o download do YAML arquivo de amostra para o trabalho de implantação de hospedagem usando o seguinte comando:
wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/xgboost-mnist-hostingdeployment.yaml
O xgboost-mnist-hostingdeployment.yaml
arquivo tem os seguintes componentes que podem ser editados conforme necessário:
-
ProductionVariants. Uma variante de produção é um conjunto de instâncias que atendem a um único modelo. SageMaker balanceia a carga entre todas as variantes de produção de acordo com os pesos definidos.
-
Modelos. Um modelo são os contêineres e a função de execução ARN necessários para servir a um modelo. Isso requer pelo menos um único contêiner.
-
Contêineres. Um contêiner especifica o conjunto de dados e a imagem de veiculação. Se você estiver usando seu próprio algoritmo personalizado em vez de um algoritmo fornecido por SageMaker, o código de inferência deverá atender SageMaker aos requisitos. Para obter mais informações, consulte Usando seus próprios algoritmos com SageMaker.
Crie um HostingDeployment
Para criar um HostingDeployment, use kubectl
para aplicar o arquivo hosting.yaml
com o seguinte comando:
kubectl apply -f hosting.yaml
SageMaker cria um endpoint com a configuração especificada. Você incorre em cobranças pelos SageMaker recursos usados durante a vida útil do seu endpoint. Você não incorre em nenhuma cobrança depois que seu endpoint é excluído.
A criação do processo leva aproximadamente 10 minutos.
Lista HostingDeployments
Para verificar se o HostingDeployment foi criado, use o seguinte comando:
kubectl get hostingdeployments
A saída será semelhante a:
NAME STATUS SAGEMAKER-ENDPOINT-NAME host-xgboost Creating host-xgboost-def0e83e0d5f11eaaa450aSMLOGS
HostingDeployment valores de status
O campo de status pode ser um dos vários valores:
-
SynchronizingK8sJobWithSageMaker
: o operador está se preparando para criar o endpoint. -
ReconcilingEndpoint
: o operador está criando, atualizando ou excluindo recursos do endpoint. Se HostingDeployment permanecer nesse estado, usekubectl describe
para ver o motivo noAdditional
campo. -
OutOfService
: o endpoint não está disponível para receber solicitações. -
Creating
: CreateEndpointestá em execução. -
Updating
: UpdateEndpointou UpdateEndpointWeightsAndCapacitiesestá em execução. -
SystemUpdating
: o endpoint está passando por manutenção e não pode ser atualizado, excluído ou redimensionado até que seja concluído. Essa operação de manutenção não altera nenhum valor especificado pelo cliente, como VPC configuração, AWS KMS criptografia, modelo, tipo de instância ou contagem de instâncias. -
RollingBack
: o endpoint não consegue aumentar ou diminuir a escala ou alterar o peso da variante e está voltando à configuração anterior. Depois que a reversão for concluída, o endpoint retornará a um statusInService
. Esse status de transição só se aplica a um endpoint que tem o escalonamento automático ativado e está passando por alterações de peso ou capacidade de variantes como parte de uma UpdateEndpointWeightsAndCapacitieschamada ou quando a UpdateEndpointWeightsAndCapacitiesoperação é chamada explicitamente. -
InService
: o endpoint não está disponível para receber solicitações. -
Deleting
: DeleteEndpointestá em execução. -
Failed
: o endpoint não pôde ser criado, atualizado ou redimensionado. Uso DescribeEndpoint: FailureReason para obter informações sobre a falha. DeleteEndpointé a única operação que pode ser executada em um endpoint com falha.
Descreva um HostingDeployment
Você pode obter detalhes de depuração usando o comando describe
do kubectl
.
kubectl describe hostingdeployment
A saída será semelhante a:
Name: host-xgboost Namespace: default Labels: <none> Annotations: kubectl.kubernetes.io/last-applied-configuration: {"apiVersion":"sagemaker.aws.amazon.com/v1","kind":"HostingDeployment","metadata":{"annotations":{},"name":"host-xgboost","namespace":"def..." API Version: sagemaker.aws.amazon.com/v1 Kind: HostingDeployment Metadata: Creation Timestamp: 2019-11-22T19:40:00Z Finalizers: sagemaker-operator-finalizer Generation: 1 Resource Version: 4258134 Self Link: /apis/sagemaker.aws.amazon.com/v1/namespaces/default/hostingdeployments/host-xgboost UID: def0e83e-0d5f-11ea-aa45-0a3507uiduid Spec: Containers: Container Hostname: xgboost Image: 123456789012.dkr.ecr.us-east-2.amazonaws.com/xgboost:latest Model Data URL: s3://amzn-s3-demo-bucket/inference/xgboost-mnist/model.tar.gz Models: Containers: xgboost Execution Role Arn: arn:aws:iam::123456789012:role/service-role/AmazonSageMaker-ExecutionRole Name: xgboost-model Primary Container: xgboost Production Variants: Initial Instance Count: 1 Instance Type: ml.c5.large Model Name: xgboost-model Variant Name: all-traffic Region: us-east-2 Status: Creation Time: 2019-11-22T19:40:04Z Endpoint Arn: arn:aws:sagemaker:us-east-2:123456789012:endpoint/host-xgboost-def0e83e0d5f11eaaaexample Endpoint Config Name: host-xgboost-1-def0e83e0d5f11e-e08f6c510d5f11eaaa450aexample Endpoint Name: host-xgboost-def0e83e0d5f11eaaa450a350733ba06 Endpoint Status: Creating Endpoint URL: https://runtime.sagemaker.us-east-2.amazonaws.com/endpoints/host-xgboost-def0e83e0d5f11eaaaexample/invocations Last Check Time: 2019-11-22T19:43:57Z Last Modified Time: 2019-11-22T19:40:04Z Model Names: Name: xgboost-model Value: xgboost-model-1-def0e83e0d5f11-df5cc9fd0d5f11eaaa450aexample Events: <none>
O campo de status fornece mais informações usando os seguintes campos:
-
Additional
: informações adicionais sobre o status da implantação da hospedagem. Esse campo é opcional e só é preenchido em caso de erro. -
Creation Time
: Quando o endpoint foi criado em SageMaker. -
Endpoint ARN
: O SageMaker endpointARN. -
Endpoint Config Name
: o SageMaker nome da configuração do endpoint. -
Endpoint Name
: o SageMaker nome do endpoint. -
Endpoint Status
: o status do endpoint. -
Endpoint URL
: o HTTPS URL que pode ser usado para acessar o endpoint. Para obter mais informações, consulte Implantar um modelo em serviços de SageMaker hospedagem. -
FailureReason
: se um comando de criação, atualização ou exclusão falhar, a causa será mostrada aqui. -
Last Check Time
: a última vez que o operador verificou o status do endpoint. -
Last Modified Time
: a última vez que o endpoint foi modificado. -
Model Names
: um par de valores-chave de nomes de HostingDeployment modelos com nomes de SageMaker modelos.
Invocar o endpoint
Quando o status do endpoint forInService
, você poderá invocar o endpoint de duas maneiras: usando o AWS CLI, que faz a autenticação e URL solicita a assinatura, ou usando um HTTP cliente como c. URL Se você usa seu próprio cliente, precisa fazer a URL assinatura e a autenticação AWS v4 por conta própria.
Para invocar o endpoint usando o AWS CLI, execute o comando a seguir. Certifique-se de substituir o nome da região e do endpoint pela região e pelo nome do endpoint do SageMaker endpoint. Essas informações podem ser obtidas na saída de kubectl describe
.
# Invoke the endpoint with mock input data. aws sagemaker-runtime invoke-endpoint \ --region us-east-2 \ --endpoint-name
<endpoint name>
\ --body $(seq 784 | xargs echo | sed 's/ /,/g') \ >(cat) \ --content-type text/csv > /dev/null
Por exemplo, se sua região for us-east-2
e o nome de configuração do endpoint forhost-xgboost-f56b6b280d7511ea824b129926example
, o comando a seguir invocaria o endpoint:
aws sagemaker-runtime invoke-endpoint \ --region us-east-2 \ --endpoint-name host-xgboost-f56b6b280d7511ea824b1299example \ --body $(seq 784 | xargs echo | sed 's/ /,/g') \ >(cat) \ --content-type text/csv > /dev/null 4.95847082138
Aqui 4.95847082138
está a previsão do modelo para os dados simulados.
Atualizar HostingDeployment
-
Quando a HostingDeployment tem um status de
InService
, ele pode ser atualizado. Pode levar cerca de 10 minutos HostingDeployment para entrar em serviço. Para verificar se o status éInService
, use o seguinte comando:kubectl get hostingdeployments
-
Eles HostingDeployment podem ser atualizados antes que o status seja
InService
. O operador espera até que o SageMaker endpoint chegueInService
antes de aplicar a atualização.Para aplicar uma atualização, modifique o
hosting.yaml
arquivo. Por exemplo, altere o campoinitialInstanceCount
de 1 para 2 da seguinte forma:apiVersion: sagemaker.aws.amazon.com/v1 kind: HostingDeployment metadata: name: host-xgboost spec: region: us-east-2 productionVariants: - variantName: all-traffic modelName: xgboost-model initialInstanceCount: 2 instanceType: ml.c5.large models: - name: xgboost-model executionRoleArn: arn:aws:iam::123456789012:role/service-role/AmazonSageMaker-ExecutionRole primaryContainer: xgboost containers: - xgboost containers: - containerHostname: xgboost modelDataUrl: s3://amzn-s3-demo-bucket/inference/xgboost-mnist/model.tar.gz image: 123456789012.dkr.ecr.us-east-2.amazonaws.com/xgboost:latest
-
Salve o arquivo e use
kubectl
para aplicar sua atualização da seguinte maneira. Você deve ver o status mudar deInService
paraReconcilingEndpoint
, entãoUpdating
.$ kubectl apply -f hosting.yaml hostingdeployment.sagemaker.aws.amazon.com/host-xgboost configured $ kubectl get hostingdeployments NAME STATUS SAGEMAKER-ENDPOINT-NAME host-xgboost ReconcilingEndpoint host-xgboost-def0e83e0d5f11eaaa450a350abcdef $ kubectl get hostingdeployments NAME STATUS SAGEMAKER-ENDPOINT-NAME host-xgboost Updating host-xgboost-def0e83e0d5f11eaaa450a3507abcdef
SageMaker implanta um novo conjunto de instâncias com seus modelos, alterna o tráfego para usar as novas instâncias e drena as instâncias antigas. Assim que esse processo começa, o status se torna Updating
. Depois que a atualização for concluída, seu endpoint se tornará InService
. Este processo leva aproximadamente 10 minutos.
Exclua o HostingDeployment
Use
kubectl
para excluir um HostingDeployment com o seguinte comando:kubectl delete hostingdeployments host-xgboost
A saída será semelhante a:
hostingdeployment.sagemaker.aws.amazon.com "host-xgboost" deleted
-
Para verificar se a implantação da hospedagem foi excluída, use o comando a seguir:
kubectl get hostingdeployments No resources found.
Os endpoints que foram excluídos não incorrem em nenhuma cobrança por SageMaker recursos.
O ProcessingJob operador
ProcessingJob operadores são usados para iniciar trabalhos de SageMaker processamento da Amazon. Para obter mais informações sobre trabalhos SageMaker de processamento, consulte CreateProcessingJob.
Tópicos
Criar um ProcessingJob usando um YAML arquivo
Siga estas etapas para criar um trabalho SageMaker de processamento da Amazon usando um YAML arquivo:
-
Baixe o script de
kmeans_preprocessing.py
pré-processamento.wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/kmeans_preprocessing.py
-
Em um de seus buckets do Amazon Simple Storage Service (Amazon S3), crie
mnist_kmeans_example/processing_code
uma pasta e carregue o script na pasta. -
Faça download do arquivo
kmeans-mnist-processingjob.yaml
.wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/kmeans-mnist-processingjob.yaml
-
Edite o YAML arquivo para especificar suas
sagemaker-execution-role
e substituir todas as instâncias doamzn-s3-demo-bucket
pelo seu bucket do S3.... metadata: name: kmeans-mnist-processing ... roleArn: arn:aws:iam::
<acct-id>
:role/service-role/<sagemaker-execution-role>
... processingOutputConfig: outputs: ... s3Output: s3Uri: s3://<amzn-s3-demo-bucket>
/mnist_kmeans_example/output/ ... processingInputs: ... s3Input: s3Uri: s3://<amzn-s3-demo-bucket>
/mnist_kmeans_example/processing_code/kmeans_preprocessing.pyEles
sagemaker-execution-role
devem ter permissões para que SageMaker possam acessar seu bucket do S3, a Amazon CloudWatch e outros serviços em seu nome. Para obter mais informações sobre a criação de uma função de execução, consulte SageMakerFunções. -
Aplique o YAML arquivo usando um dos comandos a seguir.
Para instalação com escopo de cluster:
kubectl apply -f kmeans-mnist-processingjob.yaml
Para instalação com escopo de namespace:
kubectl apply -f kmeans-mnist-processingjob.yaml -n
<NAMESPACE>
Lista ProcessingJobs
Use um dos comandos a seguir para listar todos os trabalhos criados usando o ProcessingJob operador. SAGEMAKER-JOB-NAME
vem da metadata
seção do YAML arquivo.
Para instalação com escopo de cluster:
kubectl get ProcessingJob kmeans-mnist-processing
Para instalação com escopo de namespace:
kubectl get ProcessingJob -n
<NAMESPACE>
kmeans-mnist-processing
Sua saída deve ser semelhante à seguinte:
NAME STATUS CREATION-TIME SAGEMAKER-JOB-NAME kmeans-mnist-processing InProgress 2020-09-22T21:13:25Z kmeans-mnist-processing-7410ed52fd1811eab19a165ae9f9e385
A saída lista todos os trabalhos, independentemente de seu status. Para remover um trabalho da lista, consulte Excluir um trabalho de processamento.
ProcessingJob Status
-
SynchronizingK8sJobWithSageMaker
: o trabalho é enviado primeiro ao cluster. O operador recebeu a solicitação e está se preparando para criar o trabalho de processamento. -
Reconciling
: o operador está inicializando ou se recuperando de erros transitórios, junto com outros. Se o trabalho de processamento permanecer nesse estado, use o comandokubectl
describe
para ver o motivo no campoAdditional
. -
InProgress | Completed | Failed | Stopping | Stopped
— Status do trabalho SageMaker de processamento. Para obter mais informações, consulte DescribeProcessingJob. -
Error
: o operador não pode se recuperar por meio da reconciliação.
Trabalhos concluídos, interrompidos ou falhados não incorrem em cobranças adicionais por SageMaker recursos.
Descreva um ProcessingJob
Use um dos comandos a seguir para obter mais detalhes sobre um trabalho de processamento. Esses comandos são normalmente usados para depurar um problema ou verificar os parâmetros de um trabalho de processamento.
Para instalação com escopo de cluster:
kubectl describe processingjob kmeans-mnist-processing
Para instalação com escopo de namespace:
kubectl describe processingjob kmeans-mnist-processing -n
<NAMESPACE>
A saída do seu trabalho de processamento deve ser semelhante à seguinte.
$ kubectl describe ProcessingJob kmeans-mnist-processing Name: kmeans-mnist-processing Namespace: default Labels: <none> Annotations: kubectl.kubernetes.io/last-applied-configuration: {"apiVersion":"sagemaker.aws.amazon.com/v1","kind":"ProcessingJob","metadata":{"annotations":{},"name":"kmeans-mnist-processing",... API Version: sagemaker.aws.amazon.com/v1 Kind: ProcessingJob Metadata: Creation Timestamp: 2020-09-22T21:13:25Z Finalizers: sagemaker-operator-finalizer Generation: 2 Resource Version: 21746658 Self Link: /apis/sagemaker.aws.amazon.com/v1/namespaces/default/processingjobs/kmeans-mnist-processing UID: 7410ed52-fd18-11ea-b19a-165ae9f9e385 Spec: App Specification: Container Entrypoint: python /opt/ml/processing/code/kmeans_preprocessing.py Image Uri: 763104351884.dkr.ecr.us-west-2.amazonaws.com/pytorch-training:1.5.0-cpu-py36-ubuntu16.04 Environment: Name: MYVAR Value: my_value Name: MYVAR2 Value: my_value2 Network Config: Processing Inputs: Input Name: mnist_tar s3Input: Local Path: /opt/ml/processing/input s3DataType: S3Prefix s3InputMode: File s3Uri: s3://<s3bucket>-us-west-2/algorithms/kmeans/mnist/mnist.pkl.gz Input Name: source_code s3Input: Local Path: /opt/ml/processing/code s3DataType: S3Prefix s3InputMode: File s3Uri: s3://<s3bucket>/mnist_kmeans_example/processing_code/kmeans_preprocessing.py Processing Output Config: Outputs: Output Name: train_data s3Output: Local Path: /opt/ml/processing/output_train/ s3UploadMode: EndOfJob s3Uri: s3://<s3bucket>/mnist_kmeans_example/output/ Output Name: test_data s3Output: Local Path: /opt/ml/processing/output_test/ s3UploadMode: EndOfJob s3Uri: s3://<s3bucket>/mnist_kmeans_example/output/ Output Name: valid_data s3Output: Local Path: /opt/ml/processing/output_valid/ s3UploadMode: EndOfJob s3Uri: s3://<s3bucket>/mnist_kmeans_example/output/ Processing Resources: Cluster Config: Instance Count: 1 Instance Type: ml.m5.xlarge Volume Size In GB: 20 Region: us-west-2 Role Arn: arn:aws:iam::<acct-id>:role/m-sagemaker-role Stopping Condition: Max Runtime In Seconds: 1800 Tags: Key: tagKey Value: tagValue Status: Cloud Watch Log URL: https://us-west-2.console.aws.amazon.com/cloudwatch/home?region=us-west-2#logStream:group=/aws/sagemaker/ProcessingJobs;prefix=kmeans-mnist-processing-7410ed52fd1811eab19a165ae9f9e385;streamFilter=typeLogStreamPrefix Last Check Time: 2020-09-22T21:14:29Z Processing Job Status: InProgress Sage Maker Processing Job Name: kmeans-mnist-processing-7410ed52fd1811eab19a165ae9f9e385 Events: <none>
Excluir um ProcessingJob
Quando você exclui um trabalho de processamento, o trabalho SageMaker de processamento é removido do Kubernetes, mas o trabalho não é excluído do. SageMaker Se o status do trabalho em SageMaker for, InProgress
o trabalho será interrompido. Os trabalhos de processamento que estão interrompidos não incorrem em nenhuma cobrança por SageMaker recursos. Use um dos comandos a seguir para excluir um trabalho de processamento.
Para instalação com escopo de cluster:
kubectl delete processingjob kmeans-mnist-processing
Para instalação com escopo de namespace:
kubectl delete processingjob kmeans-mnist-processing -n
<NAMESPACE>
A saída do seu trabalho de processamento deve ser semelhante à seguinte.
processingjob.sagemaker.aws.amazon.com "kmeans-mnist-processing" deleted
nota
SageMaker não exclui a tarefa de processamento. Os trabalhos interrompidos continuam aparecendo no SageMaker console. O delete
comando leva alguns minutos para limpar os recursos SageMaker.
HostingAutoscalingPolicy (HAP) Operador
O operador HostingAutoscalingPolicy (HAP) usa uma lista de recursos IDs como entrada e aplica a mesma política a cada um deles. Cada ID de recurso é uma combinação de um nome de endpoint e um nome de variante. O HAP operador executa duas etapas: registra o recurso IDs e, em seguida, aplica a política de escalabilidade a cada ID de recurso. Delete
desfaz as duas ações. Você pode aplicar o HAP a um SageMaker endpoint existente ou criar um novo SageMaker endpoint usando o HostingDeployment operador. Você pode ler mais sobre escalonamento SageMaker automático na documentação da política de escalonamento automático de aplicativos.
nota
Em seus comandos kubectl
, você pode usar a forma abreviada, hap
, no lugar de hostingautoscalingpolicy
.
Tópicos
Criar um HostingAutoscalingPolicy usando um YAML arquivo
Use um YAML arquivo para criar um HostingAutoscalingPolicy (HAP) que aplique uma métrica predefinida ou personalizada a um ou vários SageMaker endpoints.
A Amazon SageMaker exige valores específicos para aplicar o escalonamento automático à sua variante. Se esses valores não forem especificados na YAML especificação, o HAP operador aplicará os seguintes valores padrão.
# Do not change Namespace = "sagemaker" # Do not change ScalableDimension = "sagemaker:variant:DesiredInstanceCount" # Only one supported PolicyType = "TargetTrackingScaling" # This is the default policy name but can be changed to apply a custom policy DefaultAutoscalingPolicyName = "SageMakerEndpointInvocationScalingPolicy"
Use os exemplos a seguir para criar uma HAP que aplique uma métrica predefinida ou personalizada a um ou vários endpoints.
Exemplo 1: aplicar uma métrica predefinida a uma única variante de endpoint
-
Faça o download do YAML arquivo de amostra para uma métrica predefinida usando o seguinte comando:
wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/hap-predefined-metric.yaml
-
Edite o YAML arquivo para especificar seu
endpointName
variantName
,Region
e. -
Use um dos comandos a seguir para aplicar uma métrica predefinida a uma única ID de recurso (combinação de nome do endpoint e nome da variante).
Para instalação com escopo de cluster:
kubectl apply -f hap-predefined-metric.yaml
Para instalação com escopo de namespace:
kubectl apply -f hap-predefined-metric.yaml -n
<NAMESPACE>
Exemplo 2: aplicar uma métrica personalizada a uma única variante de endpoint
-
Faça o download do YAML arquivo de amostra para uma métrica personalizada usando o seguinte comando:
wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/hap-custom-metric.yaml
-
Edite o YAML arquivo para especificar seu
endpointName
variantName
,Region
e. -
Use um dos comandos a seguir para aplicar uma métrica personalizada a um único ID de recurso (combinação de nome do endpoint e nome da variante) no lugar do
SageMakerVariantInvocationsPerInstance
recomendado.nota
SageMaker A Amazon não verifica a validade da sua YAML especificação.
Para instalação com escopo de cluster:
kubectl apply -f hap-custom-metric.yaml
Para instalação com escopo de namespace:
kubectl apply -f hap-custom-metric.yaml -n
<NAMESPACE>
Exemplo 3: aplicar uma política de escalabilidade a vários endpoints e variantes
Você pode usar o HAP operador para aplicar a mesma política de escalabilidade a vários recursosIDs. Uma scaling_policy
solicitação separada é criada para cada ID de recurso (combinação de nome do endpoint e nome da variante).
-
Faça o download do YAML arquivo de amostra para uma métrica predefinida usando o seguinte comando:
wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/hap-predefined-metric.yaml
-
Edite o YAML arquivo para especificar seu
Region
endpointName
e váriosvariantName
valores. -
Use um dos comandos a seguir para aplicar uma métrica predefinida a vários recursos IDs (combinações de nome de endpoint e nome de variante).
Para instalação com escopo de cluster:
kubectl apply -f hap-predefined-metric.yaml
Para instalação com escopo de namespace:
kubectl apply -f hap-predefined-metric.yaml -n
<NAMESPACE>
Considerações HostingAutoscalingPolicies para vários endpoints e variantes
As considerações a seguir se aplicam quando você usa vários recursosIDs:
-
Se você aplicar uma única política em vários recursosIDs, uma política ARN será criada por ID de recurso. Cinco endpoints têm cinco P. olicyARNs Quando você executa o comando
describe
na política, as respostas aparecem como um trabalho e incluem um único status de trabalho. -
Se você aplicar uma métrica personalizada a vários recursosIDs, a mesma dimensão ou valor será usado para todos os valores de ID do recurso (variante). Por exemplo, se você aplicar uma métrica de cliente para as instâncias 1 a 5 e a dimensão da variante do endpoint for mapeada para a variante 1, quando a variante 1 exceder as métricas, todos os endpoints serão ampliados ou reduzidos.
-
O HAP operador suporta a atualização da lista de recursosIDs. Se você modificar, adicionar ou excluir recursos da especificação, IDs a política de escalonamento automático será removida da lista anterior de variantes e aplicada às combinações de IDs de recursos recém-especificadas. Use o
describe
comando para listar o recurso IDs ao qual a política está atualmente aplicada.
Lista HostingAutoscalingPolicies
Use um dos comandos a seguir para listar todos HostingAutoscalingPolicies (HAPs) criados usando o HAP operador.
Para instalação com escopo de cluster:
kubectl get hap
Para instalação com escopo de namespace:
kubectl get hap -n
<NAMESPACE>
Sua saída deve ser semelhante à seguinte:
NAME STATUS CREATION-TIME hap-predefined Created 2021-07-13T21:32:21Z
Use o comando a seguir para verificar o status do seu HostingAutoscalingPolicy (HAP).
kubectl get hap
<job-name>
Ele tem um dos seguintes valores:
-
Reconciling
: certos tipos de erros mostram o status comoReconciling
em vez deError
. Alguns exemplos são erros do lado do servidor e endpoints no estadoCreating
ouUpdating
. Verifique o campoAdditional
no status ou nos logs do operador para obter mais detalhes. Created
Error
Para visualizar o endpoint de escalonamento automático ao qual você aplicou a política
-
Abra o SageMaker console da Amazon em https://console.aws.amazon.com/sagemaker/
. -
No painel do lado esquerdo, expanda Inferência.
-
Selecione Endpoints.
-
Selecione o nome do endpoint de interesse.
-
Role até a seção Definições de tempo de execução do endpoint.
Descreva um HostingAutoscalingPolicy
Use o comando a seguir para obter mais detalhes sobre a HostingAutoscalingPolicy (HAP). Esses comandos são normalmente usados para depurar um problema ou verificar o recurso IDs (combinações de nome de endpoint e nome de variante) de um. HAP
kubectl describe hap
<job-name>
Atualizar um HostingAutoscalingPolicy
O operador HostingAutoscalingPolicy (HAP) oferece suporte a atualizações. Você pode editar sua YAML especificação para alterar os valores e depois reaplicar a política. O HAP operador exclui a política existente e aplica a nova política.
Excluir um HostingAutoscalingPolicy
Use um dos comandos a seguir para excluir uma política HostingAutoscalingPolicy (HAP).
Para instalação com escopo de cluster:
kubectl delete hap hap-predefined
Para instalação com escopo de namespace:
kubectl delete hap hap-predefined -n
<NAMESPACE>
Esse comando exclui a política de escalabilidade e cancela o registro do alvo de escalabilidade do Kubernetes. Este comando retorna a seguinte saída:
hostingautoscalingpolicies.sagemaker.aws.amazon.com "hap-predefined" deleted
Atualizar ou excluir um endpoint com um HostingAutoscalingPolicy
Para atualizar um endpoint que tenha um HostingAutoscalingPolicy (HAP), use o kubectl
delete
comando para remover oHAP, atualizar o endpoint e reaplicar o. HAP
Para excluir um endpoint que tenha umHAP, use o kubectl
delete
comando para remover o HAP antes de excluir o endpoint.