Utilice modelos de base de AI generativa en modo VPC sin conectividad a internet utilizando Amazon SageMaker JumpStart

Use generative AI base models in VPC mode without internet connectivity with Amazon SageMaker JumpStart.

Con los avances recientes en AI generativa, hay muchas discusiones sobre cómo utilizar la AI generativa en diferentes industrias para resolver problemas empresariales específicos. La AI generativa es un tipo de AI que puede crear nuevo contenido e ideas, incluyendo conversaciones, historias, imágenes, videos y música. Todo esto respaldado por modelos muy grandes que están pre-entrenados con grandes cantidades de datos y comúnmente se conocen como modelos base (FMs). Estos FMs pueden realizar una amplia gama de tareas que abarcan múltiples dominios, como escribir publicaciones de blog, generar imágenes, resolver problemas matemáticos, participar en diálogos y responder preguntas basadas en un documento. El tamaño y la naturaleza de propósito general de los FMs los hacen diferentes de los modelos tradicionales de aprendizaje automático, que típicamente realizan tareas específicas, como analizar texto para determinar sentimientos, clasificar imágenes y predecir tendencias.

Mientras las organizaciones buscan aprovechar el poder de estos FMs, también desean que las soluciones basadas en FM se ejecuten en sus propios entornos protegidos. Las organizaciones que operan en espacios altamente regulados como los servicios financieros globales y las ciencias de la salud y de la vida tienen requisitos de auditoría y cumplimiento para ejecutar su entorno en sus VPC. De hecho, muchas veces, incluso el acceso directo a Internet está desactivado en estos entornos para evitar la exposición a cualquier tráfico no deseado, tanto de entrada como de salida.

Amazon SageMaker JumpStart es un centro de ML que ofrece algoritmos, modelos y soluciones de ML. Con SageMaker JumpStart, los profesionales de ML pueden elegir entre una lista creciente de FMs de código abierto de mejor rendimiento. También proporciona la capacidad de implementar estos modelos en su propia Red Privada Virtual (VPC).

En esta publicación, demostraremos cómo usar JumpStart para implementar un modelo Flan-T5 XXL en una VPC sin conectividad a Internet. Discutiremos los siguientes temas:

  • Cómo implementar un modelo base utilizando SageMaker JumpStart en una VPC sin acceso a Internet
  • Ventajas de implementar FMs a través de modelos JumpStart en modo VPC
  • Otras formas de personalizar la implementación de modelos base a través de JumpStart

Además de FLAN-T5 XXL, JumpStart proporciona muchos otros modelos base diferentes para varias tareas. Para ver la lista completa, consulta Cómo comenzar con Amazon SageMaker JumpStart.

Descripción general de la solución

Como parte de la solución, cubrimos los siguientes pasos:

  1. Configurar una VPC sin conexión a Internet.
  2. Configurar Amazon SageMaker Studio utilizando la VPC que creamos.
  3. Implementar el modelo base generativo Flan T5-XXL utilizando JumpStart en la VPC sin acceso a Internet.

A continuación se muestra un diagrama de arquitectura de la solución.

Veamos los diferentes pasos para implementar esta solución.

Prerrequisitos

Para seguir esta publicación, necesitas lo siguiente:

  • Acceso a una cuenta de AWS. Para obtener más detalles, consulta Cómo crear una cuenta de AWS.
  • Un rol de IAM (Identidad y Acceso de AWS) con permisos para implementar las plantillas de AWS CloudFormation utilizadas en esta solución y administrar recursos como parte de la solución.

Configurar una VPC sin conexión a Internet

Crea una nueva pila de CloudFormation utilizando la plantilla 01_networking.yaml. Esta plantilla crea una nueva VPC y agrega dos subredes privadas en dos zonas de disponibilidad sin conectividad a Internet. Luego implementa puntos finales de VPC de puerta de enlace para acceder a Amazon Simple Storage Service (Amazon S3) y puntos finales de VPC de interfaz para SageMaker y algunos otros servicios para permitir que los recursos en la VPC se conecten a los servicios de AWS a través de AWS PrivateLink.

Proporciona un nombre de pila, como No-Internet, y completa el proceso de creación de la pila.

Esta solución no es altamente disponible porque la plantilla de CloudFormation solo crea puntos finales de VPC de interfaz en una subred para reducir costos al seguir los pasos en esta publicación.

Configurar Studio utilizando la VPC

