Contenedores Docker para la formación y el despliegue de modelos - Amazon SageMaker

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Contenedores Docker para la formación y el despliegue de modelos

Amazon SageMaker hace un uso extensivo de los contenedores Docker para tareas de compilación y tiempo de ejecución. SageMaker proporciona imágenes de Docker prediseñadas para sus algoritmos integrados y los marcos de aprendizaje profundo compatibles que se utilizan para el entrenamiento y la inferencia. Mediante el uso de contenedores, puede entrenar algoritmos de machine learning e implementar modelos de forma rápida y fiable a cualquier escala. Los temas de esta sección muestran cómo implementar estos contenedores para sus propios casos de uso. Para obtener información sobre cómo traer sus propios contenedores para usarlos con Amazon SageMaker Studio Classic, consulteTraiga su propia SageMaker imagen.

Escenarios para ejecutar scripts, entrenar algoritmos o implementar modelos con SageMaker

Amazon SageMaker siempre usa contenedores Docker cuando ejecuta scripts, entrena algoritmos e implementa modelos. Su nivel de compromiso con los contenedores depende de su caso de uso.

El siguiente árbol de decisiones ilustra tres escenarios principales: casos de uso para usar contenedores Docker prediseñados con SageMaker; casos de uso para extender un contenedor Docker prediseñado; caso de uso para crear su propio contenedor.

Árbol de decisiones para casos de uso de contenedores.

Casos de uso para usar contenedores Docker prediseñados con SageMaker

Tenga en cuenta los siguientes casos de uso cuando utilice contenedores con: SageMaker

  • SageMaker Algoritmo prediseñado: utilice la imagen que viene con el algoritmo integrado. Consulte Utilizar algoritmos SageMaker integrados o modelos previamente entrenados de Amazon para obtener más información.

  • Modelo personalizado con SageMaker contenedor prediseñado: si entrena o implementa un modelo personalizado, pero usa un marco que tenga un SageMaker contenedor prediseñado que incluya una de las siguientes opciones PyTorch, TensorFlow y elija una de las siguientes opciones:

    • Si no necesita un paquete personalizado y el contenedor ya incluye todos los paquetes necesarios: utilice la imagen de Docker precompilada asociada a su marco. Para obtener más información, consulte Imágenes de Docker prediseñadas SageMaker .

    • Si necesita instalar un paquete personalizado en uno de los contenedores precompilados: confirme que la imagen de Docker precompilada admite un archivo requirements.txt o amplíe el contenedor precompìlado en función de los siguientes casos de uso.

Casos de uso para ampliar un contenedor de Docker precompilado

A continuación se incluyen casos de uso para ampliar un contenedor de Docker precompilado:

  • No puede importar las dependencias: amplíe la imagen de Docker precompilada asociada a su marco. Para obtener más información, consulte Ampliar una contenedor precompilado.

  • No puede importar las dependencias del contenedor precompilado y este es compatible con requirements.txt: añada todas las dependencias necesarias en requirements.txt. Los siguientes marcos admiten el uso de requirements.txt.

Caso de uso para compilar un contenedor propio

Si compila o entrena un modelo personalizado y necesita un marco personalizado que no tenga una imagen precompilada, cree un contenedor personalizado.

Como ejemplo de caso de uso de entrenamiento e implementación de un TensorFlow modelo, la siguiente guía muestra cómo determinar qué opción de las secciones anteriores de casos de uso se ajusta al caso.

Suponga que tiene los siguientes requisitos para la formación e implementación de un TensorFlow modelo.

