Logotipo de Zephyrnet

Aumente la productividad en Amazon SageMaker Studio: presentamos JupyterLab Spaces y herramientas de IA generativa | Servicios web de Amazon

Fecha:

Estudio Amazon SageMaker ofrece un amplio conjunto de entornos de desarrollo integrados (IDE) totalmente administrados para el desarrollo de aprendizaje automático (ML), incluido JupyterLab, editor de código basado en Code-OSS (Visual Studio Code Open Source) y RStudio. Proporciona acceso al conjunto de herramientas más completo para cada paso del desarrollo de ML, desde la preparación de datos hasta la creación, capacitación, implementación y gestión de modelos de ML. Puede iniciar JuptyerLab totalmente administrado con SageMaker Distribution preconfigurado en segundos para trabajar con sus cuadernos, código y datos. La interfaz flexible y extensible de SageMaker Studio le permite configurar y organizar flujos de trabajo de aprendizaje automático sin esfuerzo, y puede utilizar el complemento de codificación en línea con tecnología de inteligencia artificial para crear, depurar, explicar y probar código rápidamente.

En esta publicación, analizamos más de cerca el SageMaker Studio actualizado y su IDE JupyterLab, diseñado para aumentar la productividad de los desarrolladores de ML. Presentamos el concepto de Spaces y explicamos cómo JupyterLab Spaces permite una personalización flexible de los recursos informáticos, de almacenamiento y de tiempo de ejecución para mejorar la eficiencia del flujo de trabajo de ML. También analizamos 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, cubrimos la perfecta integración de herramientas de IA generativa como Código de Amazon Whisperer y Jupyter AI dentro de SageMaker Studio JupyterLab Spaces, que ilustran cómo permiten a los desarrolladores utilizar la IA para asistencia en codificación y resolución innovadora de problemas.

Presentamos espacios en SageMaker Studio

El nuevo Interfaz basada en web de SageMaker Studio Actúa como un centro de comando para iniciar su IDE preferido y acceder a su Amazon SageMaker herramientas para construir, entrenar, ajustar e implementar 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 Open Source). Tanto JupyterLab como Code Editor se pueden iniciar utilizando un espacio de trabajo flexible llamado Spaces.

Un Espacio es una representación de configuración de un IDE de SageMaker, como JupyterLab o Code Editor, diseñada para persistir independientemente de si una aplicación (IDE) asociada con el Espacio se está ejecutando activamente o no. Un espacio representa una combinación de una instancia informática, almacenamiento y otras configuraciones de tiempo de ejecución. Con Spaces, puede crear y escalar la computación y el almacenamiento para su IDE a medida que avanza, personalizar los entornos de ejecución y pausar y reanudar la codificación en cualquier momento y desde cualquier lugar. Puede activar varios espacios de este tipo, cada uno configurado con una combinación diferente de computación, almacenamiento y tiempos de ejecución.

Cuando se crea un Espacio, está equipado con un Tienda de bloques elásticos de Amazon (Amazon EBS) volumen, que se utiliza para almacenar archivos, datos, cachés y otros artefactos de los usuarios. Se adjunta a una instancia informática de ML cada vez que se ejecuta un espacio. El volumen de EBS garantiza que los archivos de usuario, los datos, la caché y los estados de sesión se restablezcan constantemente cada vez que se reinicie el espacio. Es importante destacar que este volumen de EBS permanece persistente, ya sea que el espacio esté en ejecución o detenido. Continuará persistiendo hasta que se elimine el espacio.

Además, hemos introducido la función Traiga su propio sistema de archivos para los usuarios que deseen compartir entornos y artefactos entre diferentes espacios, usuarios o incluso dominios. Esto le permite opcionalmente equipar sus espacios con su propio Sistema de archivos elástico de Amazon (Amazon EFS), lo que facilita el intercambio de recursos entre varios espacios de trabajo.

Creando un espacio

