
?影響 • ?新聞•快速啟動•遠程評估•LLM生成的代碼•?高級用法•?結果提交•引用
BigCodeBench已被許多LLM團隊使用,包括:
bigcodebench==v0.2.0 !bigcodebench==v0.1.9 。bigcodebench==v0.1.8 。bigcodebench==v0.1.7 。bigcodebench==v0.1.6 。0.1.5版本。 BigCodeBench是通過代碼解決實用和具有挑戰性的任務的易於使用的基準。它旨在在更現實的環境中評估大語言模型(LLM)的真正編程功能。該基準是為類似HOMANEVAL的功能級代碼生成任務而設計的,但具有更複雜的說明和不同的功能調用。
BigCodebench中有兩個分裂:
Complete :THES Split設計用於基於綜合docstrings的代碼完成。Instruct :拆分僅適用於指令調整和聊天模型,在此要求模型根據自然語言說明生成代碼段。該說明僅包含必要的信息,需要更複雜的推理。BigCodeBench專注於通過代碼生成具有不同功能呼叫和複雜說明的代碼自動化,其中:
首先,請首先設置環境:
# 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 " --upgrade我們使用貪婪的解碼來顯示如何通過遠程API評估生成的代碼樣本。
警告
為了簡化生成,我們默認使用批處理推斷。但是,至少對於VLLM後端而言,批處理推理結果可能從批處理大小到批處理大小以及版本到版本之間有所不同。如果您想獲得更多的貪婪解碼結果,請將--bs設置為1 。
筆記
在BigCodeBench-Full遠程執行通常需要6-7分鐘,而在BigCodeBench-Hard上通常需要4-5分鐘。
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 。 筆記
BigCodeBench對基礎和聊天模型使用不同的提示。默認情況下,使用hf / vllm作為後端時,由tokenizer.chat_template檢測到它。對於其他後端,僅允許聊天模式。
因此,如果您的基本模型帶有tokenizer.chat_template ,請添加--direct_completion ,以避免在聊天模式下評估。
訪問OpenAI控制台的OpenAI API
export OPENAI_API_KEY= < your_openai_api_key >從擬人控制台訪問擬人API
export ANTHROPIC_API_KEY= < your_anthropic_api_key >從Mistral控制台訪問Mistral API
export MISTRAL_API_KEY= < your_mistral_api_key >訪問Google AI Studio的GEMINI API
export GOOGLE_API_KEY= < your_google_api_key > 我們共享我們評估過的LLM的預生產代碼樣本:
sanitized_samples_calibrated.zip 。 有關更多詳細信息,請參考高級用法。
如果您想將模型貢獻給排行榜,請通過電子郵件將生成的代碼示例和執行結果發送給[email protected]。請注意,該文件名的格式應為[model_name]--[revision]--[bigcodebench|bigcodebench-hard]-[instruct|complete]--[backend]-[temp]-[n_samples]-sanitized_calibrated.jsonl [model_name]--[revision]--[bigcodebench|bigcodebench-hard]-[instruct|complete]--[backend]-[temp]-[n_samples]-sanitized_calibrated_eval_results.json 。如果我們在3天內不回复您的電子郵件,您可以提出問題以提醒我們。
@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 }
}