Los editores digitales buscan continuamente formas de optimizar y automatizar sus flujos de trabajo de medios para generar y publicar contenido nuevo tan rápido como puedan, pero sin renunciar a la calidad.
Agregar imágenes para capturar la esencia del texto puede mejorar la experiencia de lectura. Las técnicas de aprendizaje automático pueden ayudarlo a descubrir tales imágenes. "Una imagen sorprendente es una de las formas más efectivas de captar la atención del público y crear compromiso con su historia, pero también tiene que tener sentido".
En este proyecto AWS-Samples, verá cómo puede usar modelos de la Fundación Amazon Titan para comprender rápidamente un artículo y encontrar las mejores imágenes para acompañarlo. Esta vez, genera la incrustación directamente de la imagen.
Un concepto clave en la búsqueda semántica son las incrustaciones. Una incrustación es una representación numérica de alguna entrada, una imagen, texto o ambos, en forma de vector. Cuando tiene muchos vectores, puede medir la distancia entre ellos, y los vectores que están cerca de distancia son semánticamente similares o relacionados.
Amazon Bedrock es un servicio totalmente administrado que ofrece una selección de modelos de cimientos de alto rendimiento (FMS) de las principales compañías de IA, incluidos los laboratorios AI21, antrópico, coherente, meta, AI de estabilidad y Amazon con una sola API, junto con un amplio conjunto de capacidades para ayudarlo a construir aplicaciones generativas de IA generativas, simplificar el desarrollo mientras mantienen la privacidad y la seguridad.
Amazon Titan ha agregado recientemente un nuevo modelo de incrustación a su colección, Titan Multimodal Incrushings. Este nuevo modelo se puede utilizar para la búsqueda multimodal, los sistemas de recomendación y otras aplicaciones posteriores.
Los modelos multimodales pueden comprender y analizar datos en múltiples modalidades, como texto, imagen, video y audio. Este último modelo de Amazon Titan puede aceptar texto, imágenes o ambos. Esto significa que usa el mismo modelo para generar incrustaciones de imágenes y texto y usa esos incrustaciones para calcular cuán similares son los dos.