Crear y lanzar un nuevo Espacio ahora es rápido y sencillo. Solo toma unos segundos configurar un nuevo Space con instancias de lanzamiento rápidas y menos de 60 segundos para ejecutar un Space. Los espacios están equipados con configuraciones predefinidas para computación y almacenamiento, administradas por administradores. Los administradores de SageMaker Studio pueden establecer ajustes preestablecidos a nivel de dominio para configuraciones de computación, almacenamiento y tiempo de ejecución. Esta configuración le permite iniciar rápidamente un nuevo espacio con un mínimo esfuerzo y solo requiere unos pocos clics. También tiene la opción de modificar las configuraciones de computación, almacenamiento o tiempo de ejecución de un espacio para una mayor personalización.

Es importante tener en cuenta que la creación de un espacio requiere actualizar la función de ejecución del dominio de SageMaker con una política como la del siguiente ejemplo. Debe otorgar a sus usuarios permisos para espacios privados y perfiles de usuario necesarios para acceder a estos espacios privados. Para obtener instrucciones detalladas, consulte Dale a tus usuarios acceso a 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, complete los siguientes pasos:

  1. En SageMaker Studio, elija JupyterLab en Aplicaciones .
  2. Elige Crear espacio JupyterLab.
  3. Nombre, ingresa un nombre para tu espacio.
  4. Elige Crear espacio.
  5. Elige Ejecutar espacio para iniciar su nuevo Space con ajustes preestablecidos predeterminados o actualizar la configuración según sus requisitos.

Reconfigurar un espacio

Los espacios están diseñados para que los usuarios realicen una transición fluida entre diferentes tipos de computación según sea necesario. Puede comenzar creando un nuevo espacio con una configuración específica, que consista principalmente en computación y almacenamiento. Si necesita cambiar a un tipo de computación diferente con un recuento de vCPU mayor o menor, más o menos memoria o una instancia basada en GPU en cualquier punto de su flujo de trabajo, puede hacerlo con facilidad. Después de detener el espacio, puede modificar su configuración utilizando la interfaz de usuario o API a través de la interfaz actualizada de SageMaker Studio y luego reinicie Space. SageMaker Studio maneja automáticamente el aprovisionamiento de su espacio existente a la nueva configuración, sin requerir ningún esfuerzo adicional de su parte.

Complete los siguientes pasos para editar un espacio existente:

  1. En la página de detalles del espacio, elija detener el espacio.
  2. Vuelva a configurar el proceso, el almacenamiento o el tiempo de ejecución.
  3. Elige Ejecutar espacio para relanzar el espacio.

Su espacio de trabajo se actualizará con el nuevo tipo de instancia de almacenamiento y computación que solicitó.

La nueva arquitectura SageMaker Studio JupyterLab

El equipo de SageMaker Studio continúa inventando y simplificando su experiencia de desarrollador con el lanzamiento de una nueva experiencia SageMaker Studio JupyterLab totalmente administrada. La nueva experiencia SageMaker Studio JupyterLab combina lo mejor de ambos mundos: la escalabilidad y flexibilidad de SageMaker Estudio Clásico (consulte el apéndice al final de esta publicación) con la estabilidad y familiaridad del código abierto JupyterLab. Para comprender el diseño de esta nueva experiencia de JupyterLab, profundicemos en el siguiente diagrama de arquitectura. Esto nos ayudará a comprender mejor la integración y las características de esta nueva plataforma JupyterLab Spaces.

En resumen, hemos hecho la transición hacia una arquitectura localizada. En esta nueva configuración, los procesos del kernel y del servidor Jupyter operan juntos en un único contenedor Docker, alojado en la misma instancia informática de ML. Estas instancias de ML se aprovisionan cuando se ejecuta un espacio y se vinculan con un volumen de EBS que se crea cuando se creó inicialmente el espacio.

Esta nueva arquitectura trae varios beneficios; Analizamos algunos de estos en las siguientes secciones.

