Servidor de códigos alojado en Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Alojar servidor de código en Amazon SageMaker

Los equipos de aprendizaje automático (ML) necesitan flexibilidad para elegir su entorno de desarrollo integrado (IDE) cuando trabajan en un proyecto. Le permite tener una experiencia de desarrollador productiva e innovar a gran velocidad. Incluso puede usar varios IDE dentro de un proyecto. Amazon SageMaker permite que los equipos de ML elijan trabajar desde entornos basados ​​en la nube totalmente administrados dentro Estudio Amazon SageMaker, Instancias de cuadernos de SageMaker, o desde su máquina local usando modo local.

SageMaker proporciona una experiencia de un solo clic a Jupyter y RStudio para crear, entrenar, depurar, implementar y monitorear modelos de ML. En esta publicación, también compartiremos una a medida para alojar servidor de código en SageMaker.

Con Code-Server, los usuarios pueden ejecutar Código VS en máquinas remotas y acceder a él en un navegador web. Para los equipos de aprendizaje automático, alojar el servidor de código en SageMaker proporciona cambios mínimos a una experiencia de desarrollo local y le permite codificar desde cualquier lugar, en computación en la nube escalable. Con VS Code, también puede usar entornos Conda integrados con TensorFlow y PyTorch optimizados para AWS, repositorios Git administrados, modo local y otras funciones proporcionadas por SageMaker para acelerar su entrega. Para los administradores de TI, les permite estandarizar y acelerar el aprovisionamiento de IDE seguros y administrados en la nube, para incorporar rápidamente y habilitar equipos de ML en sus proyectos.

Resumen de la solución

En esta publicación, cubrimos la instalación tanto para entornos Studio (Opción A) como para instancias de portátiles (Opción B). Para cada opción, recorremos un proceso de instalación manual que los equipos de ML pueden ejecutar en su entorno y una instalación automatizada que los administradores de TI pueden configurar para ellos a través de la Interfaz de línea de comandos de AWS (CLI de AWS).

El siguiente diagrama ilustra la descripción general de la arquitectura para alojar un servidor de códigos en SageMaker.

Nuestra solución acelera la instalación y configuración del servidor de códigos en su entorno. Funciona tanto para JupyterLab 3 (recomendado) como para JupyterLab 1 que se ejecutan en instancias de notebook de Studio y SageMaker. Está hecho de scripts de shell que hacen lo siguiente según la opción.

Para Studio (Opción A), el script de shell hace lo siguiente:

Para instancias de notebooks de SageMaker (Opción B), el script de shell hace lo siguiente:

  • Instala el servidor de códigos.
  • Agrega un acceso directo al servidor de códigos en el menú del archivo del cuaderno de Jupyter y el iniciador de JupyterLab para un acceso rápido al IDE.
  • Crea un entorno Conda dedicado para administrar dependencias.
  • Instala el Python y Docker extensiones en el IDE.

En las siguientes secciones, explicamos el proceso de instalación de la solución para la Opción A y la Opción B. Asegúrese de tener acceso a Studio o una instancia de notebook.

Opción A: Servidor de código alojado en Studio

Para alojar Code-Server en Studio, complete los siguientes pasos:

  1. Elige terminal del sistema en su iniciador de Studio.
    ml-10244-studio-terminal-clic
  2. Para instalar la solución del servidor de códigos, ejecute los siguientes comandos en la terminal de su sistema:
    curl -LO https://github.com/aws-samples/amazon-sagemaker-codeserver/releases/download/v0.1.5/amazon-sagemaker-codeserver-0.1.5.tar.gz
    tar -xvzf amazon-sagemaker-codeserver-0.1.5.tar.gz
    
    cd amazon-sagemaker-codeserver/install-scripts/studio
     
    chmod +x install-codeserver.sh
    ./install-codeserver.sh
    
    # Note: when installing on JL1, please prepend the nohup command to the install command above and run as follows: 
    # nohup ./install-codeserver.sh

    Los comandos deberían tardar unos segundos en completarse.

  3. Vuelva a cargar la página del navegador, donde puede ver un Servidor de código en el lanzador de Studio.
    ml-10244-código-servidor-botón
  4. Elige Servidor de código para abrir una nueva pestaña del navegador, lo que le permite acceder al servidor de códigos desde su navegador.
    La extensión de Python ya está instalada y puede comenzar a trabajar en su proyecto de ML.ml-10244-vscode

