Benchmark · coding

BigCodeBench

0 résultats 0 modèles

BigCodeBench est un benchmark de génération de code Python composé de 1 140 tâches de programmation réalistes, chacune exigeant de combiner des appels à plusieurs bibliothèques ; il est noté par un Pass@1 basé sur l'exécution — la proportion de tâches dont la solution générée réussit tous les tests unitaires.

En savoir plus
Exemple
Une tâche typique fournit une signature de fonction et un docstring détaillé — par exemple « charger un CSV, calculer des statistiques résumées par groupe avec pandas, puis tracer un diagramme en barres avec matplotlib » — et demande au modèle d'écrire un corps qui relie correctement plusieurs appels de bibliothèque.
Notation
La métrique est le Pass@1 calibré, généralement avec décodage glouton : chaque programme généré est exécuté contre les tests unitaires de la tâche dans un bac à sable, une tâche n'est comptée résolue que si tous les tests passent, et le score est le pourcentage de tâches résolues. Deux partitions sont rapportées — Complete (compléter une fonction esquissée par un docstring) et Instruct (seulement une instruction en langage naturel) — ainsi qu'un sous-ensemble Hard de 148 tâches.
Vérification
L'acceptation se fait uniquement par exécution : la solution doit réussir tous les tests unitaires écrits à la main de la tâche (environ 5,6 par tâche, avec ~99 % de couverture moyenne des branches) lorsqu'elle est exécutée dans un environnement isolé. Il n'y a ni crédit partiel ni comparaison à un texte de référence.
Pourquoi c'est important
Contrairement aux benchmarks courts à fonction unique comme HumanEval, BigCodeBench teste si un modèle sait suivre des instructions complexes et utiliser correctement des API réelles et variées issues de 139 bibliothèques et 7 domaines, ce qui reflète mieux le travail logiciel concret ; la partition Instruct et le sous-ensemble Hard sollicitent encore davantage le suivi d'instructions et la composition d'outils.
Exemple résolu
Tâche
```python import pandas as pd import numpy as np def task_func(df, column): """ Standardise la colonne numérique indiquée d'un DataFrame pour obtenir une moyenne nulle et une variance unitaire, puis renvoie le DataFrame modifié. Prérequis : - pandas - numpy Paramètres : df (pd.DataFrame): Les données d'entrée. column (str): Nom de la colonne numérique à standardiser. Renvoie : pd.DataFrame: Le DataFrame avec la colonne standardisée. Exemple : >>> df = pd.DataFrame({'a': [1, 2, 3, 4, 5]}) >>> round(task_func(df, 'a')['a'].mean(), 5) 0.0 """ ```
Solution
```python
    df[column] = (df[column] - np.mean(df[column])) / np.std(df[column])
    return df
```
Explication
Soustraire la moyenne de la colonne et diviser par l'écart-type de population (np.std, ddof=0) ramène les valeurs à une moyenne de 0 et une variance unitaire, ce qui satisfait la docstring et son doctest (la moyenne s'arrondit à 0.0), tout en utilisant les deux bibliothèques requises. La notation repose sur l'exécution : BigCodeBench exécute la fonction complétée contre les tests unitaires cachés de la tâche et n'attribue le Pass@1 que si tous les tests réussissent.

Aucun score vérifié pour ce benchmark à ce jour.