Hoy, nos complace anunciar la compatibilidad con Code Editor, una nueva opción de entorno de desarrollo integrado (IDE) en Amazon SageMaker Studio. El editor de código se basa en Código-OSS, Visual Studio Code Open Source, y proporciona acceso al entorno familiar y a las herramientas del popular IDE que los desarrolladores de aprendizaje automático (ML) conocen y adoran, totalmente integrado con el conjunto más amplio de funciones de SageMaker Studio. Code Editor le permite elegir entre miles de extensiones compatibles con VS Code disponibles en Galería de extensiones Open-VSX para mejorar aún más la experiencia de desarrollo de sus equipos. También puede maximizar la productividad de su equipo mediante una integración perfecta con los servicios de AWS a través del kit de herramientas de AWS para Visual Studio Code, incluido el complemento de codificación con tecnología de inteligencia artificial de AWS, Amazon CodeWhisperer.
Al igual que con todas las aplicaciones IDE en SageMaker Studio, los desarrolladores e ingenieros de ML pueden seleccionar la computación subyacente a pedido e intercambiarla según sus necesidades sin perder datos. Además, sus equipos pueden administrar el control de versiones de su código base y colaborar entre equipos a través de la integración nativa de GitHub y reducir el tiempo de codificación mediante el uso de los marcos de aprendizaje automático más populares desde el primer momento con la interfaz preconfigurada. Distribución de Amazon SageMaker imagen del contenedor.
Introducción al editor de código en Amazon SageMaker Studio
Su administrador de TI puede configurar un nuevo dominio de SageMaker Studio o migrar uno existente a la nueva experiencia de SageMaker Studio, que incluye Code Editor. Consulte Incorporación al dominio de Amazon SageMaker mediante la configuración rápida para obtener más detalles. Luego puede iniciar Code Editor con un simple clic en su entorno de Amazon SageMaker Studio.
- Una vez configurado el dominio, inicie la nueva experiencia de SageMaker Studio desde la consola o la URL prefirmada que le proporcionó su administrador. Puede encontrar el IDE del Editor de código tanto en la sección Aplicaciones en el panel lateral izquierdo como en la sección Descripción general, como se muestra en la siguiente captura de pantalla:
- En la página de detalles del Editor de código, elija Crear espacio para el editor de código. Luego ingresa un nombre para tu espacio y elige crear espacio:
- En la página de detalles del espacio del editor de código, elija su configuración subyacente, que incluye:
- El tipo de instancia subyacente de Amazon Elastic Compute Cloud (Amazon EC2).
- Un tamaño de volumen de Amazon Elastic Block Storage (Amazon EBS) (puede oscilar entre 5 GB y 16 TB).
- La imagen del contenedor que se utilizará (tendrá una imagen de distribución de SageMaker para CPU y GPU disponible en el momento del lanzamiento).
- Un script de configuración del ciclo de vida para ejecutar en caso de que desee personalizar su entorno en la creación de la aplicación.
- Un Amazon Elastic File System (Amazon EFS) compartido para montar en su espacio del Editor de código (su administrador debe configurarlo al aprovisionar su dominio).
- Después de proporcionar los detalles de configuración de su espacio, elija Ejecutar espacio para aprovisionar sus recursos espaciales.
Si has elegido un lanzamiento rápido Por ejemplo, con la distribución predeterminada de SageMaker como imagen, el espacio del editor de código estará disponible en menos de un minuto. Si ha agregado configuraciones de ciclo de vida al espacio, es posible que le lleve más tiempo instalar las dependencias desde ese script.
Después de que se aprovisionen sus recursos, la página de detalles del espacio mostrará una Abrir editor de código botón.
- Elegir Editor de código abierto para iniciar el IDE.
El IDE del editor de código se iniciará en una nueva pestaña del navegador.
Funciones del editor de código
Code Editor viene con un conjunto único de funciones para aumentar la productividad de su equipo de ML:
- Infraestructura totalmente gestionada – El IDE del editor de código se ejecuta en una infraestructura totalmente administrada. Amazon SageMaker se encarga de mantener las instancias actualizadas con los últimos parches y actualizaciones de seguridad.
- Marcar recursos hacia arriba y hacia abajo – Con Code Editor, puede cambiar sin problemas los recursos subyacentes (por ejemplo, tipo de instancia, tamaño de volumen de EBS) en los que se ejecuta Code Editor. Esto es beneficioso para los desarrolladores que desean ejecutar cargas de trabajo con necesidades cambiantes de computación, memoria y almacenamiento.
- Imágenes proporcionadas por SageMaker: El editor de código está preconfigurado con el Distribución de SageMaker como imagen predeterminada. Esta imagen de contenedor tiene todos los marcos de aprendizaje automático más populares compatibles con SageMaker, junto con SDK de Python de SageMaker, boto3y otras bibliotecas específicas de AWS y ciencia de datos instaladas. Esto reduce significativamente el tiempo que dedica a configurar su entorno y disminuye la complejidad de administrar las dependencias de paquetes en su proyecto de ML.
- Integración de Amazon CodeWhisperer – Code Editor también viene con capacidades de IA generativa impulsadas por Amazon CodeWhisperer. Esta integración nativa le permite aumentar su productividad generando sugerencias de código dentro del IDE.
- Integración con otros servicios de AWS – Obtiene integración nativa con depósitos de Amazon Simple Storage Service (S3), repositorios de Amazon Elastic Container Registry (ECR), Amazon RedShift, Amazon CloudWatch y más a través de AWS Toolkit for VS Code, que simplifica el desarrollo en la nube.
Detalles de arquitectura
Al iniciar el Editor de código en SageMaker Studio, está creando una nueva aplicación que se ejecuta como un contenedor en una instancia EC2 del tipo que seleccionó al configurar su espacio del Editor de código. SageMaker Studio maneja el aprovisionamiento de recursos subyacentes por usted en una cuenta administrada por el servicio. El siguiente diagrama muestra una versión simplificada de la arquitectura de la aplicación IDE del Editor de código:
Para un perfil de usuario determinado, puede iniciar múltiples espacios del Editor de código, con una variedad de tipos de instancias de ML (incluidas instancias de computación acelerada). Cada espacio define el tamaño del volumen de EBS adjunto, el tipo de instancia y el tipo de aplicación que se ejecutará en el espacio (por ejemplo, Editor de código). Cuando los usuarios ejecutan el espacio, se aprovisiona la instancia EC2 subyacente y un editor de código de SageMaker Studio. aplicación se crea una instancia, según la imagen del contenedor seleccionado. El volumen de EBS persiste durante los ciclos de inicio/parada del IDE aplicación. Si los usuarios detienen la aplicación Code Editor (por ejemplo, para ahorrar en costos informáticos), los recursos informáticos se detienen pero el volumen de EBS se conserva y se vuelve a adjuntar a la instancia al reiniciar.
Todas las aplicaciones del Editor de código se ejecutan de forma aislada; Si necesita compartir datos entre aplicaciones, puede conectar una unidad Amazon Elastic File System (EFS) compartida.
Para que su IDE de editor de código utilice la extensión AWS Toolkit preinstalada para VS Code y utilice servicios integrados de AWS como Amazon CodeWhisperer o fuentes de datos como Amazon S3 y Amazon Redshift, debe asegurarse de que:
- La función de ejecución de su perfil de usuario de SageMaker Studio tiene los permisos adecuados para utilizar los servicios con los que desea trabajar.
- Tiene una forma de comunicarse con esos servicios en caso de que tenga un dominio de SageMaker Studio en modo solo VPC. Para obtener más detalles sobre los requisitos para utilizar los servicios de AWS en un dominio de Studio en modo solo VPC, consulte Conectar portátiles de SageMaker Studio en una VPC a recursos externos.
Descripción general de la solución
En las siguientes secciones, compartimos cómo puede desarrollar un proyecto de aprendizaje automático de ejemplo con Code Editor en Amazon SageMaker Studio. Implementaremos un modelo de lenguaje grande (LLM) Mistral-7B en un punto final en tiempo real de Amazon SageMaker utilizando un contenedor integrado de HuggingFace. En este ejemplo, un equipo de ingeniería de aprendizaje automático puede utilizar el Editor de código que necesita funciones IDE avanzadas para depurar su código e implementar el punto final. Puede encontrar el código de muestra en este Repositorio de GitHub. Mostramos cómo puede estructurar su código para facilitar la colaboración entre los miembros del equipo, cómo puede utilizar AWS Toolkit para VS Code y Amazon Code Whisperer para acelerar su desarrollo y cómo implementar el modelo Mistral-7B en un punto final de SageMaker. Repasemos algunas de las tareas comunes de los desarrolladores en el IDE.
Interactuar con los servicios de AWS directamente desde su IDE
Listo para usar, Code Editor viene con el kit de herramientas de AWS para Visual Studio Code para brindarle una experiencia integrada a otros servicios de AWS durante su proyecto. Según el permiso de AWS Identity and Access Management (IAM) de su perfil de usuario de SageMaker Studio, puede interactuar con los datos de sus depósitos de Amazon S3, buscar imágenes de contenedores en Amazon ECR, visualizar registros de Amazon CloudWatch para su punto final de SageMaker y aprovechar otras funciones. para ejecutar su proyecto ML de un extremo a otro desde su IDE.
Estructura tu repositorio de código para una colaboración sin esfuerzo
Puede estructurar su repositorio de proyectos para maximizar la productividad de su equipo. Por ejemplo, puede configurar un repositorio único, con el objetivo de lograr un equilibrio entre Convenciones del proyecto Python y las necesidades de colaboración de su equipo.
Su repositorio de código puede contener un .vscode
Carpeta con todos los archivos necesarios para estandarizar dependencias, extensiones y configuraciones entre los diferentes miembros del equipo. Consulte la siguiente animación como referencia.
Puede compartir dependencias entre los miembros del equipo a través de un requirements.txt
archivo. También puede especificar un config.yaml
para compartir las primitivas de inicio para su punto final de SageMaker. Su sesión de Editor de código compartirá las mismas dependencias y configuración que los miembros de su equipo y le permitirá desarrollar y depurar rápidamente su código de inferencia y punto final.
Desarrolla y depura tu código en el IDE
En el siguiente ejemplo, mostramos cómo puede desarrollar y depurar su inference.py
script que se utilizará en su punto final de SageMaker:
Genere código y casos de prueba con Amazon CodeWhisperer
Como parte del kit de herramientas de AWS en su editor de código, Amazon CodeWhisperer le permite crear de forma más rápida y segura con un complemento de codificación de IA. Puede brindarle sugerencias de código en tiempo real, está optimizado para su uso con servicios de AWS y viene con escaneo de seguridad integrado. En nuestro ejemplo utilizamos Amazon CodeWhisperer para generar código de línea y de función completo para implementar y probar su punto final de SageMaker.
Implementación de su LLM en un punto final de SageMaker
Puede implementar su modelo en un punto final de SageMaker desde su IDE y monitorear su estado directamente desde SageMaker Studio.
A medida que escala su proyecto de aprendizaje automático a una aplicación lista para producción, Code Editor y AWS Toolkit le permitirán administrar y monitorear los recursos de su aplicación LLM a medida que la construye, la implementa y la ejecuta.
Conclusión
Code Editor está disponible en todas las regiones de AWS donde Amazon SageMaker Studio está disponible (excepto GovCloud), y usted solo paga por los recursos informáticos y de almacenamiento subyacentes dentro de SageMaker u otros servicios de AWS, según su uso.
Para comenzar con Code Editor en Amazon SageMaker Studio, puede utilizar la capa gratuita de AWS, con 250 horas de instancia ml.t3.medium en Amazon SageMaker Studio por mes durante los primeros 2 meses. Para obtener más detalles, consulte Precios de Amazon SageMaker.
Sobre los autores
Eric Peña es gerente técnico senior de productos en el equipo de plataformas de inteligencia artificial de AWS y trabaja en el aprendizaje automático interactivo de Amazon SageMaker. Actualmente se centra en integraciones IDE en SageMaker Studio. Tiene un MBA del MIT Sloan y fuera del trabajo le gusta jugar baloncesto y fútbol.
Vikesh Pandey es un arquitecto de soluciones especializado en aprendizaje automático en AWS y ayuda a clientes de industrias financieras a diseñar y crear soluciones en IA generativa y aprendizaje automático. Fuera del trabajo, a Vikesh le gusta probar diferentes cocinas y practicar deportes al aire libre.
Bruno Pistone es un arquitecto de soluciones especializado en IA/ML para AWS con sede en Milán. Trabaja con grandes clientes ayudándoles a comprender en profundidad sus necesidades técnicas y a 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. Su experiencia incluye: aprendizaje automático de extremo a extremo, industrialización del aprendizaje automático e inteligencia artificial generativa. Le gusta pasar tiempo con sus amigos y explorar nuevos lugares, además de viajar a nuevos destinos.
Giuseppe Angelo Porcelli es arquitecto principal de soluciones especializado en aprendizaje automático para Amazon Web Services. Con varios años de ingeniería de software y experiencia en aprendizaje automático, trabaja con clientes de cualquier tamaño para comprender 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, visión por computadora y PNL, que involucran un amplio conjunto de servicios de AWS. En su tiempo libre, a Giuseppe le gusta jugar al fútbol.
Sofian Hamiti es un arquitecto de soluciones especialista en IA/ML en AWS. Ayuda a clientes de todos los sectores a acelerar su recorrido por la IA/ML ayudándoles a crear y poner en funcionamiento soluciones de aprendizaje automático de un extremo a otro.