

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à.

# Configurazione del debugger tramite l'API SageMaker
<a name="debugger-createtrainingjob-api"></a>

 Gli argomenti precedenti si concentrano sull'uso di Debugger tramite Amazon SageMaker Python SDK, che è un wrapper per le operazioni API. AWS SDK per Python (Boto3) SageMaker Ciò offre un'esperienza di alto livello di accesso alle operazioni dell' SageMaker API Amazon. Nel caso in cui sia necessario configurare manualmente le operazioni SageMaker API utilizzando AWS Boto3 o ( AWS Command Line Interface CLI) per altri SDKs, come Java, Go e C\$1\$1, questa sezione spiega come configurare le seguenti operazioni API di basso livello.

**Topics**
+ [JSON (AWS CLI)](debugger-built-in-rules-api.CLI.md)
+ [SDK per Python (Boto3)](debugger-built-in-rules-api.Boto3.md)

# JSON (AWS CLI)
<a name="debugger-built-in-rules-api.CLI"></a>

Le regole integrate di Amazon SageMaker Debugger possono essere configurate per un processo di formazione utilizzando [DebugHookConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DebugHookConfig.html), [DebugRuleConfiguration[ProfilerConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProfilerConfig.html)](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DebugRuleConfiguration.html), e [ProfilerRuleConfiguration](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProfilerRuleConfiguration.html)oggetti tramite l'operazione SageMaker API AI [CreateTrainingJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html). È necessario specificare l'URI corretto dell'immagine nel `RuleEvaluatorImage` parametro e gli esempi seguenti illustrano come configurare le stringhe JSON da richiedere. [CreateTrainingJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html)

Il codice seguente mostra un modello JSON completo per eseguire un processo di addestramento con le impostazioni e le configurazioni di Debugger richieste. Salva il modello come file JSON nella tua directory di lavoro ed esegui il processo di formazione utilizzando la AWS CLI. Ad esempio, salva il seguente codice come `debugger-training-job-cli.json`

