Hable con su plataforma de diapositivas utilizando modelos de cimentación multimodales en Amazon Bedrock – Parte 3

En esta serie, compartimos dos enfoques para obtener información sobre datos multimodales como texto, imágenes y gráficos. En Parte 1presentamos una solución de “incrustar primero, inferir después” que utiliza la Incorporaciones multimodales de Amazon Titan modelo de base (FM) para convertir diapositivas individuales de una plataforma de diapositivas en incrustaciones. Almacenamos las incrustaciones en una base de datos vectorial y luego usamos el Asistente de lenguaje y visión grande (LLaVA 1.5-7b) modelo para generar respuestas de texto a las preguntas de los usuarios basadas en la diapositiva más similar recuperada de la base de datos vectorial. La parte 1 utiliza servicios de AWS, incluidos Roca Amazónica, Amazon SageMakery Amazon OpenSearch sin servidor.

En parte 2demostramos un enfoque diferente: “inferir primero, incorporar después”. Usamos Soneto de Claude 3 de Anthropic en Amazon Bedrock para generar descripciones de texto para cada diapositiva en la plataforma de diapositivas. Estas descripciones luego se convierten en incrustaciones de texto usando el Incrustaciones de texto de Amazon Titan modelo y almacenado en una base de datos vectorial. Luego utilizamos Claude 3 Sonnet de Anthropic para generar respuestas a las preguntas de los usuarios basadas en la descripción de texto más relevante recuperada de la base de datos de vectores.

En esta publicación, evaluamos los resultados de ambos enfoques utilizando la verdad sobre el terreno proporcionada por DiapositivaVQA[1]un conjunto de datos de respuesta a preguntas visuales de código abierto. Puede probar ambos enfoques y evaluar los resultados para encontrar la mejor opción para sus conjuntos de datos. El código de esta serie está disponible en el repositorio de GitHub.

Comparación de enfoques

SlideVQA es una colección de presentaciones de diapositivas disponibles públicamente, cada una compuesta por varias diapositivas (en formato JPG) y preguntas basadas en la información contenida en las presentaciones de diapositivas. Permite que un sistema seleccione un conjunto de imágenes de evidencia y responda la pregunta. Utilizamos SlideVQA como única fuente de verdad para comparar los resultados. Es importante que sigas las Protección de datos de Amazon Bedrock políticas cuando se utilizan conjuntos de datos públicos.

Esta publicación sigue el proceso que se muestra en el siguiente diagrama. Para obtener más detalles sobre la arquitectura, consulte la descripción general y el diseño de la solución en las Partes 1 y 2 de la serie.

Seleccionamos 100 preguntas aleatorias de SlideVQA para crear un conjunto de datos de muestra para probar las soluciones de las Partes 1 y 2.

Las respuestas a las preguntas del conjunto de datos de muestra son lo más concisas posible, como se muestra en el siguiente ejemplo:

"question": "What is the process by which the breaking of hydrogen bonds allows water to change from the liquid phase into the gaseous phase which has reached equilibrium with the liquid surface said to have done?"

"answer": "reached saturation"

Las respuestas de los modelos de lenguajes grandes (LLM) son bastante detalladas:

According to the information provided in the images, the process by which the breaking of hydrogen bonds allows water to change from the liquid phase into the gaseous phase that has reached equilibrium with the liquid surface is said to have reached saturation.

The key points are:

1. Evaporation involves the breaking of hydrogen bonds that hold water molecules together in the liquid phase, allowing them to transition into the gaseous (vapor) phase.

2. Only the fastest moving water molecules with enough energy can overcome the hydrogen bonding and evaporate into the vapor phase.

3. The evaporation process that has reached equilibrium with the liquid surface, where the vapor pressure is balanced with the evaporation rate, is described as having reached saturation.

So in summary, the breaking of hydrogen bonds provides the mechanism for water molecules to gain enough energy to escape the liquid phase as vapor, and when this vapor has reached equilibrium with the liquid surface, it is said to have reached saturation.We updated the prompts in each approach to provide short responses instead of verbose responses. This helped match the output context length to the ground truth responses in the sample dataset.

Las siguientes secciones analizan brevemente las soluciones y profundizan en la evaluación y el precio de cada enfoque.

Enfoque 1: integrar primero, inferir después

