

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

# Adatta il tuo processo di addestramento per accedere alle immagini in un registro Docker privato
<a name="docker-containers-adapt-your-own-private-registry"></a>

Puoi utilizzare un [registro Docker](https://docs.docker.com/registry/) privato anziché un Amazon Elastic Container Registry (Amazon ECR) per ospitare le tue immagini per l'AI Training. SageMaker Le seguenti istruzioni mostrano come creare un registro Docker, configurare il cloud privato virtuale (VPC) e il processo di formazione, archiviare immagini e consentire all'IA di accedere all'immagine di formazione nel registro docker privato. SageMaker Queste istruzioni mostrano anche come utilizzare un registro Docker che richiede l'autenticazione per un processo di formazione. SageMaker 

## Creazione e archiviazione di immagini in un registro Docker privato
<a name="docker-containers-adapt-your-own-private-registry-prerequisites"></a>

Creazione di un registro Docker privato per archiviare le immagini. Il registro deve:
+ utilizzare il protocollo del [Registro Docker HTTP API](https://docs.docker.com/registry/spec/api/)
+ essere accessibile dallo stesso VPC specificato nel [VpcConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html#API_CreateTrainingJob_RequestSyntax)parametro nell'`CreateTrainingJob`API. Inserisci `VpcConfig` quando crei il processo di addestramento.
+ protetto con un [certificato TLS](https://aws.amazon.com/what-is/ssl-certificate/) rilasciato da un'autorità di certificazione pubblica nota.

Per ulteriori informazioni sulla creazione di un registro Docker, consulta [Deploy a registry server](https://docs.docker.com/registry/deploying/).

## Configura il tuo VPC e SageMaker il tuo lavoro di formazione
<a name="docker-containers-adapt-your-own-private-registry-configure"></a>

SageMaker L'intelligenza artificiale utilizza una connessione di rete all'interno del tuo VPC per accedere alle immagini nel tuo registro Docker. Per utilizzare le immagini del registro Docker per l’addestramento, il registro deve essere accessibile da un Amazon VPC del proprio account. Per ulteriori informazioni, consulta [Utilizzo di un registro Docker che richiede l'autenticazione per l’addestramento](docker-containers-adapt-your-own-private-registry-authentication.md).

Devi inoltre configurare il processo di addestramento per connetterti allo stesso VPC a cui ha accesso il registro Docker. Per ulteriori informazioni, consulta [Configure a Training Job for Amazon VPC Access](https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html#train-vpc-configure).

## Creazione di un processo di addestramento utilizzando un'immagine dal registro Docker privato
<a name="docker-containers-adapt-your-own-private-registry-create"></a>

Per utilizzare un'immagine del registro Docker privato per l’addestramento, usa la seguente guida per configurare l'immagine, configurare e creare un processo di addestramento. Gli esempi di codice che seguono utilizzano il AWS SDK per Python (Boto3) client.

1. Crea un oggetto di configurazione dell'immagine di addestramento e inserisci `Vpc` il campo `TrainingRepositoryAccessMode` come segue.

   ```
   training_image_config = {
       'TrainingRepositoryAccessMode': 'Vpc'
   }
   ```
**Nota**  
Se il registro Docker privato richiede l'autenticazione, devi aggiungere un oggetto `TrainingRepositoryAuthConfig` all'oggetto di configurazione dell'immagine di addestramento. È inoltre necessario specificare l'Amazon Resource Name (ARN) di una AWS Lambda funzione che fornisce credenziali di accesso all' SageMaker IA utilizzando il `TrainingRepositoryCredentialsProviderArn` campo dell'oggetto. `TrainingRepositoryAuthConfig` Per ulteriori informazioni, consulta la struttura del codice di esempio qui di seguito.  

   ```
   training_image_config = {
      'TrainingRepositoryAccessMode': 'Vpc',
      'TrainingRepositoryAuthConfig': {
           'TrainingRepositoryCredentialsProviderArn': '{{arn:aws:lambda:Region:Acct:function:FunctionName}}'
      }
   }
   ```

   Per informazioni su come creare la funzione Lambda per consentire l'autenticazione, consulta [Utilizzo di un registro Docker che richiede l'autenticazione per l’addestramento](docker-containers-adapt-your-own-private-registry-authentication.md).

1. Utilizzo di un client Boto3 per creare un processo di addestramento e inoltrare la configurazione corretta all'API [create\_training\_job](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html). Le seguenti istruzioni mostrano come configurare i componenti e creare un processo di addestramento.

   1. Crea l’oggetto `AlgorithmSpecification` che desideri inoltrare a `create_training_job`. Utilizza l'oggetto di configurazione dell'immagine di addestramento creato nella fase precedente, come illustrato nell'esempio di codice seguente.

      ```
      algorithm_specification = {
         'TrainingImage': '{{myteam.myorg.com/docker-local/my-training-image:<IMAGE-TAG>}}',
         'TrainingImageConfig': training_image_config,
         'TrainingInputMode': '{{File}}'
      }
      ```
**Nota**  
Per utilizzare una versione fissa, anziché aggiornata, di un'immagine, fai riferimento al [digest](https://docs.docker.com/engine/reference/commandline/pull/#pull-an-image-by-digest-immutable-identifier) dell'immagine anziché al nome o al tag.

   1. Specifica il nome del processo di addestramento e il ruolo che desideri inoltrare a `create_training_job`, come illustrato nell'esempio di codice seguente. 

      ```
      training_job_name = '{{private-registry-job}}'
      execution_role_arn = '{{arn:aws:iam::123456789012:role/SageMakerExecutionRole}}'
      ```

   1. Specifica un gruppo di sicurezza e una sottorete per la configurazione VPC per il processo di addestramento. Il registro Docker privato deve consentire il traffico in entrata proveniente dai gruppi di sicurezza specificati, come illustrato nel seguente esempio di codice.

      ```
      vpc_config = {
          'SecurityGroupIds': ['{{sg-0123456789abcdef0}}'],
          'Subnets': ['{{subnet-0123456789abcdef0}}','{{subnet-0123456789abcdef1}}']
      }
      ```
**Nota**  
Se la sottorete non si trova nello stesso VPC del registro Docker privato, è necessario configurare una connessione di rete tra i due VPC. SeeConnect VPC che utilizzano il peering [VPC per](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-peering.html) ulteriori informazioni.

   1. Specifica la configurazione delle risorse, incluse le istanze di calcolo di machine learning e i volumi di archiviazione da utilizzare per l’addestramento, come illustrato nel seguente esempio di codice. 

      ```
      resource_config = {
          'InstanceType': '{{ml.m4.xlarge}}',
          'InstanceCount': {{1}},
          'VolumeSizeInGB': {{10}},
      }
      ```

   1. Specifica la configurazione dei dati di input e output, dove è archiviato il set di dati di addestramento e dove desideri memorizzare gli artefatti del modello, come illustrato nel seguente esempio di codice.

      ```
      input_data_config = [
          {
              "ChannelName": "training",
              "DataSource":
              {
                  "S3DataSource":
                  {
                      "S3DataDistributionType": "{{FullyReplicated}}",
                      "S3DataType": "{{S3Prefix}}",
                      "S3Uri": "{{s3://your-training-data-bucket/training-data-folder}}"
                  }
              }
          }
      ]
      
      output_data_config = {
          'S3OutputPath': '{{s3://your-output-data-bucket/model-folder}}'
      }
      ```

   1. Specifica il numero massimo di secondi in cui un processo di addestramento del modello può effettuare l’esecuzione come illustrato nel seguente esempio di codice.

      ```
      stopping_condition = {
          'MaxRuntimeInSeconds': {{1800}}
      }
      ```

   1. Infine, crea il processo di addestramento utilizzando i parametri specificati nella fase precedente, come illustrato nell'esempio di codice seguente.

      ```
      import boto3
      sm = boto3.client('sagemaker')
      try:
          resp = sm.create_training_job(
              TrainingJobName=training_job_name,
              AlgorithmSpecification=algorithm_specification,
              RoleArn=execution_role_arn,
              InputDataConfig=input_data_config,
              OutputDataConfig=output_data_config,
              ResourceConfig=resource_config,
              VpcConfig=vpc_config,
              StoppingCondition=stopping_condition
          )
      except Exception as e:
          print(f'error calling CreateTrainingJob operation: {e}')
      else:
          print(resp)
      ```