Tras determinar el tipo de contenedor que necesita, en la siguiente lista se proporcionan detalles sobre las opciones enumeradas anteriormente.

  • Utilice un SageMaker algoritmo o marco integrado. En la mayoría de los casos de uso, puede utilizar los algoritmos y marcos integrados sin preocuparse por los contenedores. Puede entrenar e implementar estos algoritmos desde la SageMaker consola, el AWS Command Line Interface (AWS CLI), un bloc de notas de Python o Amazon SageMaker Python SDK. Puede hacerlo especificando el algoritmo o la versión del marco al crear su estimator. Los algoritmos integrados disponibles se desglosan y se describen en el tema Algoritmos integrados y modelos previamente entrenados en Amazon SageMaker. Para obtener más información sobre los marcos disponibles, consulte Marcos y lenguajes de ML. Para ver un ejemplo de cómo entrenar e implementar un algoritmo integrado utilizando un cuaderno Jupyter que se ejecuta en una instancia de SageMaker notebook, consulte el Guía para configurar Amazon SageMaker tema.

  • Usa imágenes de contenedores prediseñadas SageMaker . Como alternativa, puede utilizar los algoritmos y marcos integrados mediante contenedores Docker. SageMaker proporciona contenedores para sus algoritmos integrados e imágenes de Docker prediseñadas para algunos de los marcos de aprendizaje automático más comunes, como Apache, MXNet TensorFlow PyTorch, y Chainer. Para obtener una lista completa de las SageMaker imágenes disponibles, consulte Imágenes disponibles de Deep Learning Containers. También admite bibliotecas de machine learning como scikit-learn y SparkML. Si usa Amazon SageMaker Python SDK, puede implementar los contenedores pasando el contenedor completo URI a su SageMaker SDK Estimator clase respectiva. Para ver la lista completa de los marcos de aprendizaje profundo compatibles actualmente SageMaker, consulteImágenes de SageMaker Docker prediseñadas para aprendizaje profundo. Para obtener más información sobre las imágenes de contenedores precompiladas de scikit-learn y SparkML, consulte Acceso a las imágenes de Docker para Scikit-learn y Spark ML. Para obtener más información sobre el uso de marcos con Amazon SageMaker Python SDK, consulte sus temas respectivos enMarcos y lenguajes de machine learning.

  • Amplíe una imagen de SageMaker contenedor prediseñada. Si desea ampliar un SageMaker algoritmo prediseñado o un modelo de imagen de Docker, puede modificar la SageMaker imagen para adaptarla a sus necesidades. Para ver un ejemplo, consulte Ampliación de nuestros PyTorch contenedores.

  • Adapte una imagen de contenedor existente: si desea adaptar una imagen de contenedor preexistente para que funcione con ella SageMaker, debe modificar el contenedor de Docker para habilitar el kit de herramientas de SageMaker formación o de inferencia. Para ver un ejemplo que muestra cómo crear sus propios contenedores para entrenar y alojar un algoritmo, consulte Bring-Your-Own-R Algorithm.

Solucionar problemas de su Docker contenedores e implementaciones

Los siguientes son errores comunes que se pueden producir al usar Docker contenedores con SageMaker. Cada error va seguido de una solución al error.

  • Error: SageMaker ha perdido el Docker demonio.

    Para corregir este error, reinicie Docker con el siguiente comando.

    sudo service docker restart
  • Error: el /tmp directorio de su Docker el contenedor se ha quedado sin espacio.

    Docker los contenedores utilizan las /tmp particiones / y para almacenar el código. Estas particiones se pueden llenar fácilmente cuando se utilizan módulos de código grandes en modo local. SageMakerPython SDK admite la especificación de un directorio temporal personalizado para el directorio raíz del modo local para evitar este problema.

    Para especificar el directorio temporal personalizado en el almacenamiento por volumen de Amazon Elastic Block Store, cree un archivo en la siguiente ruta ~/.sagemaker/config.yaml y añada la siguiente configuración. El directorio que especifique como container_root ya debe existir. SageMakerPython no SDK intentará crearlo.

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

    Con esta configuración, el modo local usa el directorio /temp y no el directorio /tmp predeterminado.

  • Errores de espacio reducido en las instancias de los SageMaker cuadernos

    A Docker El contenedor que se ejecuta en instancias de SageMaker notebook usa el EBS volumen raíz de Amazon de la instancia de notebook de forma predeterminada. Para resolver los errores de espacio reducido, proporciona la ruta del EBS volumen de Amazon adjunto a la instancia del bloc de notas como parte del parámetro de volumen de Docker comandos.

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