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á.
Lista de regras integradas do perfilador do Debugger
Use as regras integradas do perfilador do Debugger fornecidas pelo Amazon SageMaker Debugger e analise as métricas coletadas durante o treinamento de seus modelos. As regras internas do Debugger monitoram várias condições comuns que são críticas para o sucesso da execução de um trabalho de treinamento de desempenho. Você pode chamar as regras integradas do perfilador usando o Amazon SageMaker Python SDK
nota
O número máximo de regras integradas do perfilador que você pode anexar a um trabalho de treinamento é 20. O SageMaker Debugger gerencia totalmente as regras integradas e analisa seu trabalho de treinamento de forma síncrona.
Importante
Para usar os novos atributos do Debugger, você precisa atualizar o SageMaker Python SDK e a biblioteca de cliente do SMDebug. No kernel do IPython, no caderno Jupyter ou no ambiente do JupyterLab, execute o código a seguir para instalar as versões mais recentes das bibliotecas e reiniciar o kernel.
import sys import IPython !{sys.executable} -m pip install -U sagemaker smdebug IPython.Application.instance().kernel.do_shutdown(True)
Regras do perfilador
As regras a seguir são as regras integradas do Debugger que podem ser chamadas usando o método de classe ProfilerRule.sagemaker.
Regra integrada do depurador para gerar o relatório de criação de perfil
| Escopo de validade | Regras integradas |
|---|---|
| Relatório de criação de perfil para qualquer trabalho de treinamento do SageMaker |
Regras integradas do depurador para definir o perfil da utilização dos recursos do sistema de hardware (métricas do sistema)
| Escopo de validade | Regras integradas |
|---|---|
| Regras genéricas de monitoramento do sistema para qualquer trabalho de treinamento do SageMaker |
Regras integradas do Debugger para criar perfis de métricas da framework
| Escopo de validade | Regras integradas |
|---|---|
| Regras de criação de perfil para frameworks de aprendizado profundo (TensorFlow e PyTorch) |
Atenção
Em favor do Amazon SageMaker Profiler, o SageMaker AI Debugger descontinua o recurso de criação de perfil do framework a partir do TensorFlow 2.11 e do PyTorch 2.0. Você ainda pode usar o atributo nas versões anteriores das estruturas e dos SDKs da seguinte maneira:
-
SageMaker Python SDK <= v2.130.0
-
PyTorch >= v1.6.0, < v2.0
-
TensorFlow >= v2.3.1, < v2.11
Consulte também 16 de março de 2023.
Para usar as regras integradas com valores de parâmetros padrão, use o seguinte formato de configuração:
from sagemaker.debugger import Rule, ProfilerRule, rule_configs rules = [ ProfilerRule.sagemaker(rule_configs.BuiltInRuleName_1()), ProfilerRule.sagemaker(rule_configs.BuiltInRuleName_2()), ... ProfilerRule.sagemaker(rule_configs.BuiltInRuleName_n()) ]
Para usar as regras integradas com valores de parâmetros personalizados, use o seguinte formato de configuração:
from sagemaker.debugger import Rule, ProfilerRule, rule_configs rules = [ ProfilerRule.sagemaker( base_config=rule_configs.BuiltInRuleName(), rule_parameters={ "key": "value" } ) ]
Para encontrar as chaves disponíveis para o parâmetro rule_parameters, consulte as tabelas de descrição de parâmetros.
Exemplos de códigos de configuração de regras são fornecidos para cada regra integrada abaixo das tabelas de descrição de parâmetros.
-
Para obter instruções completas e exemplos de uso das regras integradas do Debugger, consulte Código de exemplo de regras integradas do Depurador.
-
Para obter instruções completas sobre como usar as regras integradas com as operações de API de baixo nível do SageMaker, consulte Configuração do Depurador com a API do SageMaker.
ProfilerReport
A regra ProfilerReport invoca todas as regras integradas de monitoramento e criação de perfil. Ele cria um relatório de criação de perfil e é atualizado quando as regras individuais são acionadas. Você pode baixar um relatório de criação de perfil abrangente enquanto um trabalho de treinamento está em execução ou após a conclusão do trabalho de treinamento. Você pode ajustar os valores dos parâmetros da regra para personalizar a sensibilidade das regras integradas de monitoramento e criação de perfil. O código de exemplo a seguir mostra o formato básico para ajustar os parâmetros de regra integrada por meio da regra ProfilerReport.
rules=[ ProfilerRule.sagemaker( rule_configs.ProfilerReport(<BuiltInRuleName>_<parameter_name>=value) ) ]
Se você acionar essa regra ProfilerReport sem nenhum parâmetro personalizado, conforme mostrado no código de exemplo a seguir, a regra ProfilerReport acionará todas as regras integradas para monitoramento e criação de perfil com seus valores de parâmetros padrão.
rules=[ProfilerRule.sagemaker(rule_configs.ProfilerReport())]
O código de exemplo a seguir mostra como especificar e ajustar o parâmetro da regra CPUBottleNeck e o cpu_threshold parâmetro da regra IOBottleNeck threshold.
rules=[ ProfilerRule.sagemaker( rule_configs.ProfilerReport(CPUBottleneck_cpu_threshold=90,IOBottleneck_threshold=90) ) ]
Para explorar o que está no relatório do perfilador, consulte Relatório de criação de perfil do SageMaker Debugger. Além disso, como essa regra ativa todas as regras de criação de perfil, você também pode verificar o status da análise da regra usando a interface do usuário do SageMaker Debugger no SageMaker Studio Experiments.
Descrições de parâmetros para a regra OverallSystemUsage
| Nome do parâmetro | Descrição |
|---|---|
base_trial |
O nome do trabalho de treinamento de teste básico. Esse parâmetro é definido automaticamente para o trabalho de treinamento atual pelo Amazon SageMaker Debugger. Obrigatório Valores válidos: string |
<BuiltInRuleName>_<parameter_name> |
Parâmetro personalizável para ajustar os limites de outras regras integradas de monitoramento e criação de perfil. Opcional Valor padrão: |
BatchSize
A regra BatchSize ajuda a detectar se a GPU está subutilizada devido ao pequeno tamanho do lote. Para detectar esse problema, essa regra monitora a utilização média da CPU, a utilização da GPU e a utilização de memória da GPU. Se a utilização na memória de CPU, GPU e GPU for baixa, em média, isso pode indicar que o trabalho de treinamento pode ser executado em um tipo de instância menor ou em um lote maior. Essa análise não funciona para frameworks que superalocam muito a memória. No entanto, aumentar o tamanho do lote pode causar problemas no processamento ou no carregamento de dados, pois é necessário mais tempo de pré-processamento de dados em cada iteração.
Descrições de parâmetros para a regra BatchSize
| Nome do parâmetro | Descrição |
|---|---|
base_trial |
O nome do trabalho de treinamento de teste básico. Esse parâmetro é definido automaticamente para o trabalho de treinamento atual pelo Amazon SageMaker Debugger. Obrigatório Valores válidos: string |
cpu_threshold_p95 |
Define o limite para o 95º quantil de utilização da CPU em porcentagem. Opcional Valores válidos: inteiro Valor padrão: |
gpu_threshold_p95 |
Define o limite para o 95º quantil de utilização da GPU em porcentagem. Opcional Valores válidos: inteiro Valor padrão: |
gpu_memory_threshold_p95 |
Define o limite para o 95º quantil de utilização de memória da GPU em porcentagem. Opcional Valores válidos: inteiro Valores padrão: |
patience |
Define o número de pontos de dados a serem ignorados até que a regra inicie a avaliação. As primeiras etapas dos trabalhos de treinamento geralmente mostram um alto volume de processos de dados, portanto, mantenha a regra paciente e evite que ela seja invocada muito cedo com um determinado número de dados de perfil que você especifica com esse parâmetro. Opcional Valores válidos: inteiro Valores padrão: |
window |
Tamanho da janela para calcular quantis. Opcional Valores válidos: inteiro Valores padrão: |
scan_interval_us |
Intervalo de tempo em que os arquivos da linha do tempo são digitalizados. Opcional Valores válidos: inteiro Valores padrão: |
CPUBottleneck
A regra CPUBottleneck ajuda a detectar se a GPU está subutilizada devido a problemas da CPU. A regra retornará True se o número de problemas da CPU exceder um limite predefinido.
Descrições de parâmetros para a regra CPUBottleneck
| Nome do parâmetro | Descrição |
|---|---|
base_trial |
O nome do trabalho de treinamento de teste básico. Esse parâmetro é definido automaticamente para o trabalho de treinamento atual pelo Amazon SageMaker Debugger. Obrigatório Valores válidos: string |
threshold |
Define o limite para a proporção do tempo problemático em relação ao tempo total de treinamento. Se a proporção exceder a porcentagem especificada para o parâmetro de limite, a regra alterna o status da regra para Verdadeiro. Opcional Valores válidos: inteiro Valor padrão: |
gpu_threshold |
Um limite que define a baixa utilização da GPU. Opcional Valores válidos: inteiro Valor padrão: |
cpu_threshold |
Um limite que define a alta utilização da CPU. Opcional Valores válidos: inteiro Valores padrão: |
patience |
Define o número de pontos de dados a serem ignorados até que a regra inicie a avaliação. As primeiras etapas dos trabalhos de treinamento geralmente mostram um alto volume de processos de dados, portanto, mantenha a regra paciente e evite que ela seja invocada muito cedo com um determinado número de dados de perfil que você especifica com esse parâmetro. Opcional Valores válidos: inteiro Valores padrão: |
scan_interval_us |
Intervalo de tempo com o qual os arquivos da linha do tempo são digitalizados. Opcional Valores válidos: inteiro Valores padrão: |
GPUMemoryIncrease
A regra GPUMemoryIncrease ajuda a detectar um grande aumento no uso de memória nas GPUs.
Descrições de parâmetros para a regra GPUMemoryIncrease
| Nome do parâmetro | Descrição |
|---|---|
base_trial |
O nome do trabalho de treinamento de teste básico. Esse parâmetro é definido automaticamente para o trabalho de treinamento atual pelo Amazon SageMaker Debugger. Obrigatório Valores válidos: string |
increase |
Define o limite para o aumento absoluto da memória. Opcional Valores válidos: inteiro Valor padrão: |
patience |
Define o número de pontos de dados a serem ignorados até que a regra inicie a avaliação. As primeiras etapas dos trabalhos de treinamento geralmente mostram um alto volume de processos de dados, portanto, mantenha a regra paciente e evite que ela seja invocada muito cedo com um determinado número de dados de perfil que você especifica com esse parâmetro. Opcional Valores válidos: inteiro Valores padrão: |
window |
Tamanho da janela para calcular quantis. Opcional Valores válidos: inteiro Valores padrão: |
scan_interval_us |
Intervalo de tempo em que os arquivos da linha do tempo são digitalizados. Opcional Valores válidos: inteiro Valores padrão: |
IOBottleneck
Essa regra ajuda a detectar se a GPU está subutilizada devido a gargalos de E/S de dados. A regra retornará True se o número de problemas de E/S exceder um limite predefinido.
Descrições de parâmetros para a regra IOBottleNeck
| Nome do parâmetro | Descrição |
|---|---|
base_trial |
O nome do trabalho de treinamento de teste básico. Esse parâmetro é definido automaticamente para o trabalho de treinamento atual pelo Amazon SageMaker Debugger. Obrigatório Valores válidos: string |
threshold |
Define o limite em que a regra retornará Verdadeiro. Opcional Valores válidos: inteiro Valor padrão: |
gpu_threshold |
Um limite que define quando a GPU é considerada subutilizada. Opcional Valores válidos: inteiro Valor padrão: |
io_threshold |
Um limite que define um alto tempo de espera de E/S. Opcional Valores válidos: inteiro Valores padrão: |
patience |
Define o número de pontos de dados a serem ignorados até que a regra inicie a avaliação. As primeiras etapas dos trabalhos de treinamento geralmente mostram um alto volume de processos de dados, portanto, mantenha a regra paciente e evite que ela seja invocada muito cedo com um determinado número de dados de perfil que você especifica com esse parâmetro. Opcional Valores válidos: inteiro Valores padrão: |
scan_interval_us |
Intervalo de tempo em que os arquivos da linha do tempo são digitalizados. Opcional Valores válidos: inteiro Valores padrão: |
LoadBalancing
A regra de LoadBalancing de carga ajuda a detectar problemas no balanceamento da workload entre várias GPUs.
Descrições de parâmetros para a regra de balanceamento de carga
| Nome do parâmetro | Descrição |
|---|---|
base_trial |
O nome do trabalho de treinamento de teste básico. Esse parâmetro é definido automaticamente para o trabalho de treinamento atual pelo Amazon SageMaker Debugger. Obrigatório Valores válidos: string |
threshold |
Define a porcentagem da workload. Opcional Valores válidos: inteiro Valor padrão: |
patience |
Define o número de pontos de dados a serem ignorados até que a regra inicie a avaliação. As primeiras etapas dos trabalhos de treinamento geralmente mostram um alto volume de processos de dados, portanto, mantenha a regra paciente e evite que ela seja invocada muito cedo com um determinado número de dados de perfil que você especifica com esse parâmetro. Opcional Valores válidos: inteiro Valores padrão: |
scan_interval_us |
Intervalo de tempo em que os arquivos da linha do tempo são digitalizados. Opcional Valores válidos: inteiro Valores padrão: |
LowGPUUtilization
A regra LowGPUUtilization ajuda a detectar se a utilização da GPU é baixa ou sofre flutuações. Isso é verificado para cada GPU em cada operador. A regra retorna True se o 95º quantil estiver abaixo do threshold_p95, o que indica subutilização. A regra retorna verdadeira se o 95º quantil estiver acima do threshold_p95 e o 5º quantil estiver abaixo do threshold_p5, o que indica flutuações.
Descrições de parâmetros para a regra LowGPUUtilization
| Nome do parâmetro | Descrição |
|---|---|
base_trial |
O nome do trabalho de treinamento de teste básico. Esse parâmetro é definido automaticamente para o trabalho de treinamento atual pelo Amazon SageMaker Debugger. Obrigatório Valores válidos: string |
threshold_p95 |
Um limite para o 95º quantil abaixo do qual a GPU é considerada subutilizada. Opcional Valores válidos: inteiro Valor padrão: |
threshold_p5 |
Um limite para o 5º quantil. O valor padrão é 10%. Opcional Valores válidos: inteiro Valores padrão: |
patience |
Define o número de pontos de dados a serem ignorados até que a regra inicie a avaliação. As primeiras etapas dos trabalhos de treinamento geralmente mostram um alto volume de processos de dados, portanto, mantenha a regra paciente e evite que ela seja invocada muito cedo com um determinado número de dados de perfil que você especifica com esse parâmetro. Opcional Valores válidos: inteiro Valores padrão: |
window |
Tamanho da janela para calcular quantis. Opcional Valores válidos: inteiro Valores padrão: |
scan_interval_us |
Intervalo de tempo em que os arquivos da linha do tempo são digitalizados. Opcional Valores válidos: inteiro Valores padrão: |
OverallSystemUsage
A regra OverallSystemUsage mede o uso geral do sistema por nó de processamento. Atualmente, a regra agrega apenas valores por nó e calcula seus percentis.
Descrições de parâmetros para a regra OverallSystemUsage
| Nome do parâmetro | Descrição |
|---|---|
base_trial |
O nome do trabalho de treinamento de teste básico. Esse parâmetro é definido automaticamente para o trabalho de treinamento atual pelo Amazon SageMaker Debugger. Obrigatório Valores válidos: string |
scan_interval_us |
Intervalo de tempo para verificar arquivos da linha do tempo. Opcional Valores válidos: inteiro Valores padrão: |
MaxInitializationTime
A regra MaxInitializationTime ajuda a detectar se a inicialização do treinamento está demorando muito. A regra espera até que a primeira etapa esteja disponível.
Descrições de parâmetros para a regra MaxInitializationTime
| Nome do parâmetro | Descrição |
|---|---|
base_trial |
O nome do trabalho de treinamento de teste básico. Esse parâmetro é definido automaticamente para o trabalho de treinamento atual pelo Amazon SageMaker Debugger. Obrigatório Valores válidos: string |
threshold |
Define o limite em minutos para aguardar a disponibilidade da primeira etapa. Opcional Valores válidos: inteiro Valor padrão: |
scan_interval_us |
Intervalo de tempo com o qual os arquivos da linha do tempo são digitalizados. Opcional Valores válidos: inteiro Valores padrão: |
OverallFrameworkMetrics
A regra OverallFrameworkMetrics resume o tempo gasto nas métricas da framework, como passagem para frente e para trás e carregamento de dados.
Descrições de parâmetros para a regra OverallFrameworkMetrics
| Nome do parâmetro | Descrição |
|---|---|
base_trial |
O nome do trabalho de treinamento de teste básico. Esse parâmetro é definido automaticamente para o trabalho de treinamento atual pelo Amazon SageMaker Debugger. Obrigatório Valores válidos: string |
scan_interval_us |
Intervalo de tempo para verificar arquivos da linha do tempo. Opcional Valores válidos: inteiro Valores padrão: |
StepOutlier
A regra StepOutlier ajuda a detectar valores discrepantes nas durações das etapas. Essa regra retorna True se houver valores discrepantes com durações de etapas maiores que stddev sigmas de todas as durações de etapas em um intervalo de tempo.
Descrições de parâmetros da regra StepOutlier
| Nome do parâmetro | Descrição |
|---|---|
base_trial |
O nome do trabalho de treinamento de teste básico. Esse parâmetro é definido automaticamente para o trabalho de treinamento atual pelo Amazon SageMaker Debugger. Obrigatório Valores válidos: string |
stddev |
Define um fator pelo qual multiplicar o desvio padrão. Por exemplo, a regra é invocada por padrão quando a duração de uma etapa é maior ou menor que 5 vezes o desvio padrão. Opcional Valores válidos: inteiro Valor padrão: |
mode |
Modo sob o qual as etapas foram salvas e em qual Regra deve ser executada. Por padrão, a regra será executada nas etapas das fases EVAL e TRAIN Opcional Valores válidos: inteiro Valor padrão: |
n_outliers |
Quantos valores discrepantes devem ser ignorados antes que a regra retorne Verdadeiro Opcional Valores válidos: inteiro Valor padrão: |
scan_interval_us |
Intervalo de tempo com o qual os arquivos da linha do tempo são digitalizados. Opcional Valores válidos: inteiro Valores padrão: |