Use TensorBoard para depurar e analisar trabalhos de treinamento 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 TensorBoard para depurar e analisar trabalhos de treinamento na Amazon SageMaker

O Amazon SageMaker with TensorBoard é um recurso da Amazon SageMaker que traz as ferramentas de visualização do TensorBoardto SageMaker, integradas ao SageMaker treinamento e ao domínio. Ele fornece opções para administrar sua AWS conta e os usuários pertencentes à conta por meio do SageMaker domínio, para dar aos usuários do domínio acesso aos TensorBoard dados com as permissões apropriadas para o Amazon S3 e ajudar os usuários do domínio a realizar tarefas de depuração de modelos usando os plug-ins de visualização. TensorBoard SageMaker with TensorBoard é estendido com o plug-in SageMaker Data Manager, com o qual os usuários do domínio podem acessar várias tarefas de treinamento em um único local dentro do TensorBoard aplicativo.

nota

Esse recurso serve para treinar e depurar modelos de aprendizado profundo usando a PyTorch estrutura or. TensorFlow

Para cientistas de dados

O treinamento de modelos grandes pode ter problemas científicos que exigem que os cientistas de dados os depurem e resolvam a fim de melhorar a convergência do modelo e estabilizar os processos de gradiente descendente.

Quando você encontra problemas de treinamento do modelo, como perda não convergente ou desaparecimento ou explosão de pesos e gradientes, você precisa acessar os dados do tensor para aprofundar e analisar os parâmetros do modelo, os escalares e quaisquer métricas personalizadas. Usando SageMaker com TensorBoard, você pode visualizar os tensores de saída do modelo extraídos dos trabalhos de treinamento. Ao experimentar diferentes modelos, várias execuções de treinamento e hiperparâmetros de modelo, você pode selecionar vários trabalhos de treinamento TensorBoard e compará-los em um só lugar.

Para administradores

Por meio da página TensorBoard inicial no SageMaker console ou no SageMaker domínio, você pode gerenciar os usuários do TensorBoard aplicativo se for administrador de uma AWS conta ou SageMaker domínio. Cada usuário do domínio pode acessar seu próprio TensorBoard aplicativo com as permissões concedidas. Como administrador de SageMaker domínio e usuário do domínio, você pode criar e excluir o TensorBoard aplicativo com o nível de permissão que você tem.

Estruturas suportadas e Regiões da AWS

Esse recurso é compatível com as seguintes estruturas de aprendizado de máquina e Regiões da AWS.

Frameworks
  • PyTorch

  • TensorFlow

  • Transformadores Hugging Face

Regiões da AWS
  • Leste dos EUA (Norte da Virgínia) (us-east-1)

  • Leste dos EUA (Ohio) (us-east-2)

  • Oeste dos EUA (Oregon) (us-west-2)

  • Europa (Frankfurt) (eu-central-1)

  • Europa (Irlanda) (eu-west-1)

nota

A Amazon SageMaker TensorBoard executa o TensorBoard aplicativo em uma ml.r5.large instância e incorre em cobranças após o nível SageMaker gratuito ou o período de teste gratuito do recurso. Para obter mais informações, consulte Amazon SageMaker Pricing.

Pré-requisitos

A lista a seguir mostra os pré-requisitos para começar a usar. SageMaker TensorBoard

Prepare um trabalho de treinamento com uma configuração TensorBoard de dados de saída

Um trabalho de treinamento típico para aprendizado profundo SageMaker consiste em duas etapas principais: preparar um script de treinamento e configurar um iniciador de trabalhos de SageMaker treinamento. Nesta seção, você pode verificar as alterações necessárias para coletar dados TensorBoard compatíveis do SageMaker Treinamento.

Etapa 1: Modifique o script de treinamento

Certifique-se de determinar quais tensores e escalares de saída coletar e modificar as linhas de código em seu script de treinamento usando qualquer uma das seguintes ferramentas: TensorBoard X, TensorFlow Summary Writer, PyTorch Summary Writer ou SageMaker Debugger.