Puede abrir la carpeta de su proyecto en VS Code y seleccionar el entorno Conda preconstruido para ejecutar sus scripts de Python.

ml-10244-vscode-conda

Automatice la instalación del servidor de códigos para usuarios en un dominio de Studio

Como administrador de TI, puede automatizar la instalación para los usuarios de Studio mediante un configuración del ciclo de vida. Se puede hacer para todos los perfiles de usuarios bajo un dominio de Studio o para perfiles específicos. Ver Personalice Amazon SageMaker Studio mediante configuraciones de ciclo de vida para más información.

Para esta publicación, creamos una configuración de ciclo de vida a partir de la instalar-codeserver y adjúntelo a un dominio de Studio existente. La instalación se realiza para todos los perfiles de usuario del dominio.

Desde un terminal configurado con la CLI de AWS y los permisos apropiados, ejecute los siguientes comandos:

curl -LO https://github.com/aws-samples/amazon-sagemaker-codeserver/releases/download/v0.1.5/amazon-sagemaker-codeserver-0.1.5.tar.gz
tar -xvzf amazon-sagemaker-codeserver-0.1.5.tar.gz

cd amazon-sagemaker-codeserver/install-scripts/studio

LCC_CONTENT=`openssl base64 -A -in install-codeserver.sh`

aws sagemaker create-studio-lifecycle-config 
    --studio-lifecycle-config-name install-codeserver-on-jupyterserver 
    --studio-lifecycle-config-content $LCC_CONTENT 
    --studio-lifecycle-config-app-type JupyterServer 
    --query 'StudioLifecycleConfigArn'

aws sagemaker update-domain 
    --region  
    --domain-id  
    --default-user-settings 
    '{
    "JupyterServerAppSettings": {
    "DefaultResourceSpec": {
    "LifecycleConfigArn": "arn:aws:sagemaker:::studio-lifecycle-config/install-codeserver-on-jupyterserver",
    "InstanceType": "system"
    },
    "LifecycleConfigArns": [
    "arn:aws:sagemaker:::studio-lifecycle-config/install-codeserver-on-jupyterserver"
    ]
    }}'

# Make sure to replace ,  and  in the previous commands with
# the Studio domain ID, the AWS region and AWS Account ID you are using respectively.

Después de que Jupyter Server se reinicia, el Servidor de código aparece el botón en su iniciador de Studio.

Opción B: Hospede el servidor de códigos en una instancia de notebook de SageMaker

Para alojar el servidor de códigos en una instancia de notebook de SageMaker, complete los siguientes pasos:

  1. Inicie una terminal a través de Jupyter o JupyterLab para su instancia de notebook.
    Si usa Jupyter, elija terminal en Nuevo .
    Servidor de códigos alojado en Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.
  2.  Para instalar la solución del servidor de códigos, ejecute los siguientes comandos en su terminal:
    curl -LO https://github.com/aws-samples/amazon-sagemaker-codeserver/releases/download/v0.1.5/amazon-sagemaker-codeserver-0.1.5.tar.gz
    tar -xvzf amazon-sagemaker-codeserver-0.1.5.tar.gz
    
    cd amazon-sagemaker-codeserver/install-scripts/notebook-instances
     
    chmod +x install-codeserver.sh
    chmod +x setup-codeserver.sh
    sudo ./install-codeserver.sh
    sudo ./setup-codeserver.sh

    Las instalaciones del servidor de códigos y las extensiones son persistentes en la instancia del cuaderno. Sin embargo, si detiene o reinicia la instancia, debe ejecutar el siguiente comando para reconfigurar el servidor de códigos:

    sudo ./setup-codeserver.sh

    Los comandos deberían tardar unos segundos en ejecutarse. Puede cerrar la pestaña del terminal cuando vea lo siguiente.

    ml-10244-terminal-salida

  3. Ahora vuelva a cargar la página de Jupyter y verifique el Nuevo menú de nuevo.
    El Servidor de código La opción ahora debería estar disponible.
    Servidor de códigos alojado en Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

También puede iniciar el servidor de códigos desde JupyterLab mediante un botón de inicio dedicado, como se muestra en la siguiente captura de pantalla.