**Nota**  
Assicurati di utilizzare le immagini corrette del container Docker. Per trovare le immagini dei AWS Deep Learning Container, consulta Immagini dei [Deep Learning Containers disponibili](https://github.com/aws/deep-learning-containers/blob/master/available_images.md). Per trovare un elenco completo delle immagini Docker disponibili per l'utilizzo delle regole di Debugger, consulta [Immagini Docker per le regole di Debugger](debugger-reference.md#debugger-docker-images-rules).

```
{
   "TrainingJobName": "debugger-aws-cli-test",
   "RoleArn": "arn:aws:iam::111122223333:role/service-role/AmazonSageMaker-ExecutionRole-YYYYMMDDT123456",
   "AlgorithmSpecification": {
      // Specify a training Docker container image URI (Deep Learning Container or your own training container) to TrainingImage.
      "TrainingImage": "763104351884.dkr.ecr.us-west-2.amazonaws.com/tensorflow-training:2.4.1-gpu-py37-cu110-ubuntu18.04",
      "TrainingInputMode": "File",
      "EnableSageMakerMetricsTimeSeries": false
   },
   "HyperParameters": {
      "sagemaker_program": "entry_point/tf-hvd-train.py",
      "sagemaker_submit_directory": "s3://sagemaker-us-west-2-111122223333/debugger-boto3-profiling-test/source.tar.gz"
   },
   "OutputDataConfig": { 
      "S3OutputPath": "s3://sagemaker-us-west-2-111122223333/debugger-aws-cli-test/output"
   },
   "DebugHookConfig": { 
      "S3OutputPath": "s3://sagemaker-us-west-2-111122223333/debugger-aws-cli-test/debug-output",
      "CollectionConfigurations": [
         {
            "CollectionName": "losses",
            "CollectionParameters" : {
                "train.save_interval": "50"
            }
         }
      ]
   },
   "DebugRuleConfigurations": [ 
      { 
         "RuleConfigurationName": "LossNotDecreasing",
         "RuleEvaluatorImage": "895741380848.dkr.ecr.us-west-2.amazonaws.com/sagemaker-debugger-rules:latest",
         "RuleParameters": {"rule_to_invoke": "LossNotDecreasing"}
      }
   ],
   "ProfilerConfig": { 
      "S3OutputPath": "s3://sagemaker-us-west-2-111122223333/debugger-aws-cli-test/profiler-output",
      "ProfilingIntervalInMilliseconds": 500,
      "ProfilingParameters": {
          "DataloaderProfilingConfig": "{\"StartStep\": 5, \"NumSteps\": 3, \"MetricsRegex\": \".*\", }",
          "DetailedProfilingConfig": "{\"StartStep\": 5, \"NumSteps\": 3, }",
          "PythonProfilingConfig": "{\"StartStep\": 5, \"NumSteps\": 3, \"ProfilerName\": \"cprofile\", \"cProfileTimer\": \"total_time\"}",
          "LocalPath": "/opt/ml/output/profiler/" 
      }
   },
   "ProfilerRuleConfigurations": [ 
      { 
         "RuleConfigurationName": "ProfilerReport",
         "RuleEvaluatorImage": "895741380848.dkr.ecr.us-west-2.amazonaws.com/sagemaker-debugger-rules:latest",
         "RuleParameters": {"rule_to_invoke": "ProfilerReport"}
      }
   ],
   "ResourceConfig": { 
      "InstanceType": "ml.p3.8xlarge",
      "InstanceCount": 1,
      "VolumeSizeInGB": 30
   },
   
   "StoppingCondition": { 
      "MaxRuntimeInSeconds": 86400
   }
}
```

Dopo aver salvato il file JSON, esegui il comando seguente nel terminale. (Usa `!` all'inizio della riga se usi un notebook Jupyter).

```
aws sagemaker create-training-job --cli-input-json file://debugger-training-job-cli.json
```

## Configurazione di una regola di Debugger per il debug dei parametri del modello
<a name="debugger-built-in-rules-api-debug.CLI"></a>

I seguenti esempi di codice mostrano come configurare una `VanishingGradient` regola integrata utilizzando questa SageMaker API. 

**Per consentire a Debugger di raccogliere tensori di output**

Specifica la configurazione dell’hook Debugger come segue:

```
"DebugHookConfig": {
    "S3OutputPath": "s3://<default-bucket>/<training-job-name>/debug-output",
    "CollectionConfigurations": [
        {
            "CollectionName": "gradients",
            "CollectionParameters" : {
                "save_interval": "500"
            }
        }
    ]
}
```

Ciò farà sì che il processo di addestramento salvi la raccolta di tensori, `gradients`, ogni `save_interval` di 500 fasi. Per trovare `CollectionName` i valori disponibili, consulta [Debugger Built-in Collections nella documentazione](https://github.com/awslabs/sagemaker-debugger/blob/master/docs/api.md#built-in-collections) della libreria *SMDebug client*. Per trovare le chiavi e i valori dei `CollectionParameters` parametri disponibili, consulta la [https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html#sagemaker.debugger.CollectionConfig](https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html#sagemaker.debugger.CollectionConfig)classe nella documentazione di *SageMaker Python SDK*.

**Per abilitare le regole di Debugger per il debug dei tensori di output**

Il seguente esempio di API `DebugRuleConfigurations` mostra come eseguire la regola `VanishingGradient` integrata nella raccolta `gradients` salvata.

```
"DebugRuleConfigurations": [
    {
        "RuleConfigurationName": "VanishingGradient",
        "RuleEvaluatorImage": "503895931360.dkr.ecr.us-east-1.amazonaws.com/sagemaker-debugger-rules:latest",
        "RuleParameters": {
            "rule_to_invoke": "VanishingGradient",
            "threshold": "20.0"
        }
    }
]
```

Con una configurazione come quella in questo esempio, Debugger avvia un processo di valutazione della regola per il processo di addestramento utilizzando la regola `VanishingGradient` nella raccolta del tensore `gradients`. Per trovare un elenco completo delle immagini Docker disponibili per l'utilizzo delle regole di Debugger, consulta [Immagini Docker per le regole di Debugger](debugger-reference.md#debugger-docker-images-rules). Per trovare le coppie chiave-valore per `RuleParameters`, consulta [Elenco delle regole integrate di Debugger](debugger-built-in-rules.md).

## Configurazione di una regola integrata di Debugger per la profilazione dei parametri del sistema e del framework
<a name="debugger-built-in-rules-api-profile.CLI"></a>

Il codice di esempio seguente mostra come specificare l'operazione dell' ProfilerConfig API per consentire la raccolta delle metriche del sistema e del framework.

**Per abilitare la profilazione di Debugger per raccogliere i parametri del sistema e del framework**

------
#### [ Target Step ]

```
"ProfilerConfig": { 
    // Optional. Path to an S3 bucket to save profiling outputs
    "S3OutputPath": "s3://<default-bucket>/<training-job-name>/profiler-output", 
    // Available values for ProfilingIntervalInMilliseconds: 100, 200, 500, 1000 (1 second), 5000 (5 seconds), and 60000 (1 minute) milliseconds.
    "ProfilingIntervalInMilliseconds": 500, 
    "ProfilingParameters": {
        "DataloaderProfilingConfig": "{ \"StartStep\": 5, \"NumSteps\": 3, \"MetricsRegex\": \".*\" }",
        "DetailedProfilingConfig": "{ \"StartStep\": 5, \"NumSteps\": 3 }",
        // For PythonProfilingConfig,
        // available ProfilerName options: cProfile, Pyinstrument
        // available cProfileTimer options only when using cProfile: cpu, off_cpu, total_time
        "PythonProfilingConfig": "{ \"StartStep\": 5, \"NumSteps\": 3, \"ProfilerName\": \"cProfile\", \"cProfileTimer\": \"total_time\" }",
        // Optional. Local path for profiling outputs
        "LocalPath": "/opt/ml/output/profiler/" 
    }
}
```

------
#### [ Target Time Duration ]

```
"ProfilerConfig": { 
    // Optional. Path to an S3 bucket to save profiling outputs
    "S3OutputPath": "s3://<default-bucket>/<training-job-name>/profiler-output", 
    // Available values for ProfilingIntervalInMilliseconds: 100, 200, 500, 1000 (1 second), 5000 (5 seconds), and 60000 (1 minute) milliseconds.
    "ProfilingIntervalInMilliseconds": 500,
    "ProfilingParameters": {
        "DataloaderProfilingConfig": "{ \"StartTimeInSecSinceEpoch\": 12345567789, \"DurationInSeconds\": 10, \"MetricsRegex\": \".*\" }",
        "DetailedProfilingConfig": "{ \"StartTimeInSecSinceEpoch\": 12345567789, \"DurationInSeconds\": 10 }",
        // For PythonProfilingConfig,
        // available ProfilerName options: cProfile, Pyinstrument
        // available cProfileTimer options only when using cProfile: cpu, off_cpu, total_time
        "PythonProfilingConfig": "{ \"StartTimeInSecSinceEpoch\": 12345567789, \"DurationInSeconds\": 10, \"ProfilerName\": \"cProfile\", \"cProfileTimer\": \"total_time\" }",
        // Optional. Local path for profiling outputs
        "LocalPath": "/opt/ml/output/profiler/"  
    }
}
```

------

**Per abilitare le regole di Debugger per la profilazione dei parametri**

Il codice di esempio seguente mostra come configurare la regola `ProfilerReport`.

```
"ProfilerRuleConfigurations": [ 
    {
        "RuleConfigurationName": "ProfilerReport",
        "RuleEvaluatorImage": "895741380848.dkr.ecr.us-west-2.amazonaws.com/sagemaker-debugger-rules:latest",
        "RuleParameters": {
            "rule_to_invoke": "ProfilerReport",
            "CPUBottleneck_cpu_threshold": "90",
            "IOBottleneck_threshold": "90"
        }
    }
]
```

Per trovare un elenco completo delle immagini Docker disponibili per l'utilizzo delle regole di Debugger, consulta [Immagini Docker per le regole di Debugger](debugger-reference.md#debugger-docker-images-rules). Per trovare le coppie chiave-valore per `RuleParameters`, consulta [Elenco delle regole integrate di Debugger](debugger-built-in-rules.md).

## Aggiornamento della configurazione della profilazione di Debugger utilizzando l’API `UpdateTrainingJob`
<a name="debugger-updatetrainingjob-api.CLI"></a>

La configurazione della profilazione del debugger può essere aggiornata durante l'esecuzione del processo di formazione utilizzando l'operazione API. [UpdateTrainingJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateTrainingJob.html) Configura nuovi [ProfilerRuleConfiguration](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProfilerRuleConfiguration.html)oggetti [ProfilerConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProfilerConfig.html)e specifica il nome del processo di formazione nel parametro. `TrainingJobName`

```
{
    "ProfilerConfig": { 
        "DisableProfiler": boolean,
        "ProfilingIntervalInMilliseconds": number,
        "ProfilingParameters": { 
            "string" : "string" 
        }
    },
    "ProfilerRuleConfigurations": [ 
        { 
            "RuleConfigurationName": "string",
            "RuleEvaluatorImage": "string",
            "RuleParameters": { 
                "string" : "string" 
            }
        }
    ],
    "TrainingJobName": "your-training-job-name-YYYY-MM-DD-HH-MM-SS-SSS"
}
```

## Aggiunta della configurazione delle regole personalizzate di Debugger all’API `CreateTrainingJob`
<a name="debugger-custom-rules-api.CLI"></a>

È possibile configurare una regola personalizzata per un processo di formazione utilizzando gli [ DebugRuleConfiguration](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DebugRuleConfiguration.html)oggetti [ DebugHookConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DebugHookConfig.html)e nell'operazione [ CreateTrainingJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html)API. Il seguente esempio di codice mostra come configurare una `ImproperActivation` regola personalizzata scritta con la libreria *smdebug* utilizzando questa operazione SageMaker API. In questo esempio si presuppone che la regola personalizzata sia stata scritta nel file *custom\$1rules.py* e che sia stata caricata in un bucket Amazon S3. Nell'esempio vengono fornite immagini Docker predefinite che puoi utilizzare per eseguire le regole personalizzate. Queste immagini sono elencate in [Immagine Amazon SageMaker Debugger URIs per valutatori di regole personalizzati](debugger-reference.md#debuger-custom-rule-registry-ids). Specifica l'indirizzo del registro di URL per l'immagine Docker integrata nel parametro `RuleEvaluatorImage`.

```
"DebugHookConfig": {
    "S3OutputPath": "s3://<default-bucket>/<training-job-name>/debug-output",
    "CollectionConfigurations": [
        {
            "CollectionName": "relu_activations",
            "CollectionParameters": {
                "include_regex": "relu",
                "save_interval": "500",
                "end_step": "5000"
            }
        }
    ]
},
"DebugRulesConfigurations": [
    {
        "RuleConfigurationName": "improper_activation_job",
        "RuleEvaluatorImage": "552407032007.dkr.ecr.ap-south-1.amazonaws.com/sagemaker-debugger-rule-evaluator:latest",
        "InstanceType": "ml.c4.xlarge",
        "VolumeSizeInGB": 400,
        "RuleParameters": {
           "source_s3_uri": "s3://bucket/custom_rules.py",
           "rule_to_invoke": "ImproperActivation",
           "collection_names": "relu_activations"
        }
    }
]
```

Per trovare un elenco completo delle immagini Docker disponibili per l'utilizzo delle regole di Debugger, consulta [Immagini Docker per le regole di Debugger](debugger-reference.md#debugger-docker-images-rules). Per trovare le coppie chiave-valore per `RuleParameters`, consulta [Elenco delle regole integrate di Debugger](debugger-built-in-rules.md).

# SDK per Python (Boto3)
<a name="debugger-built-in-rules-api.Boto3"></a>

Le regole integrate di Amazon SageMaker Debugger possono essere configurate per un lavoro di formazione utilizzando la [https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.create_training_job](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.create_training_job)funzione del client AI AWS SageMaker Boto3. È necessario specificare l'URI corretto dell'immagine nel parametro `RuleEvaluatorImage` e gli esempi seguenti illustrano come configurare il corpo della richiesta per la funzione [https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.create_training_job](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.create_training_job).

Il codice seguente mostra un esempio completo di come configurare Debugger per il corpo della `create_training_job()` richiesta e avviare un processo di formazione in`us-west-2`, presupponendo che uno script di formazione sia preparato utilizzando. `entry_point/train.py` TensorFlow Per trovare un notebook di end-to-end esempio, consulta [Profiling TensorFlow Multi GPU Multi Node Training Job with Amazon SageMaker Debugger](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-debugger/tensorflow_profiling/tf-resnet-profiling-multi-gpu-multi-node-boto3.html) (Boto3).

**Nota**  
Assicurati di utilizzare le immagini corrette del container Docker. Per trovare le immagini disponibili dei AWS Deep Learning Container, consulta Immagini [disponibili dei Deep Learning Containers](https://github.com/aws/deep-learning-containers/blob/master/available_images.md). Per trovare un elenco completo delle immagini Docker disponibili per l'utilizzo delle regole di Debugger, consulta [Immagini Docker per le regole di Debugger](debugger-reference.md#debugger-docker-images-rules).

```
import sagemaker, boto3
import datetime, tarfile

# Start setting up a SageMaker session and a Boto3 SageMaker client
session = sagemaker.Session()
region = session.boto_region_name
bucket = session.default_bucket()

# Upload a training script to a default Amazon S3 bucket of the current SageMaker session
source = 'source.tar.gz'
project = 'debugger-boto3-test'

tar = tarfile.open(source, 'w:gz')
tar.add ('entry_point/train.py') # Specify the directory and name of your training script
tar.close()

s3 = boto3.client('s3')
s3.upload_file(source, bucket, project+'/'+source)

# Set up a Boto3 session client for SageMaker
sm = boto3.Session(region_name=region).client("sagemaker")

# Start a training job
sm.create_training_job(
    TrainingJobName='debugger-boto3-'+datetime.datetime.now().strftime('%Y-%m-%d-%H-%M-%S'),
    HyperParameters={
        'sagemaker_submit_directory': 's3://'+bucket+'/'+project+'/'+source,
        'sagemaker_program': '/entry_point/train.py' # training scrip file location and name under the sagemaker_submit_directory
    },
    AlgorithmSpecification={
        # Specify a training Docker container image URI (Deep Learning Container or your own training container) to TrainingImage.
        'TrainingImage': '763104351884.dkr.ecr.us-west-2.amazonaws.com/tensorflow-training:2.4.1-gpu-py37-cu110-ubuntu18.04',
        'TrainingInputMode': 'File',
        'EnableSageMakerMetricsTimeSeries': False
    },
    RoleArn='arn:aws:iam::111122223333:role/service-role/AmazonSageMaker-ExecutionRole-20201014T161125',
    OutputDataConfig={'S3OutputPath': 's3://'+bucket+'/'+project+'/output'},
    ResourceConfig={
        'InstanceType': 'ml.p3.8xlarge',
        'InstanceCount': 1,
        'VolumeSizeInGB': 30
    },
    StoppingCondition={
        'MaxRuntimeInSeconds': 86400
    },
    DebugHookConfig={
        'S3OutputPath': 's3://'+bucket+'/'+project+'/debug-output',
        'CollectionConfigurations': [
            {
                'CollectionName': 'losses',
                'CollectionParameters' : {
                    'train.save_interval': '500',
                    'eval.save_interval': '50'
                }
            }
        ]
    },
    DebugRuleConfigurations=[
        {
            'RuleConfigurationName': 'LossNotDecreasing',
            'RuleEvaluatorImage': '895741380848.dkr.ecr.us-west-2.amazonaws.com/sagemaker-debugger-rules:latest',
            'RuleParameters': {'rule_to_invoke': 'LossNotDecreasing'}
        }
    ],
    ProfilerConfig={
        'S3OutputPath': 's3://'+bucket+'/'+project+'/profiler-output',
        'ProfilingIntervalInMilliseconds': 500,
        'ProfilingParameters': {
            'DataloaderProfilingConfig': '{"StartStep": 5, "NumSteps": 3, "MetricsRegex": ".*", }',
            'DetailedProfilingConfig': '{"StartStep": 5, "NumSteps": 3, }',
            'PythonProfilingConfig': '{"StartStep": 5, "NumSteps": 3, "ProfilerName": "cprofile", "cProfileTimer": "total_time"}',
            'LocalPath': '/opt/ml/output/profiler/' # Optional. Local path for profiling outputs
        }
    },
    ProfilerRuleConfigurations=[
        {
            'RuleConfigurationName': 'ProfilerReport',
            'RuleEvaluatorImage': '895741380848.dkr.ecr.us-west-2.amazonaws.com/sagemaker-debugger-rules:latest',
            'RuleParameters': {'rule_to_invoke': 'ProfilerReport'}
        }
    ]
)
```

## Configurazione di una regola di Debugger per il debug dei parametri del modello
<a name="debugger-built-in-rules-api-debug.Boto3"></a>

I seguenti esempi di codice mostrano come configurare una `VanishingGradient` regola integrata utilizzando questa SageMaker API. 

**Per consentire a Debugger di raccogliere tensori di output**

Specifica la configurazione dell’hook Debugger come segue:

```
DebugHookConfig={
    'S3OutputPath': 's3://<default-bucket>/<training-job-name>/debug-output',
    'CollectionConfigurations': [
        {
            'CollectionName': 'gradients',
            'CollectionParameters' : {
                'train.save_interval': '500',
                'eval.save_interval': '50'
            }
        }
    ]
}
```

Ciò farà sì che il processo di addestramento salvi la raccolta di tensori, `gradients`, ogni `save_interval` di 500 fasi. Per trovare `CollectionName` i valori disponibili, consulta [Debugger Built-in Collections nella documentazione](https://github.com/awslabs/sagemaker-debugger/blob/master/docs/api.md#built-in-collections) della libreria *SMDebug client*. Per trovare le chiavi e i valori dei `CollectionParameters` parametri disponibili, consulta la [https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html#sagemaker.debugger.CollectionConfig](https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html#sagemaker.debugger.CollectionConfig)classe nella documentazione di *SageMaker Python SDK*.

**Per abilitare le regole di Debugger per il debug dei tensori di output**

Il seguente esempio di API `DebugRuleConfigurations` mostra come eseguire la regola `VanishingGradient` integrata nella raccolta `gradients` salvata.

```
DebugRuleConfigurations=[
    {
        'RuleConfigurationName': 'VanishingGradient',
        'RuleEvaluatorImage': '895741380848.dkr.ecr.us-west-2.amazonaws.com/sagemaker-debugger-rules:latest',
        'RuleParameters': {
            'rule_to_invoke': 'VanishingGradient',
            'threshold': '20.0'
        }
    }
]
```

Con una configurazione come quella in questo esempio, Debugger avvia un processo di valutazione della regola per il processo di addestramento utilizzando la regola `VanishingGradient` nella raccolta del tensore `gradients`. Per trovare un elenco completo delle immagini Docker disponibili per l'utilizzo delle regole di Debugger, consulta [Immagini Docker per le regole di Debugger](debugger-reference.md#debugger-docker-images-rules). Per trovare le coppie chiave-valore per `RuleParameters`, consulta [Elenco delle regole integrate di Debugger](debugger-built-in-rules.md).

## Configurazione di una regola integrata di Debugger per la profilazione dei parametri del sistema e del framework
<a name="debugger-built-in-rules-api-profile.Boto3"></a>

Il codice di esempio seguente mostra come specificare l'operazione dell' ProfilerConfig API per consentire la raccolta delle metriche del sistema e del framework.

**Per abilitare la profilazione di Debugger per raccogliere i parametri del sistema e del framework**

------
#### [ Target Step ]

```
ProfilerConfig={ 
    'S3OutputPath': 's3://<default-bucket>/<training-job-name>/profiler-output', # Optional. Path to an S3 bucket to save profiling outputs
    # Available values for ProfilingIntervalInMilliseconds: 100, 200, 500, 1000 (1 second), 5000 (5 seconds), and 60000 (1 minute) milliseconds.
    'ProfilingIntervalInMilliseconds': 500, 
    'ProfilingParameters': {
        'DataloaderProfilingConfig': '{
            "StartStep": 5, 
            "NumSteps": 3, 
            "MetricsRegex": ".*"
        }',
        'DetailedProfilingConfig': '{
            "StartStep": 5, 
            "NumSteps": 3 
        }',
        'PythonProfilingConfig': '{
            "StartStep": 5, 
            "NumSteps": 3, 
            "ProfilerName": "cprofile",  # Available options: cprofile, pyinstrument
            "cProfileTimer": "total_time"  # Include only when using cprofile. Available options: cpu, off_cpu, total_time
        }',
        'LocalPath': '/opt/ml/output/profiler/' # Optional. Local path for profiling outputs
    }
}
```

------
#### [ Target Time Duration ]

```
ProfilerConfig={ 
    'S3OutputPath': 's3://<default-bucket>/<training-job-name>/profiler-output', # Optional. Path to an S3 bucket to save profiling outputs
    # Available values for ProfilingIntervalInMilliseconds: 100, 200, 500, 1000 (1 second), 5000 (5 seconds), and 60000 (1 minute) milliseconds.
    'ProfilingIntervalInMilliseconds': 500,
    'ProfilingParameters': {
        'DataloaderProfilingConfig': '{
            "StartTimeInSecSinceEpoch": 12345567789, 
            "DurationInSeconds": 10, 
            "MetricsRegex": ".*"
        }',
        'DetailedProfilingConfig': '{
            "StartTimeInSecSinceEpoch": 12345567789, 
            "DurationInSeconds": 10
        }',
        'PythonProfilingConfig': '{
            "StartTimeInSecSinceEpoch": 12345567789, 
            "DurationInSeconds": 10, 
            "ProfilerName": "cprofile",  # Available options: cprofile, pyinstrument
            "cProfileTimer": "total_time"  # Include only when using cprofile. Available options: cpu, off_cpu, total_time
        }',
        'LocalPath': '/opt/ml/output/profiler/' # Optional. Local path for profiling outputs
    }
}
```

------

**Per abilitare le regole di Debugger per la profilazione dei parametri**

Il codice di esempio seguente mostra come configurare la regola `ProfilerReport`.

```
ProfilerRuleConfigurations=[ 
    {
        'RuleConfigurationName': 'ProfilerReport',
        'RuleEvaluatorImage': '895741380848.dkr.ecr.us-west-2.amazonaws.com/sagemaker-debugger-rules:latest',
        'RuleParameters': {
            'rule_to_invoke': 'ProfilerReport',
            'CPUBottleneck_cpu_threshold': '90',
            'IOBottleneck_threshold': '90'
        }
    }
]
```

Per trovare un elenco completo delle immagini Docker disponibili per l'utilizzo delle regole di Debugger, consulta [Immagini Docker per le regole di Debugger](debugger-reference.md#debugger-docker-images-rules). Per trovare le coppie chiave-valore per `RuleParameters`, consulta [Elenco delle regole integrate di Debugger](debugger-built-in-rules.md).

## Aggiorna la configurazione della profilazione di Debugger utilizzando l'operazione API `UpdateTrainingJob`
<a name="debugger-updatetrainingjob-api.Boto3"></a>

La configurazione della profilazione del debugger può essere aggiornata durante l'esecuzione del processo di formazione utilizzando la [https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.update_training_job](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.update_training_job)funzione del client AI Boto3. AWS SageMaker Configura nuovi [ProfilerRuleConfiguration](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProfilerRuleConfiguration.html)oggetti [ProfilerConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProfilerConfig.html)e specifica il nome del processo di formazione nel parametro. `TrainingJobName`

```
ProfilerConfig={ 
    'DisableProfiler': boolean,
    'ProfilingIntervalInMilliseconds': number,
    'ProfilingParameters': { 
        'string' : 'string' 
    }
},
ProfilerRuleConfigurations=[ 
    { 
        'RuleConfigurationName': 'string',
        'RuleEvaluatorImage': 'string',
        'RuleParameters': { 
            'string' : 'string' 
        }
    }
],
TrainingJobName='your-training-job-name-YYYY-MM-DD-HH-MM-SS-SSS'
```

## Aggiungi la configurazione delle regole personalizzate del debugger all'operazione API CreateTrainingJob
<a name="debugger-custom-rules-api.Boto3"></a>

È possibile configurare una regola personalizzata per un lavoro di formazione utilizzando [ DebugRuleConfiguration](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DebugRuleConfiguration.html)gli oggetti [ DebugHookConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DebugHookConfig.html)e utilizzando la funzione del client AWS Boto3 SageMaker AI. [https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.create_training_job](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.create_training_job) Il seguente esempio di codice mostra come configurare una `ImproperActivation` regola personalizzata scritta con la libreria *smdebug* utilizzando questa operazione API. SageMaker In questo esempio si presuppone che la regola personalizzata sia stata scritta nel file *custom\$1rules.py* e che sia stata caricata in un bucket Amazon S3. Nell'esempio vengono fornite immagini Docker predefinite che puoi utilizzare per eseguire le regole personalizzate. Queste immagini sono elencate in [Immagine Amazon SageMaker Debugger URIs per valutatori di regole personalizzati](debugger-reference.md#debuger-custom-rule-registry-ids). Specifica l'indirizzo del registro di URL per l'immagine Docker integrata nel parametro `RuleEvaluatorImage`.

```
DebugHookConfig={
    'S3OutputPath': 's3://<default-bucket>/<training-job-name>/debug-output',
    'CollectionConfigurations': [
        {
            'CollectionName': 'relu_activations',
            'CollectionParameters': {
                'include_regex': 'relu',
                'save_interval': '500',
                'end_step': '5000'
            }
        }
    ]
},
DebugRulesConfigurations=[
    {
        'RuleConfigurationName': 'improper_activation_job',
        'RuleEvaluatorImage': '552407032007.dkr.ecr.ap-south-1.amazonaws.com/sagemaker-debugger-rule-evaluator:latest',
        'InstanceType': 'ml.c4.xlarge',
        'VolumeSizeInGB': 400,
        'RuleParameters': {
           'source_s3_uri': 's3://bucket/custom_rules.py',
           'rule_to_invoke': 'ImproperActivation',
           'collection_names': 'relu_activations'
        }
    }
]
```

Per trovare un elenco completo delle immagini Docker disponibili per l'utilizzo delle regole di Debugger, consulta [Immagini Docker per le regole di Debugger](debugger-reference.md#debugger-docker-images-rules). Per trovare le coppie chiave-valore per `RuleParameters`, consulta [Elenco delle regole integrate di Debugger](debugger-built-in-rules.md).