

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á.

# Configuração do estimador para criação de perfil de framework
<a name="debugger-configure-framework-profiling"></a>

**Atenção**  
Em favor do [Amazon SageMaker Profiler](train-use-sagemaker-profiler.md), o SageMaker AI Debugger desaprova o recurso de criação de perfil da estrutura a partir da versão 2.11 e 2.0. TensorFlow PyTorch Você ainda pode usar o recurso nas versões anteriores das estruturas e da SDKs seguinte forma.   
SageMaker SDK para Python <= v2.130.0
PyTorch >= v1.6.0, < v2.0
TensorFlow >= v2.3.1, < v2.11
Consulte também [16 de março de 2023](debugger-release-notes.md#debugger-release-notes-20230315).

Para habilitar a criação de perfil da framework do Debugger, configure o parâmetro `framework_profile_params` ao criar um estimador. O perfil da framework do Debugger coleta métricas da framework, como dados do estágio de inicialização, processos do carregador de dados, operadores Python de frameworks de aprendizado profundo e scripts de treinamento, perfis detalhados dentro e entre as etapas, com as opções cProfile ou Pyinstrument. Usando a classe `FrameworkProfile`, você pode configurar opções de criação de perfil da framework personalizada. 

**nota**  
Antes de começar com a criação de perfil da framework do Debugger, verifique se a framework usada para criar seu modelo é compatível com o Debugger para a criação de perfil da framework. Para obter mais informações, consulte [Algoritmos e frameworks compatíveis](debugger-supported-frameworks.md).   
O Debugger salva as métricas da framework no bucket do padrão do S3. O formato do URI padrão do bucket do S3 é `s3://sagemaker-<region>-<12digit_account_id>/<training-job-name>/profiler-output/`.

**Topics**
+ [Criação de perfil de framework padrão](debugger-configure-framework-profiling-basic.md)
+ [Monitoramento padrão do sistema e o perfil personalizado de framework para etapas específicas ou um intervalo de tempo de destino](debugger-configure-framework-profiling-range.md)
+ [Monitoramento padrão do sistema e a criação de perfil personalizado de framework com diferentes opções de criação de perfil](debugger-configure-framework-profiling-options.md)

# Criação de perfil de framework padrão
<a name="debugger-configure-framework-profiling-basic"></a>

O perfil da framework do Depurador inclui as seguintes opções: perfil detalhado, perfil do carregador de dados e perfil do Python. O código de exemplo a seguir é a configuração de `profiler_config` parâmetros mais simples para iniciar o monitoramento padrão do sistema e a criação de perfil da framework padrão. A classe `FrameworkProfile` no código de exemplo a seguir inicia o perfil padrão da framework quando um trabalho de treinamento é iniciado. 

```
from sagemaker.debugger import ProfilerConfig, FrameworkProfile
    
profiler_config=ProfilerConfig(
    framework_profile_params=FrameworkProfile()
)
```

Com essa configuração de `profiler_config` parâmetros, o Debugger chama as configurações padrão de monitoramento e criação de perfil. O Debugger monitora as métricas do sistema a cada 500 milissegundos; traça o perfil da quinta etapa com a opção de perfil detalhado; a sétima etapa com a opção de criação de perfil do carregador de dados; e a nona, décima e décima primeira etapas com a opção de criação de perfil do Python. 

[Para encontrar as opções de configuração de perfil disponíveis, as configurações de parâmetros padrão e exemplos de como configurá-las, consulte [Monitoramento padrão do sistema e a criação de perfil personalizado de framework com diferentes opções de criação de perfil](debugger-configure-framework-profiling-options.md) o [SageMaker Debugger — APIs no SDK do FrameworkProfile Amazon Python](https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html#sagemaker.debugger.FrameworkProfile). SageMaker ](https://sagemaker.readthedocs.io/en/stable)

Se você quiser alterar o intervalo de monitoramento do sistema e ativar o perfil da framework padrão, você pode especificar o `system_monitor_interval_millis` parâmetro explicitamente com o `framework_profile_params` parâmetro. Por exemplo, para monitorar a cada 1000 milissegundos e ativar o perfil padrão da framework, use o código de exemplo a seguir.

```
from sagemaker.debugger import ProfilerConfig, FrameworkProfile
    
profiler_config=ProfilerConfig(
    system_monitor_interval_millis=1000,
    framework_profile_params=FrameworkProfile()
)
```

Para obter mais informações sobre a `FrameworkProfile` classe, consulte [SageMaker Debugger APIs — FrameworkProfile](https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html#sagemaker.debugger.FrameworkProfile) no SDK do Amazon [Python SageMaker ](https://sagemaker.readthedocs.io/en/stable).

# Monitoramento padrão do sistema e o perfil personalizado de framework para etapas específicas ou um intervalo de tempo de destino
<a name="debugger-configure-framework-profiling-range"></a>

Se você quiser especificar etapas ou intervalos de tempo desejados para traçar o perfil de seu trabalho de treinamento, precisará especificar parâmetros para a classe `FrameworkProfile`. Os exemplos de código a seguir mostram como especificar os intervalos de destino para a criação de perfil junto com o monitoramento do sistema.
+ **Para um intervalo de etapas de destino**

  Com o exemplo de configuração a seguir, o Debugger monitora todo o trabalho de treinamento a cada 500 milissegundos (o monitoramento padrão) e traça o perfil de um intervalo de etapas de destino da etapa 5 à etapa 15 (para 10 etapas).

  ```
  from sagemaker.debugger import ProfilerConfig, FrameworkProfile
      
  profiler_config=ProfilerConfig(
      framework_profile_params=FrameworkProfile(start_step=5, num_steps=10)
  )
  ```

  Com o exemplo de configuração a seguir, o Debugger monitora todo o trabalho de treinamento a cada 1.000 milissegundos e traça o perfil de um intervalo de etapas de destino da etapa 5 à etapa 15 (para 10 etapas).

  ```
  from sagemaker.debugger import ProfilerConfig, FrameworkProfile
      
  profiler_config=ProfilerConfig(
      system_monitor_interval_millis=1000,
      framework_profile_params=FrameworkProfile(start_step=5, num_steps=10)
  )
  ```
+ **Para um intervalo de tempo de destino**

  Com o exemplo de configuração a seguir, o Debugger monitora todo o trabalho de treinamento a cada 500 milissegundos (o monitoramento padrão) e cria perfis de um intervalo de tempo alvo do horário Unix atual por 600 segundos.

  ```
  import time
  from sagemaker.debugger import ProfilerConfig, FrameworkProfile
  
  profiler_config=ProfilerConfig(
      framework_profile_params=FrameworkProfile(start_unix_time=int(time.time()), duration=600)
  )
  ```

  Com o exemplo de configuração a seguir, o Debugger monitora todo o trabalho de treinamento a cada 1.000 milissegundos e traça o perfil de um intervalo de tempo alvo do horário Unix atual por 600 segundos.

  ```
  import time
  from sagemaker.debugger import ProfilerConfig, FrameworkProfile
  
  profiler_config=ProfilerConfig(
      system_monitor_interval_millis=1000,
      framework_profile_params=FrameworkProfile(start_unix_time=int(time.time()), duration=600)
  )
  ```

  A criação de perfil da framework é executada para todas as opções de criação de perfil na etapa ou intervalo de tempo de destino. 

  [Para encontrar mais informações sobre as opções de criação de perfil disponíveis, consulte [SageMaker Debugger — APIs no](https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html#sagemaker.debugger.FrameworkProfile) SDK do FrameworkProfile Amazon Python. SageMaker ](https://sagemaker.readthedocs.io/en/stable)

  A próxima seção mostra como criar um script para as opções de criação de perfil disponíveis.

# Monitoramento padrão do sistema e a criação de perfil personalizado de framework com diferentes opções de criação de perfil
<a name="debugger-configure-framework-profiling-options"></a>

Esta seção fornece informações sobre as classes de configuração de criação de perfil compatíveis, 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](https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html#sagemaker.debugger.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 de memória da GPU. Não recomendamos ativar a criação de perfil detalhado por mais de algumas etapas.
+ [DataloaderProfilingConfig](https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html#sagemaker.debugger.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](https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html#sagemaker.debugger.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 Pyinstrument.
  + *cProfile*: O criador de perfil padrão do Python. O cProfile coleta informações para cada operador do Python chamado durante o treinamento. Com o cProfile, 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 passagem inversa, e o cProfile traça o perfil de cada um deles. Para a opção cProfile, você pode selecionar ainda mais uma opção de temporizador: tempo total, tempo de CPU e tempo fora da CPU. Embora você possa traçar o perfil de cada chamada de função executada em processadores (CPU e GPU) em tempo de CPU, você também pode identificar gargalos I/O ou gargalos de rede com a opção de tempo fora da CPU. O padrão é o tempo total, e o Debugger traça o perfil do tempo da CPU e do tempo fora da CPU. Com o cProfile, 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 em vez do tempo da CPU, a opção Pyinstrument pode ser uma escolha melhor em relação à opção cProfile para reduzir o ruído de criação de perfil (filtrando chamadas de função irrelevantes que são cumulativamente rápidas) e capturar operadores que realmente exigem muita computação (cumulativamente lento) 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**  
A ativação da criação de perfil do Python pode diminuir o tempo geral de treinamento. O cProfile traça o perfil dos operadores do Python mais frequentemente chamados 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, consulte [DetailedProfilingConfig[DataloaderProfilingConfig](https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html#sagemaker.debugger.DataloaderProfilingConfig)](https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html#sagemaker.debugger.DetailedProfilingConfig), e [PythonProfilingConfig](https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html#sagemaker.debugger.PythonProfilingConfig)no SDK do [Amazon SageMaker Python](https://sagemaker.readthedocs.io/en/stable).