Lista de regras integradas do perfilador do Debugger - 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á.

Lista de regras integradas do perfilador do Debugger

Use as regras de criação de perfil integradas 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 criador de perfil usando o SDK do Amazon SageMaker Python ou as operações de API de baixo nível. SageMaker Não há custo adicional para usar as regras integradas. Para obter mais informações sobre faturamento, consulte a página de SageMaker preços da Amazon.

nota

O número máximo de regras de criação de perfil incorporadas que você pode anexar a um trabalho de treinamento é 20. SageMaker O Debugger gerencia totalmente as regras integradas e analisa seu trabalho de treinamento de forma síncrona.

Importante

Para usar os novos recursos do Debugger, você precisa atualizar o SDK do SageMaker Python e a biblioteca cliente SMDebug. No kernel do IPython, no notebook Jupyter JupyterLab ou no ambiente, 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 perfil para qualquer trabalho SageMaker de treinamento
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 SageMaker de treinamento
Regras integradas do Debugger para criar perfis de métricas da framework
Escopo de validade Regras integradas
Regras de criação de perfil para estruturas de aprendizado profundo (TensorFlow e) PyTorch
Atenção

Em favor do Amazon SageMaker Profiler, o SageMaker Debugger descontinua 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 atributo nas versões anteriores das frameworks e dos SDKs da seguinte maneira.

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

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.

ProfilerReport

A ProfilerReport regra invoca todas as regras integradas para 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 incorporados por meio da ProfilerReport regra.

rules=[ ProfilerRule.sagemaker( rule_configs.ProfilerReport( <BuiltInRuleName>_<parameter_name> = value ) ) ]

Se você acionar essa ProfilerReport regra sem nenhum parâmetro personalizado, conforme mostrado no código de exemplo a seguir, a ProfilerReport regra 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 criador de perfil, consulte Relatório de criação de perfil do SageMaker depurador. 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 Studio Experiments. SageMaker

Descrições de parâmetros para a OverallSystemUsage regra
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: None

BatchSize

A BatchSize regra 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 BatchSize regra
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: 70 (em porcentagem)

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: 70 (em porcentagem)

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: 70 (em porcentagem)

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: 100

window

Tamanho da janela para calcular quantis.

Opcional

Valores válidos: inteiro

Valores padrão: 500

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: 60000000 (em microssegundos)

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: 50 (em porcentagem)

gpu_threshold

Um limite que define a baixa utilização da GPU.

Opcional

Valores válidos: inteiro

Valor padrão: 10 (em porcentagem)

cpu_threshold

Um limite que define a alta utilização da CPU.

Opcional

Valores válidos: inteiro

Valores padrão: 90 (em porcentagem)

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: 100

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: 60000000 (em microssegundos)

GPU MemoryIncrease

A MemoryIncrease regra da GPU ajuda a detectar um grande aumento no uso de memória nas GPUs.

Descrições de parâmetros para a regra de GPU MemoryIncrease
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: 10 (em porcentagem)

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: 100

window

Tamanho da janela para calcular quantis.

Opcional

Valores válidos: inteiro

Valores padrão: 500

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: 60000000 (em microssegundos)

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: 50 (em porcentagem)

gpu_threshold

Um limite que define quando a GPU é considerada subutilizada.

Opcional

Valores válidos: inteiro

Valor padrão: 70 (em porcentagem)

io_threshold Um limite que define um alto tempo de espera de E/S.

Opcional

Valores válidos: inteiro

Valores padrão: 50 (em porcentagem)

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: 1000

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: 60000000 (em microssegundos)

LoadBalancing

A LoadBalancing regra ajuda a detectar problemas no balanceamento da carga de trabalho entre várias GPUs.

Descrições de parâmetros para a LoadBalancing regra
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: 0.5 (proporção sem unidade)

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: 10

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: 60000000 (em microssegundos)

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: 70 (em porcentagem)

threshold_p5 Um limite para o 5º quantil. O valor padrão é 10%.

Opcional

Valores válidos: inteiro

Valores padrão: 10 (em porcentagem)

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: 1000

window

Tamanho da janela para calcular quantis.

Opcional

Valores válidos: inteiro

Valores padrão: 500

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: 60000000 (em microssegundos)

OverallSystemUso

A OverallSystemUsage regra mede o uso geral do sistema por nó de trabalho. Atualmente, a regra agrega apenas valores por nó e calcula seus percentis.

Descrições de parâmetros para a OverallSystemUsage regra
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: 60000000 (em microssegundos)

MaxInitializationHora

A MaxInitializationTime regra 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 MaxInitializationTime regra
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: 20 (em minutos)

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: 60000000 (em microssegundos)

OverallFrameworkMétricas

A OverallFrameworkMetrics regra resume o tempo gasto nas métricas da estrutura, como passagem para frente e para trás e carregamento de dados.

Descrições de parâmetros para a OverallFrameworkMetrics regra
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: 60000000 (em microssegundos)

StepOutlier

A StepOutlier regra 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 para a StepOutlier regra
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: 5 (em minutos)

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: 5 (em minutos)

n_outliers Quantos valores discrepantes devem ser ignorados antes que a regra retorne Verdadeiro

Opcional

Valores válidos: inteiro

Valor padrão: 10

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: 60000000 (em microssegundos)