Aumenta la productividad en Amazon SageMaker Studio Presentamos JupyterLab Spaces y herramientas de inteligencia artificial generativa

Aumenta la productividad en Amazon SageMaker Studio Presentamos JupyterLab Spaces y herramientas de inteligencia artificial generativa

Amazon SageMaker Studio ofrece un amplio conjunto de entornos de desarrollo integrados (IDE) totalmente administrados para el desarrollo de aprendizaje automático (ML), que incluyen JupyterLab, un editor de código basado en Code-OSS (Visual Studio Code de código abierto) y RStudio. Proporciona acceso al conjunto más completo de herramientas para cada paso del desarrollo de ML, desde la preparación de datos hasta la construcción, entrenamiento, implementación y gestión de modelos de ML. Puedes iniciar el JupyterLab totalmente administrado con la Distribución SageMaker preconfigurada en segundos para trabajar con tus cuadernos, código y datos. La interfaz flexible y extensible de SageMaker Studio te permite configurar y organizar los flujos de trabajo de ML sin esfuerzo, y puedes utilizar el compañero de codificación en línea impulsado por IA para escribir, depurar, explicar y probar código rápidamente.

En este artículo, analizaremos más de cerca el SageMaker Studio actualizado y su IDE JupyterLab, diseñado para aumentar la productividad de los desarrolladores de ML. Presentaremos el concepto de Espacios y explicaremos cómo los Espacios de JupyterLab permiten la personalización flexible de los recursos informáticos, de almacenamiento y de tiempo de ejecución para mejorar la eficiencia de tu flujo de trabajo de ML. También discutiremos nuestro cambio a un modelo de ejecución localizado en JupyterLab, lo que resulta en una experiencia de codificación más rápida, estable y receptiva. Además, cubriremos la integración perfecta de herramientas de IA generativa como Amazon CodeWhisperer y Jupyter AI dentro de los Espacios de JupyterLab de SageMaker Studio, ilustrando cómo empoderan a los desarrolladores para utilizar la IA en la asistencia de codificación y la resolución innovadora de problemas.

Presentación de Espacios en SageMaker Studio

La nueva interfaz web de SageMaker Studio actúa como un centro de comandos para iniciar tu IDE preferido y acceder a las herramientas de Amazon SageMaker para construir, entrenar, ajustar y desplegar modelos. Además de JupyterLab y RStudio, SageMaker Studio ahora incluye un Editor de Código totalmente administrado basado en Code-OSS (Visual Studio Code de código abierto). Tanto JupyterLab como el Editor de Código se pueden iniciar utilizando un espacio de trabajo flexible llamado Espacios.

Un Espacio es una representación de configuración de un IDE de SageMaker, como JupyterLab o el Editor de Código, diseñado para persistir independientemente de si se está ejecutando o no una aplicación (IDE) asociada con el Espacio. Un Espacio representa una combinación de una instancia de cálculo, almacenamiento y otras configuraciones en tiempo de ejecución. Con los Espacios, puedes crear y escalar el cálculo y el almacenamiento para tu IDE según lo necesites, personalizar los entornos de tiempo de ejecución, y pausar y reanudar la codificación en cualquier momento y desde cualquier lugar. Puedes crear múltiples Espacios, cada uno configurado con una combinación diferente de cálculo, almacenamiento y tiempo de ejecución.

Cuando se crea un Espacio, se equipa con un volumen de Amazon Elastic Block Store (Amazon EBS), que se utiliza para almacenar los archivos de los usuarios, datos, cachés y otros artefactos. Se adjunta a una instancia informática de ML cada vez que se ejecuta un Espacio. El volumen de EBS asegura que los archivos de usuario, datos, caché y estados de sesión se restauren de manera consistente cada vez que se reinicie el Espacio. Es importante destacar que este volumen de EBS es persistente, ya sea que el Espacio esté en estado de ejecución o detenido. Continuará persistiendo hasta que el Espacio se elimine.

Además, hemos introducido la función de sistema de archivos propio para los usuarios que deseen compartir entornos y artefactos entre diferentes Espacios, usuarios o incluso dominios. Esto te permite equipar opcionalmente tus Espacios con tu propio Amazon Elastic File System (Amazon EFS) montado, lo que facilita el intercambio de recursos entre diversos espacios de trabajo.

Creando un espacio

