Crea una aplicación empresarial segura con Generative AI y RAG utilizando Amazon SageMaker JumpStart

Crear aplicación empresarial segura con Generative AI y RAG en Amazon SageMaker JumpStart

La IA generativa es un tipo de IA que puede crear nuevo contenido e ideas, incluyendo conversaciones, historias, imágenes, videos y música. Está impulsada por modelos de lenguaje grandes (LLMs) que están pre-entrenados en grandes cantidades de datos y comúnmente se conocen como modelos de base (FMs).

Con la llegada de estos LLMs o FMs, los clientes pueden simplemente construir aplicaciones basadas en IA generativa para publicidad, gestión del conocimiento y soporte al cliente. Al darse cuenta del impacto de estas aplicaciones, se pueden proporcionar conocimientos mejorados a los clientes y tener un impacto positivo en la eficiencia del rendimiento en la organización, con una fácil recuperación de información y automatización de ciertas tareas que consumen mucho tiempo.

Con la IA generativa en AWS, puedes reinventar tus aplicaciones, crear experiencias completamente nuevas para los clientes y mejorar la productividad en general.

En esta publicación, construimos una aplicación empresarial segura utilizando AWS Amplify que invoca un modelo de base de Amazon SageMaker JumpStart, puntos finales de Amazon SageMaker y el servicio de Amazon OpenSearch para explicar cómo crear texto a texto o texto a imagen y generación aumentada de recuperación (RAG). Puedes utilizar esta publicación como referencia para construir aplicaciones empresariales seguras en el dominio de la IA generativa utilizando servicios de AWS.

Descripción general de la solución

Esta solución utiliza modelos de SageMaker JumpStart para implementar modelos de texto a texto, texto a imagen y modelos de incrustaciones de texto como puntos finales de SageMaker. Estos puntos finales de SageMaker son consumidos en la aplicación de React Amplify a través de Amazon API Gateway y funciones de AWS Lambda. Para proteger la aplicación y las APIs de un acceso inadvertido, se integra Amazon Cognito en Amplify React, API Gateway y funciones de Lambda. Los puntos finales de SageMaker y Lambda se implementan en una VPC privada, por lo que la comunicación desde API Gateway hacia las funciones de Lambda está protegida mediante enlaces VPC de API Gateway. El siguiente diagrama de flujo ilustra esta solución.

El flujo de trabajo incluye los siguientes pasos:

  1. Configuración inicial: Los FMs de SageMaker JumpStart se implementan como puntos finales de SageMaker, con tres puntos finales creados a partir de modelos de SageMaker JumpStart. El modelo de texto a imagen es un modelo de base de difusión estable de AI Stability que se utilizará para generar imágenes. El modelo de texto a texto utilizado para generar texto e implementado en la solución es un modelo Hugging Face Flan T5 XL. El modelo de incrustaciones de texto, que se utilizará para generar incrustaciones que se indexarán en Amazon OpenSearch Service o buscará el contexto para la pregunta entrante, es un modelo de incrustaciones Hugging Face GPT 6B FP16. Se pueden implementar otros LLMs alternativos en función del caso de uso y las referencias de rendimiento del modelo. Para obtener más información sobre los modelos de base, consulta la guía de inicio de Amazon SageMaker JumpStart.
  2. Accedes a la aplicación de React desde tu computadora. La aplicación de React tiene tres páginas: una página que recibe indicaciones de imagen y muestra la imagen generada; una página que recibe indicaciones de texto y muestra el texto generado; y una página que recibe una pregunta, encuentra el contexto que coincide con la pregunta y muestra la respuesta generada por el modelo de texto a texto.
  3. La aplicación de React construida utilizando las bibliotecas de Amplify se aloja en Amplify y se sirve al usuario en la URL de alojamiento de Amplify. Amplify proporciona el entorno de alojamiento para la aplicación de React. La CLI de Amplify se utiliza para configurar el entorno de alojamiento de Amplify e implementar el código en el entorno de alojamiento de Amplify.
  4. Si no has iniciado sesión, te autenticarás con Amazon Cognito utilizando la biblioteca de interfaz de usuario de React de Amplify.
  5. Cuando proporcionas una entrada y envías el formulario, la solicitud se procesa a través de API Gateway.
  6. Las funciones de Lambda sanitizan la entrada del usuario e invocan los respectivos puntos finales de SageMaker. Las funciones de Lambda también construyen las indicaciones a partir de la entrada de usuario sanitizada en el formato respectivo esperado por el LLM. Estas funciones de Lambda también reformatean la salida de los LLM y envían la respuesta de vuelta al usuario.
  7. Se implementan puntos finales de SageMaker para modelos de texto a texto (Flan T5 XXL), texto a incrustaciones (GPTJ-6B) y modelos de texto a imagen (Stability AI). Se implementan tres puntos finales separados utilizando los tipos de instancia de SageMaker recomendados por defecto.
  8. Se generan incrustaciones para los documentos utilizando el modelo de texto a incrustaciones y estas incrustaciones se indexan en OpenSearch Service. Se habilita un índice de vecino más cercano (k-NN) para permitir la búsqueda de incrustaciones desde OpenSearch Service.
  9. Un trabajo de AWS Fargate toma los documentos y los segmenta en paquetes más pequeños, invoca el modelo LLM de texto a incrustaciones y indexa las incrustaciones devueltas en OpenSearch Service para buscar contexto, como se describió anteriormente.