Crea otra pila de CloudFormation utilizando 02_sagemaker_studio.yaml, la cual crea un dominio de Studio, un perfil de usuario de Studio y recursos de apoyo como roles de IAM. Elije un nombre para la pila; para esta publicación, usamos el nombre SageMaker-Studio-VPC-Sin-Internet. Proporciona el nombre de la pila de VPC que creaste anteriormente (Sin-Internet) como el parámetro CoreNetworkingStackName y deja todo lo demás como predeterminado.

Espera hasta que AWS CloudFormation informe que la creación de la pila está completa. Puedes confirmar que el dominio de Studio está disponible para usar en la consola de SageMaker.

Para verificar que el usuario del dominio de Studio no tiene acceso a Internet, inicia Studio utilizando la consola de SageMaker. Elige Archivo, Nuevo y Terminal, luego intenta acceder a un recurso de Internet. Como se muestra en la siguiente captura de pantalla, la terminal seguirá esperando el recurso y eventualmente se agotará el tiempo.

Esto demuestra que Studio está operando en una VPC que no tiene acceso a Internet.

Implementa el modelo de base de IA generativa Flan T5-XXL utilizando JumpStart

También podemos implementar este modelo a través de Studio y la API. JumpStart proporciona todo el código para implementar el modelo a través de un cuaderno de SageMaker accesible desde Studio. Para esta publicación, mostraremos esta capacidad desde Studio.

  • En la página de bienvenida de Studio, elige JumpStart bajo Soluciones predefinidas y automatizadas.

  • Elige el modelo Flan-T5 XXL bajo Modelos de base.

  • Por defecto, se abre la pestaña Implementar. Expande la sección Configuración de implementación para cambiar la instancia de alojamiento y el nombre del punto de conexión, o agregar cualquier etiqueta adicional. También hay una opción para cambiar la ubicación del bucket de S3 donde se almacenará el artefacto del modelo para crear el punto de enlace. Para esta publicación, dejamos todo en sus valores predeterminados. Toma nota del nombre del punto de enlace para usarlo al invocar el punto de enlace para realizar predicciones.

  • Expande la sección Configuración de seguridad, donde puedes especificar el rol de IAM para crear el punto de enlace. También puedes especificar las configuraciones de VPC proporcionando los subnets y grupos de seguridad. Los IDs de los subnets y los IDs de los grupos de seguridad se pueden encontrar en la pestaña de salidas de la pila de VPC en la consola de AWS CloudFormation. SageMaker JumpStart requiere al menos dos subnets como parte de esta configuración. Los subnets y grupos de seguridad controlan el acceso hacia y desde el contenedor del modelo.

NOTA: Independientemente de si el modelo SageMaker JumpStart se implementa en la VPC o no, el modelo siempre se ejecuta en modo de aislamiento de red, lo que aísla el contenedor del modelo para que no se puedan realizar llamadas de red entrantes o salientes hacia o desde el contenedor del modelo. Debido a que estamos utilizando una VPC, SageMaker descarga el artefacto del modelo a través de nuestra VPC especificada. Ejecutar el contenedor del modelo en aislamiento de red no impide que su punto de enlace de SageMaker responda a las solicitudes de inferencia. Un proceso de servidor se ejecuta junto al contenedor del modelo y le reenvía las solicitudes de inferencia, pero el contenedor del modelo no tiene acceso a la red.

  • Seleccione Implementar para implementar el modelo. Podemos ver el estado casi en tiempo real de la creación del punto de enlace en progreso. La creación del punto de enlace puede tardar de 5 a 10 minutos en completarse.