Crear y lanzar un nuevo espacio ahora es rápido y sencillo. Solo se necesitan unos segundos para configurar un nuevo espacio con instancias de lanzamiento rápido y menos de 60 segundos para ejecutar un espacio. Los espacios cuentan con configuraciones predefinidas para cómputo y almacenamiento, administradas por los administradores. Los administradores de SageMaker Studio pueden establecer preajustes a nivel de dominio para configuraciones de cómputo, almacenamiento y tiempo de funcionamiento. Esta configuración te permite lanzar rápidamente un nuevo espacio con un esfuerzo mínimo, solo requiriendo unos pocos clics. También tienes la opción de modificar las configuraciones de cómputo, almacenamiento o tiempo de funcionamiento de un espacio para una personalización adicional.

Es importante tener en cuenta que crear un espacio requiere actualizar el rol de ejecución del dominio de SageMaker con una política como el siguiente ejemplo. Debes otorgar permisos a tus usuarios para los espacios privados y los perfiles de usuario necesarios para acceder a estos espacios privados. Para obtener instrucciones detalladas, consulta Dar acceso a tus usuarios a los espacios privados.

{  "Version": "2012-10-17",  "Statement": [    {      "Effect": "Allow",      "Action": [        "sagemaker:CreateApp",        "sagemaker:DeleteApp"      ],      "Resource": "arn:aws:sagemaker:{{Region}}:{{AccountId}}:app/*",      "Condition": {        "Null": {          "sagemaker:OwnerUserProfileArn": "true"        }      }    },    {      "Sid": "SMStudioCreatePresignedDomainUrlForUserProfile",      "Effect": "Allow",      "Action": [        "sagemaker:CreatePresignedDomainUrl"      ],      "Resource": "arn:aws:sagemaker:{{Region}}:{{AccountId}}:user-profile/${sagemaker:DomainId}/${sagemaker:UserProfileName}"    },    {      "Sid": "SMStudioAppPermissionsListAndDescribe",      "Effect": "Allow",      "Action": [        "sagemaker:ListApps",        "sagemaker:ListDomains",        "sagemaker:ListUserProfiles",        "sagemaker:ListSpaces",        "sagemaker:DescribeApp",        "sagemaker:DescribeDomain",        "sagemaker:DescribeUserProfile",        "sagemaker:DescribeSpace"      ],      "Resource": "*"    },    {      "Sid": "SMStudioAppPermissionsTagOnCreate",      "Effect": "Allow",      "Action": [        "sagemaker:AddTags"      ],      "Resource": "arn:aws:sagemaker:{{Region}}:{{AccountId}}:*/*",      "Condition": {        "Null": {          "sagemaker:TaggingAction": "false"        }      }    },    {      "Sid": "SMStudioRestrictSharedSpacesWithoutOwners",      "Effect": "Allow",      "Action": [        "sagemaker:CreateSpace",        "sagemaker:UpdateSpace",        "sagemaker:DeleteSpace"      ],      "Resource": "arn:aws:sagemaker:{{Region}}:{{AccountId}}:space/${sagemaker:DomainId}/*",      "Condition": {        "Null": {          "sagemaker:OwnerUserProfileArn": "true"        }      }    },    {      "Sid": "SMStudioRestrictSpacesToOwnerUserProfile",      "Effect": "Allow",      "Action": [        "sagemaker:CreateSpace",        "sagemaker:UpdateSpace",        "sagemaker:DeleteSpace"      ],      "Resource": "arn:aws:sagemaker:{{Region}}:{{AccountId}}:space/${sagemaker:DomainId}/*",      "Condition": {        "ArnLike": {          "sagemaker:OwnerUserProfileArn": "arn:aws:sagemaker:$AWS Region:$111122223333:user-profile/${sagemaker:DomainId}/${sagemaker:UserProfileName}"        },        "StringEquals": {          "sagemaker:SpaceSharingType": [            "Private",            "Shared"          ]        }      }    },    {      "Sid": "SMStudioRestrictCreatePrivateSpaceAppsToOwnerUserProfile",      "Effect": "Allow",      "Action": [        "sagemaker:CreateApp",        "sagemaker:DeleteApp"      ],      "Resource": "arn:aws:sagemaker:{{Region}}:{{AccountId}}:app/${sagemaker:DomainId}/*",      "Condition": {        "ArnLike": {          "sagemaker:OwnerUserProfileArn": "arn:aws:sagemaker:${aws:Region}:${aws:PrincipalAccount}:user-profile/${sagemaker:DomainId}/${sagemaker:UserProfileName}"        },        "StringEquals": {          "sagemaker:SpaceSharingType": [            "Private"          ]        }      }    },  ]}

