Lea gráficos, diagramas, tablas y páginas escaneadas mediante indicaciones multimodales en Amazon Bedrock

Los modelos de lenguaje grande (LLM) han recorrido un largo camino desde poder leer solo texto hasta poder leer y comprender gráficos, diagramas, tablas e imágenes. En esta publicación, analizamos cómo utilizar los LLM de Roca Amazónica no solo extraer texto, sino también comprender la información disponible en imágenes.

Amazon Bedrock es un servicio totalmente administrado que ofrece una selección de modelos básicos (FM) de alto rendimiento de empresas líderes en inteligencia artificial como AI21 Labs, Anthropic, Cohere, Meta, Mistral AI, Stability AI y Amazon a través de una única API. También proporciona un amplio conjunto de capacidades para crear aplicaciones de IA generativa con seguridad, privacidad e IA responsable.

Descripción general de la solución

En esta publicación, demostramos cómo utilizar modelos en Amazon Bedrock para recuperar información de imágenes, tablas y documentos escaneados. Proporcionamos los siguientes ejemplos:

  • Realizar tareas de clasificación y detección de objetos.
  • Leer y consultar gráficos.
  • Leer diagramas de flujo y diagramas de arquitectura (como un diagrama de arquitectura de AWS) y convertirlos en texto.

También exploramos casos de uso específicos en los que Amazon Bedrock puede ayudarle a generar información a partir de una imagen:

  • Identificar la acción en la imagen.
  • Nombra un producto y extrae metadatos para generar un eslogan y una descripción.
  • Generar un listado inmobiliario para una propiedad
  • Generar una receta a partir de la imagen de un plato

Realizar tareas de clasificación y detección de objetos utilizando LLM

En el momento de escribir este artículo, los mejores algoritmos para la clasificación y detección de objetos se basan en redes neuronales convolucionales. Sin embargo, los LLM como Claude 3 Sonnet de Anthropic en Amazon Bedrock también pueden realizar estas tareas utilizando indicaciones de disparo cero, que se refieren a una técnica de indicaciones para asignar una tarea al modelo sin proporcionar ejemplos específicos o capacitación para esa tarea específica. En el siguiente ejemplo, mostramos cómo clasificar una imagen según las clases que pasamos con el mensaje. La siguiente imagen es una muestra Tarjeta de Medicare australiana.

Usamos el siguiente mensaje con Claude 3 Sonnet de Anthropic para clasificar la imagen:

Este es uno de los documentos que ha subido un cliente que busca un préstamo. La imagen puede pertenecer a una de las siguientes cuatro clases: documento de identidad, extracto bancario, formulario de solicitud o factura de servicios públicos. Identifica cuál es la clase de este documento y dame solo el nombre de la clase. No necesito ninguna otra información por ahora.

Recibimos la siguiente respuesta del LLM:

Según la imagen proporcionada, la clase de este documento parece ser un documento de identidad o documento de identificación. La imagen muestra lo que parece ser una tarjeta de Medicare o una tarjeta de identificación similar emitida por el gobierno que muestra nombres y un número de identificación.

Ha identificado correctamente la clase; sin embargo, una respuesta en JSON haría más sencillo procesar esa respuesta. Agregamos lo siguiente al final del mensaje:

proporcione la respuesta en formato json con la clave como “clase” y el valor como la clase del documento

Obtenemos la siguiente respuesta:

{
"class": "ID"
}

Ahora puede leer la respuesta JSON usando una biblioteca de su elección, como Python JSON biblioteca.

En el siguiente ejemplo, utilizamos el modelo Llama 3.2 90B Vision de Meta para identificar un objeto en una imagen. La siguiente imagen es de una caja de cambios.

Usamos el siguiente mensaje para identificar la caja de cambios de la imagen:

Identifique toda la pieza de la máquina en esta imagen. Proporcione solo el nombre de la pieza de la máquina en formato JSON con la clave como “nombre” y el valor como el nombre de la pieza de la máquina.

La siguiente captura de pantalla muestra el mensaje y la respuesta que da el modelo.

Leer y consultar gráficos.

En el siguiente ejemplo, mostramos cómo leer un gráfico y luego interpolar y extrapolar valores en el gráfico. El siguiente gráfico muestra el crecimiento de la población de algunos países (fuente).

Pasamos esta imagen al Soneto Claude 3 de Anthropic junto con el siguiente mensaje:

A partir de este gráfico, cree una tabla para la población de la India, con la primera columna como el año y la segunda columna como la población en millones. Cree una fila cada 5 años desde 1950 hasta 2025.

Le pedimos que cree una fila cada 5 años, por lo que el modelo debe interpolar valores. También le pedimos que extienda la tabla hasta 2025, y como los datos son solo hasta 2021, el modelo tendrá que extrapolar los valores. Obtenemos la siguiente respuesta:

