Benchmark · coding
MBPP+
MBPP+ est une version du benchmark de programmation MBPP (Mostly Basic Python Problems) dont la batterie de tests a été rigoureusement enrichie, construite avec le cadre EvalPlus. Il mesure la justesse fonctionnelle des fonctions Python générées par le modèle et se rapporte en pass@1.
En savoir plus
- Exemple
- Un item typique fournit une brève description en langage naturel d'une fonction Python de base à écrire (par exemple, « trouver les éléments communs de deux listes »), assortie de quelques assertions d'exemple qui fixent le comportement attendu.
- Notation
- La métrique est pass@k, généralement pass@1 : une tâche est comptée comme résolue seulement si la fonction générée passe tous les tests ; le score est le pourcentage de tâches résolues. pass@k est calculé avec l'estimateur sans biais standard sur n complétions échantillonnées.
- Vérification
- Chaque fonction candidate est exécutée dans un bac à sable contre la suite complète — les assertions originales de MBPP plus les entrées générées automatiquement par EvalPlus (mutation tenant compte des types et amorçage par LLM, environ 35 fois plus de tests que MBPP). Elle n'est acceptée pour une tâche que si elle passe tous les tests dans la limite de temps.
- Pourquoi c'est important
- Le MBPP original ne fournit qu'environ trois tests par problème, si bien qu'un code subtilement incorrect peut passer comme faux positif. MBPP+ durcit l'évaluation, de sorte que les taux de réussite publiés et les classements de modèles reflètent la justesse réelle plutôt qu'un test faible.
Exemple résolu
Tâche
Écrivez une fonction qui trouve les éléments communs de deux listes données et les renvoie sous forme de liste triée de valeurs uniques. Votre code doit passer des tests comme : assert shared_elements([1, 2, 3, 4], [3, 4, 5, 6]) == [3, 4]
Solution
```python
def shared_elements(list1, list2):
return sorted(set(list1) & set(list2))
```
Explication
Intersecter les deux listes en tant qu'ensembles puis les trier donne les valeurs communes uniques dans l'ordre, ce qui satisfait les assertions. MBPP+ exécute en plus de nombreuses entrées supplémentaires (listes vides, doublons, cas plus grands) ; avec la notation pass@1, la solution ne compte que si elle les passe toutes.
Aucun score vérifié pour ce benchmark à ce jour.