Elenco delle regole del profiler integrate di Debugger - Amazon SageMaker AI

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Elenco delle regole del profiler integrate di Debugger

Utilizza le regole di profilazione integrate di Debugger fornite da Debugger Amazon SageMaker e analizza i parametri raccolti durante l'addestramento dei tuoi modelli. Le regole integrate di Debugger monitorano varie condizioni comuni che sono fondamentali per il successo dell’esecuzione di un processo di addestramento. Puoi richiamare le regole di profilazione integrate utilizzando Amazon SageMaker Python SDK o le operazioni API SageMaker di basso livello. Non sono previsti costi aggiuntivi per l'utilizzo di regole integrate. Per ulteriori informazioni sulla fatturazione, consulta Prezzo di Amazon SageMaker.

Nota

Il numero massimo di regole di profilazione integrate che è possibile collegare a un processo di addestramento è 20. Debugger SageMaker gestisce completamente le regole integrate e analizza il processo di addestramento in modo sincrono.

Importante

Per utilizzare le nuove funzionalità di Debugger, è necessario aggiornare l'SDK SageMaker Python e la libreria client SMDebug. Nel kernel IPython, notebook Jupyter, o nell'ambiente JupyterLab, esegui il codice seguente per installare le versioni più recenti delle librerie e riavviare il kernel.

import sys import IPython !{sys.executable} -m pip install -U sagemaker smdebug IPython.Application.instance().kernel.do_shutdown(True)

Regole del profiler

Le seguenti regole sono le regole integrate di Debugger che possono essere richiamate utilizzando il metodo di classe ProfilerRule.sagemaker.

Regola integrata di Debugger per la generazione del rapporto di profilazione

Ambito di validità Regole integrate
Rapporto di profilazione per qualsiasi processo di addestramento su SageMaker

Regole integrate di Debugger per la profilazione dell'utilizzo delle risorse del sistema hardware (parametri di sistema)

Ambito di validità Regole integrate
Regole generiche di monitoraggio del sistema per qualsiasi processo di addestramento SageMaker

Regole integrate di Debugger per la profilazione dei parametri del framework

Ambito di validità Regole integrate
Regole di profilazione per framework di deep learning (TensorFlow e PyTorch)
avvertimento

SageMaker AI Debugger rende obsoleta la funzionalità di profilazione del framework a partire da TensorFlow 2.11 e PyTorch 2.0 a favore di Amazon SageMaker Profiler. Puoi comunque utilizzare la funzionalità nelle versioni precedenti dei framework e degli SDK come segue.

  • SageMaker Python SDK <= v2.130.0

  • PyTorch >= v1.6.0, < v2.0

  • TensorFlow >= v2.3.1, < v2.11

Consulta anche 16 marzo 2023.

Per utilizzare le regole integrate con i valori dei parametri predefiniti, utilizza il seguente formato di configurazione:

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()) ]

Per utilizzare le regole integrate con la configurazione dei parametri predefiniti, utilizza il seguente formato di configurazione:

from sagemaker.debugger import Rule, ProfilerRule, rule_configs rules = [ ProfilerRule.sagemaker( base_config=rule_configs.BuiltInRuleName(), rule_parameters={ "key": "value" } ) ]

Per trovare le chiavi disponibili per il parametro rule_parameters, consulta le tabelle di descrizione dei parametri.

Vengono forniti esempi di codici di configurazione delle regole per ogni regola integrata sotto le tabelle di descrizione dei parametri.

ProfilerReport

La regola ProfilerReport richiama tutte le regole integrate per il monitoraggio e la profilazione. Crea un rapporto di profilazione e si aggiorna quando vengono attivate le singole regole. È possibile scaricare un rapporto di profilazione completo mentre un processo di addestramento è in corso o dopo il completamento del processo di addestramento. È possibile regolare i valori dei parametri delle regole per personalizzare la sensibilità delle regole di monitoraggio e profilazione integrate. Il codice di esempio seguente mostra il formato di base per regolare i parametri delle regole integrate tramite la regola ProfilerReport.

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

