

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

# Container Docker per l’addestramento e l’implementazione di modelli
<a name="docker-containers"></a>

Amazon SageMaker AI fa un uso estensivo dei *contenitori Docker* per le attività di compilazione e runtime. SageMaker L'intelligenza artificiale fornisce immagini Docker predefinite per i suoi algoritmi integrati e i framework di deep learning supportati utilizzati per la formazione e l'inferenza. Utilizzando i container, puoi eseguire l’addestramento di algoritmi di machine learning e distribuire modelli in modo rapido e affidabile su qualsiasi scala. Gli argomenti di questa sezione mostrano come distribuire questi container per i tuoi casi d'uso. Per informazioni su come portare i propri contenitori da utilizzare con Amazon SageMaker Studio Classic, consulta[Immagini personalizzate in Amazon SageMaker Studio Classic](studio-byoi.md).

**Topics**
+ [Scenari per l'esecuzione di script, l'addestramento di algoritmi o la distribuzione di modelli con intelligenza artificiale SageMaker](#container-scenarios)
+ [Nozioni di base sui container Docker](docker-basics.md)
+ [Immagini Docker AI predefinite SageMaker](docker-containers-prebuilt.md)
+ [Contenitori Docker personalizzati con intelligenza artificiale SageMaker](docker-containers-adapt-your-own.md)
+ [Creazione di un container con algoritmi e modelli personalizzati](docker-containers-create.md)
+ [Esempi e ulteriori informazioni: utilizzo del proprio algoritmo o modello](docker-containers-notebooks.md)
+ [Risoluzione dei problemi relativi ai container Docker e alle implementazioni](#docker-containers-troubleshooting)

## Scenari per l'esecuzione di script, l'addestramento di algoritmi o la distribuzione di modelli con intelligenza artificiale SageMaker
<a name="container-scenarios"></a>

Amazon SageMaker AI utilizza sempre i contenitori Docker per eseguire script, addestrare algoritmi e distribuire modelli. Il tuo livello di coinvolgimento con i container varia a seconda del tuo caso d'uso. 

**Il seguente albero decisionale illustra tre scenari principali: casi d'uso **per l'utilizzo di contenitori Docker predefiniti con SageMaker intelligenza artificiale; casi d'uso per l'estensione di un contenitore Docker** **preconfigurato; casi d'uso per la creazione di container personalizzati**.**

![\[Albero decisionale per casi d’uso di container.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/your-algorithm-containers-flowchart-diagram.png)


**Topics**
+ [Casi d'uso per l'utilizzo di contenitori Docker predefiniti con AI SageMaker](#container-scenarios-use-prebuilt)
+ [Casi d'uso per estendere un container Docker predefinito](#container-scenarios-extend-prebuilt)
+ [Caso d'uso per costruire il proprio container](#container-scenarios-byoc)

### Casi d'uso per l'utilizzo di contenitori Docker predefiniti con AI SageMaker
<a name="container-scenarios-use-prebuilt"></a>

Prendi in considerazione i seguenti casi d'uso quando utilizzi contenitori con SageMaker AI:
+ **Algoritmo SageMaker AI predefinito**: utilizza l'immagine fornita con l'algoritmo integrato. Per ulteriori informazioni, consulta [Utilizzare algoritmi integrati o modelli preaddestrati di Amazon SageMaker AI](https://docs.aws.amazon.com//sagemaker/latest/dg/algos.html).
+ **Modello personalizzato con contenitore SageMaker AI predefinito**: se addestra o distribuisci un modello personalizzato, ma utilizzi un framework con un contenitore SageMaker AI precostruito PyTorch, che include TensorFlow e scegli una delle seguenti opzioni:
  + Se non hai bisogno di un pacchetto personalizzato e il container include già tutti i pacchetti richiesti, usa l'immagine Docker predefinita associata al tuo framework. Per ulteriori informazioni, consulta [Immagini Docker AI predefinite SageMaker](docker-containers-prebuilt.md).
  + Se hai bisogno di un pacchetto personalizzato installato in uno dei container predefiniti: conferma che l'immagine Docker predefinita consenta un file requirements.txt oppure estendi il container predefinito in base ai seguenti casi d'uso.

### Casi d'uso per estendere un container Docker predefinito
<a name="container-scenarios-extend-prebuilt"></a>

Di seguito sono riportati i casi d'uso per l'estensione di un container Docker predefinito:
+ **Non è possibile importare le dipendenze**: estendi l'immagine Docker predefinita associata al framework. Per ulteriori informazioni, consulta [Estensione di un container predefinito](prebuilt-containers-extend.md).
+ **Non puoi importare le dipendenze nel container predefinito, il container predefinito supporta requirements.txt**: aggiungi tutte le dipendenze richieste in requirements.txt. I seguenti framework supportano l'utilizzo di requirements.txt.
  + [TensorFlow](https://sagemaker.readthedocs.io/en/v2.18.0/frameworks/tensorflow/using_tf.html)
  + [Chainer](https://sagemaker.readthedocs.io/en/v2.18.0/frameworks/chainer/using_chainer.html?highlight=requirements.txt)
  + [Sci-kit learn](https://sagemaker.readthedocs.io/en/stable/frameworks/sklearn/using_sklearn.html?highlight=requirements.txt)
  + [PyTorch](https://sagemaker.readthedocs.io/en/v2.18.0/frameworks/pytorch/using_pytorch.html?highlight=requirements.txt)
  + [Apache MXNet](https://sagemaker.readthedocs.io/en/v2.18.0/frameworks/mxnet/using_mxnet.html?highlight=requirements.txt)

### Caso d'uso per costruire il proprio container
<a name="container-scenarios-byoc"></a>

Se crei o addestri un modello personalizzato e hai bisogno di un framework personalizzato che non abbia un'immagine predefinita, crea un container personalizzato.

Come esempio di formazione e implementazione di un TensorFlow modello, la seguente guida mostra come determinare l'opzione delle sezioni precedenti di Casi d'**uso adatta al caso**.

Si supponga di avere i seguenti requisiti per la formazione e l'implementazione di un TensorFlow modello.
+ Un TensorFlow modello è un modello personalizzato.
+ Poiché un TensorFlow modello verrà creato nel TensorFlow framework, utilizzate il contenitore framework TensorFlow predefinito per addestrare e ospitare il modello.
+ Se sono necessari pacchetti personalizzati nello script del [ punto di ingresso](https://sagemaker.readthedocs.io/en/stable/frameworks/tensorflow/using_tf.html#train-a-model-with-tensorflow) o nello script di inferenza [, estendi il container predefinito o usa un file requirements.txt per installare le dipendenze in fase di esecuzione.](https://sagemaker.readthedocs.io/en/stable/frameworks/tensorflow/deploying_tensorflow_serving.html#how-to-implement-the-pre-and-or-post-processing-handler-s)

Dopo aver determinato il tipo di container necessario, il seguente elenco fornisce dettagli sulle opzioni elencate in precedenza.
+ **Utilizza un algoritmo o un framework di SageMaker intelligenza artificiale integrato**. Nella maggior parte dei casi d'uso, puoi utilizzare gli algoritmi e i framework integrati senza preoccuparti dei container. [Puoi addestrare e distribuire questi algoritmi dalla console SageMaker AI, da AWS Command Line Interface (AWS CLI), da un notebook Python o dall'SDK Amazon Python. SageMaker ](https://sagemaker.readthedocs.io/en/stable) È possibile farlo specificando l'algoritmo o la versione del framework durante la creazione dello strumento di valutazione. Gli algoritmi integrati disponibili sono descritti in modo dettagliato nell'argomento [Algoritmi integrati e modelli preaddestrati in Amazon SageMaker](algos.md). Per ulteriori informazioni sui framework disponibili, consulta [Framework e linguaggi ML](frameworks.md). Per un esempio di come addestrare e distribuire un algoritmo integrato utilizzando un notebook Jupyter in esecuzione in un'istanza di notebook, consulta l'argomento. SageMaker [Guida alla configurazione con Amazon SageMaker AI](gs.md) 
+ **Utilizza immagini di container AI predefinite SageMaker **. In alternativa, puoi utilizzare gli algoritmi e i framework integrati utilizzando i contenitori Docker. SageMaker L'intelligenza artificiale fornisce contenitori per i suoi algoritmi integrati e immagini Docker predefinite per alcuni dei framework di apprendimento automatico più comuni, come Apache, e Chainer. MXNet TensorFlow PyTorch Per un elenco completo delle SageMaker immagini disponibili, consulta Available [Deep Learning Containers Images](https://github.com/aws/deep-learning-containers/blob/master/available_images.md). Inoltre, supporta librerie di machine learning quali scikit-learn e SparkML. Se utilizzi l'[SDK Amazon SageMaker Python](https://sagemaker.readthedocs.io/en/stable), puoi distribuire i contenitori passando l'URI completo del contenitore alla rispettiva classe SDK. SageMaker `Estimator` Per l'elenco completo dei framework di deep learning attualmente supportati dall'IA, consulta. SageMaker [Immagini Docker SageMaker AI predefinite per il deep learning](pre-built-containers-frameworks-deep-learning.md) Per ulteriori informazioni sulle immagini container predefinite scikit-learn e SparkML, consulta [Accesso a immagini Docker per Scikit-learn e Spark ML](pre-built-docker-containers-scikit-learn-spark.md). Per ulteriori informazioni sull'uso dei framework con l'[SDK Amazon SageMaker Python](https://sagemaker.readthedocs.io/en/stable), consulta i rispettivi argomenti in. [Framework e linguaggi di machine learning](frameworks.md)
+ **Estendi un'immagine di contenitore AI preconfigurata SageMaker **. Se desideri estendere un algoritmo SageMaker AI predefinito o un'immagine Docker modello, puoi modificare l' SageMaker immagine per soddisfare le tue esigenze. Per un esempio, vedi [Estendere i nostri contenitori](https://github.com/aws/amazon-sagemaker-examples-community/blob/215215eb25b40eadaf126d055dbb718a245d7603/bring-your-own-container/pytorch_extending_our_containers/pytorch_extending_our_containers.ipynb). PyTorch 
+ **Adattare un'immagine di contenitore esistente**: se desideri adattare un'immagine di contenitore preesistente per lavorare con l' SageMaker intelligenza artificiale, devi modificare il contenitore Docker per abilitare il toolkit SageMaker Training o Inference. Per un esempio che mostra come compilare i tuoi container per eseguire l’addestramento e l'hosting di un algoritmo, consulta [Bring Your Own R Algorithm](https://github.com/aws/amazon-sagemaker-examples/blob/main/advanced_functionality/scikit_bring_your_own/scikit_bring_your_own.ipynb).

## Risoluzione dei problemi relativi ai container Docker e alle implementazioni
<a name="docker-containers-troubleshooting"></a>

Di seguito sono riportati gli errori più comuni che potresti riscontrare quando utilizzi Docker contenitori con intelligenza artificiale. SageMaker Ogni errore è seguito da una soluzione all'errore. 
+ **Errore: l' SageMaker IA ha perso il Docker demone.**

   Per risolvere questo errore, riavvia Docker utilizzando il comando seguente.

  ```
  sudo service docker restart
  ```
+ ** Errore: lo spazio nella directory `/tmp` del container Docker è esaurito.**

  I container Docker utilizzano le partizioni `/` e `/tmp` per archiviare codice. Queste partizioni possono riempirsi facilmente quando si utilizzano moduli di codice di grandi dimensioni in modalità locale. L'SDK SageMaker AI Python supporta la specificazione di una directory temporanea personalizzata per la directory principale in modalità locale per evitare questo problema.

  Per specificare la directory temporanea personalizzata nell’archiviazione del volume Amazon Elastic Block Store, crea un file al seguente percorso `~/.sagemaker/config.yaml` e aggiungi la seguente configurazione. La directory specificata come `container_root` deve essere già esistente. L'SDK SageMaker AI Python non proverà a crearlo.

  ```
  local:
    container_root: /home/ec2-user/SageMaker/temp
  ```

  Con questa configurazione, la modalità locale utilizza la directory `/temp` e non la directory predefinita `/tmp`.
+ **Errori di spazio insufficiente sulle istanze del notebook SageMaker **

  Un Docker contenitore che funziona su istanze SageMaker notebook utilizza per impostazione predefinita il volume Amazon EBS root dell'istanza notebook. Per risolvere errori di spazio insufficiente, fornisci il percorso del volume Amazon EBS collegato all’istanza di notebook come parte del parametro volume dei comandi Docker.

  ```
  docker run -v EBS-volume-path:container-path
  ```