LiveCodeBench
LiveCodeBench est un benchmark daté qui évalue les modèles d’IA pour le codage, en testant la génération et la réparation de code, le raisonnement sur l’exécution et les performances sur de nouveaux problèmes.
LiveCodeBench est un benchmark mis à jour en continu qui évalue la capacité des modèles de langage d’IA à résoudre des problèmes de programmation. Il teste si un modèle peut produire du code fonctionnel, corriger des erreurs et raisonner sur le comportement d’un programme. Sa particularité tient à la date : les problèmes sont associés à leur date de publication, ce qui permet aux évaluateurs de tester les modèles sur des défis publiés après leur date limite d’entraînement, c’est-à-dire la date la plus récente couverte par leurs données d’entraînement. Cela aide à distinguer une véritable capacité à résoudre des problèmes du simple rappel de solutions déjà rencontrées.
Origines et conception du benchmark#
Présenté dans l’article de 2024 LiveCodeBench : évaluation holistique et sans contamination des grands modèles de langage pour le code, LiveCodeBench a été créé par des chercheurs de UC Berkeley, du MIT et de Cornell University, sous la direction de Naman Jain. Il rassemble des problèmes de programmation compétitive provenant de LeetCode, AtCoder et Codeforces. Parmi les premiers résultats de référence marquants figuraient ceux de GPT-4 Turbo et Claude 3 Opus, qui ont obtenu de bons résultats sur les différentes tâches d’évaluation ; DeepSeek-Instruct-33B et Phind-34B figuraient parmi les principaux modèles de référence à accès ouvert dans les premières comparaisons. Il s’agit de repères historiques, et non de leaders permanents du classement.
La version initiale, release_v1, contenait 400 problèmes publiés entre mai 2023 et mars 2024. Les versions ultérieures sur Hugging Face ont élargi la collection ; LiveCodeBench n’a donc pas de taille unique et permanente. Pour qu’un résultat soit reproductible, il faut préciser la version et la période d’évaluation utilisées.
Comme d’autres jeux de données de benchmark, il propose des tâches et des procédures de notation communes pour comparer les modèles. Sa méthode d’évaluation datée permet également aux évaluateurs de sélectionner une période commune de problèmes récemment publiés.
Ce que mesure LiveCodeBench#
LiveCodeBench évalue quatre capacités connexes des grands modèles de langage, des systèmes qui génèrent et interprètent du texte, y compris du code source :
- Génération de code : produire un programme à partir d’un énoncé de problème et d’exemples d’entrées et de sorties. L’évaluateur exécute la solution sur des tests supplémentaires.
- Auto-réparation : modifier une solution incorrecte après avoir reçu des retours d’exécution, comme une exception ou un échec à un test.
- Exécution de code : prédire la sortie d’un programme fourni pour une entrée donnée. Ici, « exécution » désigne la tâche de raisonnement du modèle ; l’évaluateur compare sa prédiction au résultat de l’exécution réelle.
- Prédiction de la sortie des tests : déduire la sortie attendue à partir de la spécification du problème et d’une entrée fournie, sans recevoir l’implémentation.
La distinction entre les deux dernières tâches est importante. L’exécution de code demande ce que fait un programme existant ; la prédiction de la sortie des tests demande ce qu’une implémentation correcte devrait faire. L’auto-réparation examine le comportement de retour d’information et de révision également utilisé dans le codage agentique, où les systèmes d’IA planifient, écrivent, exécutent et révisent du code.
Pour la génération de code, la correction fonctionnelle signifie que tous les tests requis réussissent. Un programme peut s’exécuter correctement tout en produisant des réponses incorrectes, tandis qu’une erreur d’exécution peut l’empêcher de produire une réponse. Ces deux types d’échec affectent les performances au benchmark.
Lire les scores et comprendre la contamination#
Pass@1 mesure la probabilité qu’une solution générée réussisse tous les tests requis, moyennée sur l’ensemble des problèmes. Une valeur rapportée de 60 % signifie qu’environ six problèmes sur dix sont résolus selon la procédure d’évaluation spécifiée. Cela ne signifie pas que chaque programme réussit 60 % de ses tests.
Pour comparer équitablement les résultats, il faut utiliser la même version du jeu de données, la même période, la même tâche et les mêmes paramètres de génération. L’ingénierie de prompts, les paramètres d’échantillonnage, les limites de sortie et les possibilités de réparation peuvent modifier le résultat. Les résultats ventilés entre les niveaux facile, moyen et difficile révèlent également des différences masquées par une moyenne globale.
La contamination du benchmark se produit lorsque des problèmes ou des solutions d’évaluation apparaissent dans les données d’entraînement d’un modèle. Cette forme de fuite de données peut gonfler les scores, car le modèle a déjà rencontré le contenu. Sélectionner des problèmes publiés après la date limite d’entraînement du modèle réduit ce risque, même si la fiabilité de cette date et les mises à jour ultérieures du modèle restent importantes.
Affirmer qu’un modèle donné « domine LiveCodeBench » nécessite donc un instantané daté du classement et des paramètres d’évaluation identiques. Sans ce contexte, un classement est difficile à interpréter.
Applications et benchmarks connexes#
LiveCodeBench permet de comparer des modèles de codage et de déterminer si leurs faiblesses concernent la génération de solutions, la compréhension du code ou la réparation des échecs. Ses tâches basées sur des concours fournissent des indications sur les capacités en programmation algorithmique ; une évaluation plus large du développement logiciel doit également tester la navigation dans les dépôts, la gestion des dépendances et le comportement lors de l’intégration.
LiveBench est un benchmark distinct et plus général, qui couvre des domaines comme le raisonnement, les mathématiques, le langage et le codage. Des noms similaires ne signifient pas que les scores sont interchangeables.
Pour les développeurs qui créent des applications avec Ultralytics YOLO, LiveCodeBench fournit un indicateur parmi d’autres pour évaluer un assistant de codage. Un complément concret consiste à utiliser Ultralytics Agent Skills, qui fournissent aux agents de codage compatibles des instructions pour la préparation des jeux de données, l’entraînement, l’inférence et l’exportation.
Lorsque cet assistant aide à créer une application YOLO26, évalue son code généré séparément du modèle de vision : le mode validation mesure la qualité des prédictions, tandis que le mode benchmark compare la précision et la vitesse d’inférence des formats de déploiement.