Para crear un espacio, sigue los siguientes pasos:

  1. En SageMaker Studio, elige JupyterLab en el menú Aplicaciones.
  2. Elige Crear espacio de JupyterLab.
  3. Para Nombre, ingresa un nombre para tu espacio.
  4. Elige Crear espacio.
  5. Elige Ejecutar espacio para lanzar tu nuevo espacio con la configuración predeterminada o actualiza la configuración según tus requisitos.

Reconfigurando un espacio

Los espacios están diseñados para que los usuarios puedan cambiar de manera fluida entre diferentes tipos de computación según sea necesario. Puedes comenzar creando un nuevo espacio con una configuración específica, principalmente compuesta por recursos de computación y almacenamiento. Si necesitas cambiar a un tipo de computación diferente con más o menos CPUs virtuales, más o menos memoria, o una instancia con GPU en cualquier momento de tu flujo de trabajo, puedes hacerlo fácilmente. Después de detener el espacio, puedes modificar su configuración usando la interfaz de usuario o la API a través de la interfaz actualizada de SageMaker Studio y luego reiniciar el espacio. SageMaker Studio maneja automáticamente el aprovisionamiento de tu espacio existente a la nueva configuración, sin requerir esfuerzo adicional de tu parte.

Sigue los siguientes pasos para editar un espacio existente:

  1. En la página de detalles del espacio, elige Detener espacio.
  2. Reconfigura la computación, el almacenamiento o el tiempo de ejecución.
  3. Elige Ejecutar espacio para relanzar el espacio.

Tu espacio de trabajo se actualizará con el nuevo tipo de almacenamiento y la instancia de computación que solicitaste.

La nueva arquitectura de SageMaker Studio JupyterLab

El equipo de SageMaker Studio continúa inventando y simplificando su experiencia para desarrolladores con el lanzamiento de una nueva experiencia SageMaker Studio JupyterLab completamente gestionada. La nueva experiencia SageMaker Studio JupyterLab combina lo mejor de ambos mundos: la escalabilidad y flexibilidad de SageMaker Studio Classic (ver el apéndice al final de esta publicación) con la estabilidad y familiaridad de JupyterLab de código abierto. Para entender el diseño de esta nueva experiencia de JupyterLab, adentrémonos en el siguiente diagrama de arquitectura. Esto nos ayudará a comprender mejor la integración y las características de esta nueva plataforma de espacios de JupyterLab.

En resumen, hemos pasado a una arquitectura localizada. En esta nueva configuración, el servidor y los procesos del kernel de Jupyter operan juntos en un solo contenedor Docker, alojados en la misma instancia de cálculo de ML. Estas instancias de ML se aprovisionan cuando un espacio está en ejecución y se vinculan con un volumen de EBS que se crea al crear el espacio inicialmente.

Esta nueva arquitectura ofrece varios beneficios; discutimos algunos de estos en las siguientes secciones.

Latencia reducida y estabilidad aumentada

SageMaker Studio ha cambiado a un modelo de ejecución local, alejándose del modelo dividido anterior donde el código se almacenaba en un montaje EFS y se ejecutaba de forma remota en una instancia de ML a través de un Kernel Gateway remoto. En la configuración anterior, Kernel Gateway, un servidor web sin cabeza, permitía operaciones de kernel a través de comunicación remota con kernels de Jupyter a través de HTTPS/WSS. Acciones del usuario como la ejecución de código, la gestión de cuadernos o la ejecución de comandos de terminal eran procesados por una aplicación Kernel Gateway en una instancia de ML remota, con Kernel Gateway facilitando estas operaciones a través de ZeroMQ (ZMQ) en un contenedor de Docker. El siguiente diagrama ilustra esta arquitectura.

La arquitectura actualizada de JupyterLab ejecuta todas las operaciones de kernel directamente en la instancia local. Este enfoque local de servidor Jupyter generalmente proporciona un rendimiento mejorado y una arquitectura más sencilla. Minimiza la latencia y la complejidad de la red, simplifica la arquitectura para una depuración y mantenimiento más sencillos, mejora la utilización de los recursos y se adapta a patrones de mensajería más flexibles para una variedad de cargas de trabajo complejas.

