Creazione di regole personalizzate di Debugger per l’analisi dei processi di addestramento - 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à.

Creazione di regole personalizzate di Debugger per l’analisi dei processi di addestramento

Puoi creare regole personalizzate per monitorare il tuo processo di addestramento utilizzando le API Debugger Rule e la libreria open source smdebug Python che fornisce strumenti per creare container di regole personalizzate.

Prerequisiti per la creazione di regole personalizzate di Debugger

Per creare regole personalizzate di Debugger, sono necessari i seguenti prerequisiti.

Usa la libreria client smdebug di Debugger per creare uno script Python con regole personalizzate

L'API smdebug Rule fornisce un'interfaccia per configurare regole personalizzate. Il seguente script python è un esempio di come costruire una regola personalizzata CustomGradientRule. Questa regola personalizzata del tutorial controlla se i gradienti stanno diventando troppo grandi e imposta la soglia predefinita su 10. La regola personalizzata richiede una prova di base creata da uno SageMaker stimatore quando avvia il processo di formazione.

from smdebug.rules.rule import Rule class CustomGradientRule(Rule): def __init__(self, base_trial, threshold=10.0): super().__init__(base_trial) self.threshold = float(threshold) def invoke_at_step(self, step): for tname in self.base_trial.tensor_names(collection="gradients"): t = self.base_trial.tensor(tname) abs_mean = t.reduction_value(step, "mean", abs=True) if abs_mean > self.threshold: return True return False

È possibile aggiungere più classi di regole personalizzate quante ne si desidera nello stesso script Python e distribuirle in qualsiasi prova di processo di addestramento creando oggetti di regola personalizzati nella sezione seguente.

Usa le API Debugger per eseguire le tue regole personalizzate

Il seguente esempio di codice mostra come configurare una regola personalizzata con l'SDK Amazon SageMaker Python. Questo esempio presuppone che lo script di regole personalizzate creato nella fase precedente si trovi in 'path/to/my_custom_rule.py'.

from sagemaker.debugger import Rule, CollectionConfig custom_rule = Rule.custom( name='MyCustomRule', image_uri='759209512951.dkr.ecr.us-west-2.amazonaws.com/sagemaker-debugger-rule-evaluator:latest', instance_type='ml.t3.medium', source='path/to/my_custom_rule.py', rule_to_invoke='CustomGradientRule', collections_to_save=[CollectionConfig("gradients")], rule_parameters={"threshold": "20.0"} )

L'elenco seguente illustra gli argomenti dell'API Rule.custom di Debugger.

  • name (str): specifica un nome di regola personalizzato desiderato.

  • image_uri (str): questa è l'immagine del container che ha la logica di comprendere la regola personalizzata. Reperisce e valuta le raccolte di tensori specificate salvate nel processo di addestramento. Puoi trovare l'elenco delle immagini di SageMaker Rule Evaluator open source da. URL del registro Amazon SageMaker Debugger per strumenti di valutazione delle regole personalizzati

  • instance_type (str): devi specificare un'istanza per creare un container docker per regole. Questo fa funzionare l'istanza parallelamente a un container di addestramento.

  • source (str): questo è il percorso locale o l'URI di Amazon S3 dello script di regole personalizzate.

  • rule_to_invoke(str): specifica la particolare implementazione della classe Rule nello script di regole personalizzato. SageMaker supporta una sola regola da valutare alla volta in un processo di regole.

  • collections_to_save (str): specifica quali raccolte di tensori verranno salvate per l'esecuzione della regola.

  • rule_parameters (dizionario): accetta input di parametri in un formato dizionario. È possibile regolare i parametri configurati nello script di regole personalizzate.

Dopo aver impostato l'custom_ruleoggetto, è possibile utilizzarlo per creare uno SageMaker stimatore per qualsiasi lavoro di formazione. Specifica entry_point nello script di addestramento. Non è necessario apportare modifiche allo script di addestramento.

from sagemaker.tensorflow import TensorFlow estimator = TensorFlow( role=sagemaker.get_execution_role(), base_job_name='smdebug-custom-rule-demo-tf-keras', entry_point='path/to/your_training_script.py' train_instance_type='ml.p2.xlarge' ... # debugger-specific arguments below rules = [custom_rule] ) estimator.fit()

Per ulteriori varianti ed esempi avanzati di utilizzo delle regole personalizzate di Debugger, consulta i seguenti notebook di esempio.