Além disso, certifique-se de especificar o caminho de saída de TensorBoard dados como o diretório de log (log_dir) para retorno de chamada no contêiner de treinamento.

Para obter mais informações sobre retornos de chamada por estrutura, consulte os recursos a seguir.

Etapa 2: Construir um lançador SageMaker de treinamento com configuração TensorBoard de dados

Use o sagemaker.debugger.TensorBoardOutputConfig ao configurar um estimador de SageMaker estrutura. Essa configuração API mapeia o bucket do S3 que você especifica para salvar TensorBoard dados com o caminho local no contêiner de treinamento (/opt/ml/output/tensorboard). Passe o objeto do módulo para o parâmetro tensorboard_output_config da classe do estimador. O trecho de código a seguir mostra um exemplo de preparação de um TensorFlow estimador com o TensorBoard parâmetro de configuração de saída.

nota

Este exemplo pressupõe que você use o SageMaker PythonSDK. Se você usar o nível baixo SageMaker API, inclua o seguinte na sintaxe da solicitação do. CreateTrainingJobAPI

"TensorBoardOutputConfig": { "LocalPath": "/opt/ml/output/tensorboard", "S3OutputPath": "s3_output_bucket" }
from sagemaker.tensorflow import TensorFlow from sagemaker.debugger import TensorBoardOutputConfig # Set variables for training job information, # such as s3_out_bucket and other unique tags. ... LOG_DIR="/opt/ml/output/tensorboard" output_path = os.path.join( "s3_output_bucket", "sagemaker-output", "date_str", "your-training_job_name" ) tensorboard_output_config = TensorBoardOutputConfig( s3_output_path=os.path.join(output_path, 'tensorboard'), container_local_output_path=LOG_DIR ) estimator = TensorFlow( entry_point="train.py", source_dir="src", role=role, image_uri=image_uri, instance_count=1, instance_type="ml.c5.xlarge", base_job_name="your-training_job_name", tensorboard_output_config=tensorboard_output_config, hyperparameters=hyperparameters )

Como acessar TensorBoard em SageMaker

Você pode acessar TensorBoard por dois métodos: programaticamente usando o sagemaker.interactive_apps.tensorboard módulo que gera um não assinado ou um pré-assinadoURL, ou usando a página TensorBoard inicial no console. SageMaker Depois de abrir TensorBoard, SageMaker executa o TensorBoard plug-in e encontra automaticamente todos os dados de saída do trabalho de treinamento em formato TensorBoard de arquivo compatível.

Abra TensorBoard usando o sagemaker.interactive_apps.tensorboard módulo

O sagemaker.interactive_apps.tensorboard módulo fornece uma função chamada get_app_url que gera não assinados ou pré-assinados URLs para abrir o TensorBoard aplicativo em qualquer ambiente na SageMaker Amazon. EC2 Isso é para fornecer uma experiência unificada para usuários do Studio Classic e não do Studio Classic. Para o ambiente Studio, você pode abrir TensorBoard executando a get_app_url() função como ela está ou também pode especificar um nome de trabalho para iniciar o rastreamento quando o TensorBoard aplicativo for aberto. Para ambientes que não sejam do Studio Classic, você pode abrir TensorBoard fornecendo suas informações de domínio e perfil de usuário para a função do utilitário. Com essa funcionalidade, independentemente de onde ou como você executa o código de treinamento e inicia trabalhos de treinamento, você pode acessar diretamente TensorBoard executando a get_app_url função em seu notebook ou terminal Jupyter.

nota

Essa funcionalidade está disponível no SageMaker Python SDK v2.184.0 e versões posteriores. Para usar essa funcionalidade, certifique-se de atualizar o SDK executandopip install sagemaker --upgrade.

Opção 1: Para SageMaker Studio Classic

Se você estiver usando o SageMaker Studio Classic, poderá abrir diretamente o TensorBoard aplicativo ou recuperar um não assinado URL executando a get_app_url função da seguinte maneira. Como você já está no ambiente Studio Classic e está conectado como usuário do domínio, get_app_url() gera não assinado URL porque não é necessário se autenticar novamente.

