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 Debugger
Você pode usar as regras integradas do Debugger, fornecidas pelo Amazon SageMaker Debugger, para analisar métricas e tensores coletados durante o treinamento de seus modelos. A seguir estão listadas as regras do depurador, incluindo informações e um exemplo de como configurar e implantar cada regra incorporada.
Essas regras integradas do Debugger monitoram várias condições comuns que são críticas para o sucesso de um trabalho de treinamento. Você pode chamar as regras integradas usando o Amazon SageMaker Python SDK
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 integradas 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 SageMaker Python SDK e a biblioteca cliente. SMDebug Em seu iPython kernel, notebook Jupyter ou JupyterLab 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)
Regra do depurador
As regras a seguir são as regras integradas do Debugger que podem ser chamadas usando o método de classe Rule.sagemaker
.
Regras integradas do Debugger para a geração de relatórios de treinamento
Escopo de validade | Regras integradas |
---|---|
Relatório de treinamento para trabalho SageMaker XGboost de treinamento |
Regras integradas do Debugger para a depuração de dados de treinamento de modelo (tensores de saída)
Escopo de validade | Regras integradas |
---|---|
Estruturas de aprendizado profundo (TensorFlow,MXNet, e PyTorch) | |
Estruturas de aprendizado profundo (TensorFlow,MXNet, e PyTorch) e o algoritmo XGBoost | |
Aplicativos de aprendizagem profunda | |
XGBoostalgoritmo |
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 = [ Rule.sagemaker(rule_configs.
built_in_rule_name_1
()), Rule.sagemaker(rule_configs.built_in_rule_name_2
()), ... Rule.sagemaker(rule_configs.built_in_rule_name_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 = [ Rule.sagemaker( base_config=rule_configs.
built_in_rule_name
(), rule_parameters={ "key
": "value
" } collections_to_save=[ CollectionConfig( name="tensor_collection_name
", 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 SageMaker API operações de baixo nível, consulteConfigurar o Debugger usando SageMaker API.
CreateXgboostReport
A CreateXgboostReport regra coleta tensores de saída de um trabalho de XGBoost treinamento e gera automaticamente um relatório de treinamento abrangente. Você pode baixar um relatório abrangente de criação de perfis enquanto um trabalho de treinamento é executado ou após a conclusão do trabalho de treinamento e verificar o progresso do treinamento ou o resultado final do trabalho de treinamento. A CreateXgboostReport regra coleta os seguintes tensores de saída por padrão:
-
hyperparameters
– Salva na primeira etapa -
metrics
– Economiza perda e precisão a cada 5 etapas -
feature_importance
– Salva a cada 5 etapas -
predictions
– Salva a cada 5 etapas -
labels
– Salva a cada 5 etapas
Descrições de parâmetros para a CreateXgboostReport 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 |
rules=[ Rule.sagemaker( rule_configs.
create_xgboost_report
() ) ]
DeadRelu
Essa regra detecta quando a porcentagem de funções de ativação de unidade linear retificada (ReLU) em um teste são consideradas inativas porque sua atividade de ativação caiu abaixo de um limite. Se a porcentagem de R inativo eLUs em uma camada for maior que o threshold_layer
valor de R inativoeLUs, a regra retornará. True
Descrições de parâmetros para a DeadRelu 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 |
tensor_regex |
Uma lista de padrões regex usada para restringir essa comparação a tensores de valor escalar específicos. A regra inspeciona apenas os tensores que correspondem aos padrões regex especificados na lista. Se nenhum padrão for transmitido, a regra comparará todos os tensores reunidos nos testes por padrão. Somente tensores com valor escalar podem ser combinados. Opcional Valores válidos: lista de strings ou uma string separada por vírgulas Valor padrão: |
threshold_inactivity |
Define um nível de atividade abaixo do qual uma ReLU é considerada morta. Uma ReLU pode estar ativa no início de um teste e, depois, morrer lentamente durante o processo de treinamento. Se a ReLU estiver ativa abaixo do Opcional Valores válidos: Flutuante Valores padrão: |
threshold_layer |
Retorna Retorna Opcional Valores válidos: Flutuante Valores padrão: |
built_in_rules = [ Rule.sagemaker( base_config=rule_configs.dead_relu(), rule_parameters={ "tensor_regex": "
.*relu_output|.*ReLU_output
", "threshold_inactivity": "1.0
", "threshold_layer": "50.0
" }, collections_to_save=[ CollectionConfig( name="custom_relu_collection
", parameters={ "include_regex: ".*relu_output|.*ReLU_output
", "save_interval": "500
" } ) ] ) ]
Para obter um exemplo de como configurar e implantar uma regra interna, consulte Como configurar as regras integradas do Debugger.
nota
Essa regra não está disponível para o XGBoost algoritmo.
ExplodingTensor
Essa regra detecta se os tensores emitidos durante o treinamento têm valores não finitos, infinitos ou NaN (que não é um número). Se um valor não finito for detectado, a regra retornará True
.
Descrições de parâmetros para a ExplodingTensor 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 |
collection_names |
A lista de nomes de coleção cujos tensores a regra inspeciona. Opcional Valores válidos: string Valor padrão: |
tensor_regex |
Uma lista de padrões regex usada para restringir essa comparação a tensores de valor escalar específicos. A regra inspeciona apenas os tensores que correspondem aos padrões regex especificados na lista. Se nenhum padrão for transmitido, a regra comparará todos os tensores reunidos nos testes por padrão. Somente tensores com valor escalar podem ser combinados. Opcional Valores válidos: string Valor padrão: |
only_nan |
Opcional Valor padrão: |
built_in_rules = [ Rule.sagemaker( base_config=rule_configs.
exploding_tensor
(), rule_parameters={ "tensor_regex": ".*gradient
", "only_nan": "False
" }, collections_to_save=[ CollectionConfig( name="gradients
", parameters={ "save_interval": "500
" } ) ] ) ]
Para obter um exemplo de como configurar e implantar uma regra interna, consulte Como configurar as regras integradas do Debugger.
nota
Essa regra não está disponível para o XGBoost algoritmo.
PoorWeightInitialization
Essa regra detecta se os parâmetros do modelo foram inicializados incorretamente.
Uma inicialização correta quebra a simetria dos pesos e dos gradientes em uma rede neural e mantém variações de ativação proporcionais nas camadas. Caso contrário, a rede neural não aprende de maneira eficaz. Inicializadores como Xavier visam manter a variação constante em todas as ativações, o que é especialmente relevante para o treinamento de redes neurais muito profundas. Uma inicialização muito pequena pode levar ao desaparecimento de gradientes. Uma inicialização muito grande pode levar à explosão de gradientes. Essa regra verifica a variação das entradas de ativação nas camadas, a distribuição de gradientes e a convergência de perda para as etapas iniciais a fim de determinar se uma rede neural foi inicializada incorretamente.
Descrições de parâmetros para a PoorWeightInitialization 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 |
activation_inputs_regex |
Uma lista de padrões regex usada para restringir essa comparação a tensores de valor escalar específicos. A regra inspeciona apenas os tensores que correspondem aos padrões regex especificados na lista. Se nenhum padrão for transmitido, a regra comparará todos os tensores reunidos nos testes por padrão. Somente tensores com valor escalar podem ser combinados. Opcional Valores válidos: string Valor padrão: |
threshold |
Se a proporção entre variação mínima e máxima de pesos por camada exceder o Opcional Valores válidos: Flutuante Valor padrão: |
distribution_range |
Se a diferença mínima entre os 5º e 95º percentis da distribuição de gradientes for menor que o Opcional Valores válidos: Flutuante Valor padrão: |
patience |
O número de passos a aguardar até que a perda não seja mais decrescente. Opcional Valores válidos: inteiro Valor padrão: |
steps |
O número de etapas que essa regra analisa. Normalmente, você precisa verificar apenas as primeiras iterações. Opcional Valores válidos: Flutuante Valor padrão: |
built_in_rules = [ Rule.sagemaker( base_config=rule_configs.
poor_weight_initialization
(), rule_parameters={ "activation_inputs_regex": ".*relu_input|.*ReLU_input
", "threshold": "10.0
", "distribution_range": "0.001
", "patience": "5
", "steps": "10
" }, collections_to_save=[ CollectionConfig( name="custom_relu_collection
", parameters={ "include_regex
": ".*relu_input|.*ReLU_input
", "save_interval
": "500
" } ) ] ) ]
Para obter um exemplo de como configurar e implantar uma regra interna, consulte Como configurar as regras integradas do Debugger.
nota
Essa regra não está disponível para o XGBoost algoritmo.
SaturatedActivation
Essa regra detecta se as camadas de ativação de tanh (tangente hiperbólica) e sigmoide estão ficando saturadas. Uma camada de ativação fica saturada quando a entrada da camada está próxima do máximo ou do mínimo da função de ativação. O mínimo e máximo das funções de ativação tanh e sigmoide são definidos pelos seus respectivos valores min_threshold
e max_thresholds
. Se a atividade de um nó cair abaixo da porcentagem de threshold_inactivity
, ele será considerada saturado. Se mais de um percentual de threshold_layer
dos nós estiverem saturados, a regra retornará True
.
Descrições de parâmetros para a SaturatedActivation 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 |
collection_names |
A lista de nomes de coleção cujos tensores a regra inspeciona. Opcional Valores válidos: lista de strings ou uma string separada por vírgulas Valor padrão: Nenhum |
tensor_regex |
Uma lista de padrões regex usada para restringir essa comparação a tensores de valor escalar específicos. A regra inspeciona apenas os tensores que correspondem aos padrões regex especificados na lista. Se nenhum padrão for transmitido, a regra comparará todos os tensores reunidos nos testes por padrão. Somente tensores com valor escalar podem ser combinados. Opcional Valores válidos: string Valor padrão: |
threshold_tanh_min |
Os limites mínimo e máximo que definem os extremos da entrada para uma função de ativação tanh, definidos como: Opcional Valores válidos: Flutuante Valores padrão: |
threshold_tanh_max |
Os limites mínimo e máximo que definem os extremos da entrada para uma função de ativação tanh, definidos como: Opcional Valores válidos: Flutuante Valores padrão: |
threshold_sigmoid_min |
Os limites mínimo e máximo que definem os extremos da entrada para uma função de ativação sigmoide, definidos como: Opcional Valores válidos: Flutuante Valores padrão: |
threshold_sigmoid_max |
Os limites mínimo e máximo que definem os extremos da entrada para uma função de ativação sigmoide, definidos como: Opcional Valores válidos: Flutuante Valores padrão: |
threshold_inactivity |
A porcentagem de inatividade abaixo da qual a camada de ativação é considerada saturada. A ativação pode estar ativa no início de um teste e, depois, lentamente tornar-se menos ativa durante o processo de treinamento. Opcional Valores válidos: Flutuante Valores padrão: |
threshold_layer |
Retornará Retornará Opcional Valores válidos: Flutuante Valores padrão: |
built_in_rules = [ Rule.sagemaker( base_config=rule_configs.
saturated_activation
(), rule_parameters={ "tensor_regex": ".*tanh_input|.*sigmoid_input
", "threshold_tanh_min": "-9.4999
", "threshold_tanh_max": "9.4999
", "threshold_sigmoid_min": "-23
", "threshold_sigmoid_max": "16.99999
", "threshold_inactivity": "1.0
", "threshold_layer": "50.0
" }, collections_to_save=[ CollectionConfig( name="custom_activations_collection
", parameters={ "include_regex
": ".*tanh_input|.*sigmoid_input
" "save_interval
": "500
" } ) ] ) ]
Para obter um exemplo de como configurar e implantar uma regra interna, consulte Como configurar as regras integradas do Debugger.
nota
Essa regra não está disponível para o XGBoost algoritmo.
VanishingGradient
Essa regra detecta se os gradientes em um teste se tornam extremamente pequenos ou caem para uma magnitude zero. Se a média dos valores absolutos dos gradientes cair abaixo de um threshold
especificado, a regra retornará True
.
Descrições de parâmetros para a VanishingGradient 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 |
O valor no qual determina-se que o gradiente está desaparecendo. Opcional Valores válidos: Flutuante Valor padrão: |
built_in_rules = [ Rule.sagemaker( base_config=rule_configs.
vanishing_gradient
(), rule_parameters={ "threshold": "0.0000001
" }, collections_to_save=[ CollectionConfig( name="gradients
", parameters={ "save_interval
": "500
" } ) ] ) ]
Para obter um exemplo de como configurar e implantar uma regra interna, consulte Como configurar as regras integradas do Debugger.
nota
Essa regra não está disponível para o XGBoost algoritmo.
WeightUpdateRatio
Essa regra mantém o controle da proporção de atualizações com relação a pesos durante o treinamento e detecta se essa proporção fica muito grande ou muito pequena. Se a proporção de atualizações com relação a pesos for maior do que o large_threshold value
ou se essa proporção for menor que small_threshold
, a regra retornará True
.
As condições de treinamento são melhores quando as atualizações são proporcionais aos gradientes. As atualizações excessivamente grandes podem afastar os pesos dos valores ideais, e as atualizações muito pequenas resultam em uma convergência muito lenta. Essa regra requer que os pesos estejam disponíveis para duas etapas consecutivas, e train.save_interval
precisa ser definido como igual a num_steps
.
Descrições de parâmetros para a WeightUpdateRatio 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 |
num_steps |
O número de etapas que a regra verifica para determinar se o tensor foi alterado. O número de etapas com as quais você deseja comparar as proporções de peso. Se você não transmitir nenhum valor, a regra será executada por padrão em relação à etapa atual e à etapa salva imediatamente antes. Se você substituir o padrão transmitindo um valor para esse parâmetro, a comparação será feita entre pesos na etapa Opcional Valores válidos: inteiro Valor padrão: |
large_threshold |
O valor máximo que a proporção de atualizações em relação ao peso pode ter antes que a regra retorne Opcional Valores válidos: Flutuante Valor padrão: |
small_threshold |
O valor mínimo que a proporção de atualizações com relação ao peso pode ter, abaixo do qual a regra retorna Opcional Valores válidos: Flutuante Valor padrão: |
epsilon |
Uma pequena constante usada para garantir que o Debugger não divida por zero ao calcular as atualizações de proporção do peso. Opcional Valores válidos: Flutuante Valor padrão: |
built_in_rules = [ Rule.sagemaker( base_config=rule_configs.
weight_update_ratio
(), rule_parameters={ "num_steps": "100
", "large_threshold": "10.0
", "small_threshold": "0.00000001
", "epsilon": "0.000000001
" }, collections_to_save=[ CollectionConfig( name="weights
", parameters={ "train.save_interval
": "100
" } ) ] ) ]
Para obter um exemplo de como configurar e implantar uma regra interna, consulte Como configurar as regras integradas do Debugger.
nota
Essa regra não está disponível para o XGBoost algoritmo.
AllZero
Essa regra detecta se todos ou uma porcentagem especificada dos valores dos tensores são zero.
Essa regra pode ser aplicada a uma das estruturas de aprendizado profundo suportadas (TensorFlow,MXNet, e PyTorch) ou ao XGBoost algoritmo. É necessário especificar o parâmetro collection_names
ou tensor_regex
. Se ambos os parâmetros forem especificados, a regra inspecionará a união de tensores de ambos os conjuntos.
Para obter um exemplo de como configurar e implantar uma regra interna, consulte Como configurar as regras integradas do Debugger.
Descrições de parâmetros para a AllZero 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 |
collection_names |
A lista de nomes de coleção cujos tensores a regra inspeciona. Opcional Valores válidos: lista de strings ou uma string separada por vírgulas Valor padrão: |
tensor_regex |
Uma lista de padrões regex usada para restringir essa comparação a tensores de valor escalar específicos. A regra inspeciona apenas os tensores que correspondem aos padrões regex especificados na lista. Se nenhum padrão for transmitido, a regra comparará todos os tensores reunidos nos testes por padrão. Somente tensores com valor escalar podem ser combinados. Opcional Valores válidos: lista de strings ou uma string separada por vírgulas Valor padrão: |
threshold |
Especifica a porcentagem de valores no tensor que precisa ser zero para que essa regra seja invocada. Opcional Valores válidos: Flutuante Valor padrão: 100 (em porcentagem) |
built_in_rules = [ Rule.sagemaker( base_config=rule_configs.
all_zero
(), rule_parameters={ "tensor_regex": ".*
", "threshold": "100
" }, collections_to_save=[ CollectionConfig( name="all
", parameters={ "save_interval
": "500
" } ) ] ) ]
ClassImbalance
Essa regra mede os desequilíbrios de amostragem entre classes e lança erros se o desequilíbrio exceder um limite ou se ocorrerem muitas previsões erradas para classes sub-representadas como resultado do desequilíbrio.
Os modelos de classificação exigem classes bem equilibradas no conjunto de dados de treinamento ou uma ponderação/amostragem adequada das classes durante o treinamento. A regra executa as seguintes verificações:
-
Ela conta as ocorrências por classe. Se a proporção do número de amostras entre a menor e a maior classe for maior do que o
threshold_imbalance
, será lançado um erro. -
Ela verifica a precisão de previsão por classe. Se a reamostragem ou a ponderação não tiver sido aplicada corretamente, o modelo poderá atingir alta precisão para a classe com muitas amostras de treinamento, mas baixa precisão para as classes com poucas amostras de treinamento. Se uma fração de previsões erradas de determinada classe estiver acima de
threshold_misprediction
, será lançado um erro.
Essa regra pode ser aplicada a uma das estruturas de aprendizado profundo suportadas (TensorFlow,MXNet, e PyTorch) ou ao XGBoost algoritmo.
Para obter um exemplo de como configurar e implantar uma regra interna, consulte Como configurar as regras integradas do Debugger.
Descrições de parâmetros para a ClassImbalance 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_imbalance |
O desequilíbrio aceitável entre o número de amostras da classe menor e da classe maior. Se esse valor do limite for excedido, será lançado um erro. Opcional Valores válidos: Flutuante Valor padrão: |
threshold_misprediction |
Um limite da fração de previsões incorretas permitidas para cada classe. Se esse limite for excedido, será lançado um erro. As classes sub-representadas têm maior risco de ultrapassar esse limite. Opcional Valores válidos: Flutuante Valor padrão: |
samples |
O número de rótulos que precisam ser processados antes de um desequilíbrio ser avaliado. A regra pode não ser acionada até que tenha visto amostras suficientes em várias etapas. Quanto mais classes o conjunto de dados tiver, maior será o número de Opcional Valores válidos: inteiro Valor padrão: |
argmax |
Se Condicional Valores válidos: booleano Valor padrão: |
labels_regex |
O nome do tensor que contém os rótulos. Opcional Valores válidos: string Valor padrão: |
predictions_regex |
O nome do tensor que contém as previsões. Opcional Valores válidos: string Valor padrão: |
built_in_rules = [ Rule.sagemaker( base_config=rule_configs.
class_imbalance
(), rule_parameters={ "threshold_imbalance": "10
", "threshold_misprediction": "0.7
", "samples": "500
", "argmax": "False
", "labels_regex": ".*labels
", "predictions_regex": ".*predictions
" }, collections_to_save=[ CollectionConfig( name="custom_output_collection
", parameters={ "include_regex": ".*labels|.*predictions
", "save_interval": "500
" } ) ] ) ]
LossNotDecreasing
Essa regra detecta quando a perda não está diminuindo em valor a uma taxa adequada. Essas perdas devem ser escalares.
Essa regra pode ser aplicada a uma das estruturas de aprendizado profundo suportadas (TensorFlow,MXNet, e PyTorch) ou ao XGBoost algoritmo. É necessário especificar o parâmetro collection_names
ou tensor_regex
. Se ambos os parâmetros forem especificados, a regra inspecionará a união de tensores de ambos os conjuntos.
Para obter um exemplo de como configurar e implantar uma regra interna, consulte Como configurar as regras integradas do Debugger.
Descrições de parâmetros para a LossNotDecreasing 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 |
collection_names |
A lista de nomes de coleção cujos tensores a regra inspeciona. Opcional Valores válidos: lista de strings ou uma string separada por vírgulas Valor padrão: |
tensor_regex |
Uma lista de padrões regex que é usada para restringir essa comparação a tensores de valor escalar específicos. A regra inspeciona apenas os tensores que correspondem aos padrões regex especificados na lista. Se nenhum padrão for transmitido, a regra comparará todos os tensores reunidos nos testes por padrão. Somente tensores com valor escalar podem ser combinados. Opcional Valores válidos: lista de strings ou uma string separada por vírgulas Valor padrão: |
use_losses_collection |
Se definido como Opcional Valores válidos: booleano Valor padrão: |
num_steps |
O número mínimo de etapas após as quais a regra verifica se a perda diminuiu. A avaliação da regra acontece a cada Opcional Valores válidos: inteiro Valor padrão: |
diff_percent |
A diferença percentual mínima pela qual a perda deve diminuir entre Opcional Valores válidos: Valor padrão: |
increase_threshold_percent |
A porcentagem do limite máximo em que a perda tem permissão para aumentar caso a perda esteja aumentando Opcional Valores válidos: Valor padrão: |
mode |
O nome do modo do Debugger para consultar valores de tensor da verificação de regras. Se isso não for transmitido, a regra verificará em ordem por padrão para o Opcional Valores válidos: string ( Valor padrão: |
built_in_rules = [ Rule.sagemaker( base_config=rule_configs.
loss_not_decreasing
(), rule_parameters={ "tensor_regex": ".*
", "use_losses_collection": "True
", "num_steps": "10
", "diff_percent": "0.1
", "increase_threshold_percent": "5
", "mode": "GLOBAL
" }, collections_to_save=[ CollectionConfig( name="losses
", parameters={ "save_interval
": "500
" } ) ] ) ]
Overfit
Essa regra detecta se o modelo está sendo sobreajustado aos dados de treinamento comparando as perdas de validação e treinamento.
Essa regra pode ser aplicada a uma das estruturas de aprendizado profundo suportadas (TensorFlow,MXNet, e PyTorch) ou ao XGBoost algoritmo.
Para obter um exemplo de como configurar e implantar uma regra interna, consulte Como configurar as regras integradas do Debugger.
nota
Uma maneira padrão de evitar o sobreajuste é regularizar o modelo.
Descrições de parâmetros da regra de Overfit
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 |
tensor_regex |
Uma lista de padrões regex usada para restringir essa comparação a tensores de valor escalar específicos. A regra inspeciona apenas os tensores que correspondem aos padrões regex especificados na lista. Se nenhum padrão for transmitido, a regra comparará todos os tensores reunidos nos testes por padrão. Somente tensores com valor escalar podem ser combinados. Opcional Valores válidos: lista de strings ou uma string separada por vírgulas Valor padrão: Nenhum |
start_step |
A etapa a partir da qual começar a comparar a perda de validação e de treinamento. Opcional Valores válidos: inteiro Valor padrão: |
patience |
O número de etapas para as quais o Opcional Valores válidos: inteiro Valor padrão: |
ratio_threshold |
A proporção máxima da diferença entre a perda média de validação e a perda média de treinamento com relação à perda média de treinamento. Se esse limite for excedido para um número Opcional Valores válidos: Flutuante Valor padrão: |
built_in_rules = [ Rule.sagemaker( base_config=rule_configs.
overfit
(), rule_parameters={ "tensor_regex": ".*
", "start_step": "0
", "patience": "1
", "ratio_threshold": "0.1
" }, collections_to_save=[ CollectionConfig( name="losses
", parameters={ "train.save_interval": "100
", "eval.save_interval": "10
" } ) ] ) ]
Overtraining
Essa regra detecta se um modelo está sendo treinado em excesso. Depois de várias iterações de treinamento em um modelo bem-comportado (diminuição da perda de treinamento e validação), o modelo se aproxima de um mínimo da função de perda e não melhora mais. Se o modelo continuar treinando, pode acontecer que a perda de validação comece a aumentar, porque o modelo começa a apresentar sobreajuste. Essa regra define limites e condições para determinar se o modelo não está melhorando e evita problemas de sobreajuste devido ao excesso de treinamento.
Essa regra pode ser aplicada a uma das estruturas de aprendizado profundo suportadas (TensorFlow,MXNet, e PyTorch) ou ao XGBoost algoritmo.
Para obter um exemplo de como configurar e implantar uma regra interna, consulte Como configurar as regras integradas do Debugger.
nota
O excesso de treinamento pode ser evitado pela interrupção precoce. Para obter informações sobre interrupção precoce, consulte Interromper trabalhos de treinamento precocemente. Para ver um exemplo que mostra como usar o treinamento pontual com o Debugger, consulte Habilitar o treinamento pontual com o Amazon
Descrições de parâmetros da regra Overtraining
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 |
patience_train |
O número de etapas a aguardar antes que se considere que a perda de treinamento não esteja mais melhorando. Opcional Valores válidos: inteiro Valor padrão: |
patience_validation |
O número de etapas a aguardar antes que se considere que a perda de validação não esteja mais melhorando. Opcional Valores válidos: inteiro Valor padrão: |
delta |
O limite mínimo de quanto o erro deve melhorar antes de ser considerado como um novo ideal. Opcional Valores válidos: Flutuante Valor padrão: |
built_in_rules = [ Rule.sagemaker( base_config=rule_configs.
overtraining
(), rule_parameters={ "patience_train": "5
", "patience_validation": "10
", "delta": "0.01
" }, collections_to_save=[ CollectionConfig( name="losses
", parameters={ "save_interval
": "500
" } ) ] ) ]
SimilarAcrossRuns
Essa regra compara tensores coletados de um teste base com tensores de outro teste.
Essa regra pode ser aplicada a uma das estruturas de aprendizado profundo suportadas (TensorFlow,MXNet, e PyTorch) ou ao XGBoost algoritmo.
Para obter um exemplo de como configurar e implantar uma regra interna, consulte Como configurar as regras integradas do Debugger.
Descrições de parâmetros para a SimilarAcrossRuns 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 |
other_trials |
Um nome de trabalho de treinamento concluído cujos tensores você deseja comparar com os tensores coletados do Obrigatório Valores válidos: string |
collection_names |
A lista de nomes de coleção cujos tensores a regra inspeciona. Opcional Valores válidos: lista de strings ou uma string separada por vírgulas Valor padrão: Nenhum |
tensor_regex |
Uma lista de padrões regex usada para restringir essa comparação a tensores de valor escalar específicos. A regra inspeciona apenas os tensores que correspondem aos padrões regex especificados na lista. Se nenhum padrão for transmitido, a regra comparará todos os tensores reunidos nos testes por padrão. Somente tensores com valor escalar podem ser combinados. Opcional Valores válidos: lista de strings ou uma string separada por vírgulas Valor padrão: Nenhum |
built_in_rules = [ Rule.sagemaker( base_config=rule_configs.
similar_across_runs
(), rule_parameters={ "other_trials": "<specify-another-job-name>
", "collection_names": "losses
", "tensor_regex": ".*
" }, collections_to_save=[ CollectionConfig( name="losses
", parameters={ "save_interval
": "500
" } ) ] ) ]
StalledTrainingRule
StalledTrainingRule detecta se não há progresso no trabalho de treinamento e interrompe o trabalho de treinamento se a regra for acionada. Essa regra exige que os tensores sejam salvos periodicamente em um intervalo de tempo definido por seu parâmetro threshold
. Essa regra continua monitorando novos tensores e, se nenhum novo tensor for emitido, a regra de intervalo de limite será acionada.
Descrições de parâmetros para a StalledTrainingRule 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 |
Um limite que define por quanto tempo em segundos a regra espera pela saída de um tensor até acionar um problema de treinamento interrompido. O valor padrão é de 1800 segundos. Opcional Valores válidos: inteiro Valor padrão: |
stop_training_on_fire |
Se definido como Opcional Valores válidos: booleano Valor padrão: |
training_job_name_prefix |
O prefixo do nome do trabalho de treinamento básico. Se Opcional Valores válidos: string |
built_in_rules = [ Rule.sagemaker( base_config=rule_configs.
stalled_training_rule
(), rule_parameters={ "threshold": "1800
", "stop_training_on_fire": "True
", "training_job_name_prefix": "<specify-training-base-job-name>
" }, collections_to_save=[ CollectionConfig( name="losses
", parameters={ "save_interval
": "500
" } ) ] ) ]
TensorVariance
Essa regra detecta se você tem tensores com variâncias muito altas ou muito baixas. Variâncias muito altas ou muito baixas em um tensor podem levar à saturação de neurônios, o que reduz a capacidade de aprendizagem da rede neural. A variância muito alta nos tensores também pode acabar resultando em tensores explosivos. Use essa regra para detectar esses problemas antecipadamente.
Essa regra pode ser aplicada a uma das estruturas de aprendizado profundo suportadas (TensorFlow,MXNet, e PyTorch) ou ao XGBoost algoritmo. É necessário especificar o parâmetro collection_names
ou tensor_regex
. Se ambos os parâmetros forem especificados, a regra inspecionará a união de tensores de ambos os conjuntos.
Para obter um exemplo de como configurar e implantar uma regra interna, consulte Como configurar as regras integradas do Debugger.
Descrições de parâmetros para a TensorVariance 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 |
collection_names |
A lista de nomes de coleção cujos tensores a regra inspeciona. Opcional Valores válidos: lista de strings ou uma string separada por vírgulas Valor padrão: Nenhum |
tensor_regex |
Uma lista de padrões regex usada para restringir essa comparação a tensores de valor escalar específicos. A regra inspeciona apenas os tensores que correspondem aos padrões regex especificados na lista. Se nenhum padrão for transmitido, a regra comparará todos os tensores reunidos nos testes por padrão. Somente tensores com valor escalar podem ser combinados. Opcional Valores válidos: lista de strings ou uma string separada por vírgulas Valor padrão: Nenhum |
max_threshold |
O limite máximo da variância do tensor. Opcional Valores válidos: Flutuante Valor padrão: Nenhum |
min_threshold |
O limite mínimo da variância do tensor. Opcional Valores válidos: Flutuante Valor padrão: Nenhum |
built_in_rules = [ Rule.sagemaker( base_config=rule_configs.
tensor_variance
(), rule_parameters={ "collection_names": "weights
", "max_threshold": "10
", "min_threshold": "0.00001
", }, collections_to_save=[ CollectionConfig( name="weights
", parameters={ "save_interval
": "500
" } ) ] ) ]
UnchangedTensor
Essa regra detecta se um tensor não está mais mudando ao longo das etapas.
Essa regra executa o método numpy.allclose
Essa regra pode ser aplicada a uma das estruturas de aprendizado profundo suportadas (TensorFlow,MXNet, e PyTorch) ou ao XGBoost algoritmo. É necessário especificar o parâmetro collection_names
ou tensor_regex
. Se ambos os parâmetros forem especificados, a regra inspecionará a união de tensores de ambos os conjuntos.
Para obter um exemplo de como configurar e implantar uma regra interna, consulte Como configurar as regras integradas do Debugger.
Descrições de parâmetros para a UnchangedTensor 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 |
collection_names |
A lista de nomes de coleção cujos tensores a regra inspeciona. Opcional Valores válidos: lista de strings ou uma string separada por vírgulas Valor padrão: Nenhum |
tensor_regex |
Uma lista de padrões regex usada para restringir essa comparação a tensores de valor escalar específicos. A regra inspeciona apenas os tensores que correspondem aos padrões regex especificados na lista. Se nenhum padrão for transmitido, a regra comparará todos os tensores reunidos nos testes por padrão. Somente tensores com valor escalar podem ser combinados. Opcional Valores válidos: lista de strings ou uma string separada por vírgulas Valor padrão: Nenhum |
num_steps |
O número de etapas que a regra verifica para determinar se o tensor foi alterado. Isso verifica os últimos Opcional Valores válidos: inteiro Valor padrão: |
rtol |
O parâmetro de tolerância relativa a ser transmitido para o método Opcional Valores válidos: Flutuante Valor padrão: |
atol |
O parâmetro de tolerância absoluta a ser transmitido para o método Opcional Valores válidos: Flutuante Valor padrão: |
equal_nan |
Se deve comparar NaNs como igual. Se Opcional Valores válidos: booleano Valor padrão: |
built_in_rules = [ Rule.sagemaker( base_config=rule_configs.
unchanged_tensor
(), rule_parameters={ "collection_names": "losses
", "tensor_regex": "", "num_steps": "3
", "rtol": "1e-05
", "atol": "1e-08
", "equal_nan": "False
" }, collections_to_save=[ CollectionConfig( name="losses
", parameters={ "save_interval
": "500
" } ) ] ) ]
CheckInputImages
Essa regra verifica se as imagens de entrada foram normalizadas corretamente. Especificamente, ela detecta se a média dos dados de amostra difere de zero em mais de um valor limite. Muitos modelos de visão computacional exigem que os dados de entrada tenham uma média zero e variação de unidade.
Esta regra é aplicável a aplicativos de aprendizagem profunda.
Para obter um exemplo de como configurar e implantar uma regra interna, consulte Como configurar as regras integradas do Debugger.
Descrições de parâmetros para a CheckInputImages 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_mean |
Um limite que define por quanto a média dos dados de entrada pode ser diferente de 0. Opcional Valores válidos: Flutuante Valor padrão: |
threshold_samples |
O número de imagens que precisam ser amostradas antes que um erro possa ser lançado. Se o valor for muito baixo, a estimativa da média do conjunto de dados será imprecisa. Opcional Valores válidos: inteiro Valor padrão: |
regex |
O nome do tensor dos dados de entrada. Opcional Valores válidos: string Valor padrão: |
channel |
A posição do canal de cor na matriz de forma do tensor de entrada. Opcional Valores válidos: inteiro Valor padrão: |
built_in_rules = [ Rule.sagemaker( base_config=rule_configs.
check_input_images
(), rule_parameters={ "threshold_mean
": "0.2
", "threshold_samples
": "500
", "regex
": ".*hybridsequential0_input_0
", "channel
": "1
" }, collections_to_save=[ CollectionConfig( name="custom_inputs_collection
", parameters={ "include_regex
": ".*hybridsequential0_input_0
", "save_interval
": "500
" } ) ] ) ]
NLPSequenceRatio
Essa regra calcula a proporção de tokens específicos, dado o resto da sequência de entrada que é útil para otimizar o desempenho. Por exemplo, você pode calcular a porcentagem de tokens padding end-of-sentence (EOS) em sua sequência de entrada. Se o número de EOS tokens for muito alto, uma estratégia alternativa de compartimentação deve ser executada. Também é possível calcular a porcentagem de tokens desconhecidos na sequência de entrada. Se o número de palavras desconhecidas for muito alto, poderá ser usado um vocabulário alternativo.
Esta regra é aplicável a aplicativos de aprendizagem profunda.
Para obter um exemplo de como configurar e implantar uma regra interna, consulte Como configurar as regras integradas do Debugger.
Descrições de parâmetros para a NLPSequenceRatio 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 |
tensor_regex |
Uma lista de padrões regex usada para restringir essa comparação a tensores de valor escalar específicos. A regra inspeciona apenas os tensores que correspondem aos padrões regex especificados na lista. Se nenhum padrão for transmitido, a regra comparará todos os tensores reunidos nos testes por padrão. Somente tensores com valor escalar podem ser combinados. Opcional Valores válidos: lista de strings ou uma string separada por vírgulas Valor padrão: |
token_values |
Uma string de uma lista dos valores numéricos dos tokens. Por exemplo, "3, 0". Opcional Valores válidos: string de valores numéricos separados por vírgulas Valor padrão: |
token_thresholds_percent |
Uma string de uma lista de limites (em porcentagens) que correspondem a cada um dos Opcional Valores válidos: string de flutuações separadas por vírgulas Valor padrão: |
built_in_rules = [ Rule.sagemaker( base_config=rule_configs.
nlp_sequence_ratio
(), rule_parameters={ "tensor_regex": ".*embedding0_input_0
", "token_values": "0
", "token_thresholds_percent": "50
" }, collections_to_save=[ CollectionConfig( name="custom_inputs_collection
", parameters={ "include_regex
": "" } ) ] ) ]
.*embedding0_input_0
Confusion
Essa regra avalia a qualidade de uma matriz de confusão para um problema de classificação.
Ela cria uma matriz de tamanho category_no*category_no
e a preenche com dados de pares (labels
, predictions
). Para cada par (labels
, predictions
), a contagem em confusion[labels][predictions]
é incrementada em 1. Quando a matriz é totalmente preenchida, a proporção de dados de valores na diagonal e de valores fora da diagonal são avaliados da seguinte maneira:
-
Para elementos na diagonal:
confusion[i][i]/sum_j(confusion[j][j])>=min_diag
-
Para elementos fora da diagonal:
confusion[j][i])/sum_j(confusion[j][i])<=max_off_diag
Essa regra pode ser aplicada ao XGBoost algoritmo.
Para obter um exemplo de como configurar e implantar uma regra interna, consulte Como configurar as regras integradas do Debugger.
Descrições de parâmetros da regra Confusion
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 |
category_no |
O número de categorias. Opcional Valores válidos: inteiro ≥2 Valor padrão: |
labels |
A coleção de tensores Opcional Valores válidos: string Valor padrão: |
predictions |
A coleção de tensores Opcional Valores válidos: string Valor padrão: |
labels_collection |
A regra inspeciona os tensores nesta coleção para Opcional Valores válidos: string Valor padrão: |
predictions_collection |
A regra inspeciona os tensores nesta coleção para Opcional Valores válidos: string Valor padrão: |
min_diag |
O limite mínimo da proporção de dados na diagonal. Opcional Valores válidos: Valor padrão: |
max_off_diag |
O limite máximo da proporção de dados fora da diagonal. Opcional Valores válidos: Valor padrão: |
built_in_rules = [ Rule.sagemaker( base_config=rule_configs.
confusion
(), rule_parameters={ "category_no": "10
", "labels": "labels
", "predictions": "predictions
", "labels_collection": "labels
", "predictions_collection": "predictions
", "min_diag": "0.9
", "max_off_diag": "0.1
" }, collections_to_save=[ CollectionConfig( name="labels
", parameters={ "save_interval": "500
" } ), CollectionConfig( name="predictions
", parameters={ "include_regex": "500
" } ) ] ) ]
nota
Essa regra inferirá valores padrão para os parâmetros opcionais se seus valores não forem especificados.
FeatureImportanceOverweight
Essa regra acumula os pesos dos n maiores valores de importância do atributo por etapa e garante que eles não excedam o limite. Por exemplo, você pode definir o limite para que os três principais atributos não suportem mais de 80% dos pesos totais do modelo.
Essa regra é válida somente para o XGBoost algoritmo.
Para obter um exemplo de como configurar e implantar uma regra interna, consulte Como configurar as regras integradas do Debugger.
Descrições de parâmetros para a FeatureImportanceOverweight 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 para a proporção da soma cumulativa dos Opcional Valores válidos: Flutuante Valor padrão: |
nfeatures |
O número dos maiores atributos. Opcional Valores válidos: inteiro Valor padrão: |
tensor_regex |
A expressão regular (regex) do tensor nomeia a regra a ser analisada. Opcional Valores válidos: string Valor padrão: |
built_in_rules = [ Rule.sagemaker( base_config=rule_configs.
feature_importance_overweight
(), rule_parameters={ "threshold": "0.8
", "nfeatures": "3
", "tensor_regex": ".*feature_importance/weight
" }, collections_to_save=[ CollectionConfig( name="feature_importance
", parameters={ "save_interval
": "500
" } ) ] ) ]
TreeDepth
Essa regra mede a profundidade das árvores em um XGBoost modelo. XGBoostrejeita divisões se elas não melhorarem a perda. Isso regulariza o treinamento. Como resultado, a árvore pode não crescer tão profundamente como definido no parâmetro depth
.
Essa regra é válida somente para o XGBoost algoritmo.
Para obter um exemplo de como configurar e implantar uma regra interna, consulte Como configurar as regras integradas do Debugger.
Descrições de parâmetros para a TreeDepth 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 |
depth |
A profundidade da árvore. A profundidade da árvore é obtida calculando o logaritmo base 2 do ID do maior nó. Opcional Valores válidos: Flutuante Valor padrão: |
built_in_rules = [ Rule.sagemaker( base_config=rule_configs.
tree_depth
(), rule_parameters={ "depth
": "4
" }, collections_to_save=[ CollectionConfig( name="tree
", parameters={ "save_interval
": "500
" } ) ] ) ]