En esencia, esta actualización acerca la ejecución de cuadernos y código mucho más cerca de los kernels, reduciendo significativamente la latencia y aumentando la estabilidad.

Control mejorado sobre el almacenamiento asignado

SageMaker Studio Classic originalmente utilizaba Amazon EFS para proporcionar almacenamiento persistente y compartido de archivos para los directorios de inicio de usuario dentro del entorno de SageMaker Studio. Esta configuración permite almacenar de forma centralizada cuadernos, scripts y otros archivos de proyecto, accesibles en todas sus sesiones e instancias de SageMaker Studio.

Con la última actualización de SageMaker Studio, hay un cambio de almacenamiento basado en Amazon EFS a una solución basada en Amazon EBS. Los volúmenes de EBS, asignados con SageMaker Studio Spaces, son volúmenes GP3 diseñados para ofrecer un rendimiento base constante de 3,000 IOPS, independientemente del tamaño del volumen. Este nuevo almacenamiento de Amazon EBS ofrece un mayor rendimiento para tareas intensivas en E/S como el entrenamiento de modelos, el procesamiento de datos, la computación de alto rendimiento y la visualización de datos. Esta transición también brinda a los administradores de SageMaker Studio una mayor visibilidad y control sobre el uso del almacenamiento por parte de los perfiles de usuario dentro de un dominio o en SageMaker en general. Ahora puede establecer tamaños de almacenamiento predeterminados (DefaultEbsVolumeSizeInGb) y máximos (MaximumEbsVolumeSizeInGb) para los espacios de JupyterLab dentro de cada perfil de usuario.

Además del rendimiento mejorado, tiene la capacidad de redimensionar de manera flexible el volumen de almacenamiento adjunto a la instancia de cómputo ML de su espacio editando la configuración de su espacio ya sea utilizando la interfaz de usuario o acciones de API en su interfaz de SageMaker Studio, sin requerir ninguna acción de administración. Sin embargo, tenga en cuenta que solo puede editar los tamaños de los volúmenes de EBS en una dirección: después de aumentar el tamaño del volumen del espacio, no podrá reducirlo nuevamente.

SageMaker Studio ahora ofrece un mayor control sobre el almacenamiento asignado para los administradores:

  • Los administradores de SageMaker Studio pueden gestionar los tamaños de los volúmenes de EBS para los perfiles de usuario. Estos volúmenes de EBS de JupyterLab pueden variar desde un mínimo de 5 GB hasta un máximo de 16 TB. El siguiente fragmento de código muestra cómo crear o actualizar un perfil de usuario con la configuración predeterminada y máxima del espacio:

    aws --region $REGION sagemaker create-user-profile \--domain-id $DOMAIN_ID \--user-profile-name $USER_PROFILE_NAME \--user-settings '{    "SpaceStorageSettings": {        "DefaultEbsStorageSettings":{            "DefaultEbsVolumeSizeInGb":5,            "MaximumEbsVolumeSizeInGb":100        }    }}'# alternatively to update an existing user profileaws --region $REGION sagemaker update-user-profile \--domain-id $DOMAIN_ID \--user-profile-name $USER_PROFILE_NAME \--user-settings '{    "SpaceStorageSettings": {        "DefaultEbsStorageSettings":{            "DefaultEbsVolumeSizeInGb":25,            "MaximumEbsVolumeSizeInGb":100         }    }}'
  • SageMaker Studio ahora ofrece una función mejorada de etiquetado automático para recursos de Amazon EBS, etiquetando automáticamente los volúmenes creados por los usuarios con información de dominio, usuario y espacio. Este avance simplifica el análisis de asignación de costos de los recursos de almacenamiento, ayudando a los administradores a gestionar y atribuir costos de manera más efectiva. También es importante destacar que estos volúmenes de EBS están alojados dentro de la cuenta de servicio, por lo que no tendrá visibilidad directa. No obstante, el uso de almacenamiento y los costos asociados están directamente vinculados al ARN del dominio, al ARN del perfil de usuario y al ARN del espacio, facilitando una asignación de costos sencilla.

  • Los administradores también pueden controlar la encriptación de los volúmenes de EBS de un espacio, en reposo, utilizando claves administradas por el cliente (CMK).

