Esta publicación está coescrita por Kevin Plexico y Shakun Vohra de Deltek.
La función de preguntas y respuestas mediante documentos es una aplicación de uso común en diversos casos de uso, como chatbots de atención al cliente, asistentes de investigación legal y asesores de atención médica. Recuperación de Generación Aumentada (RAG) ha surgido como un método líder para utilizar el poder de los modelos de lenguaje grandes (LLM) para interactuar con documentos en lenguaje natural.
Esta publicación proporciona una descripción general de una solución personalizada desarrollada por Centro de innovación en IA generativa de AWS (GenAIIC) for Deltec, un estándar reconocido mundialmente para negocios basados en proyectos tanto en contratación gubernamental como en servicios profesionales. Deltek presta servicios a más de 30,000 clientes con software y soluciones de información específicos de la industria.
En esta colaboración, el equipo de AWS GenAIIC creó una solución basada en RAG para que Deltek permita preguntas y respuestas sobre documentos de licitación gubernamentales únicos o múltiples. La solución utiliza servicios de AWS que incluyen Amazon Textil, Servicio Amazon OpenSearchy lecho rocoso del amazonas. Amazon Bedrock es un servicio totalmente administrado que ofrece una selección de modelos básicos (FM) y LLM de alto rendimiento de empresas líderes en inteligencia artificial (IA) como AI21 Labs, Anthropic, Cohere, Meta, Stability AI y Amazon a través de una única API. junto con un amplio conjunto de capacidades para crear aplicaciones de IA generativa con seguridad, privacidad e IA responsable.
Deltek trabaja continuamente para mejorar esta solución para alinearla mejor con sus requisitos específicos, como admitir formatos de archivo más allá de PDF e implementar enfoques más rentables para su proceso de ingesta de datos.
¿Qué es RAG?
RAG es un proceso que optimiza el resultado de los LLM al permitirles hacer referencia a bases de conocimiento autorizadas fuera de sus fuentes de datos de capacitación antes de generar una respuesta. Este enfoque aborda algunos de los desafíos asociados con los LLM, como presentar información falsa, desactualizada o genérica, o crear respuestas inexactas debido a confusión terminológica. RAG permite a los LLM generar respuestas más relevantes, precisas y contextuales al hacer referencias cruzadas a la base de conocimientos interna de una organización o dominios específicos, sin la necesidad de volver a entrenar el modelo. Proporciona a las organizaciones un mayor control sobre el resultado de texto generado y ofrece a los usuarios información sobre cómo el LLM genera la respuesta, lo que lo convierte en un enfoque rentable para mejorar las capacidades de los LLM en diversos contextos.
el principal reto
Aplicar RAG para preguntas y respuestas en un solo documento es sencillo, pero aplicarlo en varios documentos relacionados plantea algunos desafíos únicos. Por ejemplo, cuando se utilizan respuestas a preguntas sobre documentos que evolucionan con el tiempo, es esencial considerar la secuencia cronológica de los documentos si la pregunta es sobre un concepto que se ha transformado con el tiempo. No considerar el orden podría resultar en proporcionar una respuesta que fue precisa en un momento anterior pero que ahora está desactualizada según información más reciente en la colección de documentos alineados temporalmente. Manejar adecuadamente los aspectos temporales es un desafío clave cuando se extiende la respuesta a preguntas de documentos individuales a conjuntos de documentos interconectados que progresan con el transcurso del tiempo.
Resumen de la solución
Como caso de uso de ejemplo, describimos preguntas y respuestas sobre dos documentos temporalmente relacionados: un borrador largo de documento de solicitud de propuesta (RFP) y una respuesta gubernamental posterior relacionada a una solicitud de información (respuesta RFI), que proporciona información adicional y revisada. información.
La solución desarrolla un enfoque RAG en dos pasos.
El primer paso es la ingesta de datos, como se muestra en el siguiente diagrama. Esto incluye un procesamiento único de documentos PDF. El componente de la aplicación aquí es una interfaz de usuario con procesamiento menor, como dividir texto y llamar a los servicios en segundo plano. Los pasos son los siguientes:
- El usuario carga documentos a la aplicación.
- La aplicación utiliza Amazon Textract para obtener el texto y las tablas de los documentos de entrada.
- El modelo de incrustación de texto procesa los fragmentos de texto y genera vectores de incrustación para cada fragmento de texto.
- Las representaciones incrustadas de fragmentos de texto junto con los metadatos relacionados se indexan en el servicio OpenSearch.
El segundo paso son las preguntas y respuestas, como se muestra en el siguiente diagrama. En este paso, el usuario hace una pregunta sobre los documentos ingeridos y espera una respuesta en lenguaje natural. El componente de la aplicación aquí es una interfaz de usuario con procesamiento menor, como llamar a diferentes servicios en segundo plano. Los pasos son los siguientes:
- El usuario hace una pregunta sobre los documentos.
- La aplicación recupera un representación incrustada de la pregunta de entrada.
- La aplicación pasa los datos recuperados de OpenSearch Service y la consulta a Amazon Bedrock para generar una respuesta. El modelo realiza una búsqueda semántica para encontrar fragmentos de texto relevantes de los documentos (también llamados contexto). El vector de incrustación asigna la pregunta del texto a un espacio de representaciones numéricas.
- La pregunta y el contexto se combinan y se presentan como un mensaje para el LLM. El modelo de lenguaje genera una respuesta en lenguaje natural a la pregunta del usuario.
Usamos Amazon Textract en nuestra solución, que puede convertir archivos PDF, PNG, JPEG y TIFF en texto legible por máquina. También formatea estructuras complejas como tablas para facilitar el análisis. En las siguientes secciones, proporcionamos un ejemplo para demostrar las capacidades de Amazon Textract.
OpenSearch es una suite de análisis y búsqueda distribuida y de código abierto derivada de Elasticsearch. Utiliza una estructura de base de datos vectorial para almacenar y consultar de manera eficiente grandes volúmenes de datos. OpenSearch Service tiene actualmente decenas de miles de clientes activos con cientos de miles de clústeres bajo gestión que procesan cientos de billones de solicitudes por mes. Utilizamos OpenSearch Service y su base de datos vectorial subyacente para hacer lo siguiente:
- Indexe documentos en el espacio vectorial, lo que permite ubicar elementos relacionados cerca para mejorar su relevancia.
- Recupere rápidamente fragmentos de documentos relacionados en el paso de respuesta a preguntas utilizando la búsqueda aproximada del vecino más cercano a través de vectores
La base de datos vectorial dentro del servicio OpenSearch permitió un almacenamiento eficiente y una recuperación rápida de fragmentos de datos relacionados para impulsar nuestro sistema de respuesta a preguntas. Al modelar documentos como vectores, pudimos encontrar pasajes relevantes incluso sin coincidencias explícitas de palabras clave.
Los modelos de incrustación de texto son modelos de aprendizaje automático (ML) que asignan palabras o frases de texto a representaciones vectoriales densas. Las incrustaciones de texto se utilizan comúnmente en sistemas de recuperación de información como RAG para los siguientes propósitos:
- Incrustación de documentos – Los modelos de incrustación se utilizan para codificar el contenido del documento y asignarlo a un espacio de incrustación. Es común dividir primero un documento en partes más pequeñas, como párrafos, secciones o partes de tamaño fijo.
- Incrustación de consultas – Las consultas de los usuarios están integradas en vectores para que puedan compararse con fragmentos de documentos mediante la realización de una búsqueda semántica.
Para esta publicación utilizamos el Titán Amazonas modelo, Amazon Titan Embeddings G1 – Text v1.2, que admite hasta 8,000 tokens y genera un vector numérico de 1,536 dimensiones. El modelo está disponible a través de Amazon Bedrock.
Amazon Bedrock ofrece FM listos para usar de las principales empresas de inteligencia artificial, como AI21 Labs, Anthropic, Cohere, Meta, Stability AI y Amazon. Ofrece una interfaz única para acceder a estos modelos y crear aplicaciones de IA generativa manteniendo la privacidad y la seguridad. Usamos Anthropic Claude v2 en Amazon Bedrock para generar respuestas en lenguaje natural dada una pregunta y un contexto.
En las siguientes secciones, analizamos las dos etapas de la solución con más detalle.
Ingestión de datos
En primer lugar, los borradores de los documentos de respuesta a la RFP y la RFI se procesan para utilizarlos en el momento de las preguntas y respuestas. La ingesta de datos incluye los siguientes pasos:
- Los documentos se pasan a Amazon Textract para convertirlos en texto.
- Para permitir que nuestro modelo de lenguaje responda preguntas sobre tablas, creamos un analizador que convierte tablas de la salida de Amazon Textract al formato CSV. Transformar tablas a CSV mejora la comprensión del modelo. Por ejemplo, las siguientes figuras muestran parte de un documento de respuesta a una RFI en formato PDF, seguido de su correspondiente texto extraído. En el texto extraído, la tabla se convirtió al formato CSV y se encuentra entre el resto del texto.
- Para documentos largos, el texto extraído puede exceder la limitación de tamaño de entrada del LLM. En estos casos, podemos dividir el texto en fragmentos más pequeños y superpuestos. Los tamaños de los fragmentos y las proporciones de superposición pueden variar según el caso de uso. aplicamos fragmentación consciente de la sección, (realizar fragmentación de forma independiente en cada sección del documento), que analizamos en nuestro caso de uso de ejemplo más adelante en esta publicación.
- Algunas clases de documentos pueden seguir un diseño o formato estándar. Esta estructura se puede utilizar para optimizar la ingesta de datos. Por ejemplo, los documentos RFP tienden a tener un diseño determinado con secciones definidas. Usando el diseño, cada sección del documento se puede procesar de forma independiente. Además, si existe una tabla de contenido pero no es relevante, es posible que se elimine. Proporcionamos una demostración de cómo detectar y usar la estructura de un documento más adelante en esta publicación.
- El vector de incrustación para cada fragmento de texto se recupera de un modelo de incrustación.
- En el último paso, los vectores de incrustación se indexan en una base de datos del servicio OpenSearch. Además del vector de incrustación, el fragmento de texto y los metadatos del documento, como el documento, el nombre de la sección del documento o la fecha de publicación del documento, también se agregan al índice como campos de texto. La fecha de publicación del documento es un metadato útil cuando los documentos están relacionados cronológicamente, de modo que LLM pueda identificar la información más actualizada. El siguiente fragmento de código muestra el cuerpo del índice:
Q&A
En la frase de preguntas y respuestas, los usuarios pueden enviar una pregunta en lenguaje natural sobre los borradores de los documentos de respuesta a la RFP y a la RFI ingeridos en el paso anterior. En primer lugar, la búsqueda semántica se utiliza para recuperar fragmentos de texto relevantes a la pregunta del usuario. Luego, la pregunta se aumenta con el contexto recuperado para crear un mensaje. Finalmente, el mensaje se envía a Amazon Bedrock para que un LLM genere una respuesta en lenguaje natural. Los pasos detallados son los siguientes:
- Se recupera una representación integrada de la pregunta de entrada del modelo de integración de Amazon Titan en Amazon Bedrock.
- El vector de incrustación de la pregunta se utiliza para realizar una búsqueda semántica en el servicio OpenSearch y encontrar los K fragmentos de texto más relevantes.. El siguiente es un ejemplo de un cuerpo de búsqueda pasado al servicio OpenSearch. Para más detalles ver el Documentación de OpenSearch sobre la estructuración de una consulta de búsqueda.
- Cualquier metadato recuperado, como el nombre de la sección o la fecha de publicación del documento, se utiliza para enriquecer los fragmentos de texto y proporcionar más información al LLM, como la siguiente:
- La pregunta de entrada se combina con el contexto recuperado para crear un mensaje. En algunos casos, dependiendo de la complejidad o especificidad de la pregunta, se requiere una cadena de pensamiento (CoT) Es posible que sea necesario agregar un mensaje al mensaje inicial para proporcionar más aclaraciones y orientación al LLM. El mensaje de CoT está diseñado para guiar al LLM a través de los pasos lógicos de razonamiento y pensamiento necesarios para comprender adecuadamente la pregunta y formular una respuesta. Establece un tipo de monólogo interno o camino cognitivo que el LLM debe seguir para comprender la información clave dentro de la pregunta, determinar qué tipo de respuesta se necesita y construir esa respuesta de una manera apropiada y precisa. Usamos el siguiente mensaje de CoT para este caso de uso:
- El mensaje se pasa a un LLM en Amazon Bedrock para generar una respuesta en lenguaje natural. Usamos la siguiente configuración de inferencia para el modelo Anthropic Claude V2 en Amazon Bedrock. El parámetro Temperatura generalmente se establece en cero para lograr reproducibilidad y también para evitar alucinaciones LLM. Para aplicaciones RAG regulares,
top_k
ytop_p
generalmente se establecen en 250 y 1, respectivamente. Colocarmax_tokens_to_sample
hasta el número máximo de tokens que se espera generar (1 token es aproximadamente 3/4 de una palabra). Ver Parámetros de inferencia para obtener más información.
Caso de uso de ejemplo
A modo de demostración, describimos un ejemplo de preguntas y respuestas en dos documentos relacionados: un borrador del documento RFP en formato PDF con 167 páginas y un Documento de respuesta a RFI en formato PDF con 6 páginas publicadas posteriormente, que incluye información adicional y actualizaciones del borrador de la RFP.
La siguiente es una pregunta de ejemplo que pregunta si los requisitos de tamaño del proyecto han cambiado, dados los borradores de los documentos de respuesta RFP y RFI:
¿Han cambiado las evaluaciones de puntuación originales? En caso afirmativo, ¿cuáles son los nuevos tamaños de proyecto?
La siguiente figura muestra las secciones relevantes del borrador del documento RFP que contienen las respuestas.
La siguiente figura muestra las secciones relevantes del documento de respuesta a la RFI que contienen las respuestas.
Para que el LLM genere la respuesta correcta, el contexto recuperado del servicio OpenSearch debe contener las tablas que se muestran en las figuras anteriores, y el LLM debe poder inferir el orden de los contenidos recuperados a partir de los metadatos, como las fechas de lanzamiento, y generar una respuesta legible en lenguaje natural.
Los siguientes son los pasos de ingesta de datos:
- Los borradores de los documentos de respuesta RFP y RFI se cargan en Amazon Textract para extraer texto y tablas como contenido. Además, utilizamos expresiones regulares para identificar las secciones del documento y la tabla de contenido (consulte las siguientes figuras, respectivamente). La tabla de contenido se puede eliminar para este caso de uso porque no tiene ninguna información relevante.
- Dividimos cada sección del documento de forma independiente en partes más pequeñas con algunas superposiciones. Para este caso de uso, utilizamos un tamaño de fragmento de 500 tokens con un tamaño de superposición de 100 tokens (1 token equivale aproximadamente a 3/4 de una palabra). Usamos un Tokenizador BPE, donde cada token corresponde a aproximadamente 4 bytes.
- Se obtiene una representación de incrustación de cada fragmento de texto utilizando el modelo Amazon Titan Embeddings G1 – Text v1.2 en Amazon Bedrock.
- Cada fragmento de texto se almacena en un índice del servicio OpenSearch junto con metadatos como el nombre de la sección y la fecha de publicación del documento.
Los pasos de preguntas y respuestas son los siguientes:
- La pregunta de entrada primero se transforma en un vector numérico utilizando el modelo de incrustación. La representación vectorial se utiliza para la búsqueda semántica y la recuperación de contexto relevante en el siguiente paso.
- El fragmento de texto y los metadatos más relevantes de K se recuperan del servicio OpenSearch.
- El
opensearch_result_to_context
La función y la plantilla de mensaje (definida anteriormente) se utilizan para crear el mensaje dada la pregunta de entrada y el contexto recuperado. - El mensaje se envía al LLM en Amazon Bedrock para generar una respuesta en lenguaje natural. La siguiente es la respuesta generada por Anthropic Claude v2, que coincide con la información presentada en los borradores de los documentos de respuesta RFP y RFI. La pregunta fue “¿Han cambiado las evaluaciones de puntuación originales? En caso afirmativo, ¿cuáles son los tamaños de los nuevos proyectos? Utilizando indicaciones de CoT, el modelo puede responder correctamente a la pregunta.
Características principales
La solución contiene las siguientes características clave:
- Fragmentación consciente de la sección – Identifique las secciones del documento y divida cada sección de forma independiente en partes más pequeñas con algunas superposiciones para optimizar la ingesta de datos.
- Transformación de tabla a CSV – Convertir tablas extraídas por Amazon Textract a formato CSV para mejorar la capacidad del modelo de lenguaje para comprender y responder preguntas sobre tablas.
- Agregar metadatos al índice – Almacene metadatos como el nombre de la sección y la fecha de publicación del documento junto con fragmentos de texto en el índice del servicio OpenSearch. Esto permitió que el modelo de lenguaje identificara la información más actualizada o relevante.
- Aviso de CoT – Diseñar una cadena de pensamiento para proporcionar mayor aclaración y orientación al modelo de lenguaje sobre los pasos lógicos necesarios para comprender adecuadamente la pregunta y formular una respuesta precisa.
Estas contribuciones ayudaron a mejorar la precisión y las capacidades de la solución para responder preguntas sobre documentos. De hecho, según las evaluaciones de los expertos en la materia de Deltek sobre las respuestas generadas por el LLM, la solución logró una tasa de precisión general del 96 %.
Conclusión
Esta publicación describe una aplicación de IA generativa para responder preguntas en múltiples documentos de licitación gubernamentales. La solución discutida fue una presentación simplificada de una canalización desarrollada por el equipo de AWS GenAIIC en colaboración con Deltek. Describimos un enfoque para permitir preguntas y respuestas sobre documentos extensos publicados por separado a lo largo del tiempo. Al utilizar Amazon Bedrock y OpenSearch Service, esta arquitectura RAG puede escalarse para volúmenes de documentos a nivel empresarial. Además, se compartió una plantilla de indicaciones que utiliza la lógica CoT para guiar al LLM en la producción de respuestas precisas a las preguntas de los usuarios. Aunque esta solución está simplificada, esta publicación tenía como objetivo proporcionar una descripción general de alto nivel de un mundo real. IA generativa Solución para agilizar la revisión de documentos de propuestas complejos y sus iteraciones.
Deltek está refinando y optimizando activamente esta solución para garantizar que satisfaga sus necesidades únicas. Esto incluye ampliar la compatibilidad con formatos de archivo distintos de PDF, así como adoptar estrategias más rentables para su proceso de ingesta de datos.
Más información sobre pronta ingenieria y Preguntas y respuestas generativas impulsadas por IA existentes en la Taller de lecho de roca amazónica. Para obtener asistencia técnica o ponerse en contacto con los especialistas en IA generativa de AWS, visite el Página web de GenAIIC.
Recursos
Para obtener más información sobre Amazon Bedrock, consulte los siguientes recursos:
Para obtener más información sobre el servicio OpenSearch, consulte los siguientes recursos:
Consulte los siguientes enlaces para obtener recursos de RAG en AWS:
Acerca de los autores
Kevin Plexico es vicepresidente senior de Soluciones de Información en Deltek, donde supervisa la investigación, el análisis y la creación de especificaciones para clientes en las industrias de Contratación Gubernamental y AEC. Dirige la entrega de GovWin IQ, brinda inteligencia de mercado gubernamental esencial a más de 5,000 clientes y administra el equipo de analistas más grande de la industria en este sector. Kevin también dirige los productos de Soluciones de especificaciones de Deltek y produce contenido de especificaciones de construcción de primer nivel, incluido MasterSpec® para AIA y SpecText.
Shakun Vohra es un líder tecnológico distinguido con más de 20 años de experiencia en ingeniería de software, IA/ML, transformación empresarial y optimización de datos. En Deltek, ha impulsado un crecimiento significativo, liderando equipos diversos y de alto rendimiento en múltiples continentes. Shakun se destaca en alinear las estrategias tecnológicas con los objetivos corporativos, colaborando con ejecutivos para dar forma a la dirección organizacional. Reconocido por su visión estratégica y tutoría, ha fomentado constantemente el desarrollo de líderes de próxima generación y soluciones tecnológicas transformadoras.
Amin Tajgardoon es científico aplicado en el Centro de innovación de IA generativa de AWS. Tiene una amplia experiencia en informática y aprendizaje automático. En particular, Amin se ha centrado en el aprendizaje profundo y la previsión, los métodos de explicación de predicciones, la detección de derivas de modelos, los modelos generativos probabilísticos y las aplicaciones de la IA en el ámbito de la atención sanitaria.
Anila Joshi tiene más de una década de experiencia en la creación de soluciones de IA. Como gerente de ciencias aplicadas en el Centro de innovación de IA generativa de AWS, Anila es pionera en aplicaciones innovadoras de IA que amplían los límites de las posibilidades y aceleran la adopción de los servicios de AWS con los clientes, ayudándolos a idear, identificar e implementar soluciones seguras de IA generativa.
Yash Shah y su equipo de científicos, especialistas e ingenieros en el Centro de innovación de IA generativa de AWS, trabajan con algunos de los clientes más estratégicos de AWS para ayudarlos a hacer realidad el arte de lo posible con la IA generativa impulsando el valor comercial. Yash lleva más de 7.5 años en Amazon y ha trabajado con clientes de los sectores de atención sanitaria, deportes, fabricación y software en múltiples regiones geográficas.
Jordán cocinar es un consumado gerente de cuentas sénior de AWS con casi dos décadas de experiencia en la industria de la tecnología, especializándose en ventas y estrategia de centros de datos. Jordan aprovecha su amplio conocimiento de Amazon Web Services y su profundo conocimiento de la computación en la nube para brindar soluciones personalizadas que permitan a las empresas optimizar su infraestructura en la nube, mejorar la eficiencia operativa e impulsar la innovación.
- 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. Carbón, tecnología limpia, Energía, Ambiente, Solar, Gestión de residuos. Accede Aquí.
- PlatoSalud. Inteligencia en Biotecnología y Ensayos Clínicos. Accede Aquí.
- Fuente: https://aws.amazon.com/blogs/machine-learning/how-deltek-uses-amazon-bedrock-for-question-and-answering-on-government-solicitation-documents/