Contêineres Docker para treinamento e implantação de modelos - Amazon SageMaker

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 Docker para treinamento e implantação de modelos

A Amazon SageMaker faz uso extensivo de contêineres Docker para tarefas de construção e execução. SageMaker 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 SageMaker imagem.

Cenários para execução de scripts, treinamento de algoritmos ou implantação de modelos com SageMaker

A Amazon SageMaker 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é-construídos com SageMaker; 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.

Casos de uso para usar contêineres Docker pré-construídos com SageMaker

Considere os seguintes casos de uso ao usar contêineres com SageMaker:

  • SageMaker Algoritmo pré-construído — Use a imagem que vem com o algoritmo incorporado. Consulte Usar algoritmos SageMaker integrados da Amazon ou modelos pré-treinados para obter mais informações.

  • Modelo personalizado com SageMaker contêiner pré-construído — Se você treinar ou implantar um modelo personalizado, mas usar uma estrutura que tenha um SageMaker contêiner 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 predefinida do Docker associada à sua estrutura. Para obter mais informações, consulte Imagens pré-construídas do SageMaker Docker.

    • Se você precisar de um pacote personalizado instalado em um dos contêineres predefinidos, confirme se a imagem predefinida do Docker 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 predefinido do Docker associada à sua estrutura. Consulte Estenda uma imagem de contêiner predefinida Para 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 suporte 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.

Depois de determinar o tipo de contêiner necessário, a lista a seguir fornece detalhes sobre as opções listadas anteriormente.

  • Use um SageMaker algoritmo ou estrutura incorporada. 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 a partir do SageMaker console, do AWS Command Line Interface (AWS CLI), de um notebook Python ou do Amazon SageMaker Python. SDK É 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 a Amazon SageMaker tópico.

  • Use imagens de SageMaker contêiner pré-criadas. Como alternativa, você pode usar os algoritmos e estruturas integrados usando contêineres do Docker. SageMaker fornece contêineres para seus algoritmos integrados e imagens pré-criadas do Docker para algumas das estruturas de aprendizado de máquina mais comuns, como Apache, MXNet TensorFlow, PyTorch e Chainer. Para obter uma lista completa das SageMaker imagens disponíveis, consulte Imagens disponíveis de contêineres de Deep Learning. Ele também oferece suporte 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 contêiner completo URI para a respectiva SageMaker SDK Estimator classe. Para ver a lista completa das estruturas de aprendizado profundo que atualmente são suportadas pelo SageMaker, consulteImagens pré-construídas SageMaker do Docker para aprendizado profundo. Para obter informações sobre as imagens de contêiner criadas do scikit-learn e SparkML, consulte Acessando imagens do Docker para Scikit-learn e Spark ML. Para obter mais informações sobre o uso de estruturas com o Amazon SageMaker SDK Python, consulte seus respectivos tópicos em. Linguagens e frameworks de Machine Learning

  • Estenda uma imagem de SageMaker contêiner pré-criada. Se quiser estender um SageMaker algoritmo pré-construído ou modelar uma imagem Docker, você pode modificar a SageMaker imagem para satisfazer suas necessidades. Para ver um exemplo, consulte Estendendo nossos PyTorch contêineres.

  • Adaptar uma imagem de contêiner existente: se você quiser adaptar uma imagem de contêiner preexistente para trabalhar SageMaker, 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 recipientes com SageMaker. Cada erro é seguido por uma solução para o erro.

  • Erro: SageMaker 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 SageMaker Python SDK 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 a seguir ~/.sagemaker/config.yaml e adicione a seguinte configuração. O diretório que você especificou como container_root já deve existir. O SageMaker Python não SDK 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 EBS volume raiz da Amazon da instância de notebook por padrão. Para resolver erros de pouco espaço, forneça o caminho do EBS volume da Amazon conectado à instância do notebook como parte do parâmetro de volume de Docker comandos.

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