Multipropiedad con sistema de archivos EFS propio

Los flujos de trabajo de ML suelen ser colaborativos, requiriendo una compartición eficiente de datos y código entre los miembros del equipo. El nuevo SageMaker Studio mejora este aspecto colaborativo al permitirte compartir datos, código y otros artefactos a través de un sistema de archivos EFS propio. Esta unidad EFS se puede configurar de forma independiente a SageMaker o puede ser un recurso Amazon EFS existente. Después de ser asignada, se puede montar sin problemas en los perfiles de usuario de SageMaker Studio. Esta característica no está restringida a perfiles de usuario dentro de un solo dominio, puede extenderse entre dominios, siempre y cuando estén en la misma región.

El siguiente código de ejemplo te muestra cómo crear un dominio y adjuntar un volumen EFS existente usando su id-fs asociado. Los volúmenes EFS se pueden adjuntar a un dominio a nivel de raíz o prefijo, como demuestran los siguientes comandos:

# crear un dominio y adjuntar un volumen EFS existente a nivel de raízaws sagemaker create-domain --nombre-dominio "miDominio" \
--id-vpc {ID_VPC} --ids-subred {IDS_SUBRED} --modo-autenticación IAM \
--configuraciones-usuario-predeterminado \
"ConfiguracionesSistemaArchivosPersonalizados=[{ConfiguracionSistemaArchivosEFS={IdSistemaArchivosEFS="fs-12345678"}}]" # crear un dominio y adjuntar un volumen EFS existente a nivel del prefijo del sistema de archivosaws sagemaker create-domain --nombre-dominio "miDominio" \
--id-vpc {ID_VPC} --ids-subred {IDS_SUBRED} --modo-autenticación IAM \
--configuraciones-usuario-predeterminado \
"ConfiguracionesSistemaArchivosPersonalizados=[{ConfiguracionSistemaArchivosEFS={IdSistemaArchivosEFS="fs-12345678", RutaSistemaArchivos="/mi/ruta/personalizada"}}]"# actualizar un dominio existente con tu propio EFSaws sagemaker update-domain --region us-west-2 --id-dominio d-xxxxx \ --configuraciones-usuario-predeterminado \ "ConfiguracionesSistemaArchivosPersonalizados=[{ConfiguracionSistemaArchivosEFS={IdSistemaArchivosEFS="fs-12345678"}}]"

Cuando un montaje de EFS está disponible en un dominio y sus perfiles de usuario relacionados, puedes elegir adjuntarlo a un nuevo espacio. Esto se puede hacer tanto a través de la interfaz de usuario de SageMaker Studio como mediante una acción de API, como se muestra en el siguiente ejemplo. Es importante tener en cuenta que cuando se crea un espacio con un sistema de archivos EFS que se ha creado a nivel de dominio, el espacio hereda sus propiedades. Esto significa que si el sistema de archivos se ha creado a nivel de raíz o prefijo dentro del dominio, estas configuraciones se aplicarán automáticamente al espacio creado por los usuarios del dominio.

# adjuntar un EFS preconfigurado a un espacioaws sagemaker create-space \--nombre-espacio espacio-efsoa --id-dominio "miDominio" \--configuraciones-propiedad "NombrePerfilUsuarioPropietario={NOMBRE_PERFIL_USUARIO}" \--configuraciones-compartir-espacio "TipoCompartición=Privada" \--configuraciones-espacio \"TipoAplicación=JupyterLab,SistemasArchivosPersonalizados=[{SistemaArchivosEFS={IdSistemaArchivosEFS="fs-12345678"}}]")

Después de montarlo en un espacio, puedes localizar todos tus archivos ubicados sobre el punto de montaje proveído por el administrador. Estos archivos se pueden encontrar en la ruta del directorio /mnt/custom-file-system/efs/fs-12345678.