Se si attiva questa regola ProfilerReport senza alcun parametro personalizzato, come mostrato nel codice di esempio seguente, la regola ProfilerReport attiva tutte le regole integrate per il monitoraggio e la profilazione con i valori dei parametri predefiniti.

rules=[ProfilerRule.sagemaker(rule_configs.ProfilerReport())]

Il codice di esempio seguente mostra come specificare e modificare il parametro cpu_threshold della regola CPUBottleNeck e il parametro threshold della regola IOBottleNeck.

rules=[ ProfilerRule.sagemaker( rule_configs.ProfilerReport( CPUBottleneck_cpu_threshold = 90, IOBottleneck_threshold = 90 ) ) ]

Per scoprire cosa c'è nel rapporto del profiler, consulta SageMaker Debugger Profiling Report. Inoltre, poiché questa regola attiva tutte le regole di profilazione, puoi anche controllare lo stato dell'analisi delle regole utilizzando l'interfaccia utente Debugger SageMaker in Esperimenti SageMaker Studio.

Descrizioni dei parametri per la regola di OverallSystemUsage

Nome parametro Descrizione
base_trial

Il nome per il processo di addestramento di prova di base. Questo parametro viene impostato automaticamente sul processo di addestramento corrente da Debugger Amazon SageMaker.

Campo obbligatorio

Valori validi: stringa

<BuiltInRuleName>_<parameter_name>

Parametro personalizzabile per regolare le soglie di altre regole di monitoraggio e profilazione integrate.

Opzionale

Valore predefinito: None

BatchSize

La regola BatchSize aiuta a rilevare se la GPU è sottoutilizzata a causa di un batch di piccole dimensioni. Per rilevare questo problema, questa regola monitora l'utilizzo medio della CPU, l'utilizzo della GPU e l'utilizzo della memoria GPU. Se l'utilizzo di CPU, GPU e memoria GPU è in media basso, ciò può indicare che il processo di addestramento può essere eseguito su un tipo di istanza più piccolo o su un batch di dimensioni maggiori. Questa analisi non funziona per i framework che sovraallocano pesantemente la memoria. Tuttavia, l'aumento delle dimensioni del batch può comportare rallentamenti nell'elaborazione o nel caricamento dei dati, poiché è necessario più tempo di preelaborazione dei dati in ogni iterazione.

Descrizioni dei parametri per la regola BatchSize

Nome parametro Descrizione
base_trial

Il nome per il processo di addestramento di prova di base. Questo parametro viene impostato automaticamente sul processo di addestramento corrente da Debugger Amazon SageMaker.

Campo obbligatorio

Valori validi: stringa

cpu_threshold_p95

Definisce la soglia per il 95° quantile di utilizzo della CPU in percentuale.

Opzionale

Valori validi: numeri interi

Valore predefinito: 70 (in percentuale)

gpu_threshold_p95

Definisce la soglia per il 95° quantile di utilizzo della GPU in percentuale.

Opzionale

Valori validi: numeri interi

Valore predefinito: 70 (in percentuale)

gpu_memory_threshold_p95

Definisce la soglia per il 95° quantile di utilizzo della memoria GPU in percentuale.

Opzionale

Valori validi: numeri interi

Valori predefiniti: 70 (in percentuale)

patience

Definisce il numero di punti dati da saltare fino all'avvio della valutazione da parte della regola. Le prime fasi dei processi di addestramento in genere mostrano un elevato volume di processi di dati, quindi mantieni la regola paziente ed evita che venga richiamata troppo presto con un determinato numero di dati di profilazione specificato con questo parametro.

Opzionale

Valori validi: numeri interi

Valori predefiniti: 100

window

Dimensioni della finestra per il calcolo dei quantili.

Opzionale

Valori validi: numeri interi

Valori predefiniti: 500

scan_interval_us

Intervallo di tempo in cui i file della sequenza temporale vengono scansionati.

Opzionale

