Benchmark · coding
Aider Polyglot
Aider Polyglot est un benchmark d'édition de code issu de l'outil de codage Aider qui teste dans quelle mesure un LLM édite du code existant dans de nombreux langages de programmation. Le score est le pourcentage de tâches dont les modifications produisent un code correct qui passe les tests de la tâche.
En savoir plus
- Exemple
- Un item typique est un exercice de programmation de style Exercism dans l'un de plusieurs langages (Python, Rust, Go, Java, JavaScript ou C++), où le modèle doit éditer les fichiers source fournis pour implémenter la fonction demandée et faire passer les tests.
- Notation
- La métrique est le pourcentage de tâches résolues : une tâche ne compte que si le code édité passe tous ses tests automatiques. Aider suit aussi la fréquence à laquelle les modifications reviennent dans le format correct et applicable.
- Vérification
- Les résultats sont vérifiés automatiquement : les fichiers édités sont exécutés contre la suite de tests unitaires de l'exercice, et une tâche n'est réussie que si tous les tests passent — sans vote humain ni comparaison par correspondance exacte.
- Pourquoi c'est important
- Il reflète le flux de travail réel d'un développeur — éditer des fichiers existants dans de nombreux langages plutôt qu'écrire des extraits à partir de zéro —, ce qui en fait un signal concret de l'utilité d'un modèle comme assistant de codage.
Exemple résolu
Tâche
Aider Polyglot tire des exercices d'Exercism dans 6 langages : le modèle reçoit l'énoncé d'un problème et un fichier squelette (p. ex.
acronym.py contenant def abbreviate(words): ...) et doit l'éditer pour que la suite de tests pytest cachée passe. Exemple d'énoncé : convertir une phrase en son acronyme — 'Portable Network Graphics' → 'PNG', en traitant espaces, traits d'union et underscores comme des séparateurs et en ignorant le reste de la ponctuation.Solution
import re
def abbreviate(words):
return "".join(w[0].upper() for w in re.findall(r"[A-Za-z']+", words))
Explication
L'expression régulière extrait les jetons de mots (lettres plus apostrophes internes), prend la première lettre de chaque jeton, la met en majuscule et les concatène, d'où 'Portable Network Graphics' → 'PNG'. La notation exécute les tests unitaires cachés de l'exercice ; l'item ne compte que si tous passent (aider rapporte pass@2 sur la suite).