Multimodal (Modelos de Visão-Linguagem)
Visão geral
Modelos visão-linguagem (vision-language models, VLMs) são sistemas de IA (AI) multimodais que processam conjuntamente imagens (visão) e texto (linguagem). O objetivo é conectar o que um modelo “vê” com o que ele consegue “dizer” ou “entender” em palavras.
Capacidades comuns incluem:
- Legendagem de imagens (image captioning): gerar uma descrição em linguagem natural de uma imagem.
- Resposta a perguntas visuais (visual question answering, VQA): responder perguntas fundamentadas em uma imagem (por exemplo, “Quantas bicicletas há?”).
- Seguimento de instruções multimodais (multimodal instruction following): seguir instruções do usuário que fazem referência a uma imagem (por exemplo, “Explique o que há de errado com esta placa de circuito e sugira um conserto.”).
Dentro da taxonomia de Visão Computacional, os VLMs ficam na interseção entre reconhecimento (o que há na imagem) e compreensão/geração de linguagem, e vêm servindo cada vez mais como interfaces de uso geral para raciocínio visual e recuperação.
Por que combinar visão e linguagem?
Modelos de visão são fortes em aprender padrões em pixels; modelos de linguagem são fortes em representar e gerar texto. Combiná-los permite:
- Compreensão ancorada (grounded understanding): linguagem vinculada a evidência visual (“a xícara vermelha à esquerda”).
- Reconhecimento de vocabulário aberto (open-vocabulary recognition): entender conceitos não rotulados explicitamente durante o treinamento supervisionado (supervised training) (por exemplo, “uma fachada em estilo Tudor”).
- Interfaces naturais: usuários podem fazer perguntas ou dar instruções em linguagem comum em vez de usar APIs especializadas.
Do ponto de vista prático, VLMs frequentemente substituem pipelines frágeis (detector → OCR → rules → templates) por um único modelo que consegue interpretar imagens de forma flexível sob diferentes prompts (prompts).
Ingredientes centrais: como imagens viram “tokens”
A maioria dos VLMs modernos é construída a partir dos mesmos blocos de Redes Neurais, e muitos usam a Arquitetura Transformer.
Codificadores de visão
Um codificador de visão transforma uma imagem em uma sequência de vetores de características (feature vectors).
Codificadores comuns:
- Backbones de redes neurais convolucionais (convolutional neural networks, CNN) (historicamente): mapas de características (feature maps) no estilo ResNet.
- Transformers de Visão (Vision Transformers, ViT): a imagem é dividida em patches (patches); cada patch vira um embedding (embedding) (um “token visual”).
- Características baseadas em regiões (region-based features) (sistemas de VQA mais antigos): propostas (caixas) de um detector de objetos viram tokens.
Tokens de patch no estilo ViT agora são comuns porque se integram naturalmente com a fusão baseada em transformers.
Modelos de linguagem
Do lado do texto, VLMs geralmente usam um modelo de linguagem transformer (language model, LM / large language model, LLM) que consome tokens de texto e produz saídas como legendas ou respostas.
A “ponte”: alinhar características visuais com tokens de linguagem
Como características visuais e embeddings de palavras vivem em espaços diferentes, VLMs precisam de um conector, frequentemente chamado de:
- Camada de projeção/adaptação (projection / adapter layer): um mapeamento linear aprendido ou MLP do tamanho do embedding de visão → tamanho do embedding do LM.
- Atenção cruzada (cross-attention): tokens de texto atendem a tokens de imagem dentro de um transformer multimodal.
- Reamostragem baseada em consultas (query-based resampling) (por exemplo, abordagens tipo “Q-Former”): um pequeno conjunto de consultas aprendíveis extrai informações relevantes do codificador de visão para uma representação compacta para o LM.
Essa ponte é central: ela determina se o modelo consegue ancorar texto em evidência da imagem, em vez de depender de vieses do modelo de linguagem.
Famílias de modelos visão-linguagem
Embora as implementações variem, a maioria dos VLMs se encaixa em três padrões amplos de projeto.
1) Modelos de codificador duplo (contrastivos): “combinar imagem ↔ texto”
Ideia: treinar um codificador de imagem e um codificador de texto para que pares correspondentes fiquem próximos no espaço de embeddings.
- O objetivo clássico é uma perda contrastiva (contrastive loss) (estilo InfoNCE): associar a legenda correta a uma imagem entre muitos negativos.
- Resultado: excelente para recuperação (retrieval) e classificação de vocabulário aberto (“zero-shot (zero-shot)”).
Capacidades representativas:
- Recuperação de imagem → texto (encontrar legendas para uma imagem)
- Recuperação de texto → imagem (buscar por prompt)
- Classificação zero-shot comparando o embedding da imagem com prompts de rótulo (“a photo of a …”)
Esse estilo está fortemente ligado a Aprendizado Contrastivo e Aprendizado Autossupervisionado.
Força: escalável e robusto para alinhamento semântico.
Limitação: não é inerentemente generativo — não “escreve” diretamente uma legenda ou resposta.
2) Modelos com codificador de fusão: “raciocinar conjuntamente sobre ambos”
Ideia: alimentar tokens de imagem e tokens de texto em um transformer compartilhado (ou blocos de atenção cruzada fortemente acoplados) e treinar para tarefas como VQA.
Historicamente comuns em benchmarks de VQA:
- Codificar regiões da imagem + tokens da pergunta
- Usar atenção cruzada para fundir
- Predizer uma resposta (classificação sobre um vocabulário de respostas, ou geração)
Força: forte em raciocínio específico de tarefa (especialmente quando treinado para isso).
Limitação: menos flexível do que configurações modernas de seguimento de instruções; pode não generalizar sem treinamento cuidadoso.
3) VLMs baseados em LLM (generativos): “visão como contexto para uma LLM”
Ideia: usar uma LLM poderosa para geração de texto e injetar informação visual como contexto adicional.
Receita típica:
- Um codificador de visão produz características da imagem.
- Um projetor/adaptador as mapeia para o espaço de embeddings da LLM.
- A LLM gera texto condicionado tanto pelo prompt do usuário quanto pelos embeddings da imagem.
Esta é a abordagem dominante para legendagem, chat multimodal, e seguimento de instruções atualmente.
Força: flexível, conversacional e capaz de explicações em múltiplas etapas.
Limitação: pode alucinar; são necessários alinhamento e avaliação cuidadosos.
Objetivos de treinamento: como VLMs aprendem
O treinamento de VLMs normalmente mistura múltiplas perdas e múltiplos conjuntos de dados.
Perda de legendagem / geração
Para legendagem ou seguimento de instruções, o objetivo mais direto é a previsão do próximo token (next-token prediction):
- Entrada: imagem + prompt (opcional)
- Alvo: texto da legenda / resposta
- Perda: entropia cruzada (cross-entropy) sobre tokens
Isso torna o modelo generativo, mas ele pode se ajustar demais ao estilo de anotação e aprender vieses do conjunto de dados.
Alinhamento contrastivo
O treinamento contrastivo alinha imagens e textos globalmente:
- Positivos: pares (imagem, texto) verdadeiros
- Negativos: pares incompatíveis no lote (ou em um banco de memória (memory bank))
Isso é particularmente útil ao treinar em pares ruidosos em escala web (web-scale), melhorando o alinhamento semântico e a utilidade para recuperação.
Objetivos de correspondência / ancoragem
Alguns modelos adicionam tarefas explícitas no estilo de ancoragem:
- Correspondência imagem-texto (image-text matching, ITM): prever se um par corresponde.
- Modelagem de linguagem mascarada (masked language modeling, MLM): prever palavras mascaradas dado imagem + texto.
- Alinhamento região-palavra (region-word alignment): associar tokens como “cachorro” a regiões específicas da imagem (ancoragem mais explícita).
Ajuste por instruções e otimização por preferências
Para obter comportamento de “assistente útil”:
- Ajuste por instruções (instruction tuning): ajuste fino (fine-tuning) em pares multimodais de instrução-resposta curados.
- Otimização por preferências (preference optimization) (por exemplo, métodos do tipo RLHF/DPO): alinhar saídas a preferências humanas (utilidade, segurança, menos alucinações).
Esta etapa frequentemente importa mais do que o pré-treinamento (pretraining) bruto para a qualidade voltada ao usuário.
Tarefas-chave
Legendagem de imagens
Objetivo: gerar uma descrição concisa ou detalhada de uma imagem.
Dois modos comuns:
- Legendagem descritiva: “Um cachorro pula para pegar um frisbee em um parque.”
- Legendagem ancorada com prompts: “Descreva os objetos na mesa e suas posições relativas.”
Usos práticos:
- Acessibilidade (alt-text)
- Catalogação e busca de mídia
- Resumo de registros visuais (por exemplo, snapshots de controle de qualidade)
Modo de falha a observar: objetos alucinados (hallucinated objects) (mencionar um “gato” que não está presente). Ancoragem mais forte e melhores estratégias de decodificação podem ajudar, mas a avaliação é essencial.
Resposta a perguntas visuais (VQA)
Objetivo: responder perguntas sobre uma imagem.
Exemplos:
- “De que cor é o carro?” (atributo)
- “Quantas pessoas estão em pé?” (contagem)
- “A porta do forno está aberta?” (estado)
- “O que pode acontecer em seguida?” (mais especulativo; arriscado)
VQA é enganadoramente difícil porque mistura:
- Percepção (detectar objetos/atributos)
- Raciocínio espacial (esquerda/direita, atrás, dentro)
- Leitura de texto (reconhecimento óptico de caracteres (OCR))
- Raciocínio de senso comum (às vezes)
Sistemas de VQA também podem “trapacear” ao se apoiar em vieses de linguagem (“Que esporte está sendo praticado?” → “tênis”), então o desenho do conjunto de dados e a avaliação cuidadosa importam.
Seguimento de instruções multimodais
Objetivo: seguir instruções do usuário que fazem referência à imagem (e às vezes a múltiplas imagens), frequentemente exigindo raciocínio em múltiplas etapas.
Exemplos:
- “Olhe este gráfico e resuma a tendência.”
- “Encontre potenciais riscos de segurança na foto e liste-os.”
- “Dado este screenshot de UI, diga onde clicar para mudar a senha.”
- “Transcreva a anotação manuscrita e reescreva-a profissionalmente.”
Esse cenário frequentemente exige:
- OCR robusto e compreensão de layout (documentos, recibos)
- Ancoragem precisa (apontar para evidências)
- Geração controlada (saídas estruturadas como JSON)
Exemplos práticos (Hugging Face Transformers)
Abaixo estão exemplos mínimos para experimentação local. Nomes exatos de modelos mudam rapidamente; trate-os como templates.
Exemplo 1: Legendagem de imagens
from transformers import pipeline
captioner = pipeline(
task="image-to-text",
model="Salesforce/blip-image-captioning-base" # example model
)
result = captioner("example.jpg")
print(result[0]["generated_text"])
Dicas:
- Tente usar prompting se houver suporte (alguns pipelines aceitam texto adicional).
- Se as legendas estiverem genéricas demais, prefira VLMs ajustados por instruções.
Exemplo 2: Resposta a perguntas visuais (VQA)
from transformers import pipeline
vqa = pipeline(
task="visual-question-answering",
model="dandelin/vilt-b32-finetuned-vqa" # example model
)
question = "How many dogs are in the image?"
result = vqa(image="example.jpg", question=question)
print(result)
Notas:
- Contagem e objetos pequenos continuam desafiadores.
- Considere codificadores de maior resolução ou modelos treinados com dados focados em contagem.
Exemplo 3: Seguimento de instruções multimodais (estilo chat)
Muitos VLMs modernos usam um formato de prompt de chat. Um padrão típico é:
from transformers import AutoProcessor, AutoModelForVision2Seq
import torch
from PIL import Image
model_id = "llava-hf/llava-1.5-7b-hf" # example model
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForVision2Seq.from_pretrained(model_id, torch_dtype=torch.float16).cuda()
image = Image.open("example.jpg").convert("RGB")
prompt = "USER: <image>\nExplain what is happening in this image.\nASSISTANT:"
inputs = processor(images=image, text=prompt, return_tensors="pt").to("cuda", torch.float16)
out = model.generate(**inputs, max_new_tokens=200)
print(processor.decode(out[0], skip_special_tokens=True))
Dica de produção: use quantização (quantization) e processamento em lote (batching) se a latência for importante, mas valide que isso não degrada a ancoragem.
Considerações sobre dados
VLMs aprendem o que seus dados de treinamento enfatizam.
Fontes comuns de dados:
- Conjuntos de dados de legendas curados: por exemplo, legendas no estilo COCO (alta qualidade, escala limitada).
- Pares imagem-texto em escala web: grandes, porém ruidosos; promovem ampla cobertura.
- Conjuntos de dados de VQA: pares pergunta-resposta para raciocínio direcionado.
- Conjuntos de dados de instruções: conversas multimodais e instruções do tipo “ferramenta”.
Questões práticas importantes:
- Ruído e desalinhamento: legendas da web podem não descrever a imagem com precisão.
- Viés e representatividade: modelos podem herdar vieses sociais a partir dos dados.
- Direitos autorais/privacidade: raspagem de imagem-texto levanta preocupações legais e éticas.
O pré-processamento também importa — veja Fundamentos de Imagens para aumento de dados e pipelines de entrada.
Avaliação: como sabemos se um VLM é bom?
A avaliação depende da tarefa, e detalhes do protocolo importam (prompting, decodificação, normalização de respostas). Veja também Avaliação para Visão.
Métricas de legendagem (imperfeitas, mas comuns)
- BLEU / ROUGE: sobreposição de n-gramas (frequentemente pouco correlacionada com julgamento humano)
- CIDEr: sobreposição baseada em consenso com múltiplas referências
- SPICE: compara grafos semânticos de cena (mais orientada à semântica)
Como muitas legendas válidas existem, avaliação humana ou avaliação baseada em tarefa (por exemplo, utilidade para recuperação) costuma ser mais confiável.
Métricas de VQA
- Acurácia com normalização de respostas e correspondência flexível (alguns benchmarks permitem crédito parcial).
- Verificações de robustez: perguntas parafraseadas, partições adversariais, imagens fora de distribuição.
Avaliação de seguimento de instruções
Mais difícil de padronizar. Estratégias comuns:
- Estudos de preferência humana
- Pontuação automatizada por rubrica (com cautela)
- Verificações de ancoragem: a resposta cita evidência visual correta?
- Validade de saída estruturada (checagens de esquema JSON, etc.)
Modos de falha comuns e como mitigá-los
Alucinação (alegações sem ancoragem)
O modelo afirma detalhes que não estão presentes na imagem.
Mitigações:
- Use modelos com treinamento de ancoragem mais forte (melhor ajuste por instruções + perdas de ancoragem).
- Peça respostas baseadas em evidências (“Se você não tiver certeza, diga.”).
- Restrinja a saída (múltipla escolha, formatos estruturados).
- Adicione uma etapa de verificação (por exemplo, executar um detector de objetos ou uma ferramenta de OCR e cruzar os resultados).
Raciocínio espacial e contagem fracos
Muitos VLMs têm dificuldade com:
- “segundo da esquerda”
- contagem precisa em multidões
- objetos pequenos
Mitigações:
- Entradas de maior resolução ou abordagens multi-crop
- Prompting focado em regiões (“foque no canto superior direito”)
- Pipelines híbridos: combinar VLM com detectores/segmentadores de Tarefas Centrais
Problemas de OCR e layout de documentos
Ler textos pequenos, tabelas e formulários exige capacidades especializadas.
Mitigações:
- Use VLMs orientados a documentos ou pipelines com OCR
- Forneça digitalizações de maior resolução
- Peça extração estruturada (chaves/valores) e valide
Sensibilidade a prompt
Prompts diferentes podem produzir respostas inconsistentes.
Mitigações:
- Padronize prompts (templates)
- Use exemplares few-shot quando houver suporte
- Avalie variantes de prompt como parte dos testes de implantação
Orientação prática: escolhendo o VLM certo
Escolha com base no seu requisito dominante:
- Recuperação / busca / rotulagem: modelos contrastivos de codificador duplo são eficientes e escaláveis.
- VQA clássica: modelos de fusão ou VLMs generativos ajustados por instruções, dependendo das necessidades de saída.
- Assistentes interativos: VLMs baseados em LLM com ajuste por instruções e alinhamento de segurança.
Considere também:
- Latência e custo: modelos apenas com codificador para recuperação são baratos; VLMs generativos grandes são caros.
- Restrições on-device: quantização/destilação (distillation) pode ser necessária.
- Mudança de domínio (domain shift): imagens médicas, industriais e de satélite frequentemente exigem ajuste fino.
Padrões de ajuste fino
Abordagens comuns (especialmente para modelos grandes):
- Ajuste de adaptadores / LoRA: atualizar um pequeno número de parâmetros.
- Ajuste fino supervisionado (supervised fine-tuning, SFT) em dados de instrução do domínio.
- Aumento por recuperação no estilo RAG (retrieval augmentation): para ancoragem factual, parear o VLM com uma base de conhecimento (a imagem fornece contexto, mas fatos podem vir da recuperação de texto).
Para onde o campo está indo
Direções ativas importantes:
- Melhor ancoragem e fidelidade: reduzir alucinações com verificação explícita e treinamento consciente de ancoragem.
- Maior resolução e raciocínio multi-imagem: comparar imagens, encontrar diferenças, entender diagramas.
- VLMs para vídeo: estender de imagens para raciocínio temporal (intimamente relacionado a Compreensão de Vídeo).
- Agentes multimodais que usam ferramentas: VLMs que chamam OCR, detectores, segmentadores, busca na web ou código para produzir resultados verificáveis.
- Visão-linguagem 3D e incorporada: conectar linguagem a cenas 3D e ações (relacionado a Visão 3D).
Resumo
Modelos visão-linguagem multimodais combinam um codificador de visão com um modelo de linguagem usando mecanismos de alinhamento como objetivos contrastivos, atenção cruzada, e adaptadores de projeção. Isso viabiliza sistemas que conseguem:
- Descrever imagens (legendagem),
- Responder perguntas ancoradas (VQA),
- Seguir instruções em linguagem natural sobre conteúdo visual (assistentes multimodais).
Na prática, o sucesso de VLMs depende tanto de dados, alinhamento e protocolos de avaliação quanto de arquitetura. Aplicações fortes vêm de combinar a família de modelos certa com prompting cuidadoso, avaliação robusta e (quando necessário) verificação baseada em ferramentas para uma ancoragem confiável.