Skip to content

v0.36.2 — a replicação segurou, e a decomposição contradisse nossa própria previsão

Choose a tag to compare

@brcampidelli brcampidelli released this 26 Jul 22:31
· 104 commits to main since this release

O resultado do SWE-bench replicou fora da amostra — e uma quarta rodada decompôs o ganho por componente, contradizendo a previsão que nós mesmos tínhamos registrado.

A replicação

O +15,8% da rodada anterior repousava numa varredura de 3 a 0 sobre três pares informativos. O pré-registro deu a isso uma chance em três de ser só sorte, com a retratação já comprometida. A rodada 3 testou em 41 instâncias django cujos resultados nunca tínhamos visto, sem mudar mais nada.

O efeito reapareceu:

rodada fatia baseline + Chimera Δ pareado IC 95%
3 (replicação) 41 inéditas 34,1% 43,9% +9,8% [−3,5%, +16,7%] não significativo
pooled (secundário) 60 36,7% 48,3% +11,7% [+0,8%, +16,4%] significativo

Dentro da faixa de +5 a +20 que havia sido registrada, e numa fatia que se provou mais difícil que a anterior. Somando as duas rodadas, os pares discordantes ficam 9 a favor contra 2 (p ≈ 2,6% sob a hipótese nula).

A decomposição — e a retratação

Uma quarta rodada restaurou o braço do meio (andaime puro, sem o diff-gate) nas mesmas 41 instâncias, de modo que cada braço difere do seguinte por exatamente um componente:

braço resolvidas taxa precisão ao editar
baseline 14/41 34,1% 50%
+ andaime 16/41 39,0% 59%
+ andaime e diff-gate 18/41 43,9% 67%

Os dois componentes contribuem em metades aproximadamente iguais — andaime +4,9%, gate mais +4,9%, nenhum significativo sozinho.

Isso contradiz a previsão que registramos (de que o andaime carregaria a maior parte) e retira uma leitura anterior de que o --require-diff não era o que produzia o ganho — conclusão tirada de uma fatia estreita demais da evidência. A retratação está no RESULTS.md, com o mesmo destaque da afirmação original.

O padrão limpo: os três braços editam na mesma frequência (27-28 patches de 41). O que sobe é a precisão. Não se vence agindo mais; vence-se acertando mais.

⚠️ A aditividade não é reivindicada como um 50/50 medido — cada comparação repousa em 5-6 pares discordantes.

Leia com estas ressalvas

  • 48,3% não é um score de SWE-bench Verified. É uma fatia deliberadamente fácil, de um único repositório, escolhida para que um A/B pareado tenha espaço de medição. Um score de verdade exige as 500 instâncias.
  • O primário fora da amostra não é significativo. O número significativo é o pooled, pré-registrado como secundário justamente por misturar dados vistos com inéditos — e por isso o snapshot do app carrega o número fora da amostra, não o pooled.
  • Tudo graduado exclusivamente pelo harness oficial swebench 4.1.0 em Docker. Nunca auto-reportado.

Também nesta versão

A decomposição chega ao app desktop, não só ao repositório. O modelo da API é estrito, então o campo novo teria sido descartado em silêncio — os números ficariam no JSON dentro do wheel e nunca apareceriam na interface.

Nada muda no comportamento

Nenhuma mudança no agente. O que muda é o que os números dizem e o quanto se pode rastreá-los.

pip install --upgrade chimera-agent

🤖 Generated with Claude Code