Aquí hay una tabla para la población de la India, con la primera columna como el año y la segunda columna como la población en millones, cada 5 años desde 1950 hasta 2025:

| Year | Population (in millions) |

|------|--------------------------|

| 1950 | 357.6 |

| 1955 | 390.5 |

| 1960 | 427.8 |

| 1965 | 468.0 |

| 1970 | 510.9 |

| 1975 | 556.9 |

| 1980 | 605.7 |

| 1985 | 658.0 |

| 1990 | 713.8 |

| 1995 | 773.0 |

| 2000 | 835.6 |

| 2005 | 901.7 |

| 2010 | 971.5 |

| 2015 | 1045.0 |

| 2020 | 1122.0 |

| 2025 | 1202.4 |

Es posible que la extrapolación no sea precisa y aquí es donde sería útil un enfoque de aprendizaje automático (ML) más tradicional.

También puede pedirle al modelo que combine su conocimiento con el conocimiento del gráfico. El siguiente mensaje solicita la población de los países en este gráfico para 2021, junto con la capital del país:

¿Puedes crear una tabla para 2021 con la primera columna como el nombre del país, la segunda columna como la población en millones y la tercera columna como la capital de ese país?

La siguiente captura de pantalla muestra la respuesta.

El LLM ha rellenado la tabla basándose en el gráfico y en su propio conocimiento sobre la capital de cada país.

También puedes probar algo más difícil. La siguiente imagen es un mapa meteorológico de la

Puede hacerle al LLM una pregunta específica, como la siguiente:

Este es un mapa de precipitaciones para Australia. ¿Está lloviendo en Sídney en este momento?

No es necesario que le diga al LLM dónde está Sydney o que la imagen corresponde a la lluvia.

Obtenemos la siguiente respuesta:

Según el mapa de precipitaciones mostrado, no parece que se produzcan precipitaciones significativas en el área de Sydney, que se encuentra en la costa oriental del continente australiano. El mapa utiliza líneas de contorno y colores para representar los niveles de precipitación, pero la región alrededor de Sydney no tiene áreas sombreadas ni líneas de contorno que indiquen las precipitaciones en este período de tiempo particular representado en el mapa. Por lo tanto, los datos disponibles sugieren que probablemente no esté lloviendo en Sydney en el momento representado por este mapa de precipitación.

Hay un par de observaciones interesantes de este caso de uso:

  • Claude 3 Sonnet de Anthropic puede leer mapas
  • El modelo es capaz de leer superposiciones en un mapa.
  • Frases como “región alrededor de Sydney” muestran que el modelo no necesita trabajar con información exacta, sino que puede utilizar una aproximación, tal como lo hacen los humanos.

Leer diagramas de flujo y diagramas de arquitectura.

Puede leer diagramas de arquitectura de AWS utilizando el modelo Meta Llama 3.2 90B Vision. El siguiente es un diagrama de arquitectura de ejemplo para modernizando aplicaciones con microservicios usando Servicio Amazon Elastic Kubernetes (Amazon EKS).

Usamos el siguiente mensaje para leer este diagrama:

Los pasos de este diagrama se explican utilizando los números del 1 al 11. Los números se muestran en cuadrados azules. ¿Puedes explicar el diagrama usando los números del 1 al 11 y una explicación de lo que sucede en cada uno de esos pasos?

La siguiente captura de pantalla muestra la respuesta que recibimos del LLM (truncada por brevedad).

Además, puede utilizar este diagrama para hacer preguntas de seguimiento:

¿Por qué necesitamos un equilibrador de carga de red en esta arquitectura?

La siguiente captura de pantalla muestra la respuesta del modelo.

Como puede ver, el LLM actúa ahora como su asesor para preguntas relacionadas con esta arquitectura.

Sin embargo, no estamos limitados a utilizar IA generativa únicamente para la ingeniería de software. También puede leer diagramas e imágenes de ingeniería, arquitectura y atención médica.

Para este ejemplo, utilizamos un diagrama de proceso tomado de Wikipedia.

Para saber para qué sirve este diagrama de proceso y describir el proceso, puede utilizar el siguiente mensaje:

¿Puedes nombrar el proceso que se muestra en el ejemplo? Describa también el proceso utilizando pasos numerados y vaya de izquierda a derecha.

La siguiente captura de pantalla muestra la respuesta.

El LLM ha hecho un buen trabajo al descubrir que el diagrama corresponde al proceso Haber para producir amoníaco. También describe los pasos del proceso.

Identificar acciones en una imagen.

Podrás identificar y clasificar las acciones que tienen lugar en la imagen. La capacidad del modelo para identificar acciones con precisión se ve reforzada por su capacidad para analizar información contextual, como los objetos circundantes, los entornos y las posiciones de individuos o entidades dentro de la imagen. Al combinar estas señales visuales y elementos contextuales, Claude 3 Sonnet de Anthropic puede tomar decisiones informadas sobre la naturaleza de las acciones que se realizan, proporcionando una comprensión integral de la escena representada en la imagen.

