Construcción de una Aplicación de Descripción de Imágenes Generativas con Claude 3.5 Sonnet de Anthropic en Amazon Bedrock y AWS CDK

Elena Digital López

Crear descripciones de imágenes es una necesidad común en muchas industrias. Una de las aplicaciones más frecuentes es la etiquetación de imágenes con metadatos descriptivos para mejorar la capacidad de búsqueda en los repositorios de contenido de una organización. Las plataformas de comercio electrónico también utilizan descripciones de imágenes generadas automáticamente para proporcionar a los clientes detalles adicionales sobre los productos. Además, las descripciones descriptivas de las imágenes mejoran la accesibilidad para los usuarios con discapacidades visuales.

Con los avances en la inteligencia artificial (IA) generativa y los modelos multimodales, la producción de descripciones de imágenes ahora es más sencilla. Amazon Bedrock ofrece acceso a la familia de modelos Claude 3 de Anthropic, que incorpora nuevas capacidades de visión por computadora, lo que permite a Claude comprender y analizar imágenes. Esto abre nuevas posibilidades para la interacción multimodal. Sin embargo, construir una aplicación de extremo a extremo a menudo requiere una infraestructura sustancial y ralentiza el desarrollo.

Los Generative AI CDK Constructs, junto con Amazon Bedrock, ofrecen una combinación poderosa para agilizar el desarrollo de aplicaciones. Esta integración proporciona patrones de infraestructura reutilizables y APIs, facilitando el acceso a los modelos base de última generación (FMs) de Amazon y startups líderes. Amazon Bedrock es un servicio completamente gestionado que ofrece una selección de FMs de alto rendimiento de empresas líderes como AI21 Labs, Anthropic, Cohere, Meta, Mistral AI, Stability AI, y Amazon a través de una sola API, junto con un amplio conjunto de capacidades para construir aplicaciones de IA generativa con seguridad, privacidad y IA responsable. Los Generative AI CDK Constructs pueden acelerar el desarrollo de aplicaciones proporcionando patrones de infraestructura reutilizables, permitiendo enfocar el tiempo y esfuerzo en los aspectos únicos de la aplicación.

En esta publicación, se profundiza en el proceso de construcción y despliegue de una aplicación de ejemplo capaz de generar descripciones multilingües para múltiples imágenes con una interfaz de usuario (UI) en Streamlit, impulsada por AWS Lambda mediante el Amazon Bedrock SDK y AWS AppSync, dirigida por los Generative AI CDK Constructs.

Los sistemas de IA multimodal son un tipo avanzado de IA que pueden procesar y analizar datos de múltiples modalidades a la vez, incluyendo texto, imágenes, audio y video. A diferencia de los modelos de IA tradicionales entrenados en un solo tipo de datos, la IA multimodal integra diversas fuentes de datos para desarrollar una comprensión más integral de la información compleja.

Claude 3 de Anthropic en Amazon Bedrock es un modelo multimodal líder con capacidades de visión por computadora para analizar imágenes y generar salidas textuales descriptivas. Claude 3 sobresale en la interpretación de activos visuales complejos como gráficos, diagramas e informes. El modelo combina su visión por computadora con el procesamiento de lenguaje para proporcionar resúmenes textuales matizados de la información clave extraída de las imágenes. Esto permite a Claude 3 desarrollar una comprensión más profunda de los datos visuales que la IA tradicional de una sola modalidad.

En marzo de 2024, Amazon Bedrock proporcionó acceso a la familia de modelos Claude 3 de Anthropic. Los tres modelos en la familia son Claude 3 Haiku, el modelo más rápido y compacto para una capacidad de respuesta casi instantánea, Claude 3 Sonnet, el modelo ideal equilibrado entre habilidades y velocidad, y Claude 3 Opus, la oferta más inteligente para el rendimiento al nivel más alto en tareas altamente complejas. En junio de 2024, Amazon Bedrock anunció soporte para Claude 3.5. La aplicación de ejemplo en esta publicación admite Claude 3.5 Sonnet y los tres modelos de Claude 3.

Generative AI CDK Constructs, una extensión del AWS Cloud Development Kit (AWS CDK), es un marco de desarrollo de código abierto para definir infraestructuras en la nube como código (IaC) y desplegarlo a través de AWS CloudFormation.

Los Constructos son los bloques de construcción fundamentales de las aplicaciones AWS CDK. La Biblioteca de Constructos de AWS categoriza los constructos en tres niveles: Nivel 1 (el constructo de nivel más bajo sin abstracción), Nivel 2 (que mapea directamente a recursos individuales de AWS CloudFormation) y Nivel 3 (patrones con el nivel más alto de abstracción).

