Contenitori Docker per la formazione e l'implementazione di modelli - 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à.

Contenitori Docker per la formazione e l'implementazione di modelli

Amazon SageMaker fa un uso estensivo dei contenitori Docker per le attività di compilazione e runtime. SageMaker fornisce immagini Docker predefinite per i suoi algoritmi integrati e i framework di deep learning supportati utilizzati per l'addestramento 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, consultaPorta la tua SageMaker immagine.

Scenari per l'esecuzione di script, l'addestramento di algoritmi o la distribuzione di modelli con SageMaker

Amazon utilizza SageMaker 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; Casi d'uso per l'estensione di un contenitore Docker preconfigurato; Caso d'uso per la creazione di contenitori personalizzati.

Albero decisionale per i casi d'uso dei container.

Casi d'uso per l'utilizzo di contenitori Docker predefiniti con SageMaker

Prendi in considerazione i seguenti casi d'uso quando utilizzi contenitori con: SageMaker

  • SageMaker Algoritmo predefinito: utilizza l'immagine fornita con l'algoritmo integrato. Per ulteriori informazioni, consulta Usa algoritmi SageMaker integrati o modelli preaddestrati di Amazon.

  • Modello personalizzato con SageMaker contenitore precostruito: se addestra o distribuisci un modello personalizzato, ma utilizzi un framework che include TensorFlow un SageMaker contenitore predefinito PyTorch, 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 predefinite SageMaker .

    • 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

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 Estendere un container predefinito.

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

Caso d'uso per costruire il proprio container

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

Dopo aver determinato il tipo di contenitore necessario, l'elenco seguente fornisce dettagli sulle opzioni elencate in precedenza.

Risoluzione dei problemi relativi al Docker contenitori e implementazioni

Di seguito sono riportati gli errori più comuni che potrebbero verificarsi durante l'utilizzo Docker contenitori con SageMaker. Ogni errore è seguito da una soluzione all'errore.

  • Errore: SageMaker ha perso il Docker demone.

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

    sudo service docker restart
  • Errore: la /tmp cartella del tuo Docker lo spazio nel contenitore è esaurito.

    Docker i contenitori utilizzano le /tmp partizioni / and per memorizzare il codice. Queste partizioni possono riempirsi facilmente quando si utilizzano moduli di codice di grandi dimensioni in modalità locale. SageMakerPython SDK 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 nello storage del volume Amazon Elastic Block Store, crea un file nel seguente percorso ~/.sagemaker/config.yaml e aggiungi la seguente configurazione. La directory specificata come container_root deve essere già esistente. SageMakerPython non SDK 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 SageMaker notebook

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

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