Logotipo de Zephyrnet

Cree una aplicación empresarial segura con IA generativa y RAG mediante Amazon SageMaker JumpStart | Servicios web de Amazon

Fecha:

La IA generativa es un tipo de IA que puede crear nuevos contenidos e ideas, incluidas conversaciones, historias, imágenes, vídeos y música. Está impulsado por grandes modelos de lenguaje (LLM) que están previamente entrenados con grandes cantidades de datos y comúnmente se denominan modelos básicos (FM).

Con la llegada de estos LLM o FM, los clientes pueden simplemente crear aplicaciones basadas en IA generativa para publicidad, gestión del conocimiento y atención al cliente. Darse cuenta del impacto de estas aplicaciones puede proporcionar conocimientos mejorados a los clientes e impactar positivamente la eficiencia del desempeño en la organización, con una fácil recuperación de información y la automatización de ciertas tareas que requieren mucho tiempo.

Con la IA generativa en AWS, puede reinventar sus aplicaciones, crear experiencias de cliente completamente nuevas y mejorar la productividad general.

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

Resumen de la solución

Esta solución utiliza modelos JumpStart de SageMaker para implementar modelos de texto a texto, texto a imagen e incrustaciones de texto como puntos finales de SageMaker. Estos puntos finales de SageMaker se consumen en la aplicación Amplify React a través de Puerta de enlace API de Amazon y AWS Lambda funciones. Para proteger la aplicación y las API del acceso involuntario, Cognito Amazonas está integrado en las funciones Amplify React, API Gateway y Lambda. Los puntos finales de SageMaker y Lambda se implementan en un VPC privada, por lo que la comunicación desde API Gateway a las funciones Lambda está protegida mediante enlaces VPC de API Gateway. El siguiente diagrama de flujo de trabajo ilustra esta solución.

El flujo de trabajo incluye los siguientes pasos:

  1. Configuración inicial: Los SageMaker JumpStart FM se implementan como puntos finales de SageMaker, con tres puntos finales creados a partir de modelos SageMaker JumpStart. El modelo de texto a imagen es un modelo básico de Difusión estable de estabilidad AI 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 de la pregunta entrante, es un modelo de incrustaciones de Hugging Face GPT 6B FP16. Se pueden implementar LLM alternativos según el caso de uso y los puntos de referencia de rendimiento del modelo. Para obtener más información sobre los modelos de cimentación, consulte Primeros pasos con Amazon SageMaker JumpStart.
  2. Accedes a la aplicación React desde tu computadora. La aplicación React tiene tres páginas: una página que recibe indicaciones de imágenes y muestra la imagen generada; una página que recibe indicaciones de texto y muestra el texto generado; y una página que toma 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 React creada con las bibliotecas de Amplify se aloja en Amplify y se entrega al usuario en la URL del host de Amplify. Amplify proporciona el entorno de alojamiento para la aplicación React. La CLI de Amplify se utiliza para iniciar el entorno de alojamiento de Amplify e implementar el código en el entorno de alojamiento de Amplify.
  4. Si no se ha autenticado, se autenticará en Amazon Cognito mediante la biblioteca de interfaz de usuario de Amplify React.
  5. Cuando proporciona una entrada y envía el formulario, la solicitud se procesa a través de API Gateway.
  6. Las funciones Lambda desinfectan la entrada del usuario e invocan los respectivos puntos finales de SageMaker. Las funciones Lambda también construyen las indicaciones a partir de la entrada desinfectada del usuario en el formato respectivo esperado por el LLM. Estas funciones Lambda también reformatean la salida de los LLM y envían la respuesta al usuario.
  7. Los puntos finales de SageMaker se implementan para modelos de texto a texto (Flan T5 XXL), texto a incrustaciones (GPTJ-6B) y texto a imagen (Stability AI). Se implementan tres puntos finales separados que utilizan los tipos de instancia predeterminados recomendados de SageMaker.
  8. Las incrustaciones de documentos se generan utilizando el modelo de texto a incrustaciones y estas incrustaciones se indexan en el servicio OpenSearch. Se habilita un índice k-Vecino más cercano (k-NN) para permitir la búsqueda de incrustaciones desde el servicio OpenSearch.
  9. An AWS Fargate El trabajo toma documentos y los segmenta en paquetes más pequeños, invoca el modelo LLM de texto a incrustaciones e indexa las incrustaciones devueltas en OpenSearch Service para buscar contexto como se describió anteriormente.