Los montajes de EFS facilitan la compartición de artefactos entre el espacio de un usuario o entre varios usuarios o dominios, lo que los hace ideales para cargas de trabajo colaborativas. Con esta característica, puedes hacer lo siguiente:

  • Compartir datos – Los montajes de EFS son ideales para almacenar grandes conjuntos de datos cruciales para experimentos de ciencia de datos. Los propietarios de los conjuntos de datos pueden cargar estos montajes con conjuntos de datos de entrenamiento, validación y pruebas, lo que les permite ser accesibles para los perfiles de usuario dentro de un dominio o entre varios dominios. Los administradores de SageMaker Studio también pueden integrar montajes de aplicaciones EFS existentes al tiempo que cumplen con las políticas de seguridad organizativas. Esto se logra a través de montajes flexibles a nivel de prefijo. Por ejemplo, si los datos de producción y de prueba se almacenan en el mismo montaje EFS (como fs-12345678:/data/prod y fs-12345678:/data/test), montar /data/test en los perfiles de usuario del dominio de SageMaker otorga a los usuarios acceso solo al conjunto de pruebas. Esta configuración permite el análisis o entrenamiento de modelos manteniendo seguros e inaccesibles los datos de producción.
  • Compartir código – Los montajes de EFS facilitan la compartición rápida de artefactos de código entre perfiles de usuario. En escenarios en los que los usuarios necesitan compartir rápidamente muestras de código o colaborar en una base de código común sin la complejidad de comandos frecuentes de git push / pull, los montajes compartidos de EFS son muy beneficiosos. Ofrecen una forma conveniente de compartir artefactos de código en progreso dentro de un equipo o entre diferentes equipos en SageMaker Studio.
  • Compartir entornos de desarrollo – Los montajes compartidos de EFS también pueden servir como medio para difundir rápidamente entornos de sandbox entre usuarios y equipos. Los montajes de EFS ofrecen una alternativa sólida para compartir entornos de Python como conda o virtualenv entre múltiples espacios de trabajo. Este enfoque evita la necesidad de distribuir archivos requirements.txt o environment.yml, lo que a menudo lleva a la tarea repetitiva de crear o recrear entornos en diferentes perfiles de usuario.

Estas características mejoran significativamente las capacidades de colaboración dentro de SageMaker Studio, facilitando que los equipos trabajen juntos de manera eficiente en proyectos de ML complejos. Además, el Editor de Código basado en Code-OSS (Visual Studio Code de código abierto) comparte los mismos principios arquitectónicos que la experiencia mencionada anteriormente en JupyterLab. Esta alineación ofrece varias ventajas, como una latencia reducida, mayor estabilidad y un mejor control administrativo, y permite el acceso del usuario a espacios de trabajo compartidos, similares a los ofrecidos en JupyterLab Spaces.

Herramientas generativas impulsadas por IA en JupyterLab Spaces

La IA generativa, un campo en rápido desarrollo dentro de la inteligencia artificial, utiliza algoritmos para crear contenido nuevo como texto, imágenes y código a partir de datos existentes extensos. Esta tecnología ha revolucionado la codificación al automatizar tareas rutinarias, generar estructuras de código complejas y ofrecer sugerencias inteligentes, agilizando así el desarrollo y fomentando la creatividad y la resolución de problemas en la programación. Como una herramienta indispensable para los desarrolladores, la IA generativa mejora la productividad y fomenta la innovación en la industria tecnológica. SageMaker Studio mejora esta experiencia de desarrollo con herramientas preinstaladas como Amazon CodeWhisperer y Jupyter AI, utilizando IA generativa para acelerar el ciclo de desarrollo.

Amazon CodeWhisperer

Amazon CodeWhisperer es un asistente de programación que mejora la productividad del desarrollador mediante recomendaciones y soluciones de código en tiempo real. Como un servicio de IA administrado por AWS, está integrado perfectamente en el IDE de SageMaker Studio JupyterLab. Esta integración convierte a Amazon CodeWhisperer en una adición fluida y valiosa al flujo de trabajo de un desarrollador.

Amazon CodeWhisperer destaca por aumentar la eficiencia del desarrollador al automatizar tareas de codificación comunes, sugerir patrones de codificación más efectivos y reducir el tiempo de depuración. Sirve como una herramienta esencial tanto para principiantes como para programadores experimentados, brindando información sobre las mejores prácticas, acelerando el proceso de desarrollo y mejorando la calidad general del código. Para comenzar a usar Amazon CodeWhisperer, asegúrate de que la función de Autocompletado de sugerencias esté activada. Puedes invocar manualmente las sugerencias de código utilizando los atajos de teclado.

Alternativamente, escribe un comentario que describa la función de código deseada y comienza a codificar; Amazon CodeWhisperer comenzará a proporcionar sugerencias.