Latencia reducida y mayor estabilidad.

SageMaker Studio ha hecho la transición 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 Kernel Gateway remoto. En la configuración anterior, Kernel Gateway, un servidor web sin cabeza, habilitaba las operaciones del kernel a través de comunicación remota con los kernels de Jupyter a través de HTTPS/WSS. Las acciones del usuario, como ejecutar código, administrar cuadernos o ejecutar comandos de terminal, fueron procesadas por una aplicación Kernel Gateway en una instancia de ML remota, y Kernel Gateway facilitó estas operaciones a través de ZeroMQ (ZMQ) dentro de un contenedor Docker. El siguiente diagrama ilustra esta arquitectura.

La arquitectura JupyterLab actualizada ejecuta todas las operaciones del kernel directamente en la instancia local. Este enfoque local de Jupyter Server normalmente proporciona un rendimiento mejorado y una arquitectura sencilla. Minimiza la latencia y la complejidad de la red, simplifica la arquitectura para facilitar la depuración y el mantenimiento, mejora la utilización de 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 los portátiles en ejecución y el código a los núcleos, lo que reduce significativamente la latencia y aumenta la estabilidad.

Control mejorado sobre el almacenamiento aprovisionado

SageMaker Studio Classic utilizó originalmente Amazon EFS para proporcionar almacenamiento de archivos compartido y persistente para los directorios de inicio de los usuarios dentro del entorno de SageMaker Studio. Esta configuración le 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, se produce un cambio del almacenamiento basado en Amazon EFS a una solución basada en Amazon EBS. Los volúmenes de EBS, provistos con SageMaker Studio Spaces, son Volúmenes GP3 diseñado para ofrecer un rendimiento básico constante de 3,000 IOPS, independientemente del tamaño del volumen. Este nuevo almacenamiento de Amazon EBS ofrece un mayor rendimiento para tareas intensivas de E/S, como entrenamiento de modelos, procesamiento de datos, computación de alto rendimiento y visualización de datos. Esta transición también brinda a los administradores de SageMaker Studio una mayor comprensión y control sobre el uso del almacenamiento por parte de los perfiles de usuario dentro de un dominio o en SageMaker. Ahora puede configurar el valor predeterminado (DefaultEbsVolumeSizeInGb) y máximo (MaximumEbsVolumeSizeInGb) tamaños de almacenamiento para JupyterLab Spaces dentro de cada perfil de usuario.

Además de un rendimiento mejorado, tiene la capacidad de cambiar de manera flexible el tamaño del volumen de almacenamiento adjunto a la instancia informática de ML de su Space editando la configuración de su Space mediante la acción de UI o API desde su interfaz de SageMaker Studio, sin requerir ninguna acción administrativa. Sin embargo, tenga en cuenta que solo puede editar los tamaños de volumen de EBS en una dirección; después de aumentar el tamaño del volumen de EBS del espacio, no podrá volver a reducirlo.

SageMaker Studio ahora ofrece un control elevado del almacenamiento aprovisionado para los administradores:

  • Los administradores de SageMaker Studio pueden administrar los tamaños de volumen de EBS para los perfiles de usuario. Estos volúmenes de JupyterLab EBS 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 configuraciones de espacio máximas y predeterminadas:
    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 profile
    aws --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 de etiquetado automático mejorada para recursos de Amazon EBS, que etiqueta 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 para los recursos de almacenamiento, lo que ayuda a los administradores a administrar y atribuir costos de manera más efectiva. También es importante tener en cuenta 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 del almacenamiento y los costos asociados están directamente vinculados al ARN del dominio, al ARN del perfil de usuario y al ARN del espacio, lo que facilita una asignación de costos sencilla.
  • Los administradores también pueden controlar el cifrado de los volúmenes EBS de un espacio, en reposo, mediante claves administradas por el cliente (CMK).

