A medida que más y más clientes buscan poner cargas de trabajo de aprendizaje automático (ML) en producción, hay un gran impulso en las organizaciones para acortar el ciclo de vida de desarrollo del código ML. Muchas organizaciones prefieren escribir su código ML en un estilo listo para producción en forma de métodos y clases de Python en lugar de un estilo exploratorio (escribir código sin usar métodos o clases) porque esto les ayuda a enviar código listo para producción más rápido.
Con Amazon SageMaker, puedes usar el @decorador remoto para ejecutar un trabajo de entrenamiento de SageMaker simplemente anotando su código de Python con un decorador @remote. El SDK de SageMaker Python traducirá automáticamente su entorno de espacio de trabajo existente y cualquier conjunto de datos y código de procesamiento de datos asociado a un trabajo de capacitación de SageMaker que se ejecuta en la plataforma de capacitación de SageMaker.
Ejecutar una función de Python localmente a menudo requiere varias dependencias, que pueden no venir con el entorno de tiempo de ejecución local de Python. Puede instalarlos a través de herramientas de administración de paquetes y dependencias como pepita or Conda.
Sin embargo, las organizaciones que operan en industrias reguladas como la banca, los seguros y la atención médica operan en entornos que cuentan con estrictos controles de redes y privacidad de datos. Estos controles a menudo exigen que ninguno de sus entornos disponga de acceso a Internet. El motivo de tal restricción es tener un control total sobre el tráfico de entrada y salida para que puedan reducir las posibilidades de que los actores sin escrúpulos envíen o reciban información no verificada a través de su red. A menudo también es obligatorio tener dicho aislamiento de red como parte de las reglas de cumplimiento industrial y de auditoría. Cuando se trata de ML, esto impide que los científicos de datos descarguen cualquier paquete de repositorios públicos como PyPI, Anacondao Fragua Conda.
Para proporcionar a los científicos de datos acceso a las herramientas de su elección y al mismo tiempo respetar las restricciones del entorno, las organizaciones a menudo configuran su propio repositorio de paquetes privado alojado en su propio entorno. Puede configurar repositorios de paquetes privados en AWS de varias maneras:
En esta publicación, nos enfocamos en la primera opción: usar CodeArtifact.
Resumen de la solución
El siguiente diagrama de arquitectura muestra la arquitectura de la solución.
Los pasos de alto nivel para implementar la solución son los siguientes
- Configure una nube privada virtual (VPC) sin acceso a Internet mediante un Formación en la nube de AWS plantilla.
- Use una segunda plantilla de CloudFormation para configurar CodeArtifact como un repositorio PyPI privado y proporcione conectividad a la VPC, y configure un Estudio Amazon SageMaker entorno para usar el repositorio PyPI privado.
- Entrenar un modelo de clasificación basado en el MNIST conjunto de datos utilizando un decorador @remote del SDK de SageMaker Python de código abierto. Todas las dependencias se descargarán del repositorio privado de PyPI.
Tenga en cuenta que usar SageMaker Studio en esta publicación es opcional. Puede optar por trabajar en cualquier entorno de desarrollo integrado (IDE) de su elección. Solo tienes que configurar tu Interfaz de línea de comandos de AWS (AWS CLI) correctamente. Para obtener más información, consulte Configurar la CLI de AWS.
Requisitos previos
Necesita una cuenta de AWS con un Gestión de identidades y accesos de AWS (YO SOY) papel con permisos para administrar los recursos creados como parte de la solución. Para más detalles, consulte Creación de una cuenta de AWS.
Configurar una VPC sin conexión a Internet
Crear una nueva pila de CloudFormation usando el vpc.yaml plantilla. Esta plantilla crea los siguientes recursos:
- Una VPC con dos subredes privadas en dos zonas de disponibilidad sin conectividad a Internet
- Un punto de enlace de Gateway VPC para acceder a Amazon S3
- Conecte los puntos de enlace de la VPC para SageMaker, CodeArtifact y algunos otros servicios para permitir que los recursos de la VPC se conecten a los servicios de AWS a través de Enlace privado de AWS
Proporcione un nombre de pila, como No-Internet
y complete el proceso de creación de la pila.
Espere a que se complete el proceso de creación de la pila.
Configure un repositorio privado y SageMaker Studio mediante la VPC
El siguiente paso es implementar otra pila de CloudFormation usando el sagemaker_studio_codeartifact.yaml plantilla. Esta plantilla crea los siguientes recursos:
Proporcione un nombre de pila y mantenga los valores predeterminados o ajuste los parámetros para el Nombre de dominio CodeArtifact, nombre del repositorio privado, nombre de perfil de usuario para SageMaker Studio y nombre del repositorio PyPI público ascendente. También tenemos que proporcionar la Nombre de pila de VPC creado en el paso anterior.
Cuando se complete la creación de la pila, el dominio de SageMaker debería estar visible en la consola de SageMaker.
Para verificar que no hay conexión a Internet disponible en SageMaker Studio, iniciar SageMaker Studio. Escoger File
, New
y Terminal
para iniciar una terminal e intentar rizo cualquier recurso de internet. Debería fallar al conectarse, como se muestra en la siguiente captura de pantalla.
Entrene un clasificador de imágenes usando un decorador @remote con el repositorio privado de PyPI
En esta sección, usamos el decorador @remote para ejecutar un PyTorch trabajo de entrenamiento que produce un modelo de clasificación de imágenes MNIST. Para lograr esto, configuramos un archivo de configuración, desarrollamos el script de entrenamiento y ejecutamos el código de entrenamiento.
Configurar un archivo de configuración
Montamos un config.yaml
y proporcione las configuraciones necesarias para hacer lo siguiente:
- Ejecuta un Trabajo de entrenamiento de SageMaker en la VPC sin Internet creada anteriormente
- Descargue los paquetes necesarios conectándose al repositorio privado de PyPI creado anteriormente
El archivo se parece al siguiente código:
El proyecto Dependencies
campo contiene la ruta a requirements.txt
, que contiene todas las dependencias necesarias. Tenga en cuenta que todas las dependencias se descargarán del repositorio privado. El requirements.txt
archivo contiene el siguiente código:
El proyecto PreExecutionCommands
La sección contiene el comando para conectarse al repositorio privado de PyPI. Para obtener la URL del punto final de la VPC de CodeArtifact, use el siguiente código:
Por lo general, obtenemos dos puntos finales de la VPC para CodeArtifact y podemos usar cualquiera de ellos en los comandos de conexión. Para obtener más detalles, consulte Usar CodeArtifact desde una VPC.
Además, configuraciones como execution role
, output location
y VPC configurations
se proporcionan en el archivo de configuración. Estas configuraciones son necesarias para ejecutar el trabajo de capacitación de SageMaker. Para obtener más información sobre todas las configuraciones admitidas, consulte Archivo de configuración.
No es obligatorio utilizar el config.yaml
para trabajar con el decorador @remote. Esta es solo una forma más limpia de proporcionar todas las configuraciones al decorador @remote. Todas las configuraciones también podrían proporcionarse directamente en los argumentos del decorador, pero eso reduce la legibilidad y la capacidad de mantenimiento de los cambios a largo plazo. Además, un administrador puede crear el archivo de configuración y compartirlo con todos los usuarios de un entorno.
Desarrollar el guión de entrenamiento.
A continuación, preparamos el código de entrenamiento en archivos simples de Python. Hemos dividido el código en tres archivos:
- cargar_datos.py – Contiene el código para descargar el conjunto de datos MNIST
- modelo.py – Contiene el código de la arquitectura de red neuronal para el modelo.
- tren.py – Contiene el código para entrenar el modelo usando load_data.py y model.py
In train.py
, necesitamos decorar la función de entrenamiento principal de la siguiente manera:
Ahora estamos listos para ejecutar el código de entrenamiento.
Ejecute el código de entrenamiento con un decorador @remote
Podemos ejecutar el código desde una terminal o desde cualquier indicador ejecutable. En esta publicación, usamos una celda de cuaderno de SageMaker Studio para demostrar esto:
La ejecución del comando anterior desencadena el trabajo de entrenamiento. En los registros, podemos ver que está descargando los paquetes del repositorio privado de PyPI.
Con esto concluye la implementación de un decorador @remote trabajando con un repositorio privado en un ambiente sin acceso a internet.
Limpiar
Para limpiar los recursos, siga las instrucciones en LIMPIEZA.md.
Conclusión
En esta publicación, aprendimos cómo usar de manera efectiva las capacidades del decorador @remote mientras aún trabajamos en entornos restrictivos sin acceso a Internet. También aprendimos cómo podemos integrar las capacidades del repositorio privado de CodeArtifact con la ayuda de la compatibilidad con archivos de configuración en SageMaker. Esta solución hace que el desarrollo iterativo sea mucho más simple y rápido. Otra ventaja adicional es que aún puede continuar escribiendo el código de capacitación de una manera más natural y orientada a objetos y aún usar las capacidades de SageMaker para ejecutar trabajos de capacitación en un clúster remoto con cambios mínimos en su código. Todo el código que se muestra como parte de esta publicación está disponible en el Repositorio GitHub.
Como siguiente paso, le animamos a que consulte la Funcionalidad @remote decorador y API del SDK de Python y utilícelo en su elección de entorno e IDE. Hay ejemplos adicionales disponibles en el amazon-sagemaker-ejemplos repositorio para comenzar rápidamente. También puedes ver la publicación Ejecute su código de aprendizaje automático local como trabajos de capacitación de Amazon SageMaker con cambios mínimos en el código para más información.
Acerca del autor.
vikesh pandey es un arquitecto de soluciones especializado en aprendizaje automático en AWS, que ayuda a los clientes de las industrias financieras a diseñar y crear soluciones en inteligencia artificial y aprendizaje automático generativos. Fuera del trabajo, a Vikesh le gusta probar diferentes cocinas y practicar deportes al aire libre.
- Distribución de relaciones públicas y contenido potenciado por SEO. Consiga amplificado hoy.
- PlatoData.Network Vertical Generativo Ai. Empodérate. Accede Aquí.
- PlatoAiStream. Inteligencia Web3. Conocimiento amplificado. Accede Aquí.
- PlatoESG. Automoción / vehículos eléctricos, Carbón, tecnología limpia, Energía, Ambiente, Solar, Gestión de residuos. Accede Aquí.
- Desplazamientos de bloque. Modernización de la propiedad de compensaciones ambientales. Accede Aquí.
- Fuente: https://aws.amazon.com/blogs/machine-learning/access-private-repos-using-the-remote-decorator-for-amazon-sagemaker-training-workloads/
- :es
- :no
- $ UP
- 1
- 10
- 100
- 12
- 23
- 7
- 8
- a
- Nuestra Empresa
- de la máquina
- el acceso
- Mi Cuenta
- Lograr
- a través de
- los actores
- adicional
- Adicionales
- Admin
- Ventaja
- AI
- Todos
- permitir
- también
- Amazon
- Amazon SageMaker
- Amazon Web Services
- an
- y
- Otra
- cualquier
- abejas
- arquitectura
- somos
- argumentos
- AS
- asociado
- At
- automáticamente
- disponibilidad
- Hoy Disponibles
- AWS
- Bancario
- basado
- BE
- porque
- build
- pero
- by
- PUEDEN
- capacidades
- posibilidades
- Cambios
- comprobar
- manera?
- Elige
- privadas
- clasificación
- Soluciones
- Médico
- código
- COM
- cómo
- proviene
- completar
- compliance
- Configuración
- Contacto
- Conectándote
- conexión
- Conectividad
- Consola
- contiene
- continue
- control
- controles
- podría
- creado
- crea
- creación
- Referencias
- Clientes
- datos
- privacidad de datos
- proceso de datos
- conjuntos de datos
- Predeterminado
- demostrar
- Dependencia
- desplegar
- Diseño
- detalles
- desarrollar
- Desarrollo
- una experiencia diferente
- directamente
- dividido
- do
- dominio
- descargar
- de manera eficaz
- fomentar
- Punto final
- Entorno
- ambientes
- épocas
- ejemplos
- ejecución
- existente
- FALLO
- false
- más rápida
- pocos
- campo
- Archive
- archivos
- financiero
- industrias financieras
- Nombre
- Flotador
- Focus
- seguir
- siguiendo
- siguiente
- formulario
- Desde
- ser completados
- función
- puerta
- generativo
- IA generativa
- obtener
- Grupo procesos
- Tienen
- es
- la salud
- ayuda
- ayudando
- ayuda
- de alto nivel
- organizado
- Cómo
- Como Hacer
- HTML
- http
- HTTPS
- ID
- Identidad
- imagen
- Clasificación de la imagen
- implementar
- implementación
- in
- industrial
- industrias
- información
- instalar
- Instrucciones
- aseguradora
- integrar
- COMPLETAMENTE
- Internet
- Acceso a Internet
- conexión a Internet
- dentro
- solo
- IT
- Trabajos
- Empleo
- jpg
- solo
- Guardar
- Saber
- large
- lanzamiento
- aprendido
- aprendizaje
- ciclo de vida
- como
- línea
- local
- localmente
- Inicie sesión
- Largo
- mirando
- MIRADAS
- máquina
- máquina de aprendizaje
- Inicio
- HACE
- gestionan
- Management
- Herramientas de Manejo
- mandato
- obligatorio
- muchos
- Puede..
- métodos
- mínimo
- ML
- modelo
- Módulos
- más,
- mucho más
- múltiples
- nombre
- nativo
- Natural
- ¿ Necesita ayuda
- del sistema,
- red
- red neural
- Nuevo
- Next
- no
- cuaderno
- of
- a menudo
- on
- de código abierto
- funcionar
- funcionamiento
- opuesto
- Optión
- or
- solicite
- para las fiestas.
- Otro
- salir
- afuera
- Más de
- EL DESARROLLADOR
- paquete
- paquetes
- parámetros
- parte
- camino
- permisos
- Colocar
- plataforma
- Platón
- Inteligencia de datos de Platón
- PlatónDatos
- jugando
- Publicación
- preferir
- Preparar
- anterior
- política de privacidad
- privada
- tratamiento
- produce
- Producción
- Mi Perfil
- proporcionar
- previsto
- público
- Push
- poner
- Python
- piñón
- con rapidez
- ready
- razón
- aprovecha
- reducir
- reduce
- regulados
- industrias reguladas
- sanaciones
- repositorio
- Requisitos
- requiere
- Recurso
- Recursos
- respecto a
- restricción
- restricciones
- Restrictivo
- Función
- reglas
- Ejecutar
- correr
- corre
- sabio
- los científicos
- Sdk
- Segundo
- Sección
- EN LINEA
- ver
- dispersores
- enviando
- Servicios
- set
- Varios
- compartido
- ENVIAR
- tienes
- mostrado
- Shows
- sencillos
- más sencillo
- simplemente
- So
- a medida
- Soluciones
- especialista
- Deportes
- montón
- fundó
- paso
- pasos
- Sin embargo
- tienda
- Estricto
- estudio
- papa
- subred
- subredes
- tal
- suministrada
- suministro
- SOPORTE
- Soportado
- plantilla
- terminal
- esa
- El proyecto
- su
- Les
- Ahí.
- Estas
- ellos
- así
- Tres
- A través de esta formación, el personal docente y administrativo de escuelas y universidades estará preparado para manejar los recursos disponibles que derivan de la diversidad cultural de sus estudiantes. Además, un mejor y mayor entendimiento sobre estas diferencias y similitudes culturales permitirá alcanzar los objetivos de inclusión previstos.
- a
- visión de antorcha
- tráfico
- Formación
- la traducción
- verdadero
- try
- dos
- poco escrupuloso
- Enlance
- utilizan el
- usado
- usuarios
- usando
- Valores
- verificar
- vía
- Virtual
- visibles
- Camino..
- formas
- we
- web
- servicios web
- cuando
- que
- mientras
- Wikipedia
- seguirá
- sin
- Actividades:
- trabajando
- escribir
- la escritura
- yaml
- Usted
- tú
- zephyrnet
- zonas