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:

  1. Um codificador de visão produz características da imagem.
  2. Um projetor/adaptador as mapeia para o espaço de embeddings da LLM.
  3. 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.