Use pontos de verificação na 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 na Amazon SageMaker

Use pontos de verificação na Amazon SageMaker para salvar o estado dos modelos de aprendizado de máquina (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.

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 S3 Express One Zone para aumentar as velocidades de acesso.

  • Use pontos de verificação com treinamento local SageMaker gerenciado para economizar nos custos de treinamento.

O mecanismo de SageMaker treinamento usa contêineres de treinamento em EC2 instâncias da Amazon, 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). SageMaker fornece a funcionalidade de copiar os pontos de verificação do caminho local para o Amazon S3 e sincroniza automaticamente os pontos de verificação desse diretório com o S3. Os pontos de verificação existentes no S3 são gravados no SageMaker contêiner 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. 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 no SageMaker contêiner, ele também será excluído na pasta S3.

Você pode usar pontos de verificação na Amazon SageMaker com a classe de armazenamento Amazon S3 Express One Zone (S3 Express One Zone) para acesso mais rápido aos pontos de verificação. Ao ativar o ponto de verificação e especificar o S3 URI para o destino de armazenamento do ponto de verificação, você pode fornecer um S3 URI para uma pasta em um bucket de uso geral do S3 ou em um bucket de diretório do S3. Para obter mais informações sobre o S3 Express One Zone e os buckets de diretório do S3, consulte O que é o S3 Express One Zone.

Se você estiver usando pontos de verificação com treinamento spot SageMaker gerenciado, SageMaker gerencia a verificação do seu modelo de treinamento em uma instância spot e a retomada do trabalho de treinamento na próxima instância spot. Com o treinamento local SageMaker gerenciado, 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 estruturas e algoritmos em SageMaker

Use pontos de verificação para salvar instantâneos de modelos de ML criados em suas estruturas preferidas. SageMaker

SageMaker estruturas e algoritmos que suportam pontos de verificação

SageMaker suporta pontos de verificação para AWS Deep Learning Containers e um subconjunto de algoritmos integrados sem exigir alterações no script de treinamento. 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 local gerenciado, SageMaker não permita um tempo máximo de espera superior a uma hora pelo 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 outras estruturas não listadas na seção anterior, deverá configurar adequadamente seu script de treinamento usando retornos de chamada ou treinamento APIs para salvar pontos de verificação no caminho local ('/opt/ml/checkpoints') e carregar a partir do caminho local em seu script de treinamento. SageMaker os estimadores podem se sincronizar com o caminho local e salvar os pontos de verificação no Amazon S3.

Ativar ponto de verificação

Depois de ativar o ponto de verificação, SageMaker salva os pontos de verificação no Amazon S3 e sincroniza seu trabalho de treinamento com o bucket do ponto de verificação S3. Você pode usar buckets S3 de uso geral ou buckets de diretório S3 para seu bucket S3 de 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 criar um SageMaker estimador. Para habilitar pontos de verificação, adicione os parâmetros checkpoint_s3_uri e checkpoint_local_path ao seu estimador.

O modelo de exemplo a seguir mostra como criar um SageMaker estimador genérico e ativar o checkpoint. Você pode usar esse modelo para os algoritmos compatíveis especificando o parâmetro image_uri. Para encontrar uma imagem do Docker URIs para algoritmos com checkpoint suportado por SageMaker, consulte Docker Registry Paths and Example Code. Você também pode Estimator substituir estimator e por classes principais SageMaker de estimadores e classes de estimadores de outras estruturas, como,, e. TensorFlow PyTorch MXNet HuggingFace 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 '/opt/ml/checkpoints' para que sejam consistentes com as configurações padrão do SageMaker ponto de verificação. Se você preferir especificar seu próprio caminho local, certifique-se de combinar o caminho de salvamento do ponto de verificação em seu script de treinamento e o checkpoint_local_path parâmetro dos SageMaker estimadores.

  • checkpoint_s3_uri— URI Para um bucket S3 onde os pontos de verificação são armazenados em tempo real. Você pode especificar um bucket de uso geral do S3 ou um bucket de diretório do S3 para armazenar seus pontos de verificação. Para obter mais informações sobre buckets de diretório do S3, consulte Buckets de diretório no Guia do usuário do Amazon Simple Storage Service.

Para encontrar uma lista completa dos parâmetros do SageMaker estimador, consulte o Estimador na documentação do API Amazon Python. SageMaker SDK

Procure arquivos de pontos de verificação

Localize arquivos de ponto de verificação usando o SageMaker SDK Python e o console Amazon S3.

Para encontrar os arquivos do ponto de verificação programaticamente

Para recuperar o bucket do S3 em URI 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 S3 para pontos de verificação configurados ao solicitar a solicitação. CreateTrainingJob Para encontrar os arquivos de ponto de verificação salvos usando o console S3, use o procedimento a seguir.

Para encontrar os arquivos do ponto de verificação no console S3
  1. Faça login no AWS Management Console e abra o SageMaker console 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 em um posto de controle

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 Ativar ponto 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. Certifique-se de que o bucket do S3 esteja na mesma região da SageMaker sessão atual.

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

Reparos de clusters para GPU erros

Se você estiver executando um trabalho de treinamento que falhe em umGPU, SageMaker executará uma verificação de GPU integridade para ver se a falha está relacionada a um GPU problema. SageMaker executa as seguintes ações com base nos resultados da verificação de saúde:

  • Se o erro for recuperável e puder ser corrigido reinicializando a instância ou redefinindo aGPU, a instância SageMaker será reinicializada.

  • Se o erro não for recuperável e causado por um GPU que precise ser substituído, SageMaker substituirá a instância.

A instância é substituída ou reinicializada como parte de um processo de reparo do SageMaker cluster. Durante esse processo, você verá a seguinte mensagem no status do seu trabalho de treinamento:

Repairing training cluster due to hardware failure

SageMaker tentará reparar o cluster até 10 vezes. Se o reparo do cluster for bem-sucedido, SageMaker reiniciará automaticamente o trabalho de treinamento a partir do ponto de verificação anterior. Se o reparo do cluster falhar, o trabalho de treinamento também falhará. Você não será cobrado pelo processo de reparo do cluster. Os reparos do cluster não serão iniciados a menos que seu trabalho de treinamento falhe. Se for detectado um GPU problema em um cluster de warmpool, o cluster entrará no modo de reparo para reinicializar ou substituir a instância com defeito. Após o reparo, o cluster ainda pode ser usado como um cluster de piscina aquecida.

O processo de reparo de clusters e instâncias descrito anteriormente é mostrado no diagrama a seguir:

The cluster and instance repair process.

Considerações sobre pontos de verificação

Considere o seguinte ao usar pontos de verificação em 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 do SageMaker ponto de verificação 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 não SDK suporta configuração de alto nível para frequência de checkpoint. 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 SageMaker pontos de verificação com o SageMaker Debugger e SageMaker distribuídos e está enfrentando problemas, consulte as páginas a seguir para solução de problemas e considerações.