Resumen del conjunto de datos

El conjunto de datos utilizado para esta solución es pile-of-law dentro del repositorio de Hugging Face. Este conjunto de datos es un gran corpus de datos legales y administrativos. Para este ejemplo, utilizamos train.cc_casebooks.jsonl.xz dentro de este repositorio. Esta es una colección de libros de casos educativos curada en un formato JSONL como se requiere para los LLM.

Requisitos previos

Antes de comenzar, asegúrese de tener los siguientes requisitos previos:

  • Una cuenta de AWS.
  • Una política de dominio de Amazon SageMaker Studio adjunta al rol de ejecución de AWS Identity and Access Management (IAM). Para obtener instrucciones sobre cómo asignar permisos al rol, consulte Permisos de la API de Amazon SageMaker: Acciones, permisos y referencia de recursos. En este caso, debe asignar permisos asignados a Amazon Augmented AI (Amazon A2I). Para obtener más información, consulte Ejemplos de políticas basadas en identidades de Amazon SageMaker.
  • Un bucket de Amazon Simple Storage Service (Amazon S3). Para obtener instrucciones, consulte Creación de un bucket.
  • Para esta publicación, use el AWS Cloud Development Kit (AWS CDK) usando Python. Siga las instrucciones en Introducción a AWS CDK para configurar su entorno local y preparar su cuenta de desarrollo.
  • Este proyecto de AWS CDK requiere instancias de SageMaker (dos ml.g5.2xlarge y una ml.p3.2xlarge). Es posible que deba solicitar un aumento de la cuota.

Implementar la solución

Se ha puesto a disposición un proyecto de AWS CDK que incluye todos los componentes arquitectónicos en este repositorio de AWS Samples en GitHub. Para implementar esta solución, siga los siguientes pasos:

  1. Clone el repositorio de GitHub en su computadora.
  2. Vaya a la carpeta raíz.
  3. Inicialice el entorno virtual de Python.
  4. Instale las dependencias requeridas especificadas en el archivo requirements.txt.
  5. Inicialice AWS CDK en la carpeta del proyecto.
  6. Bootstrap AWS CDK en la carpeta del proyecto.
  7. Utilizando el comando de implementación de AWS CDK deploy, implemente las pilas.
  8. Vaya a la carpeta Amplify dentro de la carpeta del proyecto.
  9. Inicialice Amplify y acepte los valores predeterminados proporcionados por la CLI.
  10. Agregue el alojamiento de Amplify.
  11. Publique el frontend de Amplify desde la carpeta Amplify y tome nota del nombre de dominio proporcionado al finalizar la ejecución.
  12. En la consola de Amazon Cognito, agregue un usuario a la instancia de Amazon Cognito que se provisionó con la implementación.
  13. Vaya al nombre de dominio del paso 11 y proporcione los detalles de inicio de sesión de Amazon Cognito para acceder a la aplicación.

