Monitoramento padrão do sistema e criação de perfil de estrutura personalizada com diferentes opções de criação de perfil - 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á.

Monitoramento padrão do sistema e criação de perfil de estrutura personalizada com diferentes opções de criação de perfil

Esta seção fornece informações sobre as classes de configuração de criação de perfil suportadas, bem como um exemplo de configuração. Você pode usar as seguintes classes de configuração de criação de perfil para gerenciar as opções de criação de perfil da framework:

  • DetailedProfilingConfig— Especifique uma etapa ou intervalo de tempo alvo para traçar o perfil das operações da estrutura usando os perfiladores nativos da estrutura (TensorFlow profiler e PyTorch profiler). Por exemplo, se estiver usando TensorFlow, os ganchos do Debugger permitem que o TensorFlow criador de perfil colete métricas de estrutura específicas. TensorFlow A criação de perfil detalhada permite traçar o perfil de todos os operadores da framework em uma etapa prévia (antes da primeira etapa), dentro das etapas e entre as etapas de um trabalho de treinamento.

    nota

    O perfil detalhado pode aumentar significativamente o consumo GPU de memória. Não recomendamos ativar a criação de perfil detalhado por mais de algumas etapas.

  • DataloaderProfilingConfig— Especifique uma etapa ou intervalo de tempo alvo para traçar o perfil dos processos do carregador de dados da estrutura de aprendizado profundo. O Debugger coleta todos os eventos do carregador de dados das frameworks.

    nota

    O perfil do carregador de dados pode diminuir o desempenho do treinamento ao coletar informações dos carregadores de dados. Não recomendamos ativar o perfil do carregador de dados para mais do que algumas etapas.

    O depurador é pré-configurado para anotar os processos do carregador de dados somente para os contêineres de aprendizado profundo AWS . O Debugger não pode criar o perfil dos processos do carregador de dados de nenhum outro contêiner de treinamento personalizado ou externo.

  • PythonProfilingConfig— Especifique uma etapa ou intervalo de tempo alvo para criar o perfil das funções do Python. Você também pode escolher entre dois criadores de perfil do Python: cProfile e o Pyinstrument.

    • cProfile— O criador de perfil padrão do Python. cProfile coleta informações para cada operador Python chamado durante o treinamento. ComcProfile, o Debugger economiza tempo cumulativo e anotações para cada chamada de função, fornecendo detalhes completos sobre as funções do Python. No aprendizado profundo, por exemplo, as funções mais frequentemente chamadas podem ser os filtros convolucionais e os operadores de retrocesso, e traçam o cProfile perfil de cada uma delas. Para a cProfile opção, você pode selecionar ainda mais uma opção de cronômetro: tempo total, CPU tempo e CPU tempo de folga. Embora você possa traçar o perfil de cada chamada de função executada nos processadores (ambos CPU eGPU) em CPU tempo hábil, você também pode identificar gargalos de E/S ou de rede com a opção de tempo de inatividade. CPU O padrão é o tempo total e o Debugger define o perfil tanto do tempo de inatividade quanto do tempo de CPU inatividade. CPU ComcProfile, você pode detalhar todas as funções ao analisar os dados do perfil.

    • Pyinstrument — Pyinstrument é um criador de perfil Python de baixa sobrecarga que funciona com base em amostragem. Com a opção Pyinstrument, o Debugger coleta amostras de eventos de criação de perfil a cada milissegundo. Como o Pyinstrument mede o tempo decorrido do relógio de parede em vez do CPU tempo, a opção Pyinstrument pode ser uma escolha melhor do que a cProfile opção para reduzir o ruído de criação de perfil (filtrar chamadas de função irrelevantes que são cumulativamente rápidas) e capturar operadores que, na verdade, exigem muita computação (cumulativamente lentos) para treinar seu modelo. Com o Pyinstrument, você pode ver uma árvore de chamadas de função e entender melhor a estrutura e a causa raiz da lentidão.

    nota

    Habilitar a criação de perfil do Python pode diminuir o tempo geral de treinamento. cProfile traça o perfil dos operadores Python chamados com mais frequência em cada chamada, portanto, o tempo de processamento na criação de perfil aumenta em relação ao número de chamadas. Para Pyinstrument, o tempo cumulativo de criação de perfil aumenta em relação ao tempo devido ao seu mecanismo de amostragem.

O exemplo de configuração a seguir mostra a estrutura completa quando você usa as diferentes opções de criação de perfil com valores especificados.

import time from sagemaker.debugger import (ProfilerConfig, FrameworkProfile, DetailedProfilingConfig, DataloaderProfilingConfig, PythonProfilingConfig, PythonProfiler, cProfileTimer) profiler_config=ProfilerConfig( system_monitor_interval_millis=500, framework_profile_params=FrameworkProfile( detailed_profiling_config=DetailedProfilingConfig( start_step=5, num_steps=1 ), dataloader_profiling_config=DataloaderProfilingConfig( start_step=7, num_steps=1 ), python_profiling_config=PythonProfilingConfig( start_step=9, num_steps=1, python_profiler=PythonProfiler.CPROFILE, cprofile_timer=cProfileTimer.TOTAL_TIME ) ) )

Para obter mais informações sobre as opções de criação de perfil disponíveis DetailedProfilingConfig, consulte DataloaderProfilingConfig, e PythonProfilingConfigno Amazon SageMaker Python SDK.