Notebook di esempio ed esempi di codice per configurare le regole 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à.

Notebook di esempio ed esempi di codice per configurare le regole di Debugger

Nelle sezioni seguenti vengono forniti notebook ed esempi di codice su come utilizzare le regole di Debugger per monitorare i processi di addestramento di SageMaker.

Notebook di esempio con regole integrate di Debugger

I seguenti notebook di esempio mostrano come utilizzare le regole integrate di Debugger durante l’esecuzione di job di addestramento con Amazon SageMaker AI:

Durante l'esecuzione dei notebook di esempio in SageMaker Studio, è possibile trovare la versione di prova del processo di addestramento creata nella scheda Elenco di esperimenti Studio. Ad esempio, come mostrato nella schermata seguente, è possibile trovare e aprire una finestra Descrivi componente di prova relativa al processo di addestramento corrente. Nella scheda Debugger, puoi verificare se le regole di Debugger vanishing_gradient() e loss_not_decreasing(), stanno monitorando la sessione di addestramento in parallelo. Per istruzioni complete su come trovare i componenti di prova del processo di addestramento nell'interfaccia utente di Studio, consulta SageMaker Studio - Visualizza prove di esperimenti e componenti di prova.

Un'immagine dell'esecuzione di un processo di addestramento con le regole integrate di Debugger attivate in SageMaker Studio

Esistono due modi per utilizzare le regole integrate di Debugger nell’ambiente SageMaker AI: implementare le regole integrate man mano che vengono preparate o regolarne i parametri come si desidera. I seguenti argomenti mostrano come utilizzare le regole integrate con codici di esempio.

Codice di esempio con regole integrate di Debugger

Nell'esempio di codice riportato di seguito viene illustrato come impostare le regole integrate di Debugger utilizzando il metodo Rule.sagemaker. Per specificare le regole integrate da eseguire, utilizza l'operazione API rules_configs per richiamare le regole integrate. Per un elenco completo delle regole integrate di Debugger e dei valori dei parametri predefiniti, consulta Elenco delle regole integrate di Debugger.

import sagemaker from sagemaker.tensorflow import TensorFlow from sagemaker.debugger import Rule, CollectionConfig, rule_configs # call built-in rules that you want to use. built_in_rules=[ Rule.sagemaker(rule_configs.vanishing_gradient()) Rule.sagemaker(rule_configs.loss_not_decreasing()) ] # construct a SageMaker AI estimator with the Debugger built-in rules sagemaker_estimator=TensorFlow( entry_point='directory/to/your_training_script.py', role=sm.get_execution_role(), base_job_name='debugger-built-in-rules-demo', instance_count=1, instance_type="ml.p3.2xlarge", framework_version="2.9.0", py_version="py39", # debugger-specific arguments below rules=built_in_rules ) sagemaker_estimator.fit()
Nota

Le regole integrate di Debugger vengono eseguite in parallelo al processo di addestramento. Il numero massimo di container di regole integrate per un processo di addestramento è 20.

Per ulteriori informazioni sulla classe di regole di Debugger, sui metodi e sui parametri, consulta la classe di regole di Debugger SageMaker in Amazon SageMaker Python SDK.

Per trovare un esempio di come modificare i parametri della regola di Debugger, consulta la sezione seguente Utilizzare le regole integrate di Debugger con le modifiche dei parametri.

Utilizzare le regole integrate di Debugger con le modifiche dei parametri

Il seguente esempio di codice mostra la struttura delle regole integrate per regolare i parametri. In questo esempio, stalled_training_rule raccoglie la raccolta di tensori losses da un processo di addestramento ogni 50 fasi e una fase di valutazione ogni 10 fasi. Se il processo di addestramento inizia a bloccarsi e non raccoglie i risultati del tensore per 120 secondi, stalled_training_rule interrompe il processo di addestramento.

import sagemaker from sagemaker.tensorflow import TensorFlow from sagemaker.debugger import Rule, CollectionConfig, rule_configs # call the built-in rules and modify the CollectionConfig parameters base_job_name_prefix= 'smdebug-stalled-demo-' + str(int(time.time())) built_in_rules_modified=[ Rule.sagemaker( base_config=rule_configs.stalled_training_rule(), rule_parameters={ 'threshold': '120', 'training_job_name_prefix': base_job_name_prefix, 'stop_training_on_fire' : 'True' } collections_to_save=[ CollectionConfig( name="losses", parameters={ "train.save_interval": "50" "eval.save_interval": "10" } ) ] ) ] # construct a SageMaker AI estimator with the modified Debugger built-in rule sagemaker_estimator=TensorFlow( entry_point='directory/to/your_training_script.py', role=sm.get_execution_role(), base_job_name=base_job_name_prefix, instance_count=1, instance_type="ml.p3.2xlarge", framework_version="2.9.0", py_version="py39", # debugger-specific arguments below rules=built_in_rules_modified ) sagemaker_estimator.fit()