Ten en cuenta que, aunque Amazon CodeWhisperer viene preinstalado, debes tener el permiso codewhisperer:GenerateRecommendations como parte del rol de ejecución para recibir recomendaciones de código. Para obtener más detalles, consulta Cómo usar CodeWhisperer con Amazon SageMaker Studio. Al usar Amazon CodeWhisperer, AWS puede almacenar datos sobre tu uso y contenido con fines de mejora del servicio. Para optar por no participar en la política de uso compartido de datos de Amazon CodeWhisperer, puedes ir a la opción Configuración en el menú superior, luego ir a Editor de configuración y desactivar Compartir datos de uso con Amazon CodeWhisperer en el menú de configuración de Amazon CodeWhisperer.

Jupyter AI

Jupyter AI es una herramienta de código abierto que ofrece IA generativa en cuadernos Jupyter, brindando una plataforma sólida y fácil de usar para explorar modelos de IA generativa. Mejora la productividad en JupyterLab y Jupyter Notebooks al proporcionar características como la función %%ai para crear un entorno de IA generativa dentro de los cuadernos, una interfaz de chat nativa en JupyterLab para interactuar con la IA como un asistente de conversación, y soporte para una amplia variedad de proveedores de modelos de lenguaje grande (LLM) como AI21, Anthropic, Cohere y Hugging Face, o servicios administrados como Amazon Bedrock y puntos finales de SageMaker. Esta integración ofrece métodos más eficientes e innovadores para el análisis de datos, la inteligencia artificial y las tareas de codificación. Por ejemplo, puedes interactuar con un LLM consciente del dominio utilizando la interfaz de chat Jupyternaut para obtener ayuda con procesos y flujos de trabajo, o generar código de ejemplo a través de CodeLlama, alojado en puntos finales de SageMaker. Esto lo convierte en una herramienta valiosa para desarrolladores y científicos de datos.

Jupyter AI proporciona una amplia selección de modelos de lenguaje listos para usar directamente. Además, también se admiten modelos personalizados a través de puntos de enlace de SageMaker, lo que ofrece flexibilidad y una amplia gama de opciones para los usuarios. También ofrece soporte para modelos de incrustación, lo que le permite realizar comparaciones y pruebas en línea e incluso crear o probar aplicaciones de generación mejorada de recuperación ad hoc (RAG).

Jupyter AI puede actuar como su asistente de chat, ayudándole con ejemplos de código, proporcionándole respuestas a preguntas y mucho más.

Puede utilizar la magia %%ai de Jupyter AI para generar código de muestra dentro de su cuaderno, como se muestra en la siguiente captura de pantalla.

JupyterLab 4.0

El equipo de JupyterLab ha lanzado la versión 4.0, que presenta mejoras significativas en rendimiento, funcionalidad y experiencia de usuario. Información detallada sobre esta versión está disponible en la Documentación oficial de JupyterLab.

Esta versión, ahora estándar en SageMaker Studio JupyterLab, introduce un rendimiento optimizado para manejar cuadernos grandes y operaciones más rápidas, gracias a mejoras como la optimización de reglas CSS y la adopción de CodeMirror 6 y MathJax 3. Las principales mejoras incluyen un editor de texto mejorado con una mejor accesibilidad y personalización, un nuevo gestor de extensiones para la fácil instalación de extensiones de Python y capacidades de búsqueda de documentos mejoradas con funciones avanzadas. Además, la versión 4.0 trae mejoras en la interfaz de usuario, mejoras en la accesibilidad y actualizaciones en las herramientas de desarrollo, y ciertas características se han retroportado a JupyterLab 3.6.

Conclusión