Observe el valor del campo Ubicación de datos del modelo en esta página. Todos los modelos de SageMaker JumpStart se alojan en un bucket de S3 administrado por SageMaker (s3://jumpstart-cache-prod-{region}). Por lo tanto, independientemente del modelo seleccionado de JumpStart, el modelo se implementa desde el bucket de S3 de SageMaker JumpStart de acceso público y el tráfico nunca se dirige a las API de modelos públicos para descargar el modelo. Es por eso que la creación del punto de enlace del modelo se inició correctamente incluso cuando creamos el punto de enlace en una VPC que no tiene acceso directo a Internet.

El artefacto del modelo también se puede copiar a cualquier modelo privado o a su propio bucket de S3 para controlar y asegurar aún más la ubicación de origen del modelo. Puede utilizar el siguiente comando para descargar el modelo localmente utilizando la interfaz de línea de comandos de AWS (AWS CLI):

aws s3 cp s3://jumpstart-cache-prod-eu-west-1/huggingface-infer/prepack/v1.0.2/infer-prepack-huggingface-text2text-flan-t5-xxl.tar.gz .
  • Después de unos minutos, el punto de enlace se crea correctamente y muestra el estado como En servicio. Seleccione Abrir cuaderno en la sección Usar punto de enlace desde Studio. Este es un cuaderno de muestra proporcionado como parte de la experiencia de JumpStart para probar rápidamente el punto de enlace.

  • En el cuaderno, elija la imagen como Data Science 3.0 y el núcleo como Python 3. Cuando el núcleo esté listo, puede ejecutar las celdas del cuaderno para hacer predicciones en el punto de enlace. Tenga en cuenta que el cuaderno utiliza la API invoke_endpoint() del SDK de AWS para Python para hacer predicciones. Alternativamente, puede utilizar el método predict() del SDK de Python de SageMaker para lograr el mismo resultado.

Esto concluye los pasos para implementar el modelo Flan-T5 XXL utilizando JumpStart dentro de una VPC sin acceso a Internet.

Ventajas de implementar modelos SageMaker JumpStart en modo VPC

Estas son algunas de las ventajas de implementar modelos SageMaker JumpStart en modo VPC:

  • Debido a que SageMaker JumpStart no descarga los modelos de un modelo público, también se puede utilizar en entornos completamente cerrados donde no hay acceso a Internet
  • Debido a que el acceso a la red se puede limitar y acotar para los modelos de SageMaker JumpStart, esto ayuda a los equipos a mejorar la postura de seguridad del entorno
  • Debido a los límites de la VPC, el acceso al punto de enlace también se puede limitar mediante subredes y grupos de seguridad, lo que agrega una capa adicional de seguridad

Otras formas de personalizar la implementación de modelos base a través de SageMaker JumpStart

En esta sección, compartimos algunas formas alternativas de implementar el modelo.

Usar las API de SageMaker JumpStart desde tu IDE preferido

Los modelos proporcionados por SageMaker JumpStart no requieren que accedas a Studio. Puedes implementarlos en puntos finales de SageMaker desde cualquier IDE, gracias a las API de JumpStart. Puedes omitir el paso de configuración de Studio discutido anteriormente en esta publicación y utilizar las API de JumpStart para implementar el modelo. Estas API proporcionan argumentos donde se pueden suministrar configuraciones de VPC también. Las API son parte del propio SDK de Python de SageMaker. Para obtener más información, consulta Modelos pre-entrenados.

Usar los cuadernos proporcionados por SageMaker JumpStart desde SageMaker Studio

SageMaker JumpStart también proporciona cuadernos para implementar el modelo directamente. En la página de detalles del modelo, elige Abrir cuaderno para abrir un cuaderno de muestra que contiene el código para implementar el punto final. El cuaderno utiliza las API de SageMaker JumpStart Industry que te permiten listar y filtrar los modelos, recuperar los artefactos e implementar y consultar los puntos finales. También puedes editar el código del cuaderno según los requisitos específicos de tu caso de uso.

Liberar recursos

Consulta el archivo CLEANUP.md para encontrar los pasos detallados para eliminar Studio, VPC y otros recursos creados como parte de esta publicación.

Resolución de problemas

Si encuentras algún problema al crear las pilas de CloudFormation, consulta la resolución de problemas de CloudFormation.

Conclusión

La IA generativa impulsada por modelos de lenguaje grandes está cambiando la forma en que las personas adquieren y aplican conocimientos a partir de la información. Sin embargo, las organizaciones que operan en espacios altamente regulados deben utilizar las capacidades de IA generativa de una manera que les permita innovar más rápido pero también simplifique los patrones de acceso a dichas capacidades.

Te animamos a probar el enfoque proporcionado en esta publicación para integrar las capacidades de IA generativa en tu entorno existente, manteniéndolo dentro de tu propia VPC sin acceso a Internet. Para obtener más información sobre los modelos base de SageMaker JumpStart, consulta lo siguiente:

  • Adaptación de dominio y ajuste fino de modelos base en Amazon SageMaker JumpStart para datos financieros
  • Implementación de prácticas de MLOps con modelos pre-entrenados de Amazon SageMaker JumpStart