Notebook di esempio ed esempi di codice per configurare le regole del Debugger - Amazon SageMaker

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 del Debugger

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

Notebook di esempio con regole integrate nel Debugger

I seguenti notebook di esempio mostrano come utilizzare le regole integrate di Debugger durante l'esecuzione di lavori di formazione con Amazon: SageMaker

Durante l'esecuzione dei notebook di esempio in SageMaker Studio, puoi trovare la versione di prova del lavoro di formazione creata nella scheda Studio Experiment List. 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 lavoro di formazione nell'interfaccia utente di Studio, consulta SageMaker Studio - View Experiments, Trials and Trial Components.

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

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

Codice di esempio delle regole integrate del 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, utilizzate l'rules_configsAPIoperazione 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 del 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 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, i metodi e i parametri Debugger, consulta la classe SageMaker Debugger Rule in Amazon Python. SageMaker SDK

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

Usa le regole integrate di Debugger con modifiche ai 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 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()