Las presentaciones de diapositivas se convierten en imágenes PDF, una por diapositiva, y se incrustan utilizando el modelo Amazon Titan Multimodal Embeddings, lo que da como resultado una incrustación vectorial de 1024 dimensiones. Las incrustaciones se almacenan en un índice OpenSearch Serverless, que sirve como almacén de vectores para nuestra solución de recuperación de generación aumentada (RAG). Las incorporaciones se incorporan mediante una canalización de ingesta de Amazon OpenSearch.

Cada pregunta se convierte en incrustaciones utilizando el modelo de incrustaciones multimodales de Amazon Titan y se realiza una búsqueda vectorial de OpenSearch utilizando estas incrustaciones. Realizamos una búsqueda de k-vecino más cercano (k-NN) para recuperar la incrustación más relevante que coincida con la pregunta. Los metadatos de la respuesta del índice OpenSearch contienen una ruta a la imagen correspondiente a la diapositiva más relevante.

El siguiente mensaje se crea combinando la pregunta y la ruta de la imagen, y se envía a Claude 3 Sonnet de Anthropic para responder a la pregunta con una respuesta concisa:

Human: Your role is to provide a precise answer to the question in the <question></question> tags. Search the image provided to answer the question. Retrieve the most accurate answer in as few words as possible. Do not make up an answer. For questions that ask for numbers, follow the instructions below in the <instructions></instructions> tags. Skip the preamble and provide only the exact precise answer.

If the image does not contain the answer to the question below, then respond with two words only - "no answer".

Refer to the question and instructions below:

<question>
{question}
</question>


<instructions>
1. Search for relevant data and numbers in the charts and graphs present in the image.

2. If the image does not provide a direct answer to the user question, just say "no answer". Do not add statements like "The image does not provide..." and "It only mentions...", instead just respond with "no answer".

3. Do not add any tags in your answer.

4. Scan for the direct answer to the user question. If there is more than one direct answer, give everything that seems like a valid answer to the question in your response.

5. Search for the question deeply in the image. If the question asks about any data or statistics, look for it in charts, tables, graphs first, and then in texts. Check the headings in the image.

</instructions>

If the image does not contain the answer, or if image does not directly answer the user question, do not respond with "The image does not provide..." or anything similar. In this case, your response should always be "no answer" and nothing else.

Assistant: Here is my response to the question. I will give a direct and precise answer to the question if I find it and if not, I will say "no answer":

Usamos Claude 3 Sonnet de Anthropic en lugar de LLaVA 1.5-7b como se menciona en la solución de la Parte 1. El enfoque sigue siendo el mismo, “incrustar primero, inferir después”, pero el modelo que compila la respuesta final se cambia para simplificar y comparar entre aproches.

Una respuesta para cada pregunta del conjunto de datos es grabado en formato JSON y comparado con la verdad básica proporcionada por SlideVQA.

Este enfoque obtuvo una respuesta para el 78% de las preguntas en un conjunto de datos de 100 preguntas, logrando una precisión del 50% en las respuestas finales.

Enfoque 2: inferir primero, incrustar después

Las presentaciones de diapositivas se convierten en imágenes PDF, una por diapositiva, y se pasan a Claude 3 Sonnet de Anthropic para generar una descripción de texto. La descripción se envía al modelo de Amazon Titan Text Embeddings para generar incrustaciones vectoriales con 1536 dimensiones. Las incorporaciones se incorporan a un índice de OpenSearch Serverless mediante una canalización de OpenSearch Ingestion.

Cada pregunta se convierte en incrustaciones utilizando el modelo Amazon Titan Text Embeddings y se realiza una búsqueda vectorial OpenSearch utilizando estas incrustaciones. Realizamos una búsqueda de k-NN para recuperar la incorporación más relevante que coincida con la pregunta. Los metadatos de la respuesta del índice OpenSearch contienen la descripción de la imagen correspondiente a la diapositiva más relevante.

Creamos un mensaje con la pregunta y la descripción de la imagen y se lo pasamos a Claude 3 Sonnet de Anthropic para recibir una respuesta precisa. La siguiente es la plantilla de aviso:

Human: Your role is to provide a precise answer to the question in the <question></question> tags. Search the summary provided in the <summary></summary> tags to answer the question. Retrieve the most accurate answer in as few words as possible. Do not make up an answer. For questions that ask for numbers, follow the instructions below in the <instructions></instructions> tags. Skip the preamble and provide only the exact precise answer.

If the summary does not contain the answer to the question below, then respond with two words only - "no answer".

