Multimodal RAG
O RAG multimodal recupera imagens, quadros de vídeo, áudio e digitalizações de páginas junto com texto; depois, um modelo de visão e linguagem responde com base no que encontrou.
A RAG multimodal é a geração aumentada por recuperação (RAG) aplicada a uma base de conhecimento que contém imagens, vídeos, áudio e documentos digitalizados ou renderizados, além de texto. Uma pergunta recupera os elementos mais relevantes de qualquer uma destas modalidades, e um modelo de visão e linguagem (VLM) gera uma resposta a partir deles. Assim, é possível recuperar e ler diretamente um diagrama de cablagem, uma fotografia de produto ou um gráfico num PDF, em vez de depender apenas de uma descrição textual escrita previamente por alguém.
Como os dados não textuais são indexados#
A abordagem mais simples converte tudo em texto. As legendas de imagens, o reconhecimento ótico de caracteres (OCR), as transcrições de voz para texto e os rótulos da deteção de objetos descrevem cada elemento com palavras pesquisáveis num índice de texto comum. Esta abordagem reutiliza sem alterações um fluxo de trabalho de RAG textual, mas perde tudo o que a descrição não inclui.
A segunda abordagem projeta imagens e texto em um espaço compartilhado. Modelos treinados com aprendizado contrastivo, como o CLIP da OpenAI e o SigLIP do Google, mapeiam uma foto e a frase que a descreve para representações vetoriais próximas entre si, de modo que uma pergunta em texto recupera imagens diretamente de um banco de dados vetorial. Para documentos, ColPali (2024) representa a captura de tela de cada página como uma grade de vetores de recortes e pontua cada página em relação aos tokens da pergunta usando interação tardia ao estilo do ColBERT, o que dispensa OCR e análise do layout em PDFs repletos de tabelas e gráficos.
A etapa de geração envia então os itens recuperados, muitas vezes uma combinação de imagens e trechos de texto, ao VLM juntamente com a pergunta. Fundamentar a resposta nas imagens recuperadas reduz as alucinações sobre detalhes visuais que o modelo nunca viu durante o treinamento, como a disposição do painel de controle de uma empresa.
Recuperação num espaço de embeddings partilhado#
Este exemplo utiliza o checkpoint CLIP ViT-B/32 para escolher, entre duas imagens de uma base de conhecimento, a imagem que responde a cada pergunta:
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]}")A pergunta sobre a gravata recupera zidane.jpg e a pergunta sobre o autocarro recupera bus.jpg, porque o CLIP aproxima o embedding de texto de cada pergunta da fotografia a que se refere. A interface LLM da Ultralytics abrange a etapa de geração seguinte: llm(question, image=...) envia a pergunta e a imagem recuperada para qualquer modelo de visão e linguagem compatível com OpenAI numa só chamada e devolve a resposta do fornecedor.
RAG multimodal vs. termos relacionados#
- Resposta visual a perguntas (VQA): Responde a uma pergunta sobre uma imagem fornecida pelo usuário. A RAG multimodal primeiro encontra as imagens, páginas ou clipes relevantes entre milhares.
- Modelos multimodais: Os modelos generativos, como o GPT da OpenAI ou os modelos Gemini do Google, que leem imagens e texto em conjunto. O RAG multimodal é o sistema de recuperação que decide o que esses modelos veem.
- Pesquisa semântica: A componente de recuperação por si só, que devolve resultados ordenados a uma pessoa em vez de a um modelo.
Aplicações no mundo real#
- Manutenção na indústria transformadora: Um técnico fotografa uma peça avariada, e o sistema recupera a página do manual com o diagrama explodido correspondente e fotografias de reparações anteriores do mesmo conjunto.
- Pesquisa e apoio no comércio a retalho: A fotografia de um cliente recupera artigos visualmente semelhantes do catálogo, e o assistente responde a perguntas sobre tamanho ou compatibilidade com base nas fichas dos produtos.
- Resposta a perguntas sobre documentos: Relatórios anuais, artigos científicos e apresentações guardam números importantes em gráficos e tabelas, que a recuperação de imagens de página encontra sem precisar de um analisador de tabelas separado.
- Compreensão de vídeo: A indexação de fotogramas amostrados ou de clipes curtos através de embeddings permite que uma pergunta como "Quando chegou a carrinha de entregas?" recupere os minutos certos das imagens, para que o VLM leia alguns fotogramas em vez de horas de vídeo.
Compromissos de conceção#
As imagens consomem muito contexto: um VLM converte cada imagem em centenas ou milhares de tokens, pelo que os fluxos de trabalho geralmente passam apenas algumas das imagens recuperadas com melhor classificação e envolvem-nas em excertos de texto mais curtos. Os sistemas de recuperação com embeddings partilhados também herdam as limitações do treinamento. O codificador de texto do CLIP processa no máximo 77 tokens, pelo que perguntas mais longas são truncadas antes da comparação, e embeddings de imagens completas captam melhor o conteúdo geral da cena do que pequenos detalhes, como um número de série num rótulo. A conversão para texto mantém esses detalhes pesquisáveis sempre que o OCR os consegue ler, por isso muitos sistemas indexam tanto o texto OCR como os embeddings de imagem e combinam as duas listas de resultados com pesquisa híbrida.










