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 de Docker para entrenamiento e implementación de modelos
Amazon SageMaker AI hace un uso extensivo de los contenedores de Docker para tareas de compilación y tiempo de ejecución. SageMaker La IA 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 imagen de SageMaker IA.
Temas
- Escenarios para ejecutar scripts, entrenar algoritmos o implementar modelos con SageMaker IA
- Docker conceptos básicos sobre contenedores
- Imágenes de Docker de IA prediseñadas SageMaker
- Contenedores Docker personalizados con IA SageMaker
- Creación de contenedores con sus propios algoritmos y modelos
- Ejemplos y más información: usar algoritmo o modelo propio
- Solucionar problemas de tu Docker contenedores e implementaciones
Escenarios para ejecutar scripts, entrenar algoritmos o implementar modelos con SageMaker IA
Amazon SageMaker AI 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.
El siguiente árbol de decisiones ilustra tres escenarios principales: casos de uso para usar contenedores Docker prediseñados con SageMaker IA; casos de uso para extender un contenedor Docker prediseñado; caso de uso para crear su propio contenedor.

Temas
Casos de uso del uso de contenedores Docker prediseñados con IA SageMaker
Tenga en cuenta los siguientes casos de uso cuando utilice contenedores con SageMaker IA:
-
Algoritmo de SageMaker IA prediseñado: utilice la imagen que viene con el algoritmo integrado. Consulte Utilizar algoritmos integrados de Amazon SageMaker AI o modelos previamente entrenados para obtener más información.
-
Modelo personalizado con contenedor de SageMaker IA prediseñado: si entrena o implementa un modelo personalizado, pero utiliza un marco que tenga un contenedor de SageMaker IA 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 de IA 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, consulta 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 práctico 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 a cada caso.
Suponga que tiene los siguientes requisitos para la formación e implementación de un TensorFlow modelo.
-
Un TensorFlow modelo es un modelo personalizado.
-
Dado que un TensorFlow modelo se va a crear en el TensorFlow marco, utilice el contenedor del marco TensorFlow prediseñado para entrenar y alojar el modelo.
-
Si necesita paquetes personalizados en su script entrypoint
o en su script inference, amplíe el contenedor precompilado o use un archivo requirements.txt para instalar las dependencias en tiempo de ejecución.
Tras determinar el tipo de contenedor que necesita, en la siguiente lista se proporcionan detalles sobre las opciones enumeradas anteriormente.
-
Utilice un algoritmo o marco de SageMaker IA 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 consola de SageMaker IA, el AWS Command Line Interface (AWS CLI), un cuaderno 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 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 empezar a usar Amazon SageMaker AI tema. -
Usa imágenes de contenedores de SageMaker IA prediseñadas. Como alternativa, puedes usar los algoritmos y marcos integrados mediante contenedores Docker. SageMaker La IA 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 imágenes de SageMaker IA disponibles, consulte Imágenes de Deep Learning Containers disponibles
. 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 su Estimator
clase de SDK de SageMaker IA correspondiente. Para ver la lista completa de los marcos de aprendizaje profundo compatibles actualmente con la SageMaker IA, consulteImágenes de Docker de SageMaker IA 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 imágenes de Docker 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 contenedor de SageMaker IA prediseñada. Si desea ampliar un algoritmo de SageMaker IA prediseñado o una imagen de Docker modelo, puede modificar la imagen de SageMaker IA para adaptarla a sus necesidades. Para ver un ejemplo, consulte Ampliación de nuestros PyTorch contenedores
. -
Adapte la imagen de un contenedor existente: si desea adaptar una imagen de contenedor preexistente para que funcione con la SageMaker IA, 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 tu Docker contenedores e implementaciones
A continuación se indican los errores más comunes que se pueden producir al utilizar Docker contenedores con SageMaker IA. Cada error va seguido de una solución al error.
-
Error: la SageMaker IA 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. El SDK para Python de SageMaker AI permite especificar 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 de volúmenes de Amazon Elastic Block Store, cree un archivo en la siguiente ruta
~/.sagemaker/config.yaml
y agregue la siguiente configuración. El directorio que especifique comocontainer_root
ya debe existir. El SDK de Python para SageMaker IA no 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 volumen raíz de Amazon EBS de la instancia de notebook de forma predeterminada. Para resolver los errores de espacio reducido, proporcione la ruta del volumen de Amazon EBS 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