Estos siguientes pasos hablan sobre la secuencia de acciones que permiten la imagen semántica y la búsqueda de celebridades.
En este ejemplo, vio cómo usar Amazon Rekognition, Amazon Comprend, Amazon Bedrock y OpenSearch Service para extraer metadatos de sus imágenes y luego usar técnicas de ML para descubrirlos automáticamente usando la búsqueda de celebridades y semánticas. Esto es particularmente importante dentro de la industria editorial, donde la velocidad es importante para obtener contenido fresco rápidamente y en múltiples plataformas.
Como siguiente paso, implementa la solución en su cuenta de AWS y cargue algunas de sus propias imágenes para probar cómo la búsqueda semántica puede funcionar para usted.
Sam cli
La solución utiliza la SAM CLI para la implementación. Asegúrese de usar la última versión de Sam CLI
Estibador
La solución utiliza la opción SAM CLI para construir dentro de un contenedor para evitar la necesidad de dependencias locales. Necesitará Docker disponible para esto.
Nodo
La parte delantera para esta solución es una aplicación web React que se puede ejecutar localmente utilizando nodo
npm
La instalación de los paquetes requeridos para ejecutar la aplicación web localmente, o construirla para la implementación remota, requiere NPM.
Acceso a modelos base
Si está buscando interactuar con modelos de Amazon Bedrock, debe solicitar acceso a los modelos base en una de las regiones donde está disponible Amazon Bedrock. Asegúrese de leer y aceptar los acuerdos de licencia de usuario final de los modelos o EULA.
| Modelo | Entrada de token máximo | Dimensión de incrustación | Precio para 1k Token de entrada | Precio para tokens de salida de 1k |
|---|---|---|---|---|
| Incrustos multimodales de Amazon | 128 | 1.024 (predeterminado), 384, 256 | Precio de roca | n / A |
| Texto de Titán - Express | 8k | n / A | Precio de roca |
Deberá solicitar acceso a los dos modelos anteriores.
Cuando resumimos el texto en nuestro flujo de trabajo, podemos especificar los tokens de salida Max en el modelo Titan Text - Express, y esto asegura que pasemos en menos de 128 tokens al modelo de incrustación.
El modelo de incrustación multimodal también tiene un tamaño de dimensión de imagen máxima de 2048x2048 que manejamos como parte de la función de incrustación de lambda.
Nota:
Esta implementación está configurada actualmente para implementarse en la región estadounidense-East-1. Consulte la disponibilidad de la región de Bedrock de Amazon y actualice el archivo samconfig.toml para reflejar la región deseada.
Recomendamos implementar con AWS Cloud9. Si desea usar Cloud9 para implementar la solución, necesitará lo siguiente antes de continuar:
m5.large como tipo de instancia.Amazon Linux 2 como plataforma.Puede ejecutar estos comandos desde su línea de comando/terminal, o puede usar AWS Cloud9.
git clone https://github.com/aws-samples/semantic-image-search-for-articles.git cd semantic-image-search-for-articlesSi usa Cloud9, aumente el volumen EBS de la instancia a al menos 50 GB. Para hacer esto, ejecute el siguiente comando desde el terminal Cloud9:
bash ./scripts/cloud9-resize.sh 50
Consulte la documentación para obtener más detalles sobre el cambio de tamaño del medio ambiente.
Revise este archivo: samconfig.toml
Aquí puede nombrar su pila y elegir la región en la que desea implementar.
region = "us-east-1"Compruebe si los servicios de AWS están disponibles en la región que está eligiendo.
Como la implementación implementará Amazon Cloudfront, esto puede tomar aproximadamente 20 minutos.
Cloud9 genera token STS para hacer la implementación, sin embargo, estas credenciales solo duran 15 minutos, por lo tanto, el token caducará antes de que se complete la implementación y, por lo tanto, no podrá ver las salidas directamente desde Cloud9.
Cómo autenticarse con las credenciales a corto plazo puede exportar los tokens de clave de acceso, asegurándose de que duren al menos 30 minutos o 1800 segundos:
export AWS_ACCESS_KEY_ID= < PASTE_ACCESS_KEY >
export AWS_SECRET_ACCESS_KEY= < PASTE_SECRET_ACCESS_KEY >
export AWS_SESSION_TOKEN= < PASTE_SESSION_TOKEN >(Si los tokens caducan, puede dejar que la implementación se complete, verificando el progreso dentro de CloudFormation y luego volver a ejecutar el script de implementación a continuación, ya que el recurso de Amazon CloudFront ya existirá, la implementación se completará rápidamente)
La implementación de la solución se logra con el siguiente comando:
npm install && npm run deploy Este comando ejecutará una serie de scripts como sam build , sam deploy y algunos otros para configurar el entorno frontal con las variables correctas.

La autenticación es administrada por Amazon Cognito. Deberá crear un nuevo usuario para poder iniciar sesión.
Puede encontrar la ID de usuario de UserPool en la salida de CloudFormation y elegir ese UserPool y crear un nuevo usuario para iniciar sesión.

Una vez completada, la salida de CLI mostrará un valor para la URL de CloudFront para poder ver la aplicación web, por ejemplo, https://d123abc.cloudfront.net/ - También puede ver esto en las salidas de CloudFormation.
La aplicación web permite al usuario cargar imágenes a S3 y ser indexada por OpenSearch, así como emitir consultas para Opessearch para devolver las 10 imágenes principales que están más relacionadas semánticamente con el contenido del artículo.
Para evitar incurrir en cargos futuros, elimine los recursos.
sam delete desde el terminal o vaya a CloudFormation, elija la pila que implementó a través del script de implementación mencionado anteriormente y elimine la pila. 
Ver contribuyendo para más información.
Esta biblioteca tiene licencia bajo la licencia MIT-0. Ver el archivo de licencia.