| 日本語 | Anglais | 中文简体 | 中文繁體 |
Code et données pour notre article SWE-bench de l'ICLR 2024 : Les modèles linguistiques peuvent-ils résoudre les problèmes GitHub du monde réel ?
Veuillez consulter notre site Web pour le classement public et le journal des modifications pour plus d'informations sur les dernières mises à jour du benchmark SWE-bench.
SWE-bench est une référence pour évaluer de grands modèles de langage sur des problèmes logiciels du monde réel collectés sur GitHub. Étant donné une base de code et un problème , un modèle de langage est chargé de générer un correctif qui résout le problème décrit.
Pour accéder à SWE-bench, copiez et exécutez le code suivant :
from datasets import load_dataset
swebench = load_dataset ( 'princeton-nlp/SWE-bench' , split = 'test' )
SWE-bench utilise Docker pour des évaluations reproductibles. Suivez les instructions du guide de configuration de Docker pour installer Docker sur votre ordinateur. Si vous effectuez une configuration sous Linux, nous vous recommandons également de consulter les étapes post-installation.
Enfin, pour créer le banc SWE à partir des sources, suivez ces étapes :
git clone [email protected]:princeton-nlp/SWE-bench.git
cd SWE-bench
pip install -e .
Testez votre installation en exécutant :
python -m swebench.harness.run_evaluation
--predictions_path gold
--max_workers 1
--instance_ids sympy__sympy-20590
--run_id validate-gold
Avertissement
L'exécution d'évaluations rapides sur SWE-bench peut nécessiter beaucoup de ressources. Nous vous recommandons d'exécuter le harnais d'évaluation sur une machine x86_64
avec au moins 120 Go de stockage gratuit, 16 Go de RAM et 8 cœurs de processeur. Vous devrez peut-être expérimenter l'argument --max_workers
pour trouver le nombre optimal de nœuds de calcul pour votre machine, mais nous vous recommandons d'en utiliser moins de min(0.75 * os.cpu_count(), 24)
.
Si vous utilisez Docker Desktop, assurez-vous d'augmenter votre espace disque virtuel pour disposer d'environ 120 Go libres disponibles et définissez max_workers pour qu'il soit cohérent avec ce qui précède pour les processeurs disponibles pour Docker.
La prise en charge des machines arm64
est expérimentale.
Évaluez les prédictions du modèle sur SWE-bench Lite à l'aide du harnais d'évaluation avec la commande suivante :
python -m swebench.harness.run_evaluation
--dataset_name princeton-nlp/SWE-bench_Lite
--predictions_path < path_to_predictions >
--max_workers < num_workers >
--run_id < run_id >
# use --predictions_path 'gold' to verify the gold patches
# use --run_id to name the evaluation run
Cette commande générera des journaux de construction Docker ( logs/build_images
) et des journaux d'évaluation ( logs/run_evaluation
) dans le répertoire actuel.
Les résultats finaux de l'évaluation seront stockés dans le répertoire evaluation_results
.
Pour voir la liste complète des arguments du faisceau d'évaluation, exécutez :
python -m swebench.harness.run_evaluation --help
De plus, le dépôt SWE-Bench peut vous aider à :
Ensembles de données | Modèles |
---|---|
? Banc SWE | ? SWE-Lama 13b |
? Récupération "Oracle" | ? SWE-Lama 13b (PEFT) |
? Récupération BM25 13K | ? SWE-Lama 7b |
? Récupération BM25 27K | ? SWE-Lama 7b (PEFT) |
? Récupération BM25 40K | |
? BM25 Récupération 50K (jetons Lama) |
Nous avons également rédigé les articles de blog suivants sur la façon d'utiliser différentes parties de SWE-bench. Si vous souhaitez voir un article sur un sujet particulier, veuillez nous le faire savoir via un problème.
Nous serions ravis d’entendre l’opinion des communautés de recherche plus larges en PNL, en apprentissage automatique et en génie logiciel, et nous acceptons toute contribution, demande d’extraction ou problème ! Pour ce faire, veuillez déposer une nouvelle pull request ou un nouveau problème et remplir les modèles correspondants en conséquence. Nous ne manquerons pas de faire un suivi sous peu !
Personne de contact : Carlos E. Jimenez et John Yang (E-mail : [email protected], [email protected]).
Si vous trouvez notre travail utile, veuillez utiliser les citations suivantes.
@inproceedings{
jimenez2024swebench,
title={{SWE}-bench: Can Language Models Resolve Real-world Github Issues?},
author={Carlos E Jimenez and John Yang and Alexander Wettig and Shunyu Yao and Kexin Pei and Ofir Press and Karthik R Narasimhan},
booktitle={The Twelfth International Conference on Learning Representations},
year={2024},
url={https://openreview.net/forum?id=VTF8yNQM66}
}
MIT. Vérifiez LICENSE.md
.