As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Contêineres do Docker para treinamento e implantação de modelos
A Amazon SageMaker AI faz uso extensivo de contêineres Docker para tarefas de criação e execução. SageMaker A IA fornece imagens Docker pré-criadas para seus algoritmos integrados e as estruturas de aprendizado profundo suportadas usadas para treinamento e inferência. Usando contêineres, você pode treinar algoritmos de machine learning e implantar modelos de maneira rápida e confiável em qualquer escala. Os tópicos desta seção mostram como implantar esses contêineres para seus próprios casos de uso. Para obter informações sobre como trazer seus próprios contêineres para uso com o Amazon SageMaker Studio Classic, consulteTraga sua própria imagem de SageMaker IA.
Tópicos
- Cenários para execução de scripts, treinamento de algoritmos ou implantação de modelos com IA SageMaker
- Docker noções básicas sobre contêineres
- Imagens SageMaker AI Docker pré-construídas
- Contêineres Docker personalizados com IA SageMaker
- Criação de contêiner com seus próprios algoritmos e modelos
- Exemplos e mais informações: use seu próprio algoritmo ou modelo
- Solução de problemas do seu Docker contêineres e implantações
Cenários para execução de scripts, treinamento de algoritmos ou implantação de modelos com IA SageMaker
A Amazon SageMaker AI sempre usa contêineres Docker ao executar scripts, treinar algoritmos e implantar modelos. O nível de engajamento com contêineres depende do caso de uso.
A árvore decisória a seguir ilustra três cenários principais: Casos de uso para usar contêineres Docker pré-criados com SageMaker IA; Casos de uso para estender um contêiner Docker pré-construído; Caso de uso para criar seu próprio contêiner.
![Árvore de decisão para casos de uso de contêineres.](images/your-algorithm-containers-flowchart-diagram.png)
Tópicos
Casos de uso para usar contêineres Docker pré-criados com IA SageMaker
Considere os seguintes casos de uso ao usar contêineres com SageMaker IA:
-
Algoritmo de SageMaker IA pré-construído — Use a imagem que vem com o algoritmo integrado. Consulte Usar algoritmos integrados do Amazon SageMaker AI ou modelos pré-treinados para obter mais informações.
-
Modelo personalizado com contêiner de SageMaker IA pré-construído — Se você treinar ou implantar um modelo personalizado, mas usar uma estrutura que tenha um contêiner de SageMaker IA pré-construído, incluindo TensorFlow e PyTorch, escolha uma das seguintes opções:
-
Se você não precisa de um pacote personalizado e o contêiner já inclui todos os pacotes necessários, use a imagem do Docker predefinida associada à sua estrutura. Para obter mais informações, consulte Imagens SageMaker AI Docker pré-construídas.
-
Se você precisar de um pacote personalizado instalado em um dos contêineres predefinidos, confirme se a imagem do Docker predefinida permite um arquivo requirements:txt ou estenda o contêiner predefinido com base nos seguintes casos de uso:
-
Casos de uso para estender um contêiner do Docker predefinido
A seguir estão os casos de uso para estender um contêiner do Docker predefinido:
-
Você não pode importar as dependências: Estenda a imagem do Docker predefinida associada à sua estrutura. Consulte Estenda uma imagem de contêiner predefinida para obter mais informações.
-
Você não pode importar as dependências no contêiner predefinido e o contêiner predefinido é compatível com requirements.txt: Adicione todas as dependências necessárias em requirements.txt. As estruturas a seguir oferecem apoio ao uso de requirements.txt.
Caso de uso para construir o próprio contêiner
Se você criar ou treinar um modelo personalizado e precisar de uma estrutura personalizada que não tenha uma imagem predefinida, crie um contêiner personalizado.
Como exemplo de caso de uso de treinamento e implantação de um TensorFlow modelo, o guia a seguir mostra como determinar qual opção das seções anteriores de Casos de uso se adequa ao caso.
Suponha que você tenha os seguintes requisitos para treinar e implantar um TensorFlow modelo.
-
Um TensorFlow modelo é um modelo personalizado.
-
Como um TensorFlow modelo será construído na TensorFlow estrutura, use o contêiner da estrutura TensorFlow pré-construída para treinar e hospedar o modelo.
-
Se você precisar de pacotes personalizados no script de ponto de entrada
ou de inferência, estenda o contêiner predefinido ou use um arquivo requirements.txt para instalar dependências em runtime .
Depois de determinar o tipo de contêiner necessário, a lista a seguir fornece detalhes sobre as opções listadas anteriormente.
-
Use um algoritmo ou estrutura de SageMaker IA incorporado. Para a maioria dos casos de uso, você pode usar os algoritmos e estruturas integrados sem se preocupar com contêineres. Você pode treinar e implantar esses algoritmos no console de SageMaker IA, no AWS Command Line Interface (AWS CLI), em um notebook Python ou no SDK do Amazon Python SageMaker
. É possível fazer isso especificando a versão do algoritmo ou da estrutura ao criar o Estimador. Os algoritmos integrados disponíveis são discriminados e descritos no tópico Algoritmos integrados e modelos pré-treinados na Amazon SageMaker. Para obter mais informações sobre as estruturas disponíveis, consulte Frameworks e linguagens de ML. Para ver um exemplo de como treinar e implantar um algoritmo integrado usando um notebook Jupyter executado em uma instância de SageMaker notebook, consulte o Guia para se configurar com o Amazon SageMaker AI tópico. -
Use imagens de contêiner de SageMaker IA pré-criadas. Como alternativa, você pode usar os algoritmos e estruturas integrados usando contêineres do Docker. SageMaker A IA fornece contêineres para seus algoritmos integrados e imagens Docker pré-criadas para algumas das estruturas de aprendizado de máquina mais comuns, como Apache, MXNet TensorFlow, PyTorch e Chainer. Para obter uma lista completa das imagens de SageMaker IA disponíveis, consulte Imagens disponíveis de contêineres de Deep Learning
. Ele também oferece apoio a bibliotecas de machine learning, como scikit-learn e SparkML. Se você usa o Amazon SageMaker Python SDK , pode implantar os contêineres passando o URI completo do contêiner para a respectiva classe de SDK de SageMaker IA. Estimator
Para ver a lista completa das estruturas de aprendizado profundo que atualmente são suportadas pela SageMaker IA, consulteImagens pré-construídas do SageMaker AI Docker para aprendizado profundo. Para obter informações sobre as imagens de contêiner criadas do scikit-learn e SparkML, consulte Acessar Imagens do Docker para Scikit-learn e SparkML. Para obter mais informações sobre o uso de estruturas com o Amazon SageMaker PythonSDK, consulte seus respectivos tópicos em. Linguagens e frameworks de Machine Learning -
Estenda uma imagem de contêiner de SageMaker IA pré-criada. Se você quiser estender um algoritmo de SageMaker IA pré-criado ou modelar uma imagem Docker, você pode modificar a imagem de SageMaker IA para satisfazer suas necessidades. Para ver um exemplo, consulte Estendendo nossos PyTorch contêineres
. -
Adaptar uma imagem de contêiner existente: se quiser adaptar uma imagem de contêiner preexistente para trabalhar com SageMaker IA, você deve modificar o contêiner do Docker para habilitar o kit de ferramentas de SageMaker treinamento ou inferência. Para ver um exemplo que mostra como criar seus próprios contêineres para treinar e hospedar um algoritmo, consulte Bring Your Own R Algorithm (Trazer seu próprio algoritmo R)
.
Solução de problemas do seu Docker contêineres e implantações
A seguir estão os erros comuns que você pode encontrar ao usar Docker contêineres com SageMaker IA. Cada erro é seguido por uma solução para o erro.
-
Erro: a SageMaker IA perdeu o Docker daemon.
Para corrigir esse erro, reinicie o Docker usando o seguinte comando:
sudo service docker restart
-
Erro: O
/tmp
diretório do seu Docker o contêiner ficou sem espaço.Docker os contêineres usam as
/tmp
partições/
e para armazenar código. Essas partições podem ser preenchidas facilmente ao usar módulos de código grandes no modo local. O SDK do SageMaker AI Python suporta a especificação de um diretório temporário personalizado para seu diretório raiz no modo local para evitar esse problema.Para especificar o diretório temporário personalizado no armazenamento de volume do Amazon Elastic Block Store, crie um arquivo no caminho
~/.sagemaker/config.yaml
a seguir e adicione a seguinte configuração: O diretório que você especificou comocontainer_root
já deve existir. O SDK SageMaker AI Python não tentará criá-lo.local: container_root: /home/ec2-user/SageMaker/temp
Com essa configuração, o modo local usa o diretório
/temp
e não o diretório padrão/tmp
. -
Erros de pouco espaço em instâncias de SageMaker notebook
A Docker O contêiner executado em instâncias de SageMaker notebook usa o volume raiz do Amazon EBS da instância do notebook por padrão. Para resolver erros de pouco espaço, forneça o caminho do volume Amazon EBS conectado à instância do notebook como parte do parâmetro de volume de Docker comandos.
docker run -v
EBS-volume-path
:container-path