Refer to the question, summary, and instructions below:

<question>
{question}
</question>

<summary>
{summary}
</summary>

<instructions>
1. Search for relevant data and numbers in the summary.

2. If the summary does not provide a direct answer to the user question, just say "no answer". Do not add statements like "The summary does not specify..." and "I do not have enough information...", instead just respond with "no answer".

3. Do not add any tags in your answer.

4. Scan for the direct answer to the user question. If there is more than one direct answer, give everything that seems like a valid answer to the question in your response.

</instructions>

If the summary does not contain the answer, or if summary does not directly answer the user question, do not respond with "The summary does not provide..." or anything similar. In this case, your response should always be "no answer" and nothing else.

Assistant: Here is my response to the question. I will give a direct and precise answer to the question if I find it and if not, I will say "no answer":

La respuesta para cada pregunta del conjunto de datos es grabado en formato JSON para facilitar la comparación. La respuesta se compara con la verdad fundamental proporcionada por SlideVQA.

Con este enfoque, obtuvimos una precisión del 44 % en las respuestas finales y el 75 % de las preguntas obtuvieron una respuesta de las 100 preguntas del conjunto de datos de muestra.

Análisis de resultados

En nuestras pruebas, ambos enfoques produjeron un 50% o menos de resultados coincidentes con las preguntas del conjunto de datos de muestra. El conjunto de datos de muestra contiene una selección aleatoria de diapositivas que cubren una amplia variedad de temas, incluidos comercio minorista, atención médica, académico, tecnología, personal y viajes. Por lo tanto, para una pregunta genérica como “¿Cuáles son ejemplos de herramientas que se pueden utilizar?” que carece de contexto adicional, la coincidencia más cercana podría recuperar respuestas de una variedad de temas, lo que generaría resultados inexactos, especialmente cuando todas las incrustaciones se incorporan en el mismo índice de OpenSearch. Se puede utilizar técnicas como la búsqueda híbrida, el filtrado previo basado en metadatos y la reclasificación para mejorar la precisión de la recuperación.

Una de las soluciones es recuperar más resultados (aumentar el valor k) y reordenarlos para mantener los más relevantes; esta técnica se llama reclasificación. Compartimos formas adicionales de mejorar la precisión de los resultados más adelante en esta publicación.

El indicaciones finales El Soneto Claude 3 de Anthropic en nuestro análisis incluyó instrucciones para proporcionar una respuesta concisa en la menor cantidad de palabras posible para poder compararla con la verdad fundamental. Sus respuestas dependerán de sus indicaciones al LLM.

Precios

El precio depende de la modalidad, proveedor y modelo utilizado. Para obtener más detalles, consulte Precios de Amazon Bedrock. Utilizamos el modo de precios bajo demanda y por lotes en nuestro análisis, que le permiten utilizar FM en forma de pago por uso sin tener que asumir compromisos de plazos basados ​​en el tiempo. Para los modelos de generación de texto, se le cobra por cada token de entrada procesado y cada token de salida generado. Para los modelos integrados, se le cobra por cada token de entrada procesado.

Las siguientes tablas muestran el precio por pregunta para cada enfoque. Calculamos la cantidad promedio de tokens de entrada y salida según nuestro conjunto de datos de muestra para la región de AWS us-east-1; los precios pueden variar según los conjuntos de datos y la región utilizada.

Puede utilizar las siguientes tablas como guía. Consulte el sitio web de precios de Amazon Bedrock para obtener información adicional.

Enfoque 1
Fichas de entrada Fichas de salida
Modelo Descripción Precio por 1000 tokens / Precio por imagen de entrada Número de fichas Precio Precio por 1000 tokens Número de fichas Precio
Incorporaciones multimodales de Amazon Titan Incrustación de diapositivas/imágenes $0.00006 1 $0.00000006 $0.000 0 $0.00000
Incorporaciones multimodales de Amazon Titan Incrustación de preguntas $0.00080 20 $0.00001600 $0.000 0 $0.00000
Soneto de Claude 3 de Anthropic Respuesta final $0.00300 700 $0.00210000 $0.015 8 $0.00012
Costo por entrada/salida $0.00211606 $0.00012
Costo total por pregunta $0.00224
Enfoque 2
Fichas de entrada Fichas de salida
Modelo Descripción Precio por 1000 tokens / Precio por imagen de entrada Número de fichas Precio Precio por 1000 tokens Número de fichas Precio
Soneto de Claude 3 de Anthropic Descripción de diapositiva/imagen $0.00300 4523 $0.01356900 $0.015 350 $0.00525
Incrustaciones de texto de Amazon Titan Incrustación de descripción de diapositiva/imagen $0.00010 350 $0.00003500 $0.000 0 $0.00000
Incrustaciones de texto de Amazon Titan Incrustación de preguntas $0.00010 20 $0.00000200 $0.000 0 $0.00000
Soneto de Claude 3 de Anthropic Respuesta final $0.00300 700 $0.00210000 $0.015 8 $0.00012
Costo por entrada/salida $0.01570600 $0.00537
Costo total por pregunta $0.02108