Activar un trabajo de indexación de OpenSearch

El proyecto AWS CDK implementó una función Lambda llamada GenAIServiceTxt2EmbeddingsOSIndexingLambda. Navegue hasta esta función en la consola de Lambda.

Ejecute una prueba con un payload vacío, como se muestra en la siguiente captura de pantalla.

Esta función Lambda activa una tarea de Fargate en Amazon Elastic Container Service (Amazon ECS) que se ejecuta dentro de la VPC. Esta tarea de Fargate toma el archivo JSONL incluido para segmentar y crear un índice de embeddings. Cada embedding de los segmentos es el resultado de invocar el endpoint LLM de texto a embeddings implementado como parte del proyecto AWS CDK.

Limpiar

Para evitar cargos futuros, elimine el endpoint de SageMaker y detenga todas las funciones Lambda. Además, elimine los datos de salida en Amazon S3 que creó mientras ejecutaba el flujo de la aplicación. Debe eliminar los datos en los buckets de S3 antes de poder eliminar los buckets.

Conclusión

En esta publicación, demostramos un enfoque de extremo a extremo para crear una aplicación empresarial segura utilizando Generative AI y RAG. Este enfoque se puede utilizar para construir aplicaciones de Generative AI seguras y escalables en AWS. Le animamos a implementar la aplicación de AWS CDK en su cuenta y construir la solución de Generative AI.

Recursos adicionales

Para obtener más información sobre aplicaciones de IA generativa en AWS, consulte lo siguiente:

  • Acelere su aprendizaje hacia los exámenes de certificación de AWS con la generación de cuestionarios automatizada utilizando los modelos de Amazon SageMaker foundations
  • Construya un potente bot de preguntas y respuestas con Amazon SageMaker, Amazon OpenSearch Service, Streamlit y LangChain
  • Implemente modelos de IA generativa de Amazon SageMaker JumpStart utilizando el AWS CDK
  • Comience con la IA generativa en AWS utilizando Amazon SageMaker JumpStart
  • Construya un backend de resumen de reuniones sin servidor con modelos de lenguaje grandes en Amazon SageMaker JumpStart

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Aprendizaje Automático

El Maestro Gamer de la IA de DeepMind Aprende 26 juegos en 2 horas.

El aprendizaje por refuerzo, un área de investigación fundamental de Google DeepMind, tiene un enorme potencial para ...

Ciencias de la Computación

Algoritmo encuentra esperma en hombres infértiles más rápido y con mayor precisión que los médicos.

La herramienta identifica instantáneamente el esperma, luego deja al embriólogo decidir si el esperma está realmente ...

Aprendizaje Automático

Rendimiento sobrehumano en la prueba Atari 100K El poder de BBF - Un nuevo agente de RL basado en valores de Google DeepMind, Mila y la Universidad de Montreal.

El aprendizaje por refuerzo profundo (RL) ha surgido como un algoritmo de aprendizaje automático poderoso para aborda...

Noticias de Inteligencia Artificial

Microsoft y OpenAI chocan por la integración de la inteligencia artificial.

En un enfrentamiento entre los titanes de la IA, Microsoft y OpenAI se encuentran en desacuerdo sobre la integración ...

Inteligencia Artificial

Alibaba libera el modelo de IA de código abierto para competir con Meta y potenciar a los desarrolladores

En un desarrollo significativo, Alibaba, el gigante chino del comercio electrónico, ha decidido abrir su potente mode...

Inteligencia Artificial

Equilibrando la innovación y la sostenibilidad Desentrañando el impacto ambiental de la IA generativa

La asociación francesa Data for Good publicó un documento blanco que explora los problemas sociales y ambientales que...