CodePercept: Code-Grounded Visual STEM Perception for MLLMs

O artigo "CodePercept" identifica que a percepção, e não o raciocínio, é o principal gargalo para o raciocínio visual STEM em MLLMs e propõe uma nova abordagem que utiliza código executável como meio perceptivo, fundamentado no dataset ICC-1M e avaliado pelo benchmark STEM2Code-Eval, para superar as limitações de alucinação e ambiguidade dos métodos atuais.

Tongkun Guan, Zhibo Yang, Jianqiang Wan, Mingkun Yang, Zhengtao Guo, Zijian Hu, Ruilin Luo, Ruize Chen, Songtao Jiang, Peng Wang, Wei Shen, Junyang Lin, Xiaokang Yang

Publicado 2026-03-12
📖 4 min de leitura☕ Leitura rápida

Each language version is independently generated for its own context, not a direct translation.

Imagine que você tem um robô superinteligente (um Modelo de Linguagem Multimodal, ou MLLM) que é ótimo em conversar e resolver problemas de lógica. Mas, quando você mostra a ele um desenho complexo de matemática ou física, ele falha. Por quê?

O artigo CodePercept traz uma descoberta fascinante: o problema não é que o robô é "burro" para raciocinar. O problema é que ele é cego para os detalhes visuais. É como tentar montar um quebra-cabeça de 1.000 peças olhando apenas para a caixa fechada: você pode ter a lógica perfeita, mas se não conseguir ver as peças, não consegue montar nada.

Aqui está a explicação simples do que eles fizeram, usando analogias do dia a dia:

1. O Diagnóstico: O "Olho" é o Gargalo

Os pesquisadores fizeram um teste curioso. Eles separaram o cérebro do robô em duas partes:

  • Percepção: A capacidade de olhar a imagem e descrever o que vê.
  • Raciocínio: A capacidade de usar essa descrição para resolver o problema.

Eles descobriram que, se você deixar o robô com uma descrição perfeita da imagem, mas um cérebro "comum", ele resolve o problema. Mas, se você der um cérebro de gênio e uma descrição ruim (ou cega), ele falha.
Conclusão: O limite não é a inteligência, é a visão. O robô precisa aprender a "ver" com precisão cirúrgica.

2. A Solução: Trocar a "Fala" pela "Programação"

Até agora, tentávamos ensinar esses robôs a descrever imagens usando texto (ex: "há um triângulo vermelho aqui"). O problema é que a linguagem humana é cheia de ambiguidades. Dizer "perto" ou "grande" não é exato o suficiente para matemática.

A grande ideia do CodePercept foi: "Por que não ensinar o robô a 'falar' em código de computador?"

  • A Analogia da Receita de Bolo:
    • Texto: "Adicione um pouco de farinha e misture até ficar homogêneo." (Subjetivo, pode dar errado).
    • Código: "Adicione exatamente 200g de farinha e misture por 120 segundos a 500 RPM." (Exato, verificável).

O código de computador (Python) é a linguagem mais precisa que existe. Se você consegue escrever o código que desenha a imagem, você obrigatoriamente entendeu cada detalhe dela. Não há espaço para alucinações ou erros de interpretação.

3. O Que Eles Criaram?

Para ensinar essa nova habilidade, eles criaram três coisas principais:

A. O "Gym" de Treino (ICC-1M)

Eles criaram um ginásio virtual gigante com 1 milhão de exercícios.

  • Em vez de apenas mostrar uma foto e pedir uma descrição, eles mostram a foto e pedem: "Escreva o código que desenha exatamente isso".
  • Eles usaram três truques para criar esses dados:
    1. Reprodução: Pegar imagens existentes e pedir o código delas.
    2. Variedade: Pegar um conceito (ex: "dominós") e criar milhares de variações diferentes (dominós em círculo, triângulo, etc.) para o robô não decorar, mas aprender o princípio.
    3. Geometria Sólida: Criar formas 3D complexas que os robôs atuais odeiam desenhar, forçando-os a aprender a ver no espaço 3D.

B. O "Professor Rigoroso" (Geração de Legendas Baseada em Código)

Antes, os robôs criavam descrições de imagens baseados em "achismos" (alucinações). Agora, o processo é:

  1. O robô vê a imagem.
  2. Ele gera o código que desenha a imagem (que é a verdade absoluta).
  3. O robô lê o próprio código e, baseado nele, escreve a descrição em texto.
    Resultado: A descrição em texto agora é perfeita, porque foi "ancorada" na verdade do código.

C. O "Exame Final" (STEM2Code-Eval)

Como saber se o robô realmente aprendeu?

  • Exames antigos: "Resolva este problema de física." (Se ele errar, não sabemos se foi por não ver a imagem ou por não saber física).
  • O novo exame: "Olhe para esta imagem complexa e escreva o código que a recria pixel por pixel."
    Se o código roda e a imagem gerada é idêntica à original, o robô passou. É um teste de "verdade ou consequência" visual.

4. O Resultado

Depois de treinar com essa metodologia (chamada de CodePercept), os robôs ficaram muito melhores em:

  • Ver detalhes pequenos e precisos em gráficos e diagramas.
  • Entender relações espaciais complexas (ex: "este cubo está girando em torno daquele eixo").
  • Resolver problemas de matemática e ciências com muito mais acurácia.

Resumo em uma frase

O CodePercept descobriu que, para ensinar robôs a "ver" matemática e ciência, não adianta apenas pedir para eles "olharem e falarem". É preciso pedir para eles escreverem o código que desenha o que veem, transformando a visão vaga em uma instrução matemática precisa e verificável. É como trocar um desenho feito à mão por um projeto de engenharia em CAD: a precisão muda tudo.