
? Impact • ? NOUVELLES • Démarrage rapide • Évaluation à distance • Code généré par LLM •? Utilisation avancée •? Soumission des résultats • Citation
BigCodeBench a été utilisé par de nombreuses équipes LLM, notamment:
bigcodebench==v0.2.0 !bigcodebench==v0.1.9 .bigcodebench==v0.1.8 .bigcodebench==v0.1.7 .bigcodebench==v0.1.6 .0.1.5 . BigCodeBench est une référence facile à utiliser pour résoudre des tâches pratiques et difficiles via le code. Il vise à évaluer les véritables capacités de programmation des modèles de grands langues (LLM) dans un cadre plus réaliste. La référence est conçue pour les tâches de génération de code au niveau de la fonction de type humaine, mais avec des instructions beaucoup plus complexes et des appels de fonction divers.
Il y a deux divisions dans BigCodeBench:
Complete : THES Split est conçu pour l'achèvement du code en fonction des docstrings complets.Instruct : La scission fonctionne uniquement pour les modèles d'instructions et de chat, où les modèles sont invités à générer un extrait de code basé sur les instructions en langue naturelle. Les instructions ne contiennent que des informations nécessaires et nécessitent un raisonnement plus complexe.BigCodeBench se concentre sur l'automatisation des tâches via la génération de code avec divers appels de fonction et des instructions complexes , avec:
Pour commencer, veuillez d'abord configurer l'environnement:
# By default, you will use the remote evaluation API to execute the output samples.
pip install bigcodebench --upgrade
# You are suggested to use `flash-attn` for generating code samples.
pip install packaging ninja
pip install flash-attn --no-build-isolation
# Note: if you have installation problem, consider using pre-built
# wheels from https://github.com/Dao-AILab/flash-attention/releases # Install to use bigcodebench.generate
pip install " git+https://github.com/bigcode-project/bigcodebench.git " --upgradeNous utilisons le décodage gourmand comme exemple pour montrer comment évaluer les échantillons de code générés via une API distante.
Avertissement
Pour soulager la génération, nous utilisons l'inférence par défaut par défaut. Cependant, les résultats de l'inférence par lots pourraient varier de la taille des lots aux tailles et versions des lots aux versions , du moins pour le backend VLLM. Si vous souhaitez obtenir des résultats plus déterministes pour le décodage gourmand, veuillez définir --bs sur 1 .
Note
L'exécution à distance sur BigCodeBench-Full prend généralement 6 à 7 minutes, et sur BigCodeBench-Hard prend généralement 4 à 5 minutes.
bigcodebench.evaluate
--model meta-llama/Meta-Llama-3.1-8B-Instruct
--split [complete | instruct]
--subset [full | hard]
--backend [vllm | openai | anthropic | google | mistral | hf]bcb_results .[model_name]--bigcodebench-[instruct|complete]--[backend]-[temp]-[n_samples]-sanitized_calibrated.jsonl .[model_name]--bigcodebench-[instruct|complete]--[backend]-[temp]-[n_samples]-sanitized_calibrated_eval_results.json .[model_name]--bigcodebench-[instruct|complete]--[backend]-[temp]-[n_samples]-sanitized_calibrated_pass_at_k.json . Note
BigCodeBench utilise différentes invites pour les modèles de base et de chat. Par défaut, il est détecté par tokenizer.chat_template lors de l'utilisation hf / vllm comme backend. Pour les autres backends, seul le mode de chat est autorisé.
Par conséquent, si vos modèles de base sont livrés avec un tokenizer.chat_template , veuillez ajouter --direct_completion pour éviter d'être évalué en mode chat.
Accédez aux API Openai depuis la console Openai
export OPENAI_API_KEY= < your_openai_api_key >Accéder aux API anthropes à partir de la console anthropique
export ANTHROPIC_API_KEY= < your_anthropic_api_key >Accès aux API Mistral de la console Mistral
export MISTRAL_API_KEY= < your_mistral_api_key >Access Gemini API depuis Google AI Studio
export GOOGLE_API_KEY= < your_google_api_key > Nous partageons des échantillons de code pré-générés de LLMS que nous avons évalués:
sanitized_samples_calibrated.zip pour votre commodité. Veuillez vous référer à l'utilisation avancée pour plus de détails.
Veuillez envoyer un e-mail à la fois les échantillons de code générés et les résultats de l'exécution à [email protected] si vous souhaitez contribuer votre modèle au classement. Notez que les noms de fichiers doivent être dans le format de [model_name]--[revision]--[bigcodebench|bigcodebench-hard]-[instruct|complete]--[backend]-[temp]-[n_samples]-sanitized_calibrated.jsonl et [model_name]--[revision]--[bigcodebench|bigcodebench-hard]-[instruct|complete]--[backend]-[temp]-[n_samples]-sanitized_calibrated_eval_results.json . Vous pouvez déposer un problème pour nous rappeler si nous ne répondons pas à votre e-mail dans les 3 jours.
@article { zhuo2024bigcodebench ,
title = { BigCodeBench: Benchmarking Code Generation with Diverse Function Calls and Complex Instructions } ,
author = { Zhuo, Terry Yue and Vu, Minh Chien and Chim, Jenny and Hu, Han and Yu, Wenhao and Widyasari, Ratnadira and Yusuf, Imam Nur Bani and Zhan, Haolan and He, Junda and Paul, Indraneil and others } ,
journal = { arXiv preprint arXiv:2406.15877 } ,
year = { 2024 }
}