Benchmark · coding
CRUXEval
O CRUXEval (Code Reasoning, Understanding, and eXecution Evaluation) mede o quão bem um modelo raciocina sobre a execução de código em 800 funções curtas de Python, por meio de duas tarefas — prever uma entrada que produza uma saída dada e prever a saída para uma entrada dada — pontuadas por correção funcional pass@1.
Saiba mais
- Exemplo
- Mostra-se uma função Python curta e autossuficiente. Na previsão de saída, o modelo recebe uma entrada específica e deve informar o valor exato que a função retorna; na previsão de entrada, recebe a saída e deve fornecer qualquer entrada que a reproduza.
- Pontuação
- A métrica é pass@1 (também se reporta pass@k com o estimador não enviesado padrão): o modelo gera uma ou mais respostas por problema, cada uma é verificada executando a função, e a pontuação é a fração dos 800 problemas resolvidos, separadamente para CRUXEval-I (entrada) e CRUXEval-O (saída).
- Verificação
- Cada previsão é verificada por execução, não por correspondência de strings. Uma resposta de saída só é aceita se for igual ao valor de retorno real da função; uma resposta de entrada só é aceita se, ao ser passada à função, realmente produzir a saída-alvo, então qualquer entrada válida serve, não apenas a original.
- Por que importa
- Prever o comportamento de execução isola o raciocínio sobre código da escrita de código — um modelo pode gerar código plausível sem acompanhar o que ele realmente faz. As funções são simples e autossuficientes, o que faz do CRUXEval uma sonda limpa dessa habilidade, e as duas direções testam o raciocínio para frente (saída) e para trás (entrada).
Exemplo resolvido
Tarefa
def f(nums):
result = []
for n in nums:
result.append(n * 2)
return result
assert f([1, 2, 3]) == ??
CRUXEval-O (previsão de saída): substitua ?? pelo valor que f retorna.
Solução
[2, 4, 6]
Explicação
O laço duplica cada elemento de [1, 2, 3], produzindo [2, 4, 6]. A avaliação executa assert f([1, 2, 3]) == [2, 4, 6] e aceita a resposta apenas se essa asserção passar.
Ainda não há pontuações verificadas para este benchmark.