Benchmark · coding
DS-1000
O DS-1000 é um benchmark de 1000 problemas reais de ciência de dados coletados do Stack Overflow e que abrangem sete bibliotecas Python (NumPy, Pandas, SciPy, scikit-learn, PyTorch, TensorFlow, Matplotlib); mede se um modelo gera código que resolve corretamente cada problema, reportado como acurácia de execução pass@1.
Saiba mais
- Exemplo
- Um item representativo é uma pergunta em linguagem natural sobre como fazer algo com uma biblioteca específica — por exemplo, filtrar ou remodelar um DataFrame do Pandas, uma operação sobre um array NumPy ou um gráfico Matplotlib —, acompanhada de um contexto de código inicial que o modelo deve completar (oferecido nos formatos Completion e Insertion).
- Pontuação
- A métrica é a acurácia de execução pass@1. Cada solução gerada é executada contra casos de teste ocultos e conta como resolvida somente se passar em todos os testes E atender às restrições surface-form (verificações regex de que as APIs exigidas são usadas e os atalhos proibidos não). A pontuação é a fração dos 1000 problemas resolvidos.
- Verificação
- A aceitação é totalmente automática: o programa completado é executado em um ambiente isolado (sandbox) e sua saída é verificada quanto à correção funcional em relação aos casos de teste, combinada com as restrições surface-form. Essa checagem multicritério é projetada para manter baixas as taxas de falsa aceitação e falsa rejeição, e os problemas foram perturbados em relação aos originais do Stack Overflow para reduzir a memorização.
- Por que importa
- Ele capta necessidades realistas e cotidianas de programação em ciência de dados, em vez de quebra-cabeças sintéticos, cobre sete bibliotecas amplamente usadas, e sua avaliação confiável baseada em execução o torna uma referência comum para avaliar modelos de geração de código em trabalho prático de DS.
Exemplo resolvido
Tarefa
Problema: dado um DataFrame do Pandas df com uma coluna numérica 'value', produza um DataFrame contendo apenas as linhas cujo 'value' seja maior que a média da coluna.
<code>
import pandas as pd
df = pd.DataFrame({'value': [1, 5, 3, 9, 2]})
</code>
BEGIN SOLUTION — atribua a resposta a
result. (Ilustrativo, não é um item oficial literal.)Solução
result = df[df['value'] > df['value'].mean()]
Explicação
O mascaramento booleano mantém as linhas em que 'value' excede df['value'].mean(); o harness executa o script completado e compara result com o DataFrame esperado (por exemplo, com os utilitários de teste do pandas), enquanto as restrições surface-form confirmam que é uma solução genuína de Pandas. Avaliado como aprovado/reprovado pela execução.
Ainda não há pontuações verificadas para este benchmark.