Los avances en SageMaker Studio, particularmente con la nueva experiencia de JupyterLab, marcan un gran salto adelante en el desarrollo de ML. La nueva interfaz de usuario de SageMaker Studio, con su integración de JupyterLab, Code Editor y RStudio, ofrece un entorno sin igual y optimizado para los desarrolladores de ML. La introducción de JupyterLab Spaces proporciona flexibilidad y facilidad para personalizar los recursos de cómputo y almacenamiento, mejorando la eficiencia general de los flujos de trabajo de ML. El cambio de una arquitectura de kernel remoto a un modelo localizado en JupyterLab aumenta en gran medida la estabilidad y reduce la latencia de inicio. Esto se traduce en una experiencia de codificación más rápida, estable y receptiva. Además, la integración de herramientas de generación de IA como Amazon CodeWhisperer y Jupyter AI en JupyterLab brinda a los desarrolladores un mayor poder, lo que les permite utilizar la IA para obtener asistencia en la codificación y resolver problemas de manera innovadora. El mayor control sobre el almacenamiento provisionado y la capacidad de compartir código y datos fácilmente a través de montajes de EFS autogestionados facilitan en gran medida los proyectos colaborativos. Por último, el lanzamiento de JupyterLab 4.0 dentro de SageMaker Studio subraya estas mejoras, ofreciendo un rendimiento optimizado, una mejor accesibilidad y una interfaz más fácil de usar, consolidando así el papel de JupyterLab como piedra angular del desarrollo de ML eficiente y efectivo en el panorama tecnológico actual.

Prueba SageMaker Studio JupyterLab Spaces utilizando nuestra función rápida de incorporación, que te permite poner en marcha un nuevo dominio para usuarios individuales en cuestión de minutos. ¡Comparte tus pensamientos en la sección de comentarios!

Apéndice: Arquitectura de Kernel Gateway de SageMaker Studio Classic

Un dominio de SageMaker Classic es una agregación lógica de un volumen EFS, una lista de usuarios autorizados para acceder al dominio y configuraciones relacionadas con la seguridad, la aplicación, la red y más. En la arquitectura de SageMaker Studio Classic de SageMaker, cada usuario dentro del dominio de SageMaker tiene un perfil de usuario distintivo. Este perfil comprende detalles específicos como el rol del usuario y su ID de usuario Posix en el volumen EFS, entre otros datos únicos. Los usuarios acceden a su perfil de usuario individual a través de una aplicación de servidor Jupyter dedicada, conectada mediante HTTPS/WSS en su navegador web. SageMaker Studio Classic utiliza una arquitectura de kernel remoto utilizando una combinación de tipos de aplicaciones Jupyter Server y Kernel Gateway, lo que permite a los servidores de cuadernos interactuar con los núcleos en hosts remotos. Esto significa que los núcleos de Jupyter no operan en el host del servidor de cuadernos, sino dentro de contenedores Docker en hosts separados. En esencia, su cuaderno se almacena en el directorio de inicio de EFS y se ejecuta en código de forma remota en una instancia de Amazon Elastic Compute Cloud (Amazon EC2) diferente, que alberga un contenedor Docker precompilado equipado con bibliotecas de ML como PyTorch, TensorFlow, Scikit-Learn y más.

La arquitectura de kernel remoto en SageMaker Studio ofrece importantes beneficios en términos de escalabilidad y flexibilidad. Sin embargo, tiene sus limitaciones, como un máximo de cuatro aplicaciones por tipo de instancia y posibles cuellos de botella debido a numerosas conexiones HTTPS/WSS a un tipo de instancia EC2 común. Estas limitaciones podrían afectar negativamente la experiencia del usuario.

El siguiente diagrama de arquitectura representa la arquitectura de SageMaker Studio Classic. Ilustra el proceso del usuario de conectarse a una aplicación Kernel Gateway a través de una aplicación de servidor Jupyter, utilizando su navegador web preferido.

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Inteligencia Artificial

Conoce el modelo GOAT-7B-Community un modelo de IA ajustado finamente a partir del modelo LLaMA-2 7B en un conjunto de datos recopilados de la aplicación GoatChat.

Recientemente, científicos del Laboratorio de Investigación de IA presentaron el modelo GOAT-7B-Community, que mejora...

Aprendizaje Automático

Detectando el Crecimiento del Cáncer Utilizando Inteligencia Artificial y Visión por Computadora.

El cáncer de mama es una de las formas más mortales de cáncer en mujeres. Según la Organización Mundial de la Salud (...

Inteligencia Artificial

Las imágenes de la cámara del salpicadero revelan dónde está desplegada la policía.

Los científicos encontraron indicios de cómo la policía en la ciudad de Nueva York puede desplegarse en los vecindari...

Ciencia de Datos

Después de Twitter

Nuevas aplicaciones sociales surgen para desafiar a la problemática Twitter.

Inteligencia Artificial

Los repetidores cuánticos utilizan defectos en el diamante para interconectar sistemas cuánticos

Ahora los científicos están aprovechando los defectos en los diamantes para construir repetidores cuánticos.