Use piscinas quentes gerenciadas por SageMaker IA - SageMaker IA 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á.

Use piscinas quentes gerenciadas por SageMaker IA

Você pode usar pools quentes gerenciados por SageMaker IA por meio do SageMaker Python SDK, do console Amazon SageMaker AI ou por meio do nível inferior. APIs Opcionalmente, os administradores podem usar a chave de condição sagemaker:KeepAlivePeriod para restringir ainda mais os limites KeepAlivePeriodInSeconds de determinados usuários ou grupos.

Usando o SageMaker SDK AI Python

Crie, atualize ou encerre pools quentes usando o SDK do SageMaker Python.

nota

Esse recurso está disponível no SageMaker AI Python SDK v2.110.0 e versões posteriores.

Criar um pool ativo

Para criar um pool aquecido, use o SDK do SageMaker Python para criar um estimador com um keep_alive_period_in_seconds valor maior que 0 e chame. fit() Quando o trabalho de treinamento é concluído, um grupo de aquecimento é retido. Para obter mais informações sobre scripts de treinamento e estimadores, consulte Treinar um modelo com o SDK do Python SageMaker . Se o seu script não criar um grupo de aquecimento, consulte Criação de grupo de aquecimento para possíveis explicações.

import sagemaker from sagemaker import get_execution_role from sagemaker.tensorflow import TensorFlow # Creates a SageMaker AI session and gets execution role session = sagemaker.Session() role = get_execution_role() # Creates an example estimator estimator = TensorFlow( ... entry_point='my-training-script.py', source_dir='code', role=role, model_dir='model_dir', framework_version='2.2', py_version='py37', job_name='my-training-job-1', instance_type='ml.g4dn.xlarge', instance_count=1, volume_size=250, hyperparameters={ "batch-size": 512, "epochs": 1, "learning-rate": 1e-3, "beta_1": 0.9, "beta_2": 0.999, }, keep_alive_period_in_seconds=1800, ) # Starts a SageMaker training job and waits until completion estimator.fit('s3://my_bucket/my_training_data/')

Em seguida, crie um segundo trabalho de treinamento correspondente. Neste exemplo, criamos my-training-job-2, que tem todos os atributos necessários para combinar my-training-job-1, mas tem um hiperparâmetro diferente para experimentação. O segundo trabalho de treinamento reutiliza o pool quente e inicia mais rápido do que o primeiro trabalho de treinamento. O exemplo de código a seguir usa um estimador do Tensorflow. O recurso de piscina aquecida pode ser usado com qualquer algoritmo de treinamento executado na Amazon SageMaker AI. Para obter mais informações sobre quais atributos precisam corresponder, consulte Combinar os trabalhos de treinamento.

# Creates an example estimator estimator = TensorFlow( ... entry_point='my-training-script.py', source_dir='code', role=role, model_dir='model_dir', framework_version='py37', py_version='pyxy', job_name='my-training-job-2', instance_type='ml.g4dn.xlarge', instance_count=1, volume_size=250, hyperparameters={ "batch-size": 512, "epochs": 2, "learning-rate": 1e-3, "beta_1": 0.9, "beta_2": 0.999, }, keep_alive_period_in_seconds=1800, ) # Starts a SageMaker training job and waits until completion estimator.fit('s3://my_bucket/my_training_data/')

Verifique o status do grupo de aquecimento de ambos os trabalhos de treinamento para confirmar se o grupo de aquecimento é Reused para my-training-job-1 e InUse para my-training-job-2.

nota

Os nomes dos trabalhos de treinamento têm sufixos de data/hora. Os exemplos de nomes my-training-job-1 de trabalhos de treinamento my-training-job-2 devem ser substituídos pelos nomes reais dos trabalhos de treinamento. Você pode usar o comando estimator.latest_training_job.job_name para buscar o nome real do trabalho de treinamento.

session.describe_training_job('my-training-job-1') session.describe_training_job('my-training-job-2')

