Categories: CienciaNoticias

Aumente la productividad de su equipo de aprendizaje automático con el desarrollo basado en contenedores en la nube

A principios de este año, publiqué 2 guías (aquí y aquí) para alojar un servidor de códigos en SageMaker. Muestra cómo puede ejecutar VS Code en computación en la nube escalable y codificar desde cualquier lugar sin preocuparse por la configuración local. Todo lo que necesitas es una conexión a Internet.Imagen del autor: creada con Stable Diffusion. En esta publicación, iremos un paso más allá y mostraremos cómo hacer un desarrollo basado en contenedores en la nube para acelerar la entrega de su proyecto de ML. Extraeremos una imagen de contenedor de Python 3.10 de ejemplo de Dockerhub, y desarrollar en él con VS Code en SageMaker. Necesitará acceso a una instancia de SageMaker Notebook para seguir el ejemplo. Uno pequeño debería ser suficiente. Con el desarrollo basado en contenedores, escribe, ejecuta y prueba su código ML dentro de los contenedores. Significa que puede trabajar con las mismas bibliotecas y dependencias que los miembros de su equipo, lo que facilita la colaboración con entornos de desarrollo consistentes y altamente reproducibles. Otra ventaja es que desarrolla y prueba su código en un entorno que puede comportarse exactamente como su entorno de producción. ayudando a pasar más rápido de 0 a 1 en su proyecto.Foto de Desola Lanre-Ologun en UnsplashY el servidor de código alojado en SageMaker proporciona cambios mínimos a una experiencia de desarrollo local en VS Code, lo que le permite codificar desde cualquier lugar, en computación escalable en la nube.

“Pero pensé que VS Code era de código abierto”

Por lo general, con VS Code, usaría la extensión Dev Containers para realizar un desarrollo basado en contenedores. Sin embargo, no puede usarlo con un servidor de código ni con ningún otro proyecto de VS Code de código abierto.Foto de Cookie the Pom en UnsplashSi bien el núcleo de VS Code es de código abierto, el mercado y muchas extensiones publicadas por Microsoft no lo son. Y Microsoft prohíbe el uso de cualquier código VS que no sea de Microsoft para acceder a su mercado. Consulte Diferencias en comparación con VS Code para obtener más detalles. Entonces, ¿cómo hacemos el desarrollo basado en contenedores con VS Code en SageMaker? Entonces, no podemos llevar el contenedor al IDE debido a problemas de licencia de extensión de Microsoft. Pero, ¿y si llevamos el IDE al contenedor? De hecho, Code-Server está basado en la web y realmente puede ejecutarse en cualquier lugar. La configuración es muy fácil y puedes hacerlo en 3 pasos:

Paso 1: Agregue el servidor de códigos a su Dockerfile existente

Puede agregar un servidor de código a su contenedor con una sola línea de código. Aquí hay un ejemplo para agregarlo a una imagen de Python 3.10 de DockerhubImagen del autor: uso un Dockerfile existente en mi instancia de Notebook, con python: 3.10 ¡Agregue una línea y listo!

Paso 2: compilar e iniciar la imagen del contenedor en la instancia de Notebook

Inicie una terminal a través de Jupyter/Jupyterlab de su instancia de Notebook:Imagen del autor: si usa Jupyter, el botón debe estar en la esquina superior derecha. Ahora puede navegar a su carpeta Dockerfile y crear la imagen del contenedor localmente con el siguiente comando: # CONSTRUIR LA IMAGEN DEL CONTENEDOR LOCALMENTE
docker build -t ide-in-container:latest. Una vez que se crea la imagen, puede ejecutar el contenedor con el comando para iniciar code-server:# EJECUTAR CONTENEDOR CON CÓDIGO VS EN ÉL
docker run –rm -it -p 8080:8080 ide-in-container: último servidor de códigos –auth none –disable-telemetry –bind-addr 0.0.0.0:8080Exponemos el servidor de códigos a la instancia a través de puerto predeterminado 8080.Imagen del autor: debería ver lo siguiente después de ejecutar el comando docker

Paso 3: acceda a VS Code a través de la instancia de notebook Jupyter Proxy

Ahora, todo lo que necesita es copiar la URL de su instancia de Notebook, cambiarla un poco y pegarla en una nueva pestaña:Imágenes por autor: A la izquierda está la URL original de mi instancia. reemplacé /árbol con /proxy/8080/ y lo pegué en una nueva pestaña del navegador. La pestaña ahora debería abrir VS Code:Imagen del autor: ¡Puedes instalar la extensión de Python para VS Code y empezar a trabajar en tu proyecto de ML!

notas

Para agilizar aún más su trabajo, puede montar el volumen de la instancia de Notebook local y apuntar VS Code a su configuración existente (extensiones, combinaciones de teclas, configuraciones). En el Dockerfile de ejemplo, apunto VS Code a la carpeta de configuración /home/SageMaker/vscode-config, que ya tenía en la instancia. Esto se hace usando la variable de entorno XDG_DATA_HOME. Y así es como puede montar el volumen de la instancia de Notebook en el contenedor: # EJECUTE ESTE COMANDO SI DESEA MONTAR LA CARPETA HOME/SAGEMAKER DE LA INSTANCIA DE LA COMPUTADORA
docker run –rm -it -p 8080:8080 -v /home/ec2-user/SageMaker/:/home/SageMaker ide-in-container:último código-servidor –auth none –disable-telemetry –bind -dirección 0.0.0.0:8080Para mejorar su colaboración, puede agregar este “Dockerfile de entorno” en el repositorio de GitHub de su equipo de proyecto. De esta manera, se creará una versión y todos podrán trabajar exactamente con las mismas dependencias, en cualquier momento. y al permitirle acceder a ese entorno de desarrollo desde cualquier lugar. En esta publicación, he compartido con usted un enfoque simple para ejecutar VS Code en un contenedor, alojado en Amazon SageMaker. Para ir más allá, puede visitar 5 pasos simples para MLOps con GitHub Actions, MLflow y SageMaker Pipelines y aprenda cómo su equipo puede ejecutar fácilmente un proyecto de MLOps de un extremo a otro utilizando GitHub Actions y SageMaker.

aliintizar71

Recent Posts

Máquina de mano Lean, Green, Raspberry Pi

Los días felices de la PDA y Blackberry han quedado definitivamente atrás, pero el factor…

2 years ago

Cómo pronosticar series de tiempo usando autorregresión

Tutorial sobre cómo pronosticar usando un modelo autorregresivo en PythonFoto de Aron Visuals en UnsplashForecasting…

2 years ago

Aquí están todas las formas en que puede cargar su AirPods Pro

Si tienes un iPhone, los AirPods Pro son la opción obvia para escuchar música, ¡aunque…

2 years ago

Las principales noticias tecnológicas del lunes: la prohibición de clientes de terceros de Twitter parece no ser un accidente

Ilustración de Alex Castro / The Verge Plus nuevos rumores sobre el quinto Galaxy Fold.…

2 years ago

AirPods Max 2: aquí están las características más solicitadas

Se rumorea que los auriculares premium de próxima generación de Apple, los AirPods Max 2,…

2 years ago

El remake de Dead Space continúa luciendo terriblemente genial en el nuevo tráiler de la historia

El desarrollador Motive Studio y el editor EA han lanzado un nuevo tráiler de la…

2 years ago