Valori validi: numeri interi

Valori predefiniti: 60000000 (in microsecondi)

CPUBottleneck

La regola CPUBottleNeck aiuta a rilevare se la GPU è sottoutilizzata a causa di colli di bottiglia della CPU. La regola restituisce True se il numero di colli di bottiglia della CPU supera una soglia predefinita.

Descrizioni dei parametri per la regola CPUBottleneck

Nome parametro Descrizione
base_trial

Il nome per il processo di addestramento di prova di base. Questo parametro viene impostato automaticamente sul processo di addestramento corrente da Debugger Amazon SageMaker.

Campo obbligatorio

Valori validi: stringa

threshold

Definisce la soglia per la proporzione tra il tempo di difficoltà e il tempo totale di addestramento. Se la proporzione supera la percentuale specificata nel parametro di soglia, la regola imposta lo stato della regola su True.

Opzionale

Valori validi: numeri interi

Valore predefinito: 50 (in percentuale)

gpu_threshold

Una soglia che definisce un basso utilizzo della GPU.

Opzionale

Valori validi: numeri interi

Valore predefinito: 10 (in percentuale)

cpu_threshold

Una soglia che definisce un elevato utilizzo della CPU.

Opzionale

Valori validi: numeri interi

Valori predefiniti: 90 (in percentuale)

patience

Definisce il numero di punti dati da saltare fino all'avvio della valutazione da parte della regola. Le prime fasi dei processi di addestramento in genere mostrano un elevato volume di processi di dati, quindi mantieni la regola paziente ed evita che venga richiamata troppo presto con un determinato numero di dati di profilazione specificato con questo parametro.

Opzionale

Valori validi: numeri interi

Valori predefiniti: 100

scan_interval_us

Intervallo di tempo in cui i file della sequenza temporale vengono scansionati.

Opzionale

Valori validi: numeri interi

Valori predefiniti: 60000000 (in microsecondi)

Aumento della memoria della GPU

La regola GpuMemoryIncrease aiuta a rilevare un notevole aumento dell'utilizzo della memoria sulle GPU.

Descrizioni dei parametri per la regola GpuMemoryIncrease

Nome parametro Descrizione
base_trial

Il nome per il processo di addestramento di prova di base. Questo parametro viene impostato automaticamente sul processo di addestramento corrente da Debugger Amazon SageMaker.

Campo obbligatorio

Valori validi: stringa

increase

Definisce la soglia per l'aumento assoluto della memoria.

Opzionale

Valori validi: numeri interi

Valore predefinito: 10 (in percentuale)

patience

Definisce il numero di punti dati da saltare fino all'avvio della valutazione da parte della regola. Le prime fasi dei processi di addestramento in genere mostrano un elevato volume di processi di dati, quindi mantieni la regola paziente ed evita che venga richiamata troppo presto con un determinato numero di dati di profilazione specificato con questo parametro.

Opzionale

Valori validi: numeri interi

Valori predefiniti: 100

window

Dimensioni della finestra per il calcolo dei quantili.

Opzionale

Valori validi: numeri interi

Valori predefiniti: 500

scan_interval_us

Intervallo di tempo in cui i file della sequenza temporale vengono scansionati.

Opzionale

Valori validi: numeri interi

Valori predefiniti: 60000000 (in microsecondi)

IOBottleneck

Questa regola aiuta a rilevare se la GPU è sottoutilizzata a causa di colli di bottiglia di I/O dei dati. La regola restituisce True se il numero di colli di bottiglia IO supera una soglia predefinita.

Descrizioni dei parametri per la regola IOBottleNeck

Nome parametro Descrizione
base_trial

Il nome per il processo di addestramento di prova di base. Questo parametro viene impostato automaticamente sul processo di addestramento corrente da Debugger Amazon SageMaker.

Campo obbligatorio

Valori validi: stringa

threshold Definisce la soglia entro la quale la regola deve restituire True.

Opzionale

Valori validi: numeri interi

Valore predefinito: 50 (in percentuale)