O resultado de describe_training_job fornece todos os detalhes sobre um determinado trabalho de treinamento. Encontre o atributo WarmPoolStatus para verificar as informações sobre o grupo de aquecimento de um trabalho de treinamento. Sua saída deve ser semelhante ao seguinte exemplo:

# Warm pool status for training-job-1 ... 'WarmPoolStatus': {'Status': 'Reused', 'ResourceRetainedBillableTimeInSeconds': 1000, 'ReusedByName': my-training-job-2} ... # Warm pool status for training-job-2 ... 'WarmPoolStatus': {'Status': 'InUse'} ...

Atualizar um grupo de aquecimento

Quando o trabalho de treinamento estiver concluído e o status do grupo de aquecimento for Available, você poderá atualizar o valor KeepAlivePeriodInSeconds.

session.update_training_job(job_name, resource_config={"KeepAlivePeriodInSeconds":3600})

Encerrar um grupo de aquecimento

Para encerrar manualmente um grupo de aquecimento, defina o valor KeepAlivePeriodInSeconds como 0.

session.update_training_job(job_name, resource_config={"KeepAlivePeriodInSeconds":0})

O grupo de aquecimento é encerrado automaticamente quando excede o valor KeepAlivePeriodInSeconds designado ou se houver uma atualização de patch para o cluster.

Usando o console Amazon SageMaker AI

Por meio do console, você pode criar um ponto quente, liberar um ponto quente ou verificar o status do ponto quente e o tempo faturável de trabalhos de treinamento específicos. Você também pode ver qual trabalho de treinamento correspondente reutilizou um ponto quente.

  1. Abra o console do Amazon SageMaker AI e escolha Tarefas de treinamento no painel de navegação. Se aplicável, o status do ponto quente de cada trabalho de treinamento é visível na coluna Status do ponto quente e o tempo restante para um ponto quente ativo é visível na coluna Tempo restante.

  2. Para criar um trabalho de treinamento que use um ponto quente do console, escolha Criar trabalho de treinamento. Em seguida, não se esqueça de especificar um valor para o campo Período de manutenção ao configurar seus recursos de trabalho de treinamento. Esse valor deve ser um número inteiro entre 1 e 3600, o que representa o período de tempo em segundos.

  3. Para liberar um grupo de aquecimento do console, selecione um trabalho de treinamento específico e escolha Liberar cluster no menu suspenso Ações.

  4. Para ver mais informações sobre um grupo de aquecimento, escolha um nome do trabalho de treinamento. Na página de detalhes do trabalho, desça até a seção Status do pool quente para encontrar o status do grupo de aquecimento, o tempo restante se o status do ponto quente for Available, os segundos faturáveis do grupo de aquecimento e o nome do trabalho de treinamento que reutilizou o grupo de aquecimento se o status do grupo de aquecimento for Reused.

Usando o nível baixo SageMaker APIs

Use pools quentes gerenciados por SageMaker IA com a SageMaker API ou a AWS CLI.

SageMaker API DE IA

Configure pools quentes gerenciados por SageMaker IA usando a SageMaker API com os seguintes comandos:

AWS CLI

Configure pools quentes gerenciados por SageMaker IA usando a AWS CLI com os seguintes comandos:

Chave de condição do IAM

Opcionalmente, os administradores podem usar a chave de sagemaker:KeepAlivePeriod condição para restringir ainda mais os KeepAlivePeriodInSeconds limites de determinados usuários ou grupos. SageMaker Os pools quentes gerenciados por IA estão limitados a um KeepAlivePeriodInSeconds valor de 3600 segundos (60 minutos), mas os administradores podem reduzir esse limite, se necessário.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceKeepAlivePeriodLimit", "Effect": "Allow", "Action": [ "sagemaker:CreateTrainingJob" ], "Resource": "*", "Condition": { "NumericLessThanIfExists": { "sagemaker:KeepAlivePeriod": 1800 } } } ] }

Para obter mais informações, consulte Chaves de condição para Amazon SageMaker AI na Referência de autorização de serviço.