Use pontos de verificação no Amazon SageMaker - Amazon SageMaker

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.

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.

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.


                Diagrama de arquitetura dos pontos de verificação de escrita durante o treinamento.

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 import Estimator 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âmetro checkpoint_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 na documentação do Amazon Sagemaker Python SDK.

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
  1. Faça login no AWS Management Console e abra o console do SageMaker em https://console.aws.amazon.com/sagemaker/.

  2. No painel de navegação à esquerda, escolha Trabalhos de treinamento.

  3. Escolha o link para o trabalho de treinamento com pontos de verificação ativados para abrir as configurações de trabalho.

  4. Na página de configurações de trabalho de treinamento, localize a seção Configuração dos pontos de verificação.

    
                        Seção de configuração do ponto de verificação na página de configurações de um trabalho de treinamento.
  5. 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.


                Diagrama de arquitetura dos pontos de verificação de sincronização para retomar o treinamento.

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.