Benchmark · coding

Aider Polyglot

0 résultats 0 modèles

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
Aider Polyglot rassemble 225 des exercices de programmation les plus difficiles d'Exercism, répartis entre C++, Go, Java, JavaScript, Python et Rust ; on donne au modèle l'énoncé et un fichier squelette, et il doit renvoyer une modification (au format de bloc SEARCH/REPLACE d'aider) qui fait passer les tests unitaires cachés, avec une nouvelle tentative automatique si la première échoue. Un item représentatif en Python, « Acronym », demande de convertir une phrase en son acronyme en prenant la première lettre de chaque mot en majuscule, en traitant les espaces et les traits d'union comme des séparateurs et en ignorant le reste de la ponctuation : étant donné `acronym.py` contenant `def abbreviate(text): pass`, il faut faire passer des tests comme `abbreviate("Portable Network Graphics") == "PNG"` et `abbreviate("Ruby on Rails") == "ROR"`. Une solution correcte remplace le squelette par un bloc SEARCH/REPLACE : ``` acronym.py <<<<<<< SEARCH def abbreviate(text): pass ======= import re def abbreviate(text): words = re.split(r"[^A-Za-z']+", text) return "".join(word[0].upper() for word in words if word) >>>>>>> REPLACE ``` Raisonnement : on découpe le texte sur toute suite de caractères non alphabétiques pour que les espaces comme les traits d'union délimitent les mots, on écarte les fragments vides, puis on concatène la première lettre en majuscule de chaque mot restant — ce qui donne « ROR » pour « Ruby on Rails ». L'item n'est compté comme résolu que lorsque tous les tests unitaires passent, et le benchmark indique le pourcentage des 225 exercices résolus de cette façon.

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