Utilisation d’Amazon Nova pour le RAG multimodal
Vous pouvez utiliser le RAG multimodal pour rechercher des documents tels que des PDF, des images ou des vidéos (disponible pour Amazon Nova Lite et Amazon Nova Pro). Grâce aux capacités de compréhension multimodale d’Amazon Nova, vous pouvez créer des systèmes RAG avec des données mixtes contenant à la fois du texte et des images. Vous pouvez le faire soit via les bases de connaissances Amazon Bedrock, soit en créant un système RAG multimodal personnalisé.
Pour créer un système RAG multimodal :
-
Créez une base de données de contenu multimodal.
-
Exécutez l’inférence dans les systèmes RAG multimodaux pour Amazon Nova.
-
Permettre aux utilisateurs d’interroger le contenu
-
Renvoyer le contenu à Amazon Nova
-
Autorisez Amazon Nova à répondre à la requête initiale de l’utilisateur.
-
Création d’un système RAG multimodal personnalisé avec Amazon Nova
Pour créer une base de données de contenu multimodal avec Amazon Nova, vous pouvez utiliser l’une des deux approches courantes. La précision de chacune de ces approches dépend de votre application spécifique.
Création d’une base de données vectorielles à l’aide de vectorisations multimodales.
Vous pouvez créer une base de données vectorielles de données multimodales à l’aide d’un modèle de vectorisation, tel que les vectorisations multimodales Titan. Pour ce faire, vous devez d’abord analyser efficacement les documents en texte, tableaux et images. Ensuite, pour créer votre base de données vectorielles, transmettez le contenu analysé au modèle de vectorisation multimodale de votre choix. Nous vous recommandons de connecter les vectorisations aux parties du document dans leur modalité d’origine afin que l’extracteur puisse renvoyer les résultats de recherche dans la modalité de contenu d’origine.
Création d’une base de données vectorielles à l’aide de vectorisations de texte.
Pour utiliser un modèle de vectorisations de texte, vous pouvez utiliser Amazon Nova pour convertir les images en texte. Vous créez ensuite une base de données vectorielles à l’aide d’un modèle de vectorisations de texte tel que le modèle de vectorisations de texte Titan V2.
Pour les documents tels que les diapositives et les infographies, vous pouvez transformer chaque partie du document en une description textuelle, puis créer une base de données vectorielles avec les descriptions textuelles. Pour créer une description textuelle, utilisez Amazon Nova via l’API Converse avec une invite telle que :
You are a story teller and narrator who will read an image and tell all the details of the image as a story. Your job is to scan the entire image very carefully. Please start to scan the image from top to the bottom and retrieve all important parts of the image. In creating the story, you must first pay attention to all the details and extract relevant resources. Here are some important sources: 1. Please identify all the textual information within the image. Pay attention to text headers, sections/subsections anecdotes, and paragraphs. Especially, extract those pure-textual data not directly associated with graphs. 2. please make sure to describe every single graph you find in the image 3. please include all the statistics in the graph and describe each chart in the image in detail 4. please do NOT add any content that are not shown in the image in the description. It is critical to keep the description truthful 5. please do NOT use your own domain knowledge to infer and conclude concepts in the image. You are only a narrator and you must present every single data-point available in the image. Please give me a detailed narrative of the image. While you pay attention to details, you MUST give the explanation in a clear English that is understandable by a general user.
Amazon Nova répondra alors avec une description textuelle de l’image fournie. Les descriptions textuelles peuvent ensuite être envoyées au modèle de vectorisation pour créer la base de données vectorielles.
Sinon, pour les documents riches en texte tels que les PDF, il peut être préférable d’analyser les images à partir du texte (cela dépend de vos données et de votre application spécifiques). Pour ce faire, vous devez d’abord analyser efficacement les documents en texte, tableaux et images. Les images obtenues peuvent ensuite être converties en texte à l’aide d’une invite telle que celle indiquée ci-dessus. Ensuite, les descriptions textuelles des images et tout autre texte peuvent être envoyés à un modèle de vectorisation afin de créer une base de données vectorielles. Il est recommandé de connecter les vectorisations aux parties du document dans leur modalité d’origine afin que l’extracteur puisse renvoyer les résultats de la recherche dans la modalité de contenu d’origine.
Exécution de l’inférence dans les systèmes RAG pour Amazon Nova
Une fois votre base de données vectorielles configurée, vous pouvez désormais activer les requêtes des utilisateurs pour effectuer des recherches dans la base de données, renvoyer le contenu extrait à Amazon Nova, puis, à l’aide du contenu extrait et de la requête de l’utilisateur, permettre aux modèles Amazon Nova de répondre à la requête initiale de l’utilisateur.
Pour interroger la base de données vectorielles avec des requêtes utilisateur textuelles ou multimodales, suivez les mêmes choix de conception que ceux que vous feriez pour effectuer un RAG pour la compréhension et la génération de texte. Vous pouvez soit utiliser Amazon Nova avec les bases de connaissances Amazon Bedrock, soit créer un système RAG personnalisé avec Amazon Nova et l’API Converse.
Lorsque l’extracteur renvoie le contenu au modèle, nous vous recommandons d’utiliser le contenu dans sa modalité d’origine. Ainsi, si l’entrée d’origine est une image, renvoyez l’image à Amazon Nova, même si vous avez converti les images en texte afin de créer des vectorisations. Pour renvoyer les images plus efficacement, nous vous recommandons d’utiliser ce modèle pour configurer le contenu extrait à utiliser dans l’API Converse :
doc_template = """Image {idx} : """ messages = [] for item in search_results: messages += [ { "text": doc_template.format(idx=item.idx) }, { "image": { "format": "jpeg", # image source is not actually used in offline inference # images input are provided to inferencer separately "source": { "bytes": BASE64_ENCODED_IMAGE } } } ] messages.append({"text": question}) system_prompt = """ In this session, you are provided with a list of images and a user's question, your job is to answer the user's question using only information from the images. When give your answer, make sure to first quote the images (by mentioning image title or image ID) from which you can identify relevant information, then followed by your reasoning steps and answer. If the images do not contain information that can answer the question, please state that you could not find an exact answer to the question. Remember to add citations to your response using markers like %[1]%, %[2]% and %[3]% for the corresponding images."""
À l’aide du contenu extrait et de la requête de l’utilisateur dans l’API Converse, vous pouvez invoquer l’API Converse et Amazon Nova générera une réponse ou formulera une demande de recherche supplémentaire. Ce qui se passe dépend de vos instructions ou du fait que le contenu extrait ait répondu efficacement à la requête de l’utilisateur.