Arrendamiento compartido con sistema de archivos EFS propio

Los flujos de trabajo de ML suelen ser colaborativos y requieren un intercambio eficiente de datos y códigos entre los miembros del equipo. El nuevo SageMaker Studio mejora este aspecto colaborativo al permitirle compartir datos, códigos y otros artefactos a través de una plataforma compartida. Traiga su propio sistema de archivos EFS. Esta unidad EFS se puede configurar independientemente de SageMaker o podría ser un recurso existente de Amazon EFS. Una vez aprovisionado, se puede montar sin problemas en los perfiles de usuario de SageMaker Studio. Esta función no está restringida a perfiles de usuario dentro de un solo dominio; puede extenderse a todos los dominios, siempre que estén dentro de la misma región.

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

# create a domain with and attach an existing EFS volume at root level
aws sagemaker create-domain --domain-name "myDomain" 
 --vpc-id {VPC_ID} --subnet-ids {SUNBET_IDS} --auth-mode IAM 
 --default-user-settings 
 "CustomFileSystemConfigs=[{EFSFileSystemConfig={FileSystemId="fs-12345678"}}]"
 
# create a domain with and attach an existing EFS volume at file system prefix leve
aws sagemaker create-domain --domain-name "myDomain" 
 --vpc-id {VPC_ID} --subnet-ids {SUNBET_IDS} --auth-mode IAM 
 --default-user-settings 
 "CustomFileSystemConfigs=[{EFSFileSystemConfig={FileSystemId="fs-12345678", FileSystemPath="/my/custom/path"}}]"

# update an existing domain with your own EFS
aws sagemaker update-domain --region us-west-2 --domain-id d-xxxxx 
    --default-user-settings 
    "CustomFileSystemConfigs=[{EFSFileSystemConfig={FileSystemId="fs-12345678"}}]"

Cuando un montaje EFS está disponible en un dominio y sus perfiles de usuario relacionados, puede optar por adjuntarlo a un nuevo espacio. Esto se puede hacer utilizando la interfaz de usuario de SageMaker Studio o una acción 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 aprovisionado a nivel de dominio, el espacio hereda sus propiedades. Esto significa que si el sistema de archivos se aprovisiona en un nivel de raíz o prefijo dentro del dominio, esta configuración se aplicará automáticamente al espacio creado por los usuarios del dominio.

# attach an a preconfigured EFS to a space
aws sagemaker create-space 
--space-name byofs-space --domain-id "myDomain" 
--ownership-settings "OwnerUserProfileName={USER_PROFILE_NAME}" 
--space-sharing-settings "SharingType=Private" 
--space-settings 
"AppType=JupyterLab,CustomFileSystems=[{EFSFileSystem={FileSystemId="fs-12345678"}}]")

Después de montarlo en un espacio, puede ubicar todos sus archivos ubicados encima del punto de montaje proporcionado por el administrador. Estos archivos se pueden encontrar en la ruta del directorio. /mnt/custom-file-system/efs/fs-12345678.