ml-10244-jupyterlab-código-servidor-botón

La elección Servidor de código abrirá una nueva pestaña del navegador, permitiéndole acceder al servidor de códigos desde su navegador. Las extensiones de Python y Docker ya están instaladas y puede comenzar a trabajar en su proyecto de ML.

ml-10244-portátil-vscode

Automatice la instalación del servidor de códigos en una instancia de notebook

Como administrador de TI, puede automatizar la instalación del servidor de códigos con un configuración del ciclo de vida ejecutándose en la creación de la instancia, y automatice la configuración con una ejecución en el inicio de la instancia.

Aquí, creamos una instancia de notebook de ejemplo y una configuración de ciclo de vida usando el CLI de AWS. on-create la configuración se ejecuta instalar-codeservery on-start corre configuración-codeserver.

Desde un terminal configurado con la CLI de AWS y los permisos apropiados, ejecute los siguientes comandos:

curl -LO https://github.com/aws-samples/amazon-sagemaker-codeserver/releases/download/v0.1.5/amazon-sagemaker-codeserver-0.1.5.tar.gz
tar -xvzf amazon-sagemaker-codeserver-0.1.5.tar.gz

cd amazon-sagemaker-codeserver/install-scripts/notebook-instances

aws sagemaker create-notebook-instance-lifecycle-config 
    --notebook-instance-lifecycle-config-name install-codeserver 
    --on-start Content=$((cat setup-codeserver.sh || echo "")| base64) 
    --on-create Content=$((cat install-codeserver.sh || echo "")| base64)

aws sagemaker create-notebook-instance 
    --notebook-instance-name  
    --instance-type  
    --role-arn  
    --lifecycle-config-name install-codeserver

# Make sure to replace , ,
# and  in the previous commands with the appropriate values.

La instalación del servidor de códigos ahora está automatizada para la instancia del cuaderno.

Conclusión

Con servidor de código alojado en SageMaker, los equipos de ML pueden ejecutar VS Code en computación en la nube escalable, programar desde cualquier lugar y acelerar la entrega de sus proyectos de ML. Para los administradores de TI, les permite estandarizar y acelerar el aprovisionamiento de IDE seguros y administrados en la nube, para incorporar rápidamente y habilitar equipos de ML en sus proyectos.

En esta publicación, compartimos una solución que puede usar para instalar rápidamente Code-Server en las instancias de Studio y Notebook. Compartimos un proceso de instalación manual que los equipos de ML pueden ejecutar por su cuenta y una instalación automatizada que los administradores de TI pueden configurar para ellos.

Para ir más lejos en sus aprendizajes, visite Un poco de SageMaker en GitHub para encontrar todos los recursos relevantes y actualizados necesarios para trabajar con SageMaker.


Acerca de los autores

Servidor de códigos alojado en Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.Giuseppe Angelo Porcelli es un Arquitecto Principal de Soluciones Especializado en Aprendizaje Automático para Amazon Web Services. Con varios años de experiencia en ingeniería de software y aprendizaje automático, trabaja con clientes de cualquier tamaño para comprender en profundidad sus necesidades comerciales y técnicas y diseñar soluciones de inteligencia artificial y aprendizaje automático que aprovechen al máximo la nube de AWS y la pila de aprendizaje automático de Amazon. Ha trabajado en proyectos en diferentes dominios, incluidos MLOps, Computer Vision, NLP e involucrando un amplio conjunto de servicios de AWS. En su tiempo libre, a Giuseppe le gusta jugar al fútbol.

Servidor de códigos alojado en Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.sofian hamití es un arquitecto de soluciones especialista en IA / ML en AWS. Ayuda a los clientes de todas las industrias a acelerar su viaje de IA / ML ayudándolos a crear y poner en funcionamiento soluciones de aprendizaje automático de un extremo a otro.

Servidor de códigos alojado en Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.Eric Peña es gerente sénior de productos técnicos en el equipo de plataformas de inteligencia artificial de AWS y trabaja en el aprendizaje automático interactivo de Amazon SageMaker. Actualmente se enfoca en integraciones IDE en SageMaker Studio. Tiene una maestría en administración de empresas de MIT Sloan y, fuera del trabajo, disfruta jugar al baloncesto y al fútbol.

Sello de tiempo:

Mas de Aprendizaje automático de AWS