Comprendre HumanEval : le benchmark code des LLM
Le HumanEval benchmark LLM est l'étalon historique pour mesurer la capacité d'un modèle à générer du code Python fonctionnel à partir d'une docstring. Publié par OpenAI en 2021, il reste cité dans presque toutes les fiches techniques des LLM open-weights, malgré ses limites désormais bien documentées. Dans ce guide, nous expliquons ce que mesure réellement HumanEval, comment lire un score pass@1, ce qu'apporte la variante HumanEval+, et comment situer les modèles du catalogue quelllm.fr face à ce test. Vous trouverez les specs VRAM, les licences et les cas d'usage concrets pour choisir un modèle de code adapté à votre machine.
Ce que mesure réellement HumanEval
HumanEval est un jeu de 164 problèmes de programmation Python rédigés à la main par les équipes d'OpenAI. Chaque problème fournit une signature de fonction, une docstring décrivant le comportement attendu et plusieurs tests unitaires cachés. Le modèle doit compléter la fonction ; sa sortie est exécutée contre les tests. La métrique standard est le pass@k : probabilité qu'au moins une des k solutions générées passe tous les tests. Le pass@1 mesure la réussite à la première tentative, c'est le chiffre le plus souvent publié.
Le dataset original est décrit dans Evaluating Large Language Models Trained on Code (Chen et al., 2021). Le code et les problèmes sont disponibles sur github.com/openai/human-eval. Les limites principales : taille réduite, biais Python, tests parfois incomplets, et surtout contamination — la majorité des modèles récents ont vu les solutions pendant le pré-entraînement, ce qui gonfle artificiellement les scores.
HumanEval+ et les variantes durcies
Pour répondre à la faiblesse des tests originaux, l'équipe EvalPlus a publié HumanEval+ : mêmes 164 problèmes, mais avec en moyenne 80x plus de tests unitaires générés par fuzzing et mutation. Résultat : les scores baissent de 5 à 20 points pour la plupart des modèles, parce que des solutions superficiellement correctes échouent sur des cas limites (entrées vides, types inattendus, débordements). Le papier de référence est Is Your Code Generated by ChatGPT Really Correct? (Liu et al., 2023) et le leaderboard public est maintenu sur evalplus.github.io.
Autres variantes utiles pour cross-checker un HumanEval+ score :
- MBPP / MBPP+ : 974 problèmes Python plus courts, profil débutant
- MultiPL-E : portage de HumanEval dans 18 langages (Rust, Go, TypeScript, etc.)
- LiveCodeBench : problèmes datés et renouvelés mensuellement pour limiter la contamination
- SWE-bench : tickets GitHub réels, beaucoup plus exigeant que HumanEval
Pour aller plus loin sur la sélection d'un modèle de code, voir le guide Choisir un LLM pour la programmation et le comparatif Top 10 LLM code.
Lire un score pass@1 sans se faire piéger
Un pass@1 à 90% ne signifie pas qu'un modèle écrit 90% de votre code correctement. Trois pièges fréquents :
- Greedy vs sampling : certains rapports publient le
pass@1greedy (température 0, déterministe), d'autres font une moyenne sur 10 ou 100 échantillons à température 0.2. Les chiffres ne sont pas comparables. - Prompt format : zero-shot, few-shot ou avec chain-of-thought changent le résultat de plusieurs points.
- Contamination : un modèle entraîné après 2023 a vu les 164 problèmes. Privilégier HumanEval+ ou LiveCodeBench pour départager les meilleurs.
Pour reproduire un score localement, la librairie bigcode-evaluation-harness reste la référence côté open-source. Elle gère sandboxing, échantillonnage multi-passes et plus de 20 benchmarks de code.
Modèles open-weights et profils HumanEval
Voici une sélection du catalogue quelllm.fr orientée code, avec VRAM Q4, licence et contexte. Les scores HumanEval cités par les vendors sont à confirmer face à HumanEval+.
- Qwen3-Coder-Next 80B-A3B : 80B paramètres MoE (3B actifs), Apache 2.0, VRAM Q4 ~48 GB, contexte 262 000 tokens. Modèle de code dédié, profil très efficace. Fiche : /modele/qwen3-coder-next.
- DeepSeek V3.2 : 685B, MIT, VRAM Q4 ~410 GB, contexte 128k. Très bons scores sur les benchmarks code généralistes. Fiche : /modele/deepseek-v32.
- DeepSeek R1 671B : 671B, MIT, VRAM Q4 ~400 GB. Modèle de raisonnement, fort sur les problèmes algorithmiques de HumanEval. Fiche : /modele/deepseek-r1-671b.
- Qwen 3 235B-A22B : 235B MoE, Apache 2.0, VRAM Q4 ~142 GB. Bon ratio score/VRAM pour serveurs équipés de 2x H100. Fiche : /modele/qwen3-235b-a22b.
- gpt-oss 120B : 117B, Apache 2.0, VRAM Q4 ~70 GB. Modèle OpenAI poids ouverts, performant en code généraliste. Fiche : /modele/gpt-oss-120b.
- Mistral Large 3 675B : 675B, Apache 2.0, VRAM Q4 ~405 GB, contexte 256k. Profil polyvalent code + texte. Fiche : /modele/mistral-large-3.
- Llama 3.3 70B Instruct : 70B, licence Llama 3.3 Community, VRAM Q4 ~40 GB. Modèle accessible sur une seule A100 80 GB. Fiche : /modele/llama33-70b.
Un comparatif détaillé est disponible sur /compare/qwen3-coder-next-vs-deepseek-v32.
Choisir une quantification sans perdre de points
La quantification a un impact mesurable sur le pass@1. Les retours communauté convergent :
- FP16 / BF16 : référence, VRAM = 2 × params en milliards (Go). Score natif du vendor.
- Q8 : perte typique 0 à 1 point sur HumanEval, VRAM ≈ params (Go).
- Q5_K_M : perte 1 à 3 points, VRAM ≈ 0,7 × params.
- Q4_K_M : perte 2 à 5 points sur HumanEval+, parfois davantage sur les modèles denses < 13B. C'est la quantif des chiffres VRAM Q4 du catalogue.
Pour un Qwen 3 235B-A22B en Q4, comptez ~142 GB de VRAM, soit deux H100 80 GB ou un nœud quad-RTX 6000 Ada. En Q8, il faudrait ~235 GB, donc trois H100. Le guide Quantification GGUF expliquée détaille les compromis pour chaque format.
Licences et usage commercial
Le score HumanEval ne suffit pas : la licence détermine si vous pouvez déployer le modèle en production. Le catalogue quelllm.fr distingue trois grandes familles :
- Apache 2.0 / MIT : usage commercial libre, redistribution autorisée. Concerne gpt-oss 120B, Qwen3-Coder-Next 80B-A3B, DeepSeek V3.2, Mistral Large 3 675B, Qwen 3 235B-A22B.
- Llama Community License (3.1, 3.3, 4) : usage commercial autorisé sous 700M MAU, clauses d'attribution. Concerne Llama 3.3 70B Instruct, Llama 3.1 405B Instruct, Llama 4 Maverick 400B.
- Licences sur-mesure : Tencent Hunyuan License pour Hunyuan-A13B Instruct, Qwen License pour Qwen 2.5 72B Instruct, CC-BY-NC 4.0 pour Command R+ 104B (08-2024) — cette dernière interdit l'usage commercial.
Le détail juridique de chaque licence est repris dans /guide/licences-llm-open-source.
FAQ
Q : HumanEval est-il encore pertinent en 2026 ?
Oui pour comparer rapidement deux modèles, non pour décider en production. Les scores pass@1 sont saturés (les meilleurs modèles dépassent 95%) et la contamination des données d'entraînement fausse la mesure. Croisez systématiquement avec HumanEval+, LiveCodeBench et un test sur votre propre codebase avant de choisir.
Q : Quelle différence entre pass@1 et pass@10 ?
pass@1 mesure la réussite à la première génération. pass@10 autorise 10 essais : on compte le problème comme résolu si au moins une solution passe tous les tests. Le pass@10 est toujours supérieur ou égal au pass@1 et reflète mieux un usage agent avec retry, mais il pénalise les modèles très déterministes.
Q : Faut-il viser un modèle de code dédié ou un généraliste ?
Pour du complétion IDE et de la génération courte, un modèle dédié comme Qwen3-Coder-Next 80B-A3B offre un meilleur ratio VRAM/score. Pour du raisonnement algorithmique complexe ou du refactoring multi-fichiers, un généraliste type DeepSeek R1 671B ou Mistral Large 3 675B s'en sort souvent mieux grâce à son chain-of-thought.
Q : Quel matériel pour faire tourner ces modèles localement ?
Pour Llama 3.3 70B Instruct en Q4 (~40 GB), une seule A100 80 GB ou deux RTX 3090 24 GB suffisent. Pour Qwen 3 235B-A22B en Q4 (~142 GB), prévoyez deux H100 80 GB. Au-delà (DeepSeek, Kimi K2.5), il faut un nœud multi-GPU. Le configurateur propose le matériel adapté à votre budget.
Q : Comment éviter le piège de la contamination ?
Privilégiez les benchmarks renouvelés (LiveCodeBench, SWE-bench Verified) et testez le modèle sur du code interne jamais publié. Comparer le score HumanEval au score HumanEval+ donne aussi un signal : un écart supérieur à 10 points indique souvent une mémorisation partielle des solutions originales plutôt qu'une vraie compréhension.
Q : HumanEval mesure-t-il aussi le code en C++, Rust, Go ?
Non, l'original est 100% Python. Pour les autres langages, utilisez MultiPL-E qui transpose les 164 problèmes en 18 langages. Les performances chutent souvent de 10 à 30 points hors Python, ce qui révèle les vrais profils polyvalents comme Mistral Large 3 675B ou Qwen 3 235B-A22B.
Conclusion
Le HumanEval benchmark LLM reste un point d'entrée utile pour comparer des modèles de code, à condition de le coupler à HumanEval+ et à un test sur vos propres données. Le pass@1 brut ne dit pas tout : licence, quantification, VRAM disponible et type de tâche réelle pèsent autant que le score. Pour trouver un modèle adapté à votre machine, lancez le configurateur quelllm.fr ou parcourez le catalogue complet des 249 LLM open-weights indexés.