Benchmark · coding
MBPP
MBPP (Mostly Basic Python Problems) est un benchmark de génération de code composé d'environ 1000 tâches de programmation Python de niveau débutant, décrites en anglais simple et accompagnées chacune de cas de test automatiques. Il mesure la fréquence à laquelle un modèle écrit une fonction correcte du premier coup, rapportée par la métrique pass@1.
En savoir plus
- Exemple
- Un item typique demande au modèle d'écrire une petite fonction Python à partir d'une description d'une ligne — par exemple, « écrire une fonction qui renvoie le n-ième nombre de Fibonacci » ou « vérifier si une chaîne est un palindrome » — qui est ensuite exécutée sur quelques tests fournis basés sur assert.
- Notation
- La métrique est pass@1 : pour chaque tâche, le modèle génère une solution, et le score est la proportion de tâches dont le code généré passe tous les cas de test de la tâche.
- Vérification
- La solution est acceptée automatiquement : la fonction générée est exécutée sur les tests unitaires de la tâche basés sur assert et n'est comptée comme correcte que si tous les tests passent (sans jury humain ni correspondance exacte de texte).
- Pourquoi c'est important
- MBPP est une référence ancienne et facile à exécuter pour la génération de code Python basique ; comme les modèles performants d'aujourd'hui obtiennent des scores proches du plafond, il est considéré comme saturé et sert surtout de test de cohérence plutôt qu'à départager les meilleurs systèmes.
Exemple résolu
Tâche
Item de style MBPP : « Écrivez une fonction python pour compter le nombre de voyelles (a, e, i, o, u) dans une chaîne donnée en minuscules. » Il est fourni avec trois tests assert cachés, p. ex.
assert count_vowels('hello') == 2, assert count_vowels('world') == 1, assert count_vowels('rhythm') == 0 ; la fonction doit porter le nom que les tests appellent.Solution
def count_vowels(s):
return sum(1 for ch in s if ch in 'aeiou')
Explication
Parcourir la chaîne et compter les caractères de l'ensemble de voyelles 'aeiou' donne 2, 1 et 0 pour les trois entrées, donc tous les assert réussissent. MBPP note la solution en réussite/échec en exécutant la fonction générée sur les trois tests assert fournis (correction fonctionnelle, pass@k).
| Date | Modèle | Score | Source |
|---|---|---|---|
| 2026-07-16 | Granite 4.0 3B | 63.2% | IBM open-source CodeAlchemy, un immense jeu de données synthétique de code de haute qualité |
| 2026-07-13 | Qwen3.5-4B | 13.0% | Flint compresse les traces de raisonnement pour réduire l'utilisation de tokens tout en maintenant la précision |
| 2024-12-17 | Falcon3-10B-Base | 73.8% | La famille Falcon3 publie cinq modèles ouverts avec des capacités améliorées en sciences, mathématiques et code |