Multimodal RAG
La génération augmentée par récupération multimodale récupère des images, des images vidéo, de l’audio et des numérisations de pages en plus du texte, puis demande à un modèle vision-langage de répondre à partir des éléments trouvés.
La RAG multimodale est une génération augmentée par récupération (RAG) appliquée à une base de connaissances contenant des images, des vidéos, de l’audio et des documents numérisés ou rendus, en plus du texte. Une question permet de récupérer les éléments les plus pertinents dans l’une ou l’autre de ces modalités, puis un modèle vision-langage (VLM) génère une réponse à partir de ces éléments. Un schéma de câblage, une photo de produit ou un graphique dans un PDF peuvent alors être récupérés et interprétés directement, plutôt que par l’intermédiaire d’une description textuelle rédigée au préalable.
Comment les données non textuelles sont indexées#
L’approche la plus simple consiste à tout convertir en texte. Le légendage d’images, la reconnaissance optique de caractères (OCR), les transcriptions de conversion de la parole en texte et les étiquettes issues de la détection d’objets décrivent chaque élément avec des mots qu’un index textuel ordinaire peut rechercher. Cette méthode réutilise sans modification un pipeline RAG textuel, mais perd tout ce que la description omet.
La deuxième approche intègre les images et le texte dans un espace commun. Des modèles entraînés par apprentissage contrastif, comme CLIP d’OpenAI et SigLIP de Google, rapprochent les représentations vectorielles d’une photo et d’une phrase qui la décrit. Une question textuelle peut ainsi récupérer directement des images dans une base de données vectorielle. Pour les documents, ColPali (2024) représente chaque capture d’écran de page sous forme d’une grille de vecteurs de fragments et la compare aux jetons de la question selon une interaction tardive de type ColBERT, évitant ainsi la reconnaissance optique de caractères et l’analyse de mise en page pour les PDF riches en tableaux et en graphiques.
La génération transmet ensuite les éléments récupérés, souvent un mélange d’images et de passages textuels, au VLM avec la question. L’ancrage de la réponse dans les images récupérées réduit les hallucinations concernant des détails visuels que le modèle n’a jamais vus pendant l’entraînement, comme la disposition du panneau de commande d’une entreprise donnée.
Récupération dans un espace de représentations vectorielles commun#
Cet exemple utilise le point de contrôle CLIP ViT-B/32 pour sélectionner, dans une base de connaissances de deux images, celle qui répond à chaque question :
import requests
from PIL import Image
from transformers import CLIPModel, CLIPProcessor
model = CLIPModel.from_pretrained("openai/clip-vit-base-patch32")
processor = CLIPProcessor.from_pretrained("openai/clip-vit-base-patch32")
# Image knowledge base: CLIP embeds images and text into one shared vector space
urls = ["https://ultralytics.com/images/bus.jpg", "https://ultralytics.com/images/zidane.jpg"]
images = [Image.open(requests.get(url, stream=True, timeout=10).raw) for url in urls]
questions = ["What color is the man's tie?", "How many people are standing next to the bus?"]
# Retrieve: score each question against every image and keep the best match for the VLM
inputs = processor(text=questions, images=images, return_tensors="pt", padding=True)
scores = model(**inputs).logits_per_text
for question, row in zip(questions, scores):
print(f"{question} -> {urls[row.argmax()].split('/')[-1]}")La question sur la cravate récupère zidane.jpg et celle sur le bus récupère bus.jpg, car CLIP place la représentation vectorielle du texte de chaque question au plus près de la photo correspondante. L’interface LLM d’Ultralytics couvre l’étape de génération qui suit : llm(question, image=...) transmet en un seul appel la question et l’image récupérée à n’importe quel modèle vision-langage compatible avec OpenAI, puis renvoie la réponse du fournisseur.
RAG multimodale et termes connexes#
- Réponse aux questions visuelles (VQA) : répond à une question sur une image fournie par l’utilisateur. La RAG multimodale commence par trouver les images, les pages ou les clips à examiner parmi des milliers.
- Modèles multimodaux : les modèles génératifs, comme les modèles GPT d’OpenAI ou Gemini de Google, qui interprètent conjointement les images et le texte. Le RAG multimodal est le système de récupération qui décide de ce que ces modèles voient.
- Recherche sémantique : composante de récupération utilisée seule, qui renvoie des résultats classés à une personne plutôt qu’à un modèle.
Applications concrètes#
- Maintenance industrielle : un technicien photographie une pièce défectueuse, puis le système récupère la page du manuel contenant le schéma éclaté correspondant ainsi que des photos de réparations antérieures du même assemblage.
- Recherche et assistance dans le commerce de détail : la photo d’un client permet de récupérer des articles de catalogue visuellement similaires, et l’assistant répond aux questions de taille ou de compatibilité à partir des fiches produit.
- Réponse aux questions sur des documents : les rapports annuels, les articles scientifiques et les présentations contiennent des chiffres clés dans des graphiques et des tableaux, que la récupération d’images de pages peut trouver sans analyseur de tableaux distinct.
- Compréhension vidéo : l’indexation de trames échantillonnées ou de clips courts à l’aide de représentations vectorielles permet à une question telle que « À quel moment la camionnette de livraison est-elle arrivée ? » de retrouver les bonnes minutes de vidéo. Le VLM examine ainsi quelques trames au lieu de plusieurs heures de vidéo.
Compromis de conception#
Les images consomment beaucoup de contexte : un VLM convertit chaque image en centaines ou en milliers de jetons. Les pipelines ne transmettent donc généralement que les quelques images les mieux classées, accompagnées de courts passages textuels. Les systèmes de récupération à représentations vectorielles partagées héritent également des limites de leur entraînement. L’encodeur textuel de CLIP lit au maximum 77 jetons ; les questions plus longues sont donc tronquées avant la comparaison, et les représentations d’images entières capturent mieux le contenu global de la scène que les détails fins comme un numéro de série sur une étiquette. La conversion en texte permet de rechercher ces détails dès lors que la reconnaissance optique de caractères peut les lire. De nombreux systèmes indexent donc à la fois le texte OCR et les représentations vectorielles d’images, puis fusionnent les deux listes de résultats avec la recherche hybride.