Para abrir o TensorBoard aplicativo

O código a seguir abre automaticamente o TensorBoard aplicativo a partir do código não assinado URL que a get_app_url() função retorna no navegador da Web padrão do seu ambiente.

from sagemaker.interactive_apps import tensorboard region = "us-west-2" app = tensorboard.TensorBoardApp(region) app.get_app_url( training_job_name="your-training_job_name" # Optional. Specify the job name to track a specific training job )

Para recuperar um arquivo não assinado URL e abrir o aplicativo manualmente TensorBoard

O código a seguir imprime um código não assinado URL que você pode copiar para um navegador da Web e abrir o TensorBoard aplicativo.

from sagemaker.interactive_apps import tensorboard region = "us-west-2" app = tensorboard.TensorBoardApp(region) print("Navigate to the following URL:") print( app.get_app_url( training_job_name="your-training_job_name", # Optional. Specify the name of the job to track. open_in_default_web_browser=False # Set to False to print the URL to terminal. ) )

Observe que, se você executar as duas amostras de código anteriores fora do ambiente do SageMaker Studio Classic, a função retornará URL à página TensorBoard inicial no SageMaker console, pois elas não têm informações de login no seu domínio e perfil de usuário. Para criar um pré-assinadoURL, consulte a Opção 2 na seção a seguir.

Opção 2: Para ambientes que não sejam do Studio Classic

Se você usa ambientes que não são do Studio Classic, como a instância do SageMaker Notebook ou AmazonEC2, e deseja abrir TensorBoard diretamente do ambiente em que está, precisará gerar um URL pré-assinado com suas informações de domínio e perfil de usuário. Um pré-assinado URL é URL aquele que está conectado ao Amazon SageMaker Studio Classic enquanto URL está sendo criado com seu domínio e perfil de usuário e, portanto, tem acesso a todos os aplicativos e arquivos de domínio associados ao seu domínio. Para abrir TensorBoard por meio de um pré-assinadoURL, use a get_app_url função com seu domínio e nome de perfil de usuário da seguinte forma.

Observe que essa opção exige que o usuário do domínio tenha a sagemaker:CreatePresignedDomainUrl permissão. Sem a permissão, o usuário do domínio receberá um erro de exceção.

Importante

Não compartilhe nenhum pré-assinadoURLs. A get_app_url função cria presignedURLs, que se autentica automaticamente com seu domínio e perfil de usuário e dá acesso a todos os aplicativos e arquivos associados ao seu domínio.

print( app.get_app_url( training_job_name="your-training_job_name", # Optional. Specify the name of the job to track. create_presigned_domain_url=True, # Reguired to be set to True for creating a presigned URL. domain_id="your-domain-id", # Required if creating a presigned URL (create_presigned_domain_url=True). user_profile_name="your-user-profile-name", # Required if creating a presigned URL (create_presigned_domain_url=True). open_in_default_web_browser=False, # Optional. Set to False to print the URL to terminal. optional_create_presigned_url_kwargs={} # Optional. Add any additional args for Boto3 create_presigned_domain_url ) )
dica

A get_app_url função é executada SageMaker.Client.create_presigned_domain_urlAPI AWS SDK for Python (Boto3) no backend. Como o Boto3 create_presigned_domain_url API cria um domínio pré-assinado URLs que expira em 300 segundos por padrão, o TensorBoard aplicativo pré-assinado URLs também expira em 300 segundos. Se você quiser estender o tempo de expiração, passe o argumento ExpiresInSeconds para o argumento optional_create_presigned_url_kwargs da função get_app_url da seguinte maneira:

optional_create_presigned_url_kwargs={"ExpiresInSeconds": 1500}
nota

Se alguma de suas entradas passadas para os argumentos de get_app_url for inválida, a função exibirá URL a para a página TensorBoard inicial em vez de abrir o TensorBoard aplicativo. A mensagem de saída seria semelhante ao seguinte:

Navigate to the following URL: https://us-west-2.console.aws.amazon.com/sagemaker/home?region=us-west-2#/tensor-board-landing

Abra TensorBoard usando a get_app_url função como um método estimator de classe

Se você estiver executando um trabalho de treinamento usando a estimator classe do SageMaker Python SDK e tiver um objeto ativo da estimator classe, também poderá acessar a get_app_urlfunção como um método de classe da estimator classe. Abra o TensorBoard aplicativo ou recupere um não assinado URL executando o get_app_url método da seguinte maneira. O método de get_app_url classe extrai o nome do trabalho de treinamento do estimador e abre o TensorBoard aplicativo com o trabalho especificado.

nota

Essa funcionalidade está disponível no SageMaker Python SDK v2.184.0 e versões posteriores. Para usar essa funcionalidade, certifique-se de atualizar o SDK executandopip install sagemaker --upgrade.

Opção 1: Para SageMaker Studio Classic

Para abrir o TensorBoard aplicativo

O código a seguir abre automaticamente o TensorBoard aplicativo a partir do método não assinado URL que o get_app_url() método retorna no navegador padrão do seu ambiente.

estimator.get_app_url( app_type=SupportedInteractiveAppTypes.TENSORBOARD # Required. )

Para recuperar um arquivo não assinado URL e abrir o aplicativo manualmente TensorBoard

O código a seguir imprime um código não assinado URL que você pode copiar para um navegador da Web e abrir o TensorBoard aplicativo.

print( estimator.get_app_url( app_type=SupportedInteractiveAppTypes.TENSORBOARD, # Required. open_in_default_web_browser=False, # Optional. Set to False to print the URL to terminal. ) )

Observe que, se você executar as duas amostras de código anteriores fora do ambiente do SageMaker Studio Classic, a função retornará URL à página TensorBoard inicial no SageMaker console, pois elas não têm informações de login no seu domínio e perfil de usuário. Para criar um pré-assinadoURL, consulte a Opção 2 na seção a seguir.

Opção 2: Para ambientes que não sejam do Studio Classic

Se você usa ambientes que não são do Studio Classic, como a instância do SageMaker Notebook e a AmazonEC2, e deseja gerar um pré-assinado URL para abrir o TensorBoard aplicativo, use o get_app_url método com suas informações de domínio e perfil de usuário da seguinte forma.

Observe que essa opção exige que o usuário do domínio tenha a sagemaker:CreatePresignedDomainUrl permissão. Sem a permissão, o usuário do domínio receberá um erro de exceção.

Importante

Não compartilhe nenhum pré-assinadoURLs. A get_app_url função cria presignedURLs, que se autentica automaticamente com seu domínio e perfil de usuário e dá acesso a todos os aplicativos e arquivos associados ao seu domínio.

print( estimator.get_app_url( app_type=SupportedInteractiveAppTypes.TENSORBOARD, # Required create_presigned_domain_url=True, # Reguired to be set to True for creating a presigned URL. domain_id="your-domain-id", # Required if creating a presigned URL (create_presigned_domain_url=True). user_profile_name="your-user-profile-name", # Required if creating a presigned URL (create_presigned_domain_url=True). open_in_default_web_browser=False, # Optional. Set to False to print the URL to terminal. optional_create_presigned_url_kwargs={} # Optional. Add any additional args for Boto3 create_presigned_domain_url ) )

Abra TensorBoard através do SageMaker console

Você também pode usar a interface do SageMaker console para abrir o TensorBoard aplicativo. Há duas opções para abrir o TensorBoard aplicativo pelo SageMaker console.

Opção 1: iniciar TensorBoard a partir da página de detalhes do domínio

Navegue até a página de detalhes do domínio

O procedimento a seguir mostra como navegar até a página de detalhes do domínio.

  1. Abra o SageMaker console da Amazon em https://console.aws.amazon.com/sagemaker/.

  2. No painel de navegação à esquerda, escolha Configurações do administrador.

  3. Em Configurações do administrador, escolha domínios.

  4. Na lista de domínios, selecione o domínio no qual você deseja iniciar o TensorBoard aplicativo.

Executar um aplicativo de perfil de usuário

O procedimento a seguir mostra como iniciar um aplicativo Studio Classic que tem como escopo um perfil de usuário.

  1. Na página de detalhes do domínio, escolha a guia Perfis de usuário.

  2. Identifique o perfil de usuário para o qual você deseja iniciar o aplicativo Studio Classic.

  3. Escolha Iniciar para o perfil de usuário selecionado e, em seguida, escolha TensorBoard.

Opção 2: iniciar TensorBoard a partir da página TensorBoard de destino

O procedimento a seguir descreve como iniciar um TensorBoard aplicativo a partir da TensorBoard página inicial.

  1. Abra o SageMaker console da Amazon em https://console.aws.amazon.com/sagemaker/.

  2. No painel de navegação esquerdo, escolha TensorBoard.

  3. Em Começar, selecione o domínio no qual você deseja iniciar o aplicativo Studio Classic. Se seu perfil de usuário pertencer apenas a um domínio, você não verá a opção de selecionar um domínio.

  4. Selecione o perfil de usuário para o qual você deseja iniciar o aplicativo Studio Classic. Se não houver perfil de usuário no domínio, escolha Criar perfil de usuário. Para obter mais informações, consulte Remover perfis de usuário.

  5. Escolha Abrir TensorBoard.

A captura de tela a seguir mostra a localização de TensorBoard no painel de navegação esquerdo do SageMaker console e a página TensorBoard inicial SageMaker com no painel principal.

A página TensorBoard de destino

Acesse e visualize os dados de saída do treinamento em TensorBoard

Você pode realizar uma análise on-line ou off-line carregando os tensores de saída coletados dos buckets S3 combinados com trabalhos de treinamento durante ou após o treinamento.

Quando você abre o TensorBoard aplicativo, TensorBoard abre com a guia Gerenciador de SageMaker dados. A captura de tela a seguir mostra a visualização completa da guia Gerenciador de SageMaker dados no TensorBoard aplicativo.

A exibição da guia Gerenciador de SageMaker dados.

Na guia Gerenciador de SageMaker dados, você pode selecionar qualquer trabalho de treinamento e carregar dados TensorBoard de saída de treinamento compatíveis do Amazon S3.

  1. Na seção Pesquisar trabalhos de treinamento, use os filtros para restringir a lista de trabalhos de treinamento que você deseja encontrar, carregar e visualizar.

  2. Na seção Lista de trabalhos de treinamento, use as caixas de seleção para escolher os trabalhos de treinamento dos quais você deseja extrair dados e visualizar para depuração.

  3. Escolha Adicionar trabalhos selecionados. Os trabalhos selecionados devem aparecer na seção Trabalhos de treinamento monitorados, conforme mostrado na captura de tela a seguir.

    A seção Trabalhos de treinamento rastreados.
nota

A guia Gerenciador de SageMaker dados mostra somente os trabalhos de treinamento configurados com o TensorBoardOutputConfig parâmetro. Verifique se você configurou o SageMaker estimador com esse parâmetro. Para obter mais informações, consulte Etapa 2: Construir um lançador SageMaker de treinamento com configuração TensorBoard de dados.

nota

As guias de visualização podem não aparecer se você estiver usando SageMaker com TensorBoard pela primeira vez ou se nenhum dado for carregado de um uso anterior. Depois de adicionar trabalhos de treinamento e esperar alguns segundos, atualize o visualizador escolhendo a seta circular no sentido horário no canto superior direito. As guias de visualização devem aparecer depois que os dados do trabalho forem carregados com êxito. Você também pode configurar a atualização automática usando o botão Configurações ao lado do botão de atualização no canto superior direito.

Explore os dados de resultados de treinamento visualizados em TensorBoard

Nas guias gráficas, você pode ver a lista dos trabalhos de treinamento carregados no painel esquerdo. Você também pode usar as caixas de seleção dos trabalhos de treinamento para mostrar ou ocultar visualizações. Os plug-ins TensorBoard dinâmicos são ativados dinamicamente, dependendo de como você configurou seu script de treinamento para incluir redatores de resumos e retornos de chamada de transmissão para coleção de tensores e escalares e, portanto, as guias gráficas também aparecem dinamicamente. As capturas de tela a seguir mostram exemplos de visualizações de cada guia com a visualização de dois trabalhos de treinamento que coletaram métricas para plug-ins de séries temporais, escalares, gráficos, distribuição e histogramas.

A visualização da TIME SERIES guia

A visualização da TIMESERIESguia.

A visualização da SCALARS guia

A visualização da SCALARSguia.

A visualização da GRAPHS guia

A visualização da GRAPHSguia.

A visualização da DISTRIBUTIONS guia

A visualização da DISTRIBUTIONSguia.

A visualização da HISTOGRAMS guia

A visualização da HISTOGRAMSguia.

Excluir aplicativos não utilizados TensorBoard

Depois de concluir o monitoramento e a experimentação dos trabalhos em TensorBoard, encerre o TensorBoard aplicativo.

  1. Abra o SageMaker console.

  2. No painel de navegação à esquerda, escolha Configurações do administrador.

  3. Em Configurações do administrador, escolha domínios.

  4. Escolha o seu domínio.

  5. Escolha seu perfil de usuário.

  6. Em Aplicativos, escolha Excluir aplicativo para a TensorBoard linha.

  7. Escolha Sim, excluir o aplicativo.

  8. Digite delete no campo de texto e escolha Excluir.

  9. Uma mensagem azul deve aparecer na parte superior da tela: o padrão está sendo excluído.

Considerações

Considere o seguinte ao usar SageMaker com TensorBoard.

  • Você não pode compartilhar os TensorBoard aplicativos para fins de colaboração porque o SageMaker domínio não permite o compartilhamento de aplicativos entre usuários. Os usuários podem compartilhar os tensores de saída salvos em um bucket do S3, se tiverem acesso ao bucket.

  • Os plug-ins de visualização podem não aparecer quando você inicia o TensorBoard aplicativo pela primeira vez. Depois de selecionar trabalhos de treinamento no plug-in SageMaker Data Manager, o TensorBoard aplicativo carrega os TensorBoard dados e preenche os plug-ins de visualização.

  • O TensorBoard aplicativo é desligado automaticamente após 1 hora de inatividade. Se você quiser encerrar o aplicativo quando terminar de usá-lo, desligue-o manualmente TensorBoard para evitar pagar pela instância que o hospeda. Para obter instruções sobre como excluir o aplicativo, consulte Excluir aplicativos não utilizados TensorBoard .

  • O TensorBoard aplicativo foi SageMaker projetado para fornecer out-of-the-box suporte para trabalhos SageMaker de treinamento. Essa integração integrada permite um mapeamento contínuo entre o diretório local dentro do contêiner de treinamento e um bucket do Amazon S3, facilitado na camada. CreateTrainingJobAPI Com essa integração, você pode mapear facilmente os caminhos do diretório conforme descrito na seção Preparar um trabalho de treinamento com uma configuração de dados TensorBoard de saída.

    No entanto, observe que o TensorBoard aplicativo não fornece out-of-the-box suporte para trabalhos de ajuste de SageMaker hiperparâmetros, pois não CreateHyperParameterTuningJobAPIestá integrado à configuração TensorBoard de saída do mapeamento. Para usar o TensorBoard aplicativo para trabalhos de ajuste de hiperparâmetros, você precisa escrever código para fazer o upload de métricas para o Amazon S3 em seu script de treinamento. Depois que as métricas são carregadas em um bucket do Amazon S3, você pode carregar o bucket no TensorBoard aplicativo em. SageMaker