Los montajes EFS hacen que sea sencillo compartir artefactos entre el espacio de un usuario o entre varios usuarios o entre dominios, lo que lo hace ideal para cargas de trabajo colaborativas. Con esta función, puede hacer lo siguiente:

  • Compartir datos – Los montajes EFS son ideales para almacenar grandes conjuntos de datos cruciales para experimentos de ciencia de datos. Los propietarios de conjuntos de datos pueden cargar estos montajes con conjuntos de datos de entrenamiento, validación y prueba, haciéndolos accesibles para perfiles de usuario dentro de un dominio o en varios dominios. Los administradores de SageMaker Studio también pueden integrar montajes EFS de aplicaciones existentes mientras mantienen el cumplimiento de las políticas de seguridad de la organización. Esto se hace mediante un montaje flexible a nivel de prefijo. Por ejemplo, si los datos de producción y prueba se almacenan en el mismo montaje EFS (como fs-12345678:/data/prod and fs-12345678:/data/test), montaje /data/test en los perfiles de usuario del dominio SageMaker otorga a los usuarios acceso solo al conjunto de datos de prueba. Esta configuración permite el análisis o la capacitación de modelos mientras mantiene los datos de producción seguros e inaccesibles.
  • Compartir código – Los montajes EFS facilitan el intercambio rápido de artefactos de código entre perfiles de usuario. En escenarios donde los usuarios necesitan compartir rápidamente muestras de código o colaborar en una base de código común sin las complejidades de los frecuentes comandos git push/pull, los montajes EFS compartidos son muy beneficiosos. Ofrecen una manera conveniente de compartir artefactos de código de trabajo en progreso dentro de un equipo o entre diferentes equipos en SageMaker Studio.
  • Compartir entornos de desarrollo – Los montajes EFS compartidos también pueden servir como un medio para difundir rápidamente entornos sandbox entre usuarios y equipos. Los montajes EFS brindan una alternativa sólida para compartir entornos Python como conda o virtualenv en múltiples espacios de trabajo. Este enfoque evita la necesidad de distribuir requirements.txt or environment.yml archivos, lo que a menudo puede llevar 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, lo que facilita que los equipos trabajen juntos de manera eficiente en proyectos complejos de ML. Además, el editor de código basado en Code-OSS (Visual Studio Code Open Source) comparte los mismos principios arquitectónicos que la experiencia JupyterLab antes mencionada. Esta alineación aporta varias ventajas, como latencia reducida, estabilidad mejorada y control administrativo mejorado, y permite el acceso de los usuarios a espacios de trabajo compartidos, similares a los que se ofrecen en JupyterLab Spaces.

Herramientas generativas impulsadas por IA en JupyterLab Spaces

La IA generativa, un campo de la inteligencia artificial en rápida evolución, utiliza algoritmos para crear contenido nuevo como texto, imágenes y código a partir de una gran cantidad de datos existentes. 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 herramienta indispensable para los desarrolladores, la IA generativa mejora la productividad e impulsa la innovación en la industria tecnológica. SageMaker Studio mejora esta experiencia del desarrollador con herramientas preinstaladas como Amazon CodeWhisperer y Jupyter AI, utilizando IA generativa para acelerar el ciclo de vida del desarrollo.

Código de Amazon Whisperer

Amazon CodeWhisperer es un asistente de programación que mejora la productividad de los desarrolladores a través de recomendaciones y soluciones de código en tiempo real. Como servicio de IA administrado por AWS, se integra perfectamente en el IDE JupyterLab de SageMaker Studio. Esta integración convierte a Amazon CodeWhisperer en una adición fluida y valiosa al flujo de trabajo de un desarrollador.

Amazon CodeWhisperer se destaca por aumentar la eficiencia de los desarrolladores al automatizar tareas de codificación comunes, sugerir patrones de codificación más efectivos y disminuir el tiempo de depuración. Sirve como una herramienta esencial tanto para programadores principiantes como experimentados, ya que proporciona información sobre las mejores prácticas, acelera el proceso de desarrollo y mejora la calidad general del código. Para comenzar a utilizar Amazon CodeWhisperer, asegúrese de que Reanudar sugerencias automáticas La función está activada. Puede invocar manualmente sugerencias de código usando atajos de teclado.

Alternativamente, escriba un comentario que describa la función de código prevista y comience a codificar; Amazon CodeWhisperer comenzará a brindar sugerencias.

Tenga en cuenta que, aunque Amazon CodeWhisperer está preinstalado, debe tener la codewhisperer:GenerateRecommendations permiso como parte de la función de ejecución para recibir recomendaciones de código. Para obtener detalles adicionales, consulte Uso de CodeWhisperer con Amazon SageMaker Studio. Cuando utiliza Amazon CodeWhisperer, AWS puede, con fines de mejora del servicio, almacenar datos sobre su uso y contenido. Para excluirse de Amazon CodeWhisperer política de intercambio de datos, puede navegar a la Fijar opción del menú superior y luego navegue hasta Editor de configuraciones y deshabilitar Comparta datos de uso con Amazon CodeWhisperer desde el menú de configuración de Amazon CodeWhisperer.

