Si utiliza la configuración de ciclo de vida predeterminada para su dominio o perfil de usuario en Amazon SageMaker Studio y utiliza Amazon SageMaker Data Wrangler para la preparación de datos, entonces esta publicación es para usted. En esta publicación, mostramos cómo puede crear un flujo de Data Wrangler y usarlo para la preparación de datos en un entorno de Studio con una configuración de ciclo de vida predeterminada.
Data Wrangler es una característica de Amazon SageMaker que permite a los científicos e ingenieros de datos preparar datos más rápidamente para aplicaciones de aprendizaje automático (ML) a través de una interfaz visual. La preparación de datos es un paso crítico en el ciclo de vida de ML, y Data Wrangler proporciona una solución integral para importar, explorar, transformar, caracterizar y procesar datos para ML en una experiencia visual de código bajo. Le permite conectarse fácil y rápidamente a componentes de AWS como Amazon Simple Storage Service (Amazon S3), Amazon Athena, Amazon Redshift y AWS Lake Formation, así como fuentes externas como Snowflake y DataBricks DeltaLake. Data Wrangler admite tipos de datos estándar como CSV, JSON, ORC y Parquet.
Las aplicaciones de Studio son aplicaciones interactivas que permiten la interfaz de usuario visual, la creación de código y la ejecución de Studio. Los tipos de aplicaciones pueden ser Jupyter Server o Kernel Gateway:
- servidor jupyter – Proporciona acceso a la interfaz visual de Studio. Cada usuario de Studio obtiene su propia aplicación Jupyter Server.
- puerta de enlace del núcleo – Brinda acceso al entorno de ejecución de código y al kernel para sus portátiles y terminales Studio. Para obtener más información, consulte Puerta de enlace del kernel de Jupyter.
Las configuraciones del ciclo de vida (LCC) son scripts de shell para automatizar la personalización de sus entornos de Studio, p. B. instalar extensiones de JupyterLab, precargar conjuntos de datos y configurar repositorios de código fuente. Los scripts de LCC se activan mediante eventos del ciclo de vida de Studio, p. B. Inicio de una nueva computadora portátil Studio. Para establecer mediante programación una configuración de ciclo de vida como predeterminada para su dominio o perfil de usuario, puede crear un nuevo recurso o actualizar un recurso existente. Para asignar una configuración de ciclo de vida como predeterminada, primero debe crear una configuración de ciclo de vida siguiendo los pasos en Creación y asignación de una configuración de ciclo de vida
Nota: Todos los usuarios heredan las configuraciones de ciclo de vida predeterminadas establecidas en el nivel de dominio, mientras que las establecidas en el nivel de usuario están restringidas a un usuario específico. Si aplica configuraciones de ciclo de vida de nivel de dominio y de perfil de usuario al mismo tiempo, la configuración de ciclo de vida de nivel de perfil de usuario tiene prioridad y se aplica a la aplicación independientemente de qué configuración de ciclo de vida de nivel de dominio se aplique. Para obtener más información, consulte Establecer configuraciones de ciclo de vida predeterminadas.
Data Wrangler acepta la configuración predeterminada del ciclo de vida de Kernel Gateway, pero algunos de los comandos definidos en la configuración predeterminada del ciclo de vida de Kernel Gateway no se aplican a Data Wrangler, lo que puede provocar que Data Wrangler no se inicie. La siguiente captura de pantalla muestra un ejemplo de un mensaje de error que puede recibir al iniciar el flujo de Data Wrangler. Esto solo puede ocurrir con configuraciones de ciclo de vida estándar y no con configuraciones de ciclo de vida.
descripción general de la solución
Los clientes que usan la configuración del ciclo de vida predeterminado en Studio pueden seguir esta publicación y usar el bloque de código provisto dentro del script de configuración del ciclo de vida para iniciar una aplicación Data Wrangler sin errores.
Establecer la configuración del ciclo de vida predeterminado
Para establecer una configuración de ciclo de vida predeterminada, debe agregarla a la DefaultResourceSpec
el tipo de aplicación correspondiente. El comportamiento de su configuración de ciclo de vida depende de si se agrega a la DefaultResourceSpec
una aplicación Jupyter Server o Kernel Gateway:
- Aplicaciones de servidor Jupyter – Al agregar a
DefaultResourceSpec
Para una aplicación de Jupyter Server, el script de configuración del ciclo de vida predeterminado se ejecuta automáticamente cuando el usuario inicia sesión por primera vez en Studio o reinicia Studio. Puede usar esto para automatizar acciones de configuración únicas para el entorno de desarrollo de Studio, p. B. instalar extensiones de portátiles o configurar un repositorio de GitHub. Para ver un ejemplo de esto, consulte Personalización de Amazon SageMaker Studio mediante configuraciones de ciclo de vida. - Aplicaciones de puerta de enlace del núcleo – Al agregar a
DefaultResourceSpec
de una aplicación de Kernel Gateway, Studio selecciona el script de configuración del ciclo de vida desde el iniciador de Studio de forma predeterminada. Puede iniciar un cuaderno o terminal con el script predeterminado o elegir otro de la lista de configuraciones del ciclo de vida.
Una configuración predeterminada del ciclo de vida de Kernel Gateway especificada en DefaultResourceSpec
se aplica a todas las imágenes de Kernel Gateway en el dominio de Studio a menos que seleccione una secuencia de comandos diferente de la lista presentada en el iniciador de Studio.
Cuando trabaje con configuraciones de ciclo de vida de Studio, cree una configuración de ciclo de vida y adjúntela a su dominio de Studio o a su perfil de usuario. A continuación, puede iniciar una aplicación Jupyter Server o Kernel Gateway para utilizar la configuración del ciclo de vida.
La siguiente tabla resume estos errores que pueden ocurrir al iniciar una aplicación Data Wrangler con configuraciones de ciclo de vida predeterminadas.
Nivel en el que reside la configuración del ciclo de vida Sera aplicado |
Crear un flujo de Data Wrangler Funciona (o) error |
solución alterna |
dominio | Error de solicitud no válida | Aplicar el script (ver más abajo) |
perfil del usuario | Error de solicitud no válida | Aplicar el script (ver más abajo) |
solicitud | Funciona – no hay problema | No requerido |
El uso de la configuración de ciclo de vida predeterminada asociada con Studio y Data Wrangler (aplicación Kernel Gateway) puede provocar que la aplicación Kernel Gateway falle. En esta publicación, le mostraremos cómo establecer correctamente la configuración del ciclo de vida predeterminado para excluir la ejecución de comandos en una aplicación Data Wrangler para que no encuentre errores en la aplicación Kernel Gateway.
Suponga que desea instalar una secuencia de comandos git-clone-repo como la configuración de ciclo de vida predeterminada que verifica automáticamente un repositorio git en la carpeta de inicio del usuario cuando se inicia el servidor Jupyter. Veamos cada escenario para aplicar una configuración de ciclo de vida (dominio de estudio, perfil de usuario o nivel de aplicación).
Aplicar la configuración del ciclo de vida en el dominio de Studio o en el nivel de perfil de usuario
Siga los pasos de esta sección para aplicar la configuración predeterminada del ciclo de vida de Kernel Gateway en el dominio de Studio o en el nivel de perfil de usuario. Comenzaremos con instrucciones para el nivel de perfil de usuario.
En su secuencia de comandos de configuración del ciclo de vida, debe incluir el siguiente bloque de código que verificará y omitirá la aplicación Data Wrangler Kernel Gateway:
#!/bin/bash
set -eux
STATUS=$(
python3 -c "import sagemaker_dataprep"
echo $?
)
if [ "$STATUS" -eq 0 ]; then
echo 'Instance is of Type Data Wrangler'
else
echo 'Instance is not of Type Data Wrangler'
<remainder of LCC here within in else block – this contains some pip install, etc>
fi
Por ejemplo, usemos el siguiente script como nuestro original (tenga en cuenta que la carpeta para clonar el repositorio se cambiará /root from /home/sagemaker-user
):
# Clones a git repository into the user's home folder
#!/bin/bash
set -eux
# Replace this with the URL of your git repository
export REPOSITORY_URL="https://github.com/aws-samples/sagemaker-studio-lifecycle-config-examples.git"
git -C /root clone $REPOSITORY_URL
El nuevo script modificado se ve así:
#!/bin/bash
set -eux
STATUS=$(
python3 -c "import sagemaker_dataprep"
echo $?
)
if [ "$STATUS" -eq 0 ]; then
echo 'Instance is of Type Data Wrangler'
else
echo 'Instance is not of Type Data Wrangler'
# Replace this with the URL of your git repository
export REPOSITORY_URL="https://github.com/aws-samples/sagemaker-studio-lifecycle-config-examples.git"
git -C /root clone $REPOSITORY_URL
fi
Puede guardar este script como git_command_test.sh
.
Ahora ejecute una serie de comandos en su terminal o símbolo del sistema. Debe configurar la interfaz de línea de comandos de AWS (AWS CLI) para interactuar con AWS. Si no ha configurado la CLI de AWS, consulte Configuración de la CLI de AWS.
- Convierte el tuyo
git_command_test.sh
Archivo en formato Base64. Este requisito evita errores debido a la codificación de espacios y saltos de línea. - Cree una configuración de ciclo de vida de Studio. El siguiente comando crea una configuración de ciclo de vida que se ejecuta cuando se inicia una aplicación Kernel Gateway asociada:
- Utilice la siguiente llamada a la API para crear un nuevo perfil de usuario con una configuración de ciclo de vida asociada:
Como alternativa, si desea crear un dominio de Studio para mapear su configuración de ciclo de vida a nivel de dominio, o actualizar el perfil de usuario o el dominio, puede seguir los pasos en Establecer configuraciones de ciclo de vida predeterminadas.
- Ahora puede iniciar su aplicación Studio desde el Panel de control de SageMaker.
- En su ambiente de estudio en el expediente menú, elige Nuevo y Flujo de organizador de datos.El nuevo flujo de Data Wrangler debería abrirse sin problemas.
- Para validar el clon de git, puede abrir un nuevo lanzador en Studio.
- Por debajo Cuadernos y recursos informáticosseleccione el cuaderno de Python 3 y el Ciencia de los datos Imagen de SageMaker para iniciar su secuencia de comandos como su secuencia de comandos de configuración de ciclo de vida predeterminada.
Puedes ver el git clonado /root
en la captura de pantalla a continuación.
Hemos aplicado con éxito la configuración del ciclo de vida del kernel predeterminado en el nivel de perfil de usuario y hemos creado un flujo de Data Wrangler. Para la configuración a nivel de dominio de Studio, el único cambio es que, en lugar de crear un perfil de usuario, pasa el ARN de configuración del ciclo de vida en una llamada de creación de dominio.
Aplicar la configuración del ciclo de vida a nivel de aplicación
Si aplica la configuración de ciclo de vida de nivel de aplicación de Kernel Gateway predeterminada, no encontrará ningún problema porque Data Wrangler omitirá la configuración de ciclo de vida de nivel de aplicación aplicada.
Conclusión
En esta publicación, mostramos cómo configurar correctamente su configuración predeterminada del ciclo de vida de Studio cuando usa Data Wrangler para las necesidades de visualización y preparación de datos.
En resumen, si necesita usar la configuración predeterminada del ciclo de vida de Studio para automatizar la personalización de sus entornos de Studio y usar Data Wrangler para la preparación de datos, puede usar la configuración predeterminada del ciclo de vida de Kernel Gateway en el perfil de usuario o nivel de dominio de Studio con el código apropiado Bloquear incluido en su configuración de ciclo de vida para que la configuración de ciclo de vida predeterminada lo verifique y la aplicación Data Wrangler Kernel Gateway lo omita.
Para obtener más información, consulte los siguientes recursos:
Sobre los autores
Rajakumar Sampathkumar es Gerente Técnico Principal de Cuentas en AWS, asesora a los clientes sobre la alineación comercial y tecnológica y ayuda a reinventar sus procesos y modelos operativos en la nube. Le apasiona la nube y el aprendizaje automático. Raj también es especialista en aprendizaje automático y trabaja con clientes de AWS para diseñar, implementar y administrar sus cargas de trabajo y arquitecturas de AWS.
Vicky Zhang es ingeniero de desarrollo de software en Amazon SageMaker. La resolución de problemas es importante para ella. En su tiempo libre, disfruta viendo películas de detectives y jugando bádminton.
Raúl Nábera es consultor de análisis de datos en AWS Professional Services. Su trabajo actual se centra en permitir que los clientes creen sus cargas de trabajo de datos y aprendizaje automático en AWS. En su tiempo libre le gusta jugar al cricket y al voleibol.