
? Impacto • ? Noticias • Inicio rápido • Evaluación remota • Código generado por LLM •? Uso avanzado •? Envío de resultados • Cita
BigCodeBench ha sido utilizado por muchos equipos de LLM, incluidos:
bigcodebench==v0.2.0 !bigcodebench==v0.1.9 .bigcodebench==v0.1.8 .bigcodebench==v0.1.7 .bigcodebench==v0.1.6 .0.1.5 . BigCodeBench es un punto de referencia fácil de usar para resolver tareas prácticas y desafiantes a través del código. Su objetivo es evaluar las verdaderas capacidades de programación de los grandes modelos de lenguaje (LLM) en un entorno más realista. El punto de referencia está diseñado para tareas de generación de código de nivel de función humanal, pero con instrucciones mucho más complejas y diversas llamadas de funciones.
Hay dos divisiones en BigCodeBench:
Complete : Thes Split está diseñado para su finalización de código basado en las documentos completos.Instruct : La división funciona solo para los modelos de instrucciones y de chat, donde se les pide a los modelos que generen un fragmento de código en función de las instrucciones del lenguaje natural. Las instrucciones solo contienen información necesaria y requieren un razonamiento más complejo.BigCodeBench se centra en la automatización de tareas a través de la generación de códigos con diversas llamadas de funciones e instrucciones complejas , con:
Para comenzar, primero configure el entorno:
# 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 " --upgradeUtilizamos la decodificación codiciosa como ejemplo para mostrar cómo evaluar las muestras de código generadas a través de API remota.
Advertencia
Para aliviar la generación, utilizamos la inferencia por lotes por defecto. Sin embargo, los resultados de la inferencia por lotes podrían variar de los tamaños de lotes a los tamaños de lotes y versiones a versiones , al menos para el backend de VLLM. Si desea obtener resultados más deterministas para la decodificación codiciosa, configure --bs a 1 .
Nota
Ejecutarse de forma remota en BigCodeBench-Full Típicamente lleva 6-7 minutos, y en BigCodeBench-Hard generalmente lleva 4-5 minutos.
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 . Nota
BigCodeBench utiliza diferentes indicaciones para modelos base y de chat. Por defecto, es detectado por tokenizer.chat_template cuando se usa hf / vllm como Backend. Para otros backends, solo se permite el modo de chat.
Por lo tanto, si sus modelos base vienen con un tokenizer.chat_template , agregue --direct_completion para evitar ser evaluado en modo de chat.
Acceda a las API Operai desde la consola Operai
export OPENAI_API_KEY= < your_openai_api_key >Acceder a las API antrópicas desde la consola antrópica
export ANTHROPIC_API_KEY= < your_anthropic_api_key >Acceda a las API de Mistral desde la consola Mistral
export MISTRAL_API_KEY= < your_mistral_api_key >Access API de Géminis desde Google AI Studio
export GOOGLE_API_KEY= < your_google_api_key > Compartimos muestras de código previamente generadas de LLM que hemos evaluado:
sanitized_samples_calibrated.zip para su conveniencia. Consulte el uso avanzado para obtener más detalles.
Envíe un correo electrónico a las muestras de código generadas y los resultados de la ejecución a [email protected] si desea contribuir con su modelo a la clasificación. Tenga en cuenta que los nombres de archivo deben estar en el formato de [model_name]--[revision]--[bigcodebench|bigcodebench-hard]-[instruct|complete]--[backend]-[temp]-[n_samples]-sanitized_calibrated.jsonl e e e e e e egional [model_name]--[revision]--[bigcodebench|bigcodebench-hard]-[instruct|complete]--[backend]-[temp]-[n_samples]-sanitized_calibrated_eval_results.json . Puede presentar un problema para recordarnos si no respondemos a su correo electrónico dentro de los 3 días.
@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 }
}