Descripción general del conjunto de datos

El conjunto de datos utilizado para esta solución es pile-of-law en la pestaña 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 seleccionados en formato JSONL según lo exigen los LLM.

Requisitos previos

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

Implementar la solución

En estos ejemplos de AWS se ha puesto a disposición un proyecto de AWS CDK que incluye todos los componentes arquitectónicos. Repositorio GitHub. Para implementar esta solución, haga lo siguiente:

  1. Clona el Repositorio GitHub a su ordenador.
  2. Vaya a la carpeta raíz.
  3. Inicialice el entorno virtual de Python.
  4. Instale las dependencias requeridas especificadas en el requirements.txt archivo.
  5. Inicialice AWS CDK en la carpeta del proyecto.
  6. Arranque AWS CDK en la carpeta del proyecto.
  7. Utilice el comando de implementación de AWS CDK para implementar 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 alojamiento Amplify.
  11. Publique la interfaz de Amplify desde la carpeta Amplify y anote el nombre de dominio proporcionado al final de la ejecución.
  12. En la consola de Amazon Cognito, agregue un usuario a la instancia de Amazon Cognito que se aprovisionó 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 denominada GenAIServiceTxt2EmbeddingsOSIndexingLambda. Navegue hasta esta función en la consola Lambda.

Ejecute una prueba con una carga útil vacía, como se muestra en la siguiente captura de pantalla.

Esta función Lambda desencadena una tarea de Fargate en Servicio de contenedor elástico de Amazon (Amazon ECS) ejecutándose dentro de la VPC. Esta tarea de Fargate toma el archivo JSONL incluido para segmentar y crear un índice de incrustaciones. La incrustación de cada segmento es el resultado de invocar el punto final LLM de texto a incrustaciones implementado como parte del proyecto AWS CDK.

Limpiar

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

Conclusión

En esta publicación, demostramos un enfoque de un extremo a otro para crear una aplicación empresarial segura utilizando IA generativa y RAG. Este enfoque se puede utilizar para crear aplicaciones de IA generativa seguras y escalables en AWS. Le recomendamos que implemente la aplicación AWS CDK en su cuenta y cree la solución de IA generativa.

Recursos adicionales

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


Acerca de los autores

Jay Pillai es arquitecto principal de soluciones en Amazon Web Services. Como líder en tecnología de la información, Jay se especializa en dominios de inteligencia artificial, integración de datos, inteligencia empresarial e interfaz de usuario. Tiene 23 años de amplia experiencia trabajando con varios clientes en los dominios comerciales de bienes raíces, servicios financieros, seguros, pagos e investigación de mercado.

Shikhar Kwatra es un arquitecto de soluciones especializado en inteligencia artificial y aprendizaje automático en Amazon Web Services, que trabaja con un integrador de sistemas global líder. Se ha ganado el título de uno de los maestros inventores indios más jóvenes con más de 500 patentes en los dominios de IA/ML e IoT. Shikhar ayuda en la arquitectura, la creación y el mantenimiento de entornos de nube escalables y rentables para la organización, y apoya al socio de GSI en la creación de soluciones industriales estratégicas en AWS. Shikhar disfruta tocar la guitarra, componer música y practicar la atención plena en su tiempo libre.

Karthik Sonti lidera un equipo global de arquitectos de soluciones enfocados en conceptualizar, construir y lanzar soluciones horizontales, funcionales y verticales con Accenture para ayudar a nuestros clientes conjuntos a transformar su negocio de una manera diferenciada en AWS.

punto_img

Información más reciente

punto_img