Limpiar

Para evitar incurrir en cargos, elimine todos los recursos de las Partes 1 y 2 de la solución. Puede hacerlo eliminando las pilas mediante la consola de AWS CloudFormation.

Conclusión

En las partes 1 y 2 de esta serie, exploramos formas de utilizar el poder de los FM multimodales, como Amazon Titan Multimodal Embeddings, Amazon Titan Text Embeddings y Claude 3 Sonnet de Anthropic. En esta publicación, comparamos los enfoques desde una perspectiva de precisión y precios.

El código para todas las partes de la serie está disponible en el repositorio de GitHub. Le animamos a implementar ambos enfoques y explorar diferentes modelos de Anthropic Claude disponibles en Amazon Bedrock. Puede descubrir nueva información y descubrir nuevas perspectivas utilizando el contenido de diapositivas de su organización con cualquiera de los enfoques. Compare los dos enfoques para identificar un mejor flujo de trabajo para sus presentaciones de diapositivas.

Dado el rápido desarrollo de la IA generativa, existen varias formas de mejorar los resultados y abordar el problema. Estamos explorando realizar una búsqueda híbrida y agregar filtros de búsqueda extrayendo entidades de la pregunta para mejorar los resultados. La cuarta parte de esta serie explorará estos conceptos en detalle.

Partes de este código se publican bajo el Licencia Apache 2.0.

Recursos

[1] Tanaka, Ryota y Nishida, Kyosuke y Nishida, Kosuke y Hasegawa, Taku y Saito, Itsumi y Saito, Kuniko. (2023). SlideVQA: un conjunto de datos para la respuesta visual de preguntas en documentos en varias imágenes. Actas de la Conferencia AAAI sobre Inteligencia Artificial. 37. 13636-13645. 10.1609/aaai.v37i11.26598.


Acerca de los autores

Archana Inapudi es arquitecto senior de soluciones en AWS y brinda soporte a un cliente estratégico. Tiene más de una década de experiencia en múltiples industrias liderando iniciativas técnicas estratégicas. Archana es un aspirante a miembro de la comunidad de campo técnico de IA/ML en AWS. Antes de unirse a AWS, Archana dirigió una migración de fuentes de datos tradicionales aisladas a Hadoop en una empresa de atención médica. Le apasiona utilizar la tecnología para acelerar el crecimiento, brindar valor a los clientes y lograr resultados comerciales.

Manju Prasad es arquitecto senior de soluciones en Amazon Web Services. Se centra en brindar orientación técnica en una variedad de dominios técnicos, incluidos AI/ML. Antes de unirse a AWS, diseñó y construyó soluciones para empresas del sector de servicios financieros y también para una startup. Ha trabajado en todas las capas de la pila de software, desde desarrollo web hasta bases de datos, y tiene experiencia en todos los niveles del ciclo de vida del desarrollo de software. Le apasiona compartir conocimientos y fomentar el interés por el talento emergente.

Amit Arora es un arquitecto especialista en inteligencia artificial y aprendizaje automático en Amazon Web Services y ayuda a los clientes empresariales a utilizar servicios de aprendizaje automático basados ​​en la nube para escalar rápidamente sus innovaciones. También es profesor adjunto en el programa de análisis y ciencia de datos de maestría en la Universidad de Georgetown en Washington, DC.

Antara Raisa es arquitecto de soluciones de inteligencia artificial y aprendizaje automático en Amazon Web Services y brinda soporte a clientes estratégicos con sede en Dallas, Texas. También tiene experiencia previa trabajando con grandes socios empresariales en AWS, donde trabajó como arquitecta de soluciones de éxito de socios para clientes centrados en lo digital.