IA de Jupyter

IA de Jupyter es una herramienta de código abierto que lleva la IA generativa a los portátiles Jupyter, ofreciendo 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 funciones como la magia %%ai para crear un área de juegos de IA generativa dentro de los portátiles, una interfaz de usuario de chat nativa en JupyterLab para interactuar con la IA como asistente de conversación y compatibilidad con una amplia gama de lenguajes de gran tamaño. proveedores de modelos (LLM) como AI21, Anthropic, Cohere y Hugging Face o servicios administrados como lecho rocoso del amazonas y puntos finales de SageMaker. Esta integración ofrece métodos más eficientes e innovadores para tareas de análisis de datos, aprendizaje automático y codificación. Por ejemplo, puede interactuar con un LLM con reconocimiento de dominio utilizando la interfaz de chat de 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 la 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 nada más sacarlos de la caja. Además, los modelos personalizados también son compatibles a través de los puntos finales de SageMaker, lo que ofrece flexibilidad y una amplia gama de opciones para los usuarios. También ofrece soporte para incrustar modelos, lo que le permite realizar comparaciones y pruebas en línea e incluso crear o probar aplicaciones ad hoc de generación aumentada de recuperación (RAG).

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

Puedes usar Jupyter AI %%ai magic para generar código de muestra dentro de su computadora portátil, como se muestra en la siguiente captura de pantalla.

Jupyter Lab 4.0

El equipo de JupyterLab lanzó la versión 4.0, que presenta mejoras significativas en el rendimiento, la funcionalidad y la experiencia del usuario. La información detallada sobre este lanzamiento está disponible en el sitio oficial. Documentación de JupyterLab.

Esta versión, ahora estándar en SageMaker Studio JupyterLab, presenta un rendimiento optimizado para manejar portátiles 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 mejoras clave incluyen un editor de texto actualizado con mejor accesibilidad y personalización. , un nuevo administrador de extensiones para una fácil instalación de extensiones de Python y capacidades mejoradas de búsqueda de documentos con funciones avanzadas. Además, la versión 4.0 trae mejoras en la interfaz de usuario, mejoras de accesibilidad y actualizaciones de las herramientas de desarrollo, y ciertas funciones se han compatible con JupyterLab 3.6.

Conclusión

Los avances en SageMaker Studio, particularmente con la nueva experiencia JupyterLab, marcan un importante avance en el desarrollo de ML. La interfaz de usuario actualizada de SageMaker Studio, con su integración de JupyterLab, Code Editor y RStudio, ofrece un entorno optimizado e incomparable para los desarrolladores de ML. La introducción de JupyterLab Spaces brinda flexibilidad y facilidad para personalizar los recursos informáticos y de almacenamiento, lo que mejora la eficiencia general de los flujos de trabajo de ML. El cambio de una arquitectura de kernel remota a un modelo localizado en JupyterLab aumenta enormemente la estabilidad al tiempo que disminuye la latencia de inicio. Esto da como resultado una experiencia de codificación más rápida, estable y receptiva. Además, la integración de herramientas de IA generativa como Amazon CodeWhisperer y Jupyter AI en JupyterLab empodera aún más a los desarrolladores, permitiéndoles utilizar la IA para asistencia en codificación y resolución innovadora de problemas. El control mejorado sobre el almacenamiento aprovisionado y la capacidad de compartir código y datos sin esfuerzo a través de montajes EFS autoadministrados facilitan enormemente los proyectos colaborativos. Por último, el lanzamiento de JupyterLab 4.0 dentro de SageMaker Studio subraya estas mejoras, ofreciendo un rendimiento optimizado, mejor accesibilidad y una interfaz más fácil de usar, solidificando así el papel de JupyterLab como piedra angular del desarrollo de ML eficiente y efectivo en el panorama tecnológico moderno.

