View a markdown version of this page

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

Nota

Amazon SageMaker Debugger non è più aperto a nuovi clienti. I clienti esistenti possono continuare a utilizzare il servizio normalmente. AWS continua a investire in miglioramenti della sicurezza e della disponibilità di Debugger, ma non prevediamo di introdurre nuove funzionalità. Per ulteriori informazioni, consulta Modifica della disponibilità del debugger.

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

Notebook di esempio con regole integrate di Debugger

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

Mentre eseguite i taccuini di esempio in SageMaker Studio, potete 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 della versione di prova del lavoro di formazione nell'interfaccia utente di Studio, vedi SageMaker Studio - Visualizza esperimenti, prove e componenti di prova.

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

Esistono due modi per utilizzare le regole integrate di Debugger nell'ambiente SageMaker AI: implementa le regole integrate man mano che vengono preparate o modifica i relativi parametri come preferisci. 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 boto3 import sagemaker from sagemaker.train import ModelTrainer from sagemaker.core.debugger import Rule, CollectionConfig, rule_configs from sagemaker.core.helper.session_helper import get_execution_role built_in_rules=[ Rule.sagemaker(rule_configs.vanishing_gradient()), Rule.sagemaker(rule_configs.loss_not_decreasing()) ] from sagemaker.core import image_uris from sagemaker.train.configs import SourceCode, Compute training_image = image_uris.retrieve( framework="tensorflow", region=boto3.Session().region_name, version="2.9.0", py_version="py39", instance_type="ml.p3.2xlarge", image_scope="training" ) # construct a SageMaker AI ModelTrainer with the Debugger built-in rules sagemaker_model_trainer=ModelTrainer( training_image=training_image, source_code=SourceCode(entry_script='directory/to/your_training_script.py'), role=get_execution_role(), base_job_name='debugger-built-in-rules-demo', compute=Compute(instance_type="ml.p3.2xlarge", instance_count=1), # debugger-specific arguments below rules=built_in_rules ) sagemaker_model_trainer.train()
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 Debugger, sui metodi e sui parametri, consulta la classe SageMaker Debugger Rule nell'SDK Amazon Python. SageMaker

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 boto3 import time import sagemaker from sagemaker.train import ModelTrainer from sagemaker.core.debugger import Rule, CollectionConfig, rule_configs from sagemaker.core.helper.session_helper import get_execution_role # 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" } ) ] ) ] from sagemaker.core import image_uris from sagemaker.train.configs import SourceCode, Compute training_image = image_uris.retrieve( framework="tensorflow", region=boto3.Session().region_name, version="2.9.0", py_version="py39", instance_type="ml.p3.2xlarge", image_scope="training" ) # construct a SageMaker AI ModelTrainer with the modified Debugger built-in rule sagemaker_model_trainer=ModelTrainer( training_image=training_image, source_code=SourceCode(entry_script='directory/to/your_training_script.py'), role=get_execution_role(), base_job_name=base_job_name_prefix, compute=Compute(instance_type="ml.p3.2xlarge", instance_count=1), # debugger-specific arguments below rules=built_in_rules_modified ) sagemaker_model_trainer.train()