Recientemente, la Estudio Amazon SageMaker lanzó una manera fácil de ejecutar cuadernos como trabajos por lotes que pueden ejecutarse en un horario recurrente. Laboratorio de estudio de Amazon SageMaker también es compatible con esta función, lo que le permite ejecutar cuadernos que desarrolle en SageMaker Studio Lab en su cuenta de AWS. Esto le permite escalar rápidamente sus experimentos de aprendizaje automático (ML) con conjuntos de datos más grandes e instancias más potentes, sin tener que aprender nada nuevo ni cambiar una línea de código.
En esta publicación, lo guiaremos a través del requisito previo único para conectar su entorno de Studio Lab a una cuenta de AWS. Después de eso, lo guiaremos a través de los pasos para ejecutar cuadernos como un trabajo por lotes desde Studio Lab.
Resumen de la solución
Studio Lab incorporó la misma extensión que Studio, que se basa en la extensión de código abierto Jupyter para cuadernos programados. Esta extensión tiene parámetros adicionales específicos de AWS, como el tipo de proceso. En Studio Lab, un cuaderno programado primero se copia en un Servicio de almacenamiento simple de Amazon (Amazon S3) en su cuenta de AWS, luego ejecútelo a la hora programada con el tipo de cómputo seleccionado. Cuando se completa el trabajo, la salida se escribe en un depósito de S3 y la computación de AWS se detiene por completo, lo que evita costos continuos.
Requisitos previos
Para usar trabajos de notebook de Studio Lab, necesita acceso administrativo a la cuenta de AWS con la que se va a conectar (o la ayuda de alguien con este acceso). En el resto de esta publicación, asumimos que usted es el administrador de AWS; si ese no es el caso, solicite a su administrador o propietario de la cuenta que revise estos pasos con usted.
Crear un rol de ejecución de SageMaker
Necesitamos asegurarnos de que la cuenta de AWS tenga un Gestión de identidades y accesos de AWS (IAM) Rol de ejecución de SageMaker. Este rol lo utilizan los recursos de SageMaker dentro de la cuenta y proporciona acceso desde SageMaker a otros recursos en la cuenta de AWS. En nuestro caso, los trabajos de nuestro cuaderno se ejecutan con estos permisos. Si SageMaker se ha utilizado anteriormente en esta cuenta, es posible que ya exista una función, pero es posible que no tenga todos los permisos necesarios. Así que sigamos adelante y hagamos uno nuevo.
Los siguientes pasos solo deben realizarse una vez, independientemente de cuántos entornos de laboratorio de SageMaker Studio accedan a esta cuenta de AWS.
- En la consola de IAM, elija Roles en el panel de navegación.
- Elige Crear rol.
- Tipo de entidad de confianza, seleccione Servicio de AWS.
- Casos de uso para otros servicios de AWS, escoger SageMaker.
- Seleccione SageMaker – Ejecución.
- Elige Siguiente.
- Revise los permisos, luego elija Siguiente.
- Nombre de rol, ingrese un nombre (para esta publicación, usamos
sagemaker-execution-role-notebook-jobs
). - Elige Crear rol.
- Tome nota del ARN del rol.
El ARN del rol tendrá el formato de arn:aws:iam::[account-number]:role/service-role/[role-name]
y se requiere en la configuración de Studio Lab.
Crea un usuario de IAM
Para que un entorno de Studio Lab acceda a AWS, debemos crear un usuario de IAM dentro de AWS y otorgarle los permisos necesarios. Luego, debemos crear un conjunto de claves de acceso para ese usuario y proporcionarlas al entorno de Studio Lab.
Este paso debe repetirse para cada entorno de SageMaker Studio Lab que accederá a esta cuenta de AWS.
Tenga en cuenta que los administradores y propietarios de cuentas de AWS deben asegurarse de que, en la mayor medida posible, se sigan prácticas de seguridad bien diseñadas. Por ejemplo, los permisos de usuario siempre deben tener un alcance reducido y las claves de acceso deben rotarse regularmente para minimizar el impacto del compromiso de las credenciales.
En este blog mostramos cómo usar el AmazonSageMakerFullAccess
política administrada. Esta política brinda un amplio acceso a Amazon SageMaker que puede ir más allá de lo requerido. Detalles sobre AmazonSageMakerFullAccess
puede ser encontrado esta página.
Aunque Studio Lab emplea seguridad empresarial, debe tenerse en cuenta que las credenciales de usuario de Studio Lab no forman parte de su cuenta de AWS y, por lo tanto, por ejemplo, no están sujetas a su contraseña de AWS ni a las políticas de MFA.
Para reducir el alcance de los permisos tanto como sea posible, creamos un perfil de usuario específicamente para este acceso.
- En la consola de IAM, elija Usuarios en el panel de navegación.
- Elige Agregar usuarios.
- nombre de usuario, ingrese un nombre. Es una buena práctica usar un nombre que esté vinculado a una persona individual que usará esta cuenta; esto ayuda si se revisan los registros de auditoría.
- Seleccione el tipo de acceso de AWS, seleccione Clave de acceso – Acceso programático.
- Elige Siguiente: permisos.
- Elige Adjunte políticas existentes directamente.
- Buscar y seleccionar
AmazonSageMakerFullAccess
. - Buscar y seleccionar
AmazonEventBridgeFullAccess
. - Elige Siguiente: Etiquetas.
- Elige Siguiente: Revisión.
- Confirme sus políticas, luego elija Crear usuario.La página final del proceso de creación de usuarios debería mostrarle las claves de acceso del usuario. Deje esta pestaña abierta, porque no podemos navegar de regreso aquí y necesitamos estos detalles.
- Abra una nueva pestaña del navegador en Studio Lab.
- En Archive menú, seleccione Nuevo lanzador, A continuación, elija terminal.
- En la línea de comando, ingrese el siguiente código:
- Ingrese el siguiente código:
- Ingrese los valores de la página de la consola de IAM para su ID de clave de acceso y clave de acceso secreta.
-
Default region name
, introduzcaus-west-2
. - Abandonar
Default output format
astext
.
Felicitaciones, su entorno de Studio Lab ahora debe estar configurado para acceder a la cuenta de AWS. Para probar la conexión, emita el siguiente comando:
Este comando debe devolver detalles sobre el usuario de IAM que configuró para usar.
Crear un trabajo de cuaderno
Los trabajos de notebook se crean utilizando notebooks Jupyter dentro de Studio Lab. Si su computadora portátil se ejecuta en Studio Lab, puede ejecutarse como un trabajo de computadora portátil (con más recursos y acceso a los servicios de AWS). Sin embargo, hay un par de cosas a tener en cuenta.
Si ha instalado paquetes para que su computadora portátil funcione, agregue comandos para cargar estos paquetes en una celda en la parte superior de su computadora portátil. Al usar un símbolo & al comienzo de cada línea, el código se enviará a la línea de comando para que se ejecute. En el siguiente ejemplo, la primera celda usa pip para instalar las bibliotecas de PyTorch:
Nuestro cuaderno generará un modelo PyTorch entrenado. Con nuestro código habitual, guardamos el modelo en el sistema de archivos de Studio Labs.
Cuando ejecutamos esto como un trabajo de cuaderno, necesitamos guardar el modelo en algún lugar al que podamos acceder después. La forma más sencilla de hacerlo es guardar el modelo en Amazon S3. Creamos un depósito S3 para guardar nuestros modelos y usamos otra celda de línea de comando para copiar el objeto en el depósito.
Usamos la Interfaz de línea de comandos de AWS (AWS CLI) aquí para copiar el objeto. También podríamos usar el AWS SDK para Python (Boto3) si quisiéramos tener un control más sofisticado o automatizado del nombre del archivo. Por ahora, nos aseguraremos de cambiar el nombre del archivo cada vez que ejecutemos el cuaderno para que los modelos no se sobrescriban.
Ahora estamos listos para crear el trabajo del cuaderno.
- Elija (haga clic con el botón derecho) el nombre del cuaderno, luego elija Crear trabajo de cuaderno.
Si falta esta opción de menú, es posible que deba actualizar su entorno de Studio Lab. Para hacer esto, abra Terminal desde el lanzador y ejecute el siguiente código: - A continuación, reinicie su instancia de JupyterLab eligiendo Laboratorio de estudio de Amazon SageMaker en el menú superior, luego elija Reiniciar JupyterLab.O bien, vaya a la página del proyecto y apague y reinicie el tiempo de ejecución.
- En Crear trabajo página, para Tipo de cálculo, elija el tipo de proceso que se adapte a su trabajo.
Para obtener más información sobre los diferentes tipos de capacidad informática, incluido el costo, consulte Precios de Amazon SageMaker (escoger Precios bajo demanda y navegar a la Formación pestaña. Es posible que también deba verificar la disponibilidad de la cuota del tipo de cómputo en su cuenta de AWS. Para obtener más información acerca de las cuotas de servicio, consulte: Cuotas de servicio de AWS.Para este ejemplo, hemos seleccionado una instancia ml.p3.2xlarge, que ofrece 8 vCPU, 61 GB de memoria y una GPU Tesla V100.
Si no hay advertencias en esta página, debe estar listo para comenzar. Si hay advertencias, asegúrese de que se haya especificado el ARN del rol correcto en Opciones adicionales. Este rol debe coincidir con el ARN del rol de ejecución de SageMaker que creamos anteriormente. El ARN tiene el formato
arn:aws:iam::[account-number]:role/service-role/[role-name]
.Hay otras opciones disponibles dentro Opciones adicionales; por ejemplo, puede seleccionar una imagen y un kernel en particular que ya tengan la configuración que necesita sin necesidad de instalar bibliotecas adicionales.
- Si desea ejecutar este cuaderno en un horario, seleccione Ejecutar en un horario y especifique con qué frecuencia desea que se ejecute el trabajo.Queremos que este cuaderno se ejecute una vez, por lo que seleccionamos Corre ahora.
- Elige Crear.
Lista de trabajos de portátiles
El Trabajos de portátiles La página enumera todos los trabajos que se están ejecutando actualmente y los que se ejecutaron en el pasado. Puede encontrar esta lista desde el Lanzador (elija, Archive, Nuevo lanzador), entonces escoge Trabajos de portátiles existentes Otro .
Cuando se complete el trabajo del cuaderno, verá que el estado cambia a Completed
(utilizar el Recargar opción si es necesario). A continuación, puede elegir el icono de descarga para acceder a los archivos de salida.
Cuando los archivos se hayan descargado, puede revisar el cuaderno junto con la salida del código y el registro de salida. En nuestro caso, debido a que agregamos código para cronometrar la ejecución de la celda de entrenamiento, podemos ver cuánto tiempo tomó el trabajo de entrenamiento: 16 minutos y 21 segundos, que es mucho más rápido que si el código se hubiera ejecutado dentro de Studio Lab (1 hora). , 38 minutos, 55 segundos). De hecho, todo el portátil se ejecutó en 1,231 segundos (poco más de 20 minutos) a un costo de menos de $1.30 (USD).
Ahora podemos aumentar el número de épocas y ajustar los hiperparámetros para mejorar el valor de pérdida del modelo y enviar otro trabajo de cuaderno.
Conclusión
En esta publicación, mostramos cómo usar trabajos de notebook de Studio Lab para escalar el código que desarrollamos en Studio Lab y ejecutarlo con más recursos en una cuenta de AWS.
Al agregar las credenciales de AWS a nuestro entorno de Studio Lab, no solo podemos acceder a los trabajos de los cuadernos, sino que también podemos acceder a otros recursos desde una cuenta de AWS directamente desde nuestros cuadernos de Studio Lab. Eche un vistazo al SDK de AWS para Python.
Esta capacidad adicional de Studio Lab supera los límites de los tipos y tamaños de proyectos que puede lograr. ¡Háganos saber lo que construye con esta nueva capacidad!
Sobre los autores
mike cámaras es Developer Advocate para AI y ML en AWS. Ha pasado los últimos 7 años ayudando a los constructores a aprender sobre la nube, la seguridad y el aprendizaje automático. Originario del Reino Unido, Mike es un apasionado bebedor de té y constructor de Lego.
Michele Monclova es gerente principal de productos en AWS en el equipo de SageMaker. Es nativa de Nueva York y veterana de Silicon Valley. Le apasionan las innovaciones que mejoran nuestra calidad de vida.
- AI
- arte ai
- generador de arte ai
- robot ai
- Amazon SageMaker
- Estudio Amazon SageMaker
- Laboratorio de estudio de Amazon SageMaker
- inteligencia artificial
- certificación de inteligencia artificial
- inteligencia artificial en banca
- robots de inteligencia artificial
- robots de inteligencia artificial
- software de inteligencia artificial
- Aprendizaje automático de AWS
- blockchain
- conferencia blockchain ai
- Coingenius
- inteligencia artificial conversacional
- criptoconferencia ai
- de dall
- deep learning
- google ai
- máquina de aprendizaje
- Platón
- platón ai
- Inteligencia de datos de Platón
- Juego de Platón
- PlatónDatos
- juego de platos
- escala ia
- sintaxis
- zephyrnet