gpu_threshold

Una soglia che definisce quando la GPU è considerata sottoutilizzata.

Opzionale

Valori validi: numeri interi

Valore predefinito: 70 (in percentuale)

io_threshold Una soglia che definisce un tempo di attesa IO elevato.

Opzionale

Valori validi: numeri interi

Valori predefiniti: 50 (in percentuale)

patience Definisce il numero di punti dati da saltare fino all'avvio della valutazione da parte della regola. Le prime fasi dei processi di addestramento in genere mostrano un elevato volume di processi di dati, quindi mantieni la regola paziente ed evita che venga richiamata troppo presto con un determinato numero di dati di profilazione specificato con questo parametro.

Opzionale

Valori validi: numeri interi

Valori predefiniti: 1000

scan_interval_us

Intervallo di tempo in cui i file della sequenza temporale vengono scansionati.

Opzionale

Valori validi: numeri interi

Valori predefiniti: 60000000 (in microsecondi)

LoadBalancing

La regola LoadBalancing aiuta a rilevare problemi nel bilanciamento del carico di lavoro tra più GPU.

Descrizioni dei parametri per la regola LoadBalancing

Nome parametro Descrizione
base_trial

Il nome per il processo di addestramento di prova di base. Questo parametro viene impostato automaticamente sul processo di addestramento corrente da Debugger Amazon SageMaker.

Campo obbligatorio

Valori validi: stringa

threshold

Definisce la percentuale del carico di lavoro.

Opzionale

Valori validi: numeri interi

Valore predefinito: 0.5 (proporzione senza unità)

patience

Definisce il numero di punti dati da saltare fino all'avvio della valutazione da parte della regola. Le prime fasi dei processi di addestramento in genere mostrano un elevato volume di processi di dati, quindi mantieni la regola paziente ed evita che venga richiamata troppo presto con un determinato numero di dati di profilazione specificato con questo parametro.

Opzionale

Valori validi: numeri interi

Valori predefiniti: 10

scan_interval_us

Intervallo di tempo in cui i file della sequenza temporale vengono scansionati.

Opzionale

Valori validi: numeri interi

Valori predefiniti: 60000000 (in microsecondi)

LowGPUUtilization

La regola LowGPUUtilization aiuta a rilevare se l'utilizzo della GPU è basso o presenta fluttuazioni. Questo viene verificato per ogni GPU su ciascun worker. La regola restituisce True se il 95° quantile è inferiore a threshold_p95, il che indica un sottoutilizzo. La regola restituisce true se il 95° quantile è al di sopra della soglia p95 e il quinto quantile è inferiore alla soglia p5, il che indica le fluttuazioni.

Descrizioni dei parametri per la regola LowGPUUtilization

Nome parametro Descrizione
base_trial

Il nome per il processo di addestramento di prova di base. Questo parametro viene impostato automaticamente sul processo di addestramento corrente da Debugger Amazon SageMaker.

Campo obbligatorio

Valori validi: stringa

threshold_p95

Una soglia per il 95° quantile al di sotto della quale la GPU è considerata sottoutilizzata.

Opzionale

Valori validi: numeri interi

Valore predefinito: 70 (in percentuale)

threshold_p5 Una soglia per il quinto quantile. Il valore predefinito è il 10 percento.

Opzionale

Valori validi: numeri interi

Valori predefiniti: 10 (in percentuale)

patience

Definisce il numero di punti dati da saltare fino all'avvio della valutazione da parte della regola. Le prime fasi dei processi di addestramento in genere mostrano un elevato volume di processi di dati, quindi mantieni la regola paziente ed evita che venga richiamata troppo presto con un determinato numero di dati di profilazione specificato con questo parametro.

Opzionale

Valori validi: numeri interi

Valori predefiniti: 1000

window

Dimensioni della finestra per il calcolo dei quantili.

Opzionale

Valori validi: numeri interi

Valori predefiniti: 500

scan_interval_us