El siguiente es un ejemplo en el que no solo podemos clasificar la acción del jugador sino también proporcionarle retroalimentación comparando la acción con la de un jugador profesional.

Proporcionamos al modelo la siguiente imagen de un tenista. La imagen se generó utilizando el modelo Stability AI (SDXL 1.0) en Amazon Bedrock.

La siguiente captura de pantalla muestra el mensaje y la respuesta del modelo.

Nombra un producto y extrae metadatos para generar un eslogan y una descripción.

En el campo del marketing y el desarrollo de productos, encontrar un nombre de producto perfecto y un contenido promocional creativo puede resultar un desafío. Con las capacidades de conversión de imagen a texto de Claude 3 Sonnet de Anthropic, puede cargar la imagen del producto y el modelo puede generar un nombre de producto único y crear eslóganes que se adapten al público objetivo.

Para este ejemplo, proporcionamos la siguiente imagen de una zapatilla al modelo (la imagen se generó utilizando el modelo Stability AI (SDXL 1.0) en Amazon Bedrock).

La siguiente captura de pantalla muestra el mensaje.

La siguiente captura de pantalla muestra la respuesta del modelo.

En el ámbito minorista y de comercio electrónico, también puede utilizar Claude 3 Sonnet de Anthropic para extraer información detallada del producto a partir de las imágenes para la gestión de inventario.

Por ejemplo, utilizamos el mensaje que se muestra en la siguiente captura de pantalla.

La siguiente captura de pantalla muestra la respuesta del modelo.

Crear un listado de bienes raíces para una propiedad

Puede cargar imágenes del plano de planta de una propiedad y fotografías del interior y exterior de la casa y luego obtener una descripción para usar en un listado de bienes raíces. Esto es útil para aumentar la creatividad y la productividad de los agentes inmobiliarios mientras anuncian propiedades. Los arquitectos también podrían utilizar este mecanismo para explicar el plano a los clientes.

Proporcionamos el siguiente plano de planta de ejemplo para el modelo.

La siguiente captura de pantalla muestra el mensaje.

La siguiente captura de pantalla muestra la respuesta.

Generar una receta a partir de la imagen de un plato

También puedes utilizar Claude 3 Sonnet de Anthropic para crear una receta basada en la imagen de un plato. Sin embargo, de fábrica, el modelo solo puede identificar los platos que están incluidos en el conjunto de datos utilizado para el entrenamiento del modelo. Factores como la sustitución de ingredientes, las técnicas de cocina y las variaciones culturales en la cocina pueden plantear desafíos importantes.

Por ejemplo, proporcionamos la siguiente imagen de un pastel al modelo para extraer la receta. La imagen se generó utilizando el modelo Stability AI (SDXL 1.0) en Amazon Bedrock.

La siguiente captura de pantalla muestra el mensaje.

El modelo identifica con éxito el plato como pastel de la Selva Negra y crea una receta detallada. Es posible que la receta no cree el pastel exacto que se muestra en la figura, pero se acerca a un pastel de la Selva Negra.

Conclusión

FM como el modelo Claude 3 Sonnet y Meta Llama 3.2 90B Vision de Anthropic, disponibles en Amazon Bedrock, han demostrado capacidades impresionantes en el procesamiento de imágenes. Estos FM desbloquean una variedad de funciones poderosas, que incluyen clasificación de imágenes, reconocimiento óptico de caracteres (OCR) y la capacidad de interpretar imágenes complejas como gráficos y planos arquitectónicos. Estas innovaciones ofrecen soluciones novedosas a problemas desafiantes, desde la búsqueda en archivos de documentos escaneados hasta la generación de contenido de texto inspirado en imágenes y la conversión de información visual en datos estructurados.

Para comenzar a utilizar estas capacidades para sus necesidades específicas, le recomendamos explorar la patio de juegos de chat función en Amazon Bedrock, que le permite interactuar con imágenes y extraer información de ellas.


Acerca de los autores

Mithil Shah es arquitecto principal de soluciones de IA/ML en Amazon Web Services. Ayuda a los clientes del sector comercial y público a utilizar AI/ML para lograr sus resultados comerciales. Actualmente ayuda a los clientes a crear robots de chat y funciones de búsqueda utilizando agentes LLM y RAG.

Santosh Kulkarni es arquitecto senior de soluciones en Amazon Web Services y se especializa en AI/ML. Le apasiona la IA generativa y ayuda a los clientes a desbloquear el potencial empresarial e impulsar resultados viables con el aprendizaje automático a escala. Fuera del trabajo, le gusta leer y viajar.