La Biblioteca de Constructos de Generative AI CDK proporciona bloques de construcción modulares para integrar sin problemas los servicios y recursos de AWS en soluciones utilizando capacidades de IA generativa. Al utilizar Amazon Bedrock para acceder a los FMs y combinar con servicios sin servidor de AWS como Lambda y AWS AppSync, estos constructos de AWS CDK simplifican el proceso de ensamblar infraestructuras en la nube para IA generativa. Se pueden configurar y desplegar soluciones rápidamente para generar contenido utilizando abstracciones intuitivas. Este enfoque aumenta la productividad y reduce el tiempo de comercialización para entregar aplicaciones innovadoras impulsadas por los últimos avances en IA generativa en la nube de AWS.

La aplicación de muestra en esta publicación utiliza el constructo aws-summarization-appsync-stepfn de la Biblioteca de Constructos de Generative AI CDK. El constructo aws-summarization-appsync-stepfn proporciona una arquitectura sin servidor que utiliza AWS AppSync, AWS Step Functions, y Amazon EventBridge para ofrecer un servicio asincrónico de resumen de imágenes. Este constructo ofrece una solución escalable y orientada a eventos para procesar y generar descripciones para activos de imágenes.

AWS AppSync actúa como el punto de entrada, exponiendo una API GraphQL que permite a los clientes iniciar solicitudes de resumen y descripción de imágenes. La API utiliza mutaciones de suscripción, lo que permite ejecuciones asincrónicas de las solicitudes. Esta separación promueve las mejores prácticas para sistemas acoplados de manera flexible y orientados a eventos.

EventBridge sirve como el bus de eventos, facilitando la comunicación entre AWS AppSync y Step Functions. Cuando un cliente envía una solicitud a través de la API GraphQL, se emite un evento a EventBridge, invocando una ejecución del flujo de trabajo de Step Functions.

Step Functions orquesta la ejecución de tres funciones Lambda, cada una responsable de una tarea específica en el proceso de resumen de imágenes:

1. Validador de entrada: Esta función Lambda realiza la validación de la entrada, asegurándose de que las solicitudes proporcionadas cumplan con el formato esperado. También maneja la carga de los activos de imagen de entrada a un bucket de Amazon Simple Storage Service (Amazon S3) designado para activos sin procesar.
2. Lector de documentos: Esta función Lambda recupera los activos de imagen sin procesar del bucket de activos de entrada, realiza verificaciones de moderación de imágenes utilizando Amazon Rekognition, y carga los activos procesados a un bucket de S3 designado para archivos transformados. Esta separación de activos sin procesar y procesados facilita la auditoría y la versioning.
3. Generador de resúmenes: Esta función Lambda genera un resumen textual o una descripción para los activos de imagen procesados, utilizando modelos de aprendizaje automático (ML) u otras técnicas de análisis de imágenes.

El orquestador del flujo de trabajo de Step Functions emplea un estado Mapa, lo que permite ejecuciones en paralelo de múltiples activos de imagen. Esta capacidad de procesamiento concurrente proporciona una utilización óptima de recursos y minimiza la latencia, ofreciendo una solución de resumen de imágenes altamente escalable y eficiente.

La autenticación y autorización de usuarios son manejadas por Amazon Cognito, proporcionando servicios seguros de gestión de acceso e identidad para los usuarios de la aplicación. Esto asegura que solo los usuarios autenticados y autorizados puedan acceder e interactuar con el servicio de resumen de imágenes. La solución incorpora características de observabilidad a través de la integración con Amazon CloudWatch y AWS X-Ray.

La interfaz de usuario de la aplicación se implementa utilizando el marco de código abierto Streamlit, que proporciona una experiencia moderna y receptiva para interactuar con el servicio de resumen de imágenes. Puede acceder al código fuente del proyecto en el repositorio público de GitHub.

En conclusión, en esta publicación se discutió cómo integrar Amazon Bedrock con los Generative AI CDK Constructs. Esta solución permite el desarrollo y despliegue rápido de infraestructuras en la nube adaptadas para una aplicación de descripción de imágenes utilizando el poder de la IA generativa, específicamente Claude 3 de Anthropic. Los Generative AI CDK Constructs abstraen las complejidades intrincadas de la infraestructura, acelerando así los tiempos de desarrollo.

La Biblioteca de Constructos de Generative AI CDK ofrece una suite integral de constructos, permitiendo a los desarrolladores aumentar y mejorar las capacidades de IA generativa dentro de sus aplicaciones, desbloqueando un sinfín de posibilidades para la innovación. Pruebe la Biblioteca de Constructos de Generative AI CDK para sus propios casos de uso, y comparta sus comentarios y preguntas en los comentarios.
vía: AWS machine learning blog

Scroll al inicio