Utilizar contenedores de Docker para crear 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.

Utilizar contenedores de Docker para crear 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 de Docker cuando ejecuta scripts, entrena algoritmos e implementa modelos. Su nivel de compromiso con los contenedores depende de su caso de uso.

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

El siguiente árbol de decisiones ilustra la información de las tres listas anteriores: 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 elegir entre crear un contenedor personalizado, ampliar un contenedor o usar un contenedor precompilado.

Como ejemplo de caso de uso de un cliente, para entrenar e implementar un TensorFlow modelo, consulte las secciones anteriores de Casos de uso para decidir qué contenedor necesita. Las siguientes son algunas consideraciones que puede tener en cuenta a la hora de elegir su contenedor:

Tras determinar el tipo de contenedor que necesita, la siguiente información proporciona 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 el SDK de Amazon SageMaker Python. 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 Usa algoritmos SageMaker integrados de Amazon o modelos previamente entrenados. 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 Introducción 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 utilizas el SDK de Amazon SageMaker Python, puedes implementar los contenedores pasando el URI completo del contenedor a la Estimator clase de SageMaker SDK correspondiente. Para ver la lista completa de los marcos de aprendizaje profundo compatibles actualmente SageMaker, consulteImágenes de Docker de Sagemaker precompiladas para aprendizaje profundo. Para obtener más información sobre las imágenes de contenedores precompiladas de scikit-learn y SparkML, consulte Imágenes de Docker de Amazon SageMaker precompiladas para Scikit-learn y Spark ML. Para obtener más información sobre el uso de marcos con el SDK de Amazon SageMaker Python, consulte los temas correspondientes 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.