- As avaliações para encontrar “informações presentes” em contextos longos melhoraram rapidamente, mas o AbsenceBench mostra que a capacidade de encontrar informações ausentes ao comparar o original com uma versão modificada ainda é fraca
- O benchmark é composto por 3 domínios: poesia, sequências numéricas e diffs de PR do GitHub; usa 4.302 instâncias, contexto médio de 5K tokens e taxa padrão de omissão de 10%
- Mesmo avaliando 14 LLMs, incluindo GPT-4, Claude-3.7-Sonnet, Gemini-2.5-flash, o3-mini, Grok-3-mini e DeepSeek-R1, o desempenho dos modelos mais recentes continua limitado; o Claude-3.7-Sonnet fica em apenas 69,6% de F1-score com contexto médio de 5K tokens
- O F1-score no AbsenceBench caiu em média 56,9% em relação ao NIAH, e até modelos com computação em tempo de inferência usaram em média mais 8K thinking tokens para um ganho de desempenho de apenas 7,9%
- Quando se adicionam placeholders explícitos na posição da omissão, o desempenho melhora em média 35,7%, reforçando a interpretação de que a atenção do Transformer tem dificuldade para focar em “lacunas” dentro do documento
A pergunta que o AbsenceBench faz
- Recentemente, os LLMs vêm mostrando alto desempenho em tarefas de contexto longo, e no teste Needle-in-a-Haystack (NIAH) demonstram a capacidade de encontrar pequenas informações específicas dentro de entradas muito extensas
- O AbsenceBench avalia o problema na direção oposta
- Em vez de encontrar informações presentes na entrada, é preciso localizar informações claramente ausentes
- O modelo recebe junto o documento original e uma versão modificada com alguns elementos removidos
- A saída deve ser o conjunto exato de elementos ausentes no documento modificado
- Essa tarefa tem regras simples e resposta clara, mas até modelos fechados de ponta apresentam baixo desempenho
Definição da tarefa e composição dos dados
- O AbsenceBench segue um formato de geração controlada em que alguns elementos
Domitsão removidos intencionalmente do documento originalDorigpara criar o documento modificadoDmodified, e o modelo deve identificar os elementos removidos - “document length” significa o número de tokens do documento original, e “context length” significa o número total de tokens na entrada do modelo
- O benchmark completo é composto por 4.302 instâncias, com comprimento médio de contexto de 5K tokens
- O repositório do código está disponível em harvey-fin/absence-bench
- A medição do comprimento em tokens usa o GPT-4 Tokenizer
Poesia, sequências numéricas e diffs de PR do GitHub
-
Poesia
- Usa poemas do Gutenberg Poetry Corpus
- As omissões são aplicadas por linha, e o separador de linhas é o caractere newline
- Para diversificar o comprimento dos documentos, cada poema é cortado para que o número de linhas fique uniformemente distribuído entre 100 e 1000
-
Sequências numéricas
- São geradas 1.200 sequências numéricas sintéticas no total
- Os números são organizados em ordem crescente, decrescente ou aleatória
- O step size entre números consecutivos é um entre 1, 4, 7 e 13
- O primeiro número é escolhido aleatoriamente entre 0 e 9999
-
GitHub PR diff
- Os PRs são coletados dos 20 repositórios com maior número de PRs usando dados públicos do GitHub e a API do GitHub
- Apenas PRs com 10 a 200 linhas atualizadas no diff são mantidos
- Entre as linhas atualizadas que começam com
+ou-, apenas linhas únicas dentro de cada PR diff são consideradas candidatas à omissão - Como LLMs que resolvem e validam conflitos de merge precisam detectar ausências em file diffs, isso se conecta a um caso de uso real
Limitações reveladas na avaliação de 14 LLMs
- O conjunto avaliado tem 14 LLMs no total
- Inclui modelos recentes como GPT-4, Claude-3.7-Sonnet e Gemini-2.5-flash
- Inclui modelos com computação em tempo de inferência como o3-mini, Grok-3-mini e DeepSeek-R1
- Claude-3.7-Sonnet e Gemini-2.5-flash foram avaliados separando o uso ou não de computação em tempo de inferência
- Mesmo os modelos mais recentes não conseguem desempenho estável no AbsenceBench
- O Claude-3.7-Sonnet registrou 69,6% de F1-score em contexto médio de 5K tokens
- Quanto maior o contexto, mais difícil a tarefa fica, com diferença especialmente evidente no domínio de poesia
- A computação em tempo de inferência traz apenas 7,9% de melhora de desempenho em média
- Em troca, gera em média 8K thinking tokens adicionais
- Isso equivale a quase 3 vezes o comprimento médio do documento
- Também aparece o resultado de que, quanto menor a taxa de omissão, pior tende a ser o desempenho do modelo
Um padrão de falha diferente do NIAH
- O AbsenceBench se mostra uma tarefa muito mais difícil para LLMs do que o NIAH
- Ao comparar três LLMs na configuração do AbsenceBench e na configuração original do NIAH, o F1-score caiu em média 56,9%
- A atenção do Transformer pode ter dificuldade para lidar com lacunas dentro do documento
- Isso porque uma omissão não corresponde a uma key específica para a qual a atenção possa apontar
- Em experimentos que inserem uma string placeholder na posição ausente, o desempenho melhora em média 35,7%
- Um exemplo é inserir um token como
<missing line>no lugar da linha removida
- Um exemplo é inserir um token como
- Esses resultados mostram que os LLMs podem ser mais frágeis para identificar situações em que a informação foi “removida” do que situações em que a informação foi “inserida”
- Em modos de uso como LLM-as-a-Judge, nos quais é preciso perceber corretamente informações ausentes, essa limitação pode se transformar em risco prático
1 comentários
Opiniões do Hacker News
Depois de assistir a uma palestra de Gerald Sussman, coloquei uma imagem do triângulo de Kanizsa no Claude e perguntei, de forma bem ambígua, se ele conseguia “ver” o triângulo inferido; ele reconheceu a imagem e imediatamente fez um resumo
Então girei a imagem 90 graus e tentei de novo em uma nova conversa; ele não reconheceu a imagem e até errou a contagem dos elementos
Sobre a imagem girada, o Claude descreveu quatro formas pretas tipo Pac-Man nos quatro cantos, um triângulo fino apontando para cima e um triângulo fino apontando para a direita, com fundo cinza-claro
Outubro de 2011, 30 comentários
https://news.ycombinator.com/item?id=3163473
Vídeo da Strange Loop:
Julho de 2011, 36 comentários
https://news.ycombinator.com/item?id=2820118
É bem sabido que ainda há um longo caminho para que LLMs processem imagens como processam texto ou áudio
Acho que quase não há modelos multimodais que recebam diretamente pixels de imagem e tenham bom desempenho. A maior parte das capacidades visuais é quase um hack ou algo enxertado por engenharia: a imagem passa por várias etapas de processamento e depois as saídas de cada processador entram no transformer como tokens. Isso pode acontecer dentro de uma única rede, mas também há redes que não são transformers envolvidas. Exemplos de pré-processamento podem incluir OCR, CNNs (reconhecedores de padrões 2D) usando várias ampliações, ângulos e recortes, além de outras coisas
Acho que esse exemplo simples revela algo central sobre a inteligência. Reconhecemos o triângulo porque a grande complexidade dos 1.000 pontos se ajusta a uma forma geométrica simples e de baixa entropia
Penso que aquilo que chamamos de QI é algo próximo do limite superior da complexidade de padrões que conseguimos perceber. Por exemplo, aqueles 1.000 pontos podem ser, na verdade, os vértices de um hipercubo de 10 dimensões levemente rotacionado, um padrão que talvez fosse fácil de ver para uma mente de 10 dimensões
Interessante. Mesmo quando recebem tanto o contexto original quanto o contexto editado, os modelos mais recentes têm desempenho relativamente baixo para identificar quais informações foram apagadas do contexto
Os autores acham que o desempenho é baixo porque, no mecanismo de atenção dos transformers, tokens apagados não têm chaves, então não é possível prestar atenção neles
Do ponto de vista do mecanismo de atenção, não há grande diferença entre
Original: {prefixo comum} {parte apagada} {sufixo comum} Modified: {prefixo comum} {sufixo comum}eOriginal: {prefixo comum} {sufixo comum} Modified: {prefixo comum} {parte adicionada} {sufixo comum}Com RASP (uma linguagem para programar transformers manualmente), acho que seria possível criar mais ou menos este algoritmo. A primeira camada presta atenção aos tokens
"Original:"e"Modified:"para decidir se o token atual está do lado do original ou do modificado. Na segunda camada, uma cabeça presta atenção uniformemente a todos os tokens do original e tira a média dos valores; outra cabeça tira a média de todos os tokens da versão modificada, e então calcula a diferença entre as duas médias. A terceira camada presta atenção a tokens semelhantes a essa diferença, que então seriam a{parte apagada}ou a{parte adicionada}A única parte dependente da ordem é calcular a diferença como
média do original - média do modificadoou o contrárioSe o modelo detecta adições, mas não deleções, isso pode significar que, em princípio, ele tem capacidade de aprender esse algoritmo ou algum algoritmo parecido, mas que há poucos dados do tipo deleção e, por isso, o circuito necessário não se desenvolveu
Muito interessante. 1) Os autores dizem que, como a lacuna não é um token, o mecanismo de atenção talvez não consiga prestar atenção à posição da lacuna, mas eu esperaria que um bom transformer de LLM pelo menos chegasse bem perto, perto da lacuna
Não entendo bem, matematicamente, por que essa arquitetura seria menos adequada. Parece possível prestar atenção à região onde a lacuna pode estar. Também fico curioso se fazer fine-tuning com esse tipo de tarefa ajudaria
2) Quanto mais curta a entrada e menor a omissão, mais difícil era. Mesmo para uma pessoa, é mais difícil perceber que falta uma única palavra, e uma linha faltando é mais difícil do que dez linhas faltando, então isso não é totalmente surpreendente. Ainda assim, é interessante que LLMs sofram com esse problema
3) Modelos de raciocínio se saem melhor porque podem resolver escrevendo o documento diretamente. Mas ainda é muito surpreendente que a acurácia não seja 100%. Isso deveria ser uma tarefa trivial e, como o artigo diz, pode ser resolvida com um programa simples. Um agente como o ChatGPT poderia, durante o treinamento, ler esse artigo e aprender que deve escrever e executar Python ao resolver esse tipo de problema
A parte mais interessante é quais outros aspectos da inteligência ainda não identificamos explicitamente, e se LLMs e a IA atual são muito fracos neles. Este artigo sugere que pode haver muitos desses aspectos e, no geral, parece uma época bem divertida para quem cria benchmarks
Para ser justo, eu colocaria a busca literal por diferenças entre strings na mesma categoria de fazer um LLM executar aritmética mecânica.
O mecanismo de atenção faz um raciocínio complexo demais para esse tipo de tarefa idiota. É justamente nesses casos que ele deveria simplificar intencionalmente, focar e processar de forma disciplinada, em vez de fazer uma previsão sofisticada do próximo token.
Na prática, ajudaria pedir ao LLM que liste e compare o documento inteiro. É uma forma de dividir em etapas, como no raciocínio, e é parecido com o fato de LLMs se saírem melhor quando quebram problemas de aritmética ou álgebra em pequenos passos.
Suspeito que os modelos com bom desempenho possam ser modelos MoE. Talvez haja um ou dois especialistas adequados a tarefas que exigem foco em vez de intuição. Não conheço nada do Gemini Flash, mas acho que ele deve ser um modelo MoE.
Ainda não li o artigo, mas, do ponto de vista do mecanismo de atenção estrutural, é totalmente esperado que ele não detecte ausências não classificadas. Ainda assim, acho que isso pode ser resolvido com pensamento estruturado.
No problema de encontrar uma agulha, basta prestar atenção no alvo que se quer encontrar, e a atenção faz isso razoavelmente bem.
Ao procurar uma ausência, essa ausência pode ser qualquer coisa, então só é possível inferi-la comparando um contexto inteiro com outro contexto inteiro. É difícil para uma camada de atenção fazer isso direito.
Isso se parece com o problema de “ranquear um conjunto longo de itens”. Sem algum processo metacognitivo, simplesmente não dá.
Por exemplo, algo como: “aqui está um poema, e aqui está uma versão do mesmo poema que pode ter algumas linhas faltando. Há alguma linha faltando?”
Na minha opinião, isso está mais perto de um problema de ajuste fino/tuning do que de uma fraqueza essencial dos LLMs.
Se me pedem para encontrar uma omissão em um artigo de machine learning, meu cérebro o compara com outros artigos de machine learning; não preciso compará-lo com Star Wars, Top Gear, história grega, cerâmica e milhares de outros contextos que conheço.
As críticas ao método do AbsenceBench são válidas, mas o simples fato de isso estar sendo usado como benchmark é muito bem-vindo. É claramente um movimento na direção certa.
Ao detectar presença, o cérebro real recebe entradas sensoriais, compara-as com expectativas, mantém a calma ou registra surpresa e, às vezes, produz previsões que orientam o organismo.
Ao detectar ausência, por definição, o cérebro não pode depender de entrada sensorial. Para se surpreender quando não há evidência sensorial, é preciso ter um modelo de mundo forte o suficiente para se surpreender com o fato de uma expectativa não ter sido atendida mesmo sem pistas sensoriais.
A detecção de ausência parece uma tarefa neurológica estritamente de ordem mais alta do que o processamento de entrada sensorial.
Se LLMs não conseguem realizar essa tarefa neurológica de ordem mais alta, isso não seria uma capacidade que, atualmente, existe apenas em seres vivos?
O que você descreveu tem a ver com memória. Memória é armazenar e reproduzir entradas sensoriais na ausência delas. Assim, o cérebro reproduz entradas sensoriais passadas e as contrasta com a entrada sensorial atual.
Por exemplo, se você deixa uma caneta sobre a mesa, sai e, ao voltar, a caneta não está mais lá, o cérebro compara a memória armazenada da caneta sobre a mesa com o que vê agora.
LLMs parecem ser fracos em diff de strings. Como observação lateral, fico curioso se existe algum recurso, como um repositório no GitHub, que organize essas descobertas sobre o que LLMs fazem bem e mal.
É um benchmark ruim.
Tentei o prompt deles [1] com 3 itens numerados, e o qwq-32b acertou sem nenhum problema. Acho que ele conseguiria resolver 100 itens com 100% de precisão, mas provavelmente precisaria de 1 milhão de tokens. Talvez até mais de 10 milhões.
Um limite de 5.000 tokens é baixo demais para modelos de raciocínio. É preciso dar bastante computação em tempo de teste, e até 10 vezes 5.000 tokens ainda seria pouco.
Se os autores falam de entradas longas, então, para 100 páginas, deveriam dar 1 bilhão de tokens.
A implementação correta seria processamento em lote. Encontrar os 5 primeiros itens numerados no texto de entrada com omissões; se encontrados, simplificar os itens de entrada e os itens da entrada com omissões, e então continuar.
Dependendo do tamanho da entrada, sempre será necessária uma quantidade considerável de tokens, mas a simplificação ajudará a recuar corretamente e a não perder completamente o contexto.
[1] Você está ajudando um aluno a praticar a memorização de um poema. O aluno recita o poema, mas pode ter pulado algumas linhas. Sua tarefa é identificar exatamente quais linhas estão faltando na recitação. Liste apenas as linhas faltantes e não escreva mais nada. Mensagem do usuário: Aqui está o poema original completo: 1)Quisella's lashes fluttered panic-morse. 2)The Moisture Vampires leeches that sucked humidity. 3)Lysandra's nostrils flared precisely one degree. Agora, aqui está minha recitação, que pode ter linhas faltando: Quisella's lashes fluttered panic-morse. Lysandra's nostrils flared precisely one degree. Quais linhas eu deixei de fora? Liste apenas as linhas faltantes e não escreva mais nada.
[1] https://gist.github.com/pramatias/fee1391ad08c7b965f435f3af1...
Fico curioso sobre como isso se aplicaria a modelos visuais. Nos poucos exemplos com uma única imagem que testei, eles pareceram se sair bem.
Em alguns exemplos de brinquedo, Claude e Gemini pareceram ser bastante bons em encontrar diferenças. Imagem de exemplo: https://www.pinterest.com/pin/127578601938412480/
Quando a imagem era invertida, eles pareciam ter mais dificuldade, encontravam menos diferenças ou tinham maior probabilidade de alucinar.