Pruebe SageMaker Studio JupyterLab Spaces utilizando nuestro característica rápida a bordo, que le permite crear un nuevo dominio para usuarios individuales en cuestión de minutos. ¡Comparte tus pensamientos en la sección de comentarios!

Apéndice: Arquitectura de puerta de enlace del kernel de SageMaker Studio Classic

A SageMaker clásico dominio es una agregación lógica de un volumen EFS, una lista de usuarios autorizados para acceder al dominio y configuraciones relacionadas con seguridad, aplicaciones, redes y más. En la arquitectura SageMaker Studio Classic de SageMaker, cada usuario dentro del dominio de SageMaker tiene un perfil de usuario distinto. Este perfil abarca detalles específicos como la función 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 Jupyter Server dedicada, conectada a través de HTTPS/WSS en su navegador web. SageMaker Studio Classic utiliza una arquitectura de kernel remota que utiliza una combinación de tipos de aplicaciones Jupyter Server y Kernel Gateway, lo que permite a los servidores portátiles interactuar con kernels en hosts remotos. Esto significa que los kernels de Jupyter no operan en el host del servidor portátil, sino dentro de contenedores Docker en hosts separados. En esencia, su computadora portátil se almacena en el directorio de inicio de EFS y ejecuta el código de forma remota en un directorio diferente. Nube informática elástica de Amazon (Amazon EC2), que alberga un contenedor Docker prediseñado equipado con bibliotecas de aprendizaje automático como PyTorch, TensorFlow, Scikit-Learn y más.

La arquitectura del kernel remoto en SageMaker Studio ofrece beneficios notables en términos de escalabilidad y flexibilidad. Sin embargo, tiene sus limitaciones, incluido 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 a la experiencia del usuario.

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


Sobre los autores

Pranav Murthy es un arquitecto de soluciones especializado en IA/ML en AWS. Se centra en ayudar a los clientes a crear, entrenar, implementar y migrar cargas de trabajo de aprendizaje automático (ML) a SageMaker. Anteriormente trabajó en la industria de semiconductores desarrollando grandes modelos de visión por computadora (CV) y procesamiento de lenguaje natural (NLP) para mejorar los procesos de semiconductores utilizando técnicas de aprendizaje automático de última generación. En su tiempo libre le gusta jugar al ajedrez y viajar. Puedes encontrar Pranav en Etiqueta LinkedIn.

Kunal Jha es gerente senior de productos en AWS. Está centrado en hacer de Amazon SageMaker Studio la mejor opción para el desarrollo de aprendizaje automático de un extremo a otro. En su tiempo libre, Kunal disfruta esquiar y explorar el noroeste del Pacífico. Puedes encontrarlo en Etiqueta LinkedIn.

Majisha Namath Parambath es ingeniero de software sénior en Amazon SageMaker. Ha estado en Amazon durante más de 8 años y actualmente está trabajando para mejorar la experiencia de extremo a extremo de Amazon SageMaker Studio.

Bharat Nandamuri es un ingeniero de software senior que trabaja en Amazon SageMaker Studio. Le apasiona crear servicios backend de alta escala con enfoque en ingeniería para sistemas ML. Fuera del trabajo, le gusta jugar al ajedrez, hacer senderismo y ver películas.

Derek Lause es ingeniero de software en AWS. Está comprometido a ofrecer valor a los clientes a través de Amazon SageMaker Studio y Notebook Instances. En su tiempo libre, Derek disfruta pasar tiempo con familiares y amigos y hacer senderismo. Puedes encontrar a Derek en Etiqueta LinkedIn.

punto_img

Información más reciente

punto_img