Les éditeurs numériques recherchent continuellement des moyens de rationaliser et d'automatiser leurs flux de travail multimédias pour générer et publier de nouveaux contenus aussi rapidement que possible, mais sans prévenir la qualité.
L'ajout d'images pour capturer l'essence du texte peut améliorer l'expérience de lecture. Les techniques d'apprentissage automatique peuvent vous aider à découvrir de telles images. «Une image frappante est l'un des moyens les plus efficaces de capter l'attention du public et de créer un engagement avec votre histoire - mais cela doit également avoir un sens».
Dans ce projet AWS-Samples, vous voyez comment vous pouvez utiliser les modèles de fondation Amazon Titan pour comprendre rapidement un article et trouver les meilleures images pour l'accompagner. Cette fois, vous générez l'incorporation directement à partir de l'image.
Un concept clé dans la recherche sémantique est les intérêts. Une intégration est une représentation numérique d'une entrée - une image, du texte ou les deux - sous la forme d'un vecteur. Lorsque vous avez de nombreux vecteurs, vous pouvez mesurer la distance entre eux, et les vecteurs qui sont proches de distance sont sémantiquement similaires ou liés.
Le fondement d'Amazon est un service entièrement géré qui offre un choix de modèles de fondation (FMS) très performants des principales sociétés d'IA, notamment des laboratoires AI21, Anthropic, Cohere, Meta, Stability IA et Amazon avec une seule API, ainsi qu'un large ensemble de capacités pour vous aider à créer des applications généatives d'IA, à simplifier le développement tout en conservant la confidentialité et la sécurité.
Amazon Titan a récemment ajouté un nouveau modèle d'incorporation à sa collection, Titan Multimodal Embeddings. Ce nouveau modèle peut être utilisé pour la recherche multimodale, les systèmes de recommandation et d'autres applications en aval.
Les modèles multimodaux peuvent comprendre et analyser les données dans plusieurs modalités telles que le texte, l'image, la vidéo et l'audio. Ce dernier modèle d'Amazon Titan peut accepter du texte, des images ou les deux. Cela signifie que vous utilisez le même modèle pour générer des intégres d'images et de texte et d'utiliser ces intérêts pour calculer à quel point les deux sont similaires.


