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 pontos de verificação no Amazon SageMaker
Use pontos de verificação no Amazon SageMaker para salvar o estado dos modelos de machine learning (ML) durante o treinamento. Os pontos de verificação são snapshots do modelo e podem ser configurados pelas funções de retorno de chamada dos frameworks de ML. Você pode usar pontos de verificação salvos para reiniciar um trabalho de treinamento a partir do ponto de verificação salvo pela última vez.
O mecanismo de treinamento do SageMaker usa contêineres de treinamento em instâncias do Amazon EC2 e os arquivos do ponto de verificação são salvos em um diretório local dos contêineres (o padrão é /opt/ml/checkpoints
). O SageMaker fornece a funcionalidade de copiar os pontos de verificação do caminho local para o Amazon S3 e sincronizar automaticamente os pontos de verificação desse diretório com o Amazon S3. Os pontos de verificação existentes no S3 são gravados no contêiner do SageMaker no início do trabalho, permitindo que os trabalhos sejam retomados a partir de um ponto de verificação. Os pontos de verificação adicionados à pasta S3 após o início do trabalho não são copiados para o contêiner de treinamento. O SageMaker também grava novos pontos de verificação do contêiner no S3 durante o treinamento. Se um ponto de verificação for excluído do contêiner do SageMaker, ele também será excluído da pasta do S3.
Usando pontos de verificação, você pode fazer o seguinte:
-
Salvar os snapshots do seu modelo durante o treinamento devido a uma interrupção inesperada na instância ou trabalho de treinamento.
-
Retome o treinamento do modelo no futuro a partir de um ponto de verificação.
-
Analise o modelo em estágios intermediários de treinamento.
-
Use pontos de verificação com o treinamento de spot gerenciado pelo SageMaker para economizar nos custos de treinamento.
Se você estiver usando pontos de verificação com o treinamento de spot gerenciado pelo SageMaker, o SageMaker gerencia os pontos de verificação do seu modelo de treinamento em uma instância spot e a retoma o trabalho de treinamento na próxima instância spot. Com o treinamento de spot gerenciado pelo SageMaker, você pode reduzir significativamente o tempo faturável para treinar modelos de ML. Para obter mais informações, consulte Use o treinamento local gerenciado na Amazon SageMaker.
Tópicos
Pontos de verificação para frameworks e algoritmos no SageMaker
Use pontos de verificação para salvar snapshots de modelos de ML criados em seus frameworks preferidos no SageMaker.
Frameworks e algoritmos do SageMaker que oferecem suporte aos pontos de verificação
O SageMaker suporta pontos de verificação para Contêineres de Aprendizado Profundo AWS e um subconjunto de algoritmos integrados sem exigir alterações no script de treinamento. O SageMaker salva os pontos de verificação no caminho local padrão '/opt/ml/checkpoints'
e os copia para o Amazon S3.
-
Contêineres de Aprendizado Profundo: TensorFlow
, PyTorch , MXNet e HuggingFace nota
Se você estiver usando o estimador de framework do HuggingFace, precisará especificar um caminho de saída do ponto de verificação por meio de hiperparâmetros. Para obter mais informações, consulte Executar treinamento no Amazon SageMaker
na documentação do HuggingFace. -
Algoritmos integrados: classificação de imagens, detecção de objetos, segmentação de semântica e XGBoost (0.90-1 ou posterior)
nota
Se você estiver usando o algoritmo XGBoost no modo de framework (modo script), precisará trazer um script de treinamento do XGBoost com ponto de verificação configurado manualmente. Para obter mais informações sobre os métodos de treinamento do XGBoost para salvar instantâneos do modelo, consulte Treinamento do XGBoost
na documentação do XGBoost Python SDK.
Se um algoritmo pré-criado que não suporta pontos de verificação for usado em um trabalho de treinamento de spot gerenciado, o SageMaker não permite um tempo de espera máximo maior que uma hora para trabalho, a fim de limitar o tempo de treinamento desperdiçado devido a interrupções.
Para contêineres de treinamento personalizados e outros frameworks
Se você estiver usando seus próprios contêineres de treinamento, scripts de treinamento ou outros frameworks não listados na seção anterior, deverá configurar adequadamente seu script de treinamento usando retornos de chamada ou APIs de treinamento para salvar pontos de verificação no caminho local ('/opt/ml/checkpoints'
) e carregar a partir do caminho local em seu script de treinamento. Os estimadores do SageMaker podem se sincronizar com o caminho local e salvar os pontos de verificação no Amazon S3.
Habilitar pontos de verificação
Depois de habilitar pontos de verificação, o SageMaker salva os pontos de verificação no Amazon S3 e sincroniza seu trabalho de treinamento com o bucket S3 do ponto de verificação.
O exemplo a seguir mostra como configurar caminhos de ponto de verificação ao construir um estimador do SageMaker. Para habilitar pontos de verificação, adicione os parâmetros checkpoint_s3_uri
e checkpoint_local_path
ao seu estimador.
O seguinte modelo de exemplo mostra como criar um estimador genérico do SageMaker e habilitar pontos de verificação. Você pode usar esse modelo para os algoritmos compatíveis especificando o parâmetro image_uri
. Para encontrar URIs de imagem do Docker para algoritmos com pontos de verificação compatíveis com o SageMaker, consulte Caminhos de registro do Docker e código de exemplo. Você também pode substituir estimator
e Estimator
com as classes pais e de estimadores de frameworks do SageMaker e classes de estimadores como TensorFlow
, PyTorch
, MXNet
, HuggingFace
e XGBoost
.
import sagemaker from sagemaker.
estimator
importEstimator
bucket=sagemaker.Session().default_bucket() base_job_name="sagemaker-checkpoint-test
" checkpoint_in_bucket="checkpoints
" # The S3 URI to store the checkpoints checkpoint_s3_bucket="s3://{}/{}/{}".format(bucket, base_job_name, checkpoint_in_bucket) # The local path where the model will save its checkpoints in the training container checkpoint_local_path="/opt/ml/checkpoints" estimator =Estimator
( ... image_uri="<ecr_path>
/<algorithm-name>
:<tag>
" # Specify to use built-in algorithms output_path=bucket, base_job_name=base_job_name, # Parameters required to enable checkpointing checkpoint_s3_uri=checkpoint_s3_bucket, checkpoint_local_path=checkpoint_local_path )
Os dois parâmetros a seguir especificam caminhos para pontos de verificação:
-
checkpoint_local_path
– Especifique o caminho local em que o modelo salva os pontos de verificação periodicamente em um contêiner de treinamento. O caminho padrão é definido como'/opt/ml/checkpoints'
. Se você estiver usando outros frameworks ou trazendo seu próprio contêiner de treinamento, certifique-se de que a configuração do ponto de verificação do seu script de treinamento especifique o caminho para'/opt/ml/checkpoints'
.nota
Recomendamos especificar os caminhos locais como
'/opt/ml/checkpoints'
para que sejam consistentes com as configurações padrão do ponto de verificação do SageMaker. Se você preferir especificar seu próprio caminho local, certifique-se de corresponder o caminho de salvamento do ponto de verificação em seu script de treinamento e o parâmetrocheckpoint_local_path
dos estimadores do SageMaker. -
checkpoint_s3_uri
– URI para um bucket do S3 em que os pontos de verificação são armazenados em tempo real.
Para encontrar uma lista completa dos parâmetros do estimador do SageMaker, consulte a API do Estimator
Procurar arquivos de ponto de verificação
Localize arquivos de ponto de verificação usando o SageMaker Python SDK e o console do Amazon S3.
Para encontrar os arquivos do ponto de verificação programaticamente
Para recuperar o URI do bucket do S3 em que os pontos de verificação são salvos, verifique o seguinte atributo do estimador:
estimator.checkpoint_s3_uri
Isso retorna o caminho de saída do Amazon S3 para pontos de verificação configurados ao fazer a solicitação CreateTrainingJob
. Para encontrar os arquivos de ponto de verificação salvos usando o console do Amazon S3, use o procedimento a seguir.
Como encontrar os arquivos do ponto de verificação no console do Amazon S3
-
Faça login no AWS Management Console e abra o console do SageMaker em https://console.aws.amazon.com/sagemaker/
. -
No painel de navegação à esquerda, escolha Trabalhos de treinamento.
-
Escolha o link para o trabalho de treinamento com pontos de verificação ativados para abrir as configurações de trabalho.
-
Na página de configurações de trabalho de treinamento, localize a seção Configuração dos pontos de verificação.
-
Use o link para o bucket do S3 para acessar os arquivos de pontos de verificação.
Retomar o treinamento a partir de um ponto de verificação
Para retomar um trabalho de treinamento a partir de um ponto de verificação, execute um novo estimador com o mesmo checkpoint_s3_uri
que você criou na seção Habilitar pontos de verificação. Depois que o treinamento for retomado, os pontos de verificação desse bucket do S3 serão restaurados para checkpoint_local_path
em cada instância do novo trabalho de treinamento. Um bucket do S3 deve existir na mesma região da sessão atual do SageMaker.
Considerações sobre pontos de verificação
Leve em consideração o seguinte ao usar pontos de verificação no SageMaker.
-
Para evitar substituições em treinamentos distribuídos com várias instâncias, você deve configurar manualmente os nomes e caminhos dos arquivos do ponto de verificação em seu script de treinamento. A configuração de alto nível de pontos de verificação do SageMaker especifica um único local do Amazon S3 sem sufixos ou prefixos adicionais para marcar pontos de verificação de várias instâncias.
-
O SageMaker Python SDK não oferece suporte à configuração de alto nível para frequência de pontos de verificação. Para controlar a frequência de pontos de verificação, modifique seu script de treinamento usando as funções de salvamento do modelo ou os retornos de chamada do ponto de verificação do framekwork.
-
Se você usa pontos de verificação do SageMaker com o Depurador do SageMaker e o SageMaker distribuído e está enfrentando problemas, consulte as páginas a seguir para solução de problemas e considerações.