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.
Tópicos
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
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
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.
-
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. -
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.
-
Para liberar um grupo de aquecimento do console, selecione um trabalho de treinamento específico e escolha Liberar cluster no menu suspenso Ações.
-
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 forReused
.
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.