Ces étapes suivantes parlent de la séquence d'actions qui permettent une image sémantique et une recherche de célébrités.
Dans cet exemple, vous avez vu comment utiliser Amazon Rekognition, Amazon Comprehend, Amazon Bedrock et Opensearch Service pour extraire les métadonnées de vos images, puis utiliser des techniques ML pour les découvrir automatiquement en utilisant automatiquement la recherche de célébrités et sémantiques. Ceci est particulièrement important dans l'industrie de l'édition, où la vitesse est importante pour obtenir un nouveau contenu rapidement et sur plusieurs plateformes.
En tant qu'étape suivante, déployez la solution dans votre compte AWS et téléchargez certaines de vos propres images pour tester comment la recherche sémantique peut vous fonctionner.
Sam CLI
La solution utilise le SAM CLI pour le déploiement. Assurez-vous d'utiliser la dernière version de Sam CLI
Docker
La solution utilise l'option SAM CLI pour construire à l'intérieur d'un conteneur pour éviter la nécessité de dépendances locales. Vous aurez besoin de Docker disponible pour cela.
Nœud
Le frontal de cette solution est une application Web React qui peut être exécutée localement à l'aide de nœud
NPM
L'installation des packages requis pour exécuter l'application Web localement ou le construire pour le déploiement à distance nécessite un NPM.
Accès aux modèles de base
Si vous cherchez à interagir avec les modèles du substratum rocheux d'Amazon, vous devez demander l'accès aux modèles de base dans l'une des régions où le fondement d'Amazon est disponible. Assurez-vous de lire et d'accepter les accords de licence de l'utilisateur final des modèles ou la CLUA.
| Modèle | Entrée de jeton maximum | Dimension d'incorporation | Prix pour 1k jeton d'entrée | Prix pour les jetons de sortie 1K |
|---|---|---|---|---|
| Amède multimodal Amazon | 128 | 1 024 (par défaut), 384, 256 | Prix du fondement | n / A |
| Titan Text - Express | 8K | n / A | Prix du fondement |
Vous devrez demander l'accès aux deux modèles ci-dessus.
Lorsque nous résumons le texte dans notre flux de travail, nous pouvons spécifier les jetons de sortie max sur le modèle Titan Text - Express, et cela garantit que nous passons en moins de 128 jetons au modèle d'intégration.
Le modèle d'incorporation multimodal a également une taille de dimension d'image maximale de 2048x2048 que nous gérons dans le cadre de la fonction de lambda incorporant l'image.
Note:
Ce déploiement est actuellement mis en place pour se déployer dans la région US-East-1. Veuillez vérifier la disponibilité de la région du substratum rocheux d'Amazon et mettre à jour le fichier samconfig.toml pour refléter la région souhaitée.
Nous vous recommandons de déployer avec AWS Cloud9. Si vous souhaitez utiliser Cloud9 pour déployer la solution, vous aurez besoin des éléments suivants avant de procéder:
m5.large comme type d'instance.Amazon Linux 2 comme plate-forme.Vous pouvez exécuter ces commandes à partir de votre ligne de commande / terminal, ou vous pouvez utiliser AWS Cloud9.
git clone https://github.com/aws-samples/semantic-image-search-for-articles.git cd semantic-image-search-for-articlesSi vous utilisez Cloud9, augmentez le volume EBS de l'instance à au moins 50 Go. Pour ce faire, exécutez la commande suivante à partir du terminal Cloud9:
bash ./scripts/cloud9-resize.sh 50
Voir la documentation pour plus de détails sur le redimensionnement de l'environnement.
Examiner ce fichier: samconfig.toml
Ici, vous pouvez nommer votre pile et choisir la région dans laquelle vous souhaitez déployer.
region = "us-east-1"Vérifiez si les services AWS sont tous disponibles dans la région que vous choisissez.
Comme le déploiement déploiera Amazon CloudFront, cela peut prendre environ 20 minutes.
Cloud9 génère des jetons STS pour effectuer le déploiement, cependant, ces informations d'identification ne durent que 15 minutes, par conséquent, le jeton expirera avant la fin du déploiement, et vous ne pourrez donc pas voir les sorties directement de Cloud9.
Comment s'authentifier avec des informations d'identification à court terme Vous pouvez exporter les jetons de clé d'accès, en vous assurant qu'ils durent au moins 30 minutes ou 1800 secondes:
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 les jetons expirent, vous pouvez laisser le déploiement à terminer, vérifier les progrès dans CloudFormation, puis réécrire le script de déploiement ci-dessous - comme la ressource Amazon CloudFront existera déjà, le déploiement se terminera rapidement)
Le déploiement de la solution est obtenu avec la commande suivante:
npm install && npm run deploy Cette commande exécutera une série de scripts tels que sam build , sam deploy et quelques autres pour configurer l'environnement avant avec les variables correctes.

L'authénication est gérée par Amazon Cognito. Vous devrez créer un nouvel utilisateur pour pouvoir vous connecter.
Vous pouvez trouver l'ID UserPool à partir de la sortie CloudFormation et choisir cet userPool et créer un nouvel utilisateur pour vous connecter.

Une fois terminé, la sortie CLI affichera une valeur pour que l'URL CloudFront puisse afficher l'application Web, par exemple https://d123abc.cloudfront.net/ - vous pouvez également le voir dans les sorties de cloudformation.
L'application Web permet à l'utilisateur de télécharger des images sur S3 et d'être indexée par OpenSesearch ainsi que de publier des requêtes à OpenSesearch pour renvoyer les 10 meilleures images qui sont les plus sémantiquement liées au contenu de l'article.
Pour éviter d'obtenir des frais futurs, supprimez les ressources.
sam delete du terminal ou accédez à CloudFormation, choisissez la pile que vous avez déployée via le script de déploiement mentionné ci-dessus et supprimez la pile. 
Voir contribuer pour plus d'informations.
Cette bibliothèque est autorisée sous la licence MIT-0. Voir le fichier de licence.