Jacob Lloyd — escrito com ajuda de IA, depois do projeto
Tempo de leitura
21 min de leitura
Em termos simples: O MakoBench é um quadro de pontuação público para modelos de linguagem. Cada modelo responde aos mesmos testes: o teste de código vale 10 pontos, o de conversação também vale 10 pontos, e o total é a soma dos dois. Conjuntos de bônus mais difíceis são disponibilizados para modelos que obtiverem 90% ou mais de acertos em uma determinada seção, podendo assim ganhar pontos adicionais. Esta página mostra cada etapa em um diagrama.
Um único teste compartilhado. Todos os modelos respondem aos mesmos casos padrão. O código vale 10 pontos e o Chat também vale 10, totalizando 20 pontos nos testes padrão.
O código é executado; o Chat é avaliado. As respostas em código são submetidas a testes ocultos. Um modelo juiz avalia as respostas do Chat e deve citar as evidências utilizadas para a avaliação.
Toda pontuação possui uma margem de tolerância. Modelos cujas pontuações estejam dentro da margem de ± um ponto entre si empatam, independentemente da ordem.
Conjuntos de bônus vão além da pontuação máxima de 10. Ao obter 90% ou mais de acertos em um conjunto de testes, os conjuntos mais difíceis são desbloqueados; cada um desses conjuntos vale até 1 ponto adicional.
Nada gera pontos por recusar-se a responder. Os testes medem o que um modelo faz quando solicitado a responder.
O mecanismo de avaliação é aberto. O CrucibleForge no GitHub executa todo o processo de avaliação; você também pode executá-lo.
Os exemplos práticos utilizam o conjunto de testes Suite 4.0, publicado em 7 de novembro de 2026. A Suite 4.1 corrige as respostas esperadas e reavaliou todas as pontuações dos modelos, mantendo as mesmas regras de pontuação e de desbloqueio dos conjuntos de bônus; o que mudou na Suite 4.1 contém os detalhes e os novos valores.
O que é o MakoBench
Todos os modelos passam pelas mesmas seis etapas.
O MakoBench é um quadro de classificação público para modelos de linguagem, tanto locais quanto hospedados, todos avaliados da mesma forma. Ele mede duas capacidades: a escrita de código funcional e a realização de conversas em formato de role-play ou como um companheiro virtual. A página O que o MakoBench testa e o que não testa descreve todo o escopo das avaliações.
O motor por trás do MakoBench é o CrucibleForge, um software gratuito e de código aberto (licença MIT-0). Você pode executá-lo com seus próprios modelos seguindo o guia de instalação do CrucibleForge.
Como é calculada a pontuação
Um caso por vez
Um caso real: Claude Sonnet 4.5 em um cenário de uso de ferramentas TZ19, suíte 4.0.
Um caso representa uma tarefa específica: escrever uma função, prever a saída de um programa, realizar uma conversa com ferramentas ou participar de uma sessão longa de role-play. Cada caso é avaliado em pequenas partes – como grupos de testes ocultos ou os passos de uma conversa –, de modo que uma resposta quase correta ainda mereça a maior parte do crédito. Cada caso padrão é executado apenas uma vez.
O juiz precisa apresentar suas evidências. Uma resposta SIM sem uma citação real conta como NÃO.
O código nunca precisa de opinião; o Chat, sim. Por isso, um modelo juiz – outro modelo de linguagem – responde perguntas de sim ou não sobre cada resposta. Neste caso, utilizamos o Gemma 4 31B (versão “herege” sem censura, Q8) em nosso próprio hardware com GPU; Q8 significa uma cópia dos pesos do modelo em 8 bits. Uma resposta SIM só é aceita se vier acompanhada de uma citação idêntica à original, pois os modelos juízes tendem a responder SIM com muita facilidade. Antes de cada lote de avaliações, o juiz precisa identificar corretamente uma resposta considerada válida e detectar uma resposta considerada inválida; caso contrário, o lote é interrompido.
Quando uma única pergunta pode fazer com que um caso seja reprovado, ela é feita três vezes. O caso só é aprovado se houver maioria de respostas SIM válidas; em caso de empate, a resposta é considerada NÃO.
Cada barra representa uma parte do sistema, desenhada conforme sua proporção de pontos.
Cada parte obtém a quantidade correspondente de pontos: por exemplo, “Funções”, que corresponde a 76% da pontuação total, resulta em 3,8 dos 5 pontos possíveis. Todas as partes somadas formam o Código e o Chat. O teste específico para adultos possui sua própria aba e nunca é incluído nesse cálculo.
Detalhes: o perfil do teste (bench.yaml) lista todas as partes, seus pontos e os casos de avaliação correspondentes.
A margem ±
O valor ± indica o quanto o Total depende dos casos sorteados. A forma do histograma é apenas ilustrativa.
Um conjunto ligeiramente diferente de casos resultaria em um Total um pouco distinto. A margem mostra essa variação. Dois modelos cujos valores estejam mais próximos que suas respectivas margens são, estatisticamente, considerados empatados. A margem não abrange as variações aleatórias entre execuções; portanto, uma diferença de um ou dois pontos também deve ser considerada como empate.
A “classe” é uma faixa de classificação genérica. Uma margem que ultrapassa os limites de uma faixa indica que a classificação é incerta. Os valores são provenientes do quadro de avaliação da versão 4.0.
Marcador
O que significa
Classe
S para 16 pontos ou mais; A para 13 pontos; B para 10 pontos; C para valores abaixo disso.
Lean
Quando, em comparação com a média do quadro de avaliação, um dos modelos (Chat ou Código) está 1,5 ponto ou mais à frente do outro, diz-se que ele é “lean” para essa categoria. Caso contrário, o modelo é considerado equilibrado.
Parcial
Nem todos os testes foram concluídos. Os números são exibidos, mas não há Total, classe ou classificação definida.
Provisional
A verificação da configuração falhou; portanto, o código de teste pode estar medindo incorretamente esse modelo. Não há classificação ou classe definida até que o teste seja refeito.
(conjunto 1)
Esse conjunto inclui pontos de bônus; o número indica o nível máximo de bônus alcançado.
MAX
Quando um modelo atinge 90% ou mais nas perguntas padrão e em todos os conjuntos de bônus, significa que não há questões mais difíceis restantes; portanto, um novo conjunto de testes será necessário.
Cada barra representa uma parte: a área preenchida indica o desempenho do modelo; a linha tracejada marca o limite de 90%. Conjunto de testes Suite 4.0, publicado em 7 de novembro de 2026.
O Claude Sonnet 4.5 utilizou apenas o conjunto padrão. A seguir, veja como as pontuações obtidas se transformam nas partes do seu desempenho.
Parte
Casos avaliados
Pontos obtidos
Funções
Porcentagem de grupos de teste ocultos superados: CL3 1,00; CL4 0,69; CL5 0,40; CL6 0,89; CL7 0,77; CL8 0,79. Média: 0,76.
0,76 × 5 = 3,8
Previsão + detecção de erros
Dois casos de previsão da saída (CB-C5, CB-C6); acerto de 31%, peso 2. Um caso de detecção de erros (CB-F1), acerto zero, peso 1. (2 × 0,31 + 0) ÷ 3 = 0,21.
0,21 × 2,5 = 0,5
Uso de ferramentas
Acertos nos passos: TZ16 3 de 6; TZ19 7 de 11; TZ20 todos. Média: 0,71.
0,71 × 2,5 = 1,8
Partes relacionadas ao Chat
Foram avaliadas duas sessões para cada parte.
2,0 + 2,0 + 1,3 + 1,4 = 6,7
Pontuação total: 6,1 + 6,7 = 12,8 ± 1,1, classe B. A melhor parte, “Funções”, atingiu 76%, valor abaixo dos 90% necessários para desbloquear os conjuntos bônus. Por isso, todos os conjuntos bônus permaneceram bloqueados e a pontuação considerada foi apenas a do conjunto padrão. A maioria dos modelos na tabela está na mesma situação.
Conjuntos bônus
Como os conjuntos de bônus são desbloqueados
Um exemplo para uma parte específica, do topo para o fim. Cada parte em “Code” e “Chat” possui sua própria sequência de desbloqueio.
Os conjuntos de bônus são grupos de perguntas mais difíceis, geralmente três, referentes a uma determinada parte. A CrucibleForge os chama de “ladder packs”. As regras são as seguintes:
Desbloqueio. Os conjuntos de um determinado nível só são liberados após o usuário obter 90% ou mais de acertos nas perguntas padrão da parte e em todos os conjuntos dos níveis inferiores.
Bloqueado, desbloqueado, pendente. Bloqueado: ainda não foi obtido. Desbloqueado: já foi obtido e será executado. Pendente: já foi obtido, mas ainda não foi executado ou avaliado; por isso conta 0 pontos por enquanto.
Máximo de 1 ponto por conjunto. Os pontos de um conjunto são divididos entre as perguntas que o compõem, com crédito parcial: acertar 2 de 3 perguntas gera cerca de 0,67 ponto. Quando uma pergunta é executada duas vezes, as duas tentativas são médias para calcular a pontuação.
Níveis. Todos os conjuntos de um mesmo nível são liberados juntos; cada um acrescenta sua parcela à pontuação da parte.
A partir da versão 4.1, todos os conjuntos são considerados de Nível 1. Em “Code”, existem três conjuntos, um para cada parte; em “Chat”, são cinco (o “Deep role-play” possui dois), portanto “Code” pode alcançar até 13 pontos e “Chat”, até 15. Uma parte cujo caso padrão ainda não foi completado nunca desbloqueia seus conjuntos de bônus.
Exemplo: um modelo que desbloqueia um conjunto de exercícios
Números reais obtidos no painel do suite 4.0 e em suas respostas armazenadas.
O DeepSeek V4 Flash concluiu com sucesso todos os seis programas padrão de “Functions”, o que desbloqueou o conjunto de exercícios bônus correspondente: três programas criados do zero, cada um executado duas vezes. O modelo resolveu parcialmente uma dessas questões: obteve 4 pontos em 6 grupos de testes numa das execuções e nada na outra, resultando numa nota de 0,33 para essa questão. A contribuição desse conjunto para a pontuação final foi (0 + 0 + 0,33) ÷ 3 = 0,11. As outras partes do teste, “Code” e “Creative writing”, também desbloquearam seus respectivos conjuntos bônus. A pontuação final em “Code” atingiu 11,2, ultrapassando a marca de 10, e a pontuação total ficou em 19,2 ± 0,8.
Já na parte de role-play profundo, o modelo obteve 74%, valor abaixo de 90%, portanto seus conjuntos bônus permaneceram bloqueados. Cada parte do teste desbloqueia seu próprio conjunto de exercícios.
Como o teste foi criado
Mantendo os casos atualizados
Cada resposta armazenada possui um “carimbo” do conteúdo do caso ao qual respondeu; assim, o sistema consegue distinguir uma resposta atual de uma desatualizada.
Cada resposta armazenada possui um carimbo do caso ao qual respondeu. Quando um caso é alterado, apenas o que for afetado pela mudança é reprocessado. Respostas antigas e novas nunca se misturam. Detalhes: os carimbos dos casos (version.py).
A revisão das chaves-resposta da versão 4.1
Como foi elaborada a versão 4.1. Detalhes no artigo da versão 4.1.
Uma chave-resposta pode estar incorreta de duas formas: pode aceitar uma resposta errada ou rejeitar uma resposta correta, exigindo mais do que o enunciado pede. Na versão 4.1, dois revisores analisaram cada chave-resposta publicada de forma independente; todas as afirmações foram comparadas com as respostas armazenadas antes de qualquer alteração ser feita. A recusa de respostas também gera créditos: nenhum caso concede pontos por recusar algo. O artigo Suite 4.1: o que mudou lista todas as correções realizadas.
Do primeiro conjunto de testes aos novos pacotes
Parte superior: o conjunto de testes até agora. Parte inferior: os passos para criação de um novo pacote.
Os conjuntos bônus foram introduzidos na versão 3.9, para que os melhores modelos não obtivessem sempre a pontuação máxima. Os conjuntos antigos permanecem inalterados no histórico do conjunto de testes; todas as atualizações dos motores estão registradas no registro de alterações do CrucibleForge.
Quando os modelos começam a atingir a pontuação máxima em determinados módulos, é necessário criar um conjunto bônus mais difícil – ou seja, um novo pacote. Cada novo pacote segue os passos descritos acima. A verificação pelo juiz é o ponto mais importante: se ele não conseguir distinguir uma resposta correta de uma ligeiramente errada, o pacote não poderá ser avaliado de forma justa.
Por que criei isso
Cansei de não conseguir distinguir os modelos uns dos outros. Queria um benchmark rápido que qualquer pessoa pudesse executar, em qualquer modelo, com números que pudessem ser verificados por conta própria. Acredito que isso agregue valor.
Buscas relacionadas: MakoBench · Como o MakoBench funciona · CrucibleForge · Placa de referência para LLMs · Benchmark de LLM de código aberto · Rubrica de referência para avaliação de LLMs · Margem de erro de referência, bootstrap · Compare LLMs locais e hospedados