Intervallo di tempo in cui i file della sequenza temporale vengono scansionati.

Opzionale

Valori validi: numeri interi

Valori predefiniti: 60000000 (in microsecondi)

OverallSystemUsage

La regola OverallSystemUsage misura l'utilizzo complessivo del sistema per nodo di lavoro. Attualmente la regola aggrega solo i valori per nodo e ne calcola i percentili.

Descrizioni dei parametri per la regola di OverallSystemUsage

Nome parametro Descrizione
base_trial

Il nome per il processo di addestramento di prova di base. Questo parametro viene impostato automaticamente sul processo di addestramento corrente da Debugger Amazon SageMaker.

Campo obbligatorio

Valori validi: stringa

scan_interval_us

Intervallo di tempo per la scansione dei file della sequenza temporale.

Opzionale

Valori validi: numeri interi

Valori predefiniti: 60000000 (in microsecondi)

MaxInitializationTime

La regola MaxInitializationTime aiuta a rilevare se l'inizializzazione dell'addestramento richiede troppo tempo. La regola attende che la prima fase sia disponibile.

Descrizioni dei parametri per la regola MaxInitializationTime

Nome parametro Descrizione
base_trial

Il nome per il processo di addestramento di prova di base. Questo parametro viene impostato automaticamente sul processo di addestramento corrente da Debugger Amazon SageMaker.

Campo obbligatorio

Valori validi: stringa

threshold

Definisce la soglia in minuti per attendere che la prima fase diventi disponibile.

Opzionale

Valori validi: numeri interi

Valore predefinito: 20 (in minuti)

scan_interval_us

Intervallo di tempo in cui i file della sequenza temporale vengono scansionati.

Opzionale

Valori validi: numeri interi

Valori predefiniti: 60000000 (in microsecondi)

OverallFrameworkMetrics

La regola OverallFrameworkMetrics riassume il tempo impiegato per i parametri del framework, come il passaggio in avanti e all'indietro e il caricamento dei dati.

Descrizioni dei parametri per la regola di OverallFrameworkMetrics

Nome parametro Descrizione
base_trial

Il nome per il processo di addestramento di prova di base. Questo parametro viene impostato automaticamente sul processo di addestramento corrente da Debugger Amazon SageMaker.

Campo obbligatorio

Valori validi: stringa

scan_interval_us

Intervallo di tempo per la scansione dei file della sequenza temporale.

Opzionale

Valori validi: numeri interi

Valori predefiniti: 60000000 (in microsecondi)

StepOutlier

La regola StepOutlier aiuta a rilevare i valori anomali nella durata delle fasi. Questa regola restituisce True se sono presenti valori anomali con durate delle fasi superiori ai sigma stddev delle durate dell'intera fase in un intervallo di tempo.

Descrizioni dei parametri per la regola di StepOutlier

Nome parametro Descrizione
base_trial

Il nome per il processo di addestramento di prova di base. Questo parametro viene impostato automaticamente sul processo di addestramento corrente da Debugger Amazon SageMaker.

Campo obbligatorio

Valori validi: stringa

stddev

Definisce un fattore per il quale moltiplicare la deviazione standard. Ad esempio, la regola viene richiamata per impostazione predefinita quando la durata di una fase è maggiore o minore di 5 volte la deviazione standard.

Opzionale

Valori validi: numeri interi

Valore predefinito: 5 (in minuti)

mode Modalità in base alla quale le fasi sono state salvate e su quale regola devono essere eseguite. Per impostazione predefinita, la regola verrà eseguita sui passaggi delle fasi EVAL e TRAIN

Opzionale

Valori validi: numeri interi

Valore predefinito: 5 (in minuti)

n_outliers Quanti valori anomali ignorare prima che la regola restituisca True

Opzionale

Valori validi: numeri interi

Valore predefinito: 10

scan_interval_us

Intervallo di tempo in cui i file della sequenza temporale vengono scansionati.

Opzionale

Valori validi: numeri interi

Valori predefiniti: 60000000 (in microsecondi)