RACE|代码生成数据集|代码质量评估数据集
收藏RACEcode
关于
RACE是一个多维度的代码生成基准,专注于R可读性、A可维护性、C正确性和E效率。其目标是评估大型语言模型(LLM)生成正确且符合真实世界开发场景要求的代码的能力。该基准通过不同的需求依赖维度设计,使其更适用于实际场景。为了便于RACE的评估,我们提供了易于使用的评估脚本,并在虚拟化环境中进行评估以确保代码执行的安全性。
快速开始
环境准备
bash pip install -e .
对于vllm,请运行以下命令:
bash pip install -e .[vllm_gen]
代码生成
以Readability
为例,使用以下命令从模型生成代码样本,这些样本以JSON Lines(jsonl)格式保存。root
指的是输出文件的目录,backend
支持openai
和vllm
。要使用openai
后端,请确保配置了环境变量${API_BASE}
和${API_KEY}
。
bash scripts/gen_readability.sh ${model} ${root} ${backend}
更多维度的命令:
bash
对于Correctness
scripts/gen_correctness.sh ${model} ${root} ${backend}
对于Maintainability
scripts/gen_maintainability.sh ${model} ${root} ${backend}
对于Efficiency
scripts/gen_efficiency.sh ${model} ${root} ${backend}
代码后处理
使用以下命令读取代码样本文件,从模型生成响应中提取有效代码,并将其保存到带有parsed
后缀的文件中。
bash python scripts/parse_generated_file.py --generated_file_path ${generated_file_path} --model ${model}
代码评估
生成的代码评估分为两部分:1) 评估生成代码的正确性;2) 评估各种非执行基础的指标。
首先,构建docker镜像作为评估代码执行的环境:
bash docker build --rm -f "./Dockerfile" -t race:latest "."
然后,以代码可读性为例,基于测试用例测试LLM生成代码的正确性。在此上下文中,生成代码在correctness
维度的评估分布在代码readability
、maintainability
和efficiency
维度上。
bash scripts/eval_c_readability.sh ${model} ${root}
更多维度的命令:
bash
对于Readability
scripts/eval_c_maintainability.sh ${model} ${root}
对于Efficiency
scripts/eval_c_efficiency.sh ${model} ${root}
进一步详细说明如何在一个单一因素下评估LLM生成代码的正确性:
bash
对于Readability
docker run -v $(pwd):/data race:latest race.codeeval.evaluate_pipeline_evalplus --dataset [humaneval|mbpp] --samples "/data/outputs/${parsed_generated_file}"
对于Maintainability (MI Metric)
docker run -v $(pwd):/data race:latest race.codeeval.evaluate_pipeline_classeval test_pipeline --model_name ${model} --generated_data_path "/data/outputs/${generated_file}" --root "/data/outputs"
对于Maintainability (Modularity)
docker run -v $(pwd):/data race:latest race.codeeval.evaluate_pipeline_leetcode_style test_pipeline_simple --model_name ${model} --evaluation_test_case_path "/data/data/leetcode/evaluation_tests.jsonl" --generated_data_path "/data/outputs/${parsed_generated_file}" --result_path "/data/outputs/${results_file}" --temp_path "/data/outputs"
对于Efficiency
docker run -v $(pwd):/data race:latest race.codeeval.evaluate_pipeline_leetcode_style test_pipeline_complexity --model_name ${model} --evaluation_test_case_path "/data/data/leetcode_efficiency/complexity_evaluation_test_cases.jsonl" --evaluation_efficiency_data_path "/data/data/leetcode_efficiency/complexity_evaluation_data.jsonl" --generated_data_path "/data/outputs/${parsed_generated_file}" --result_path "/data/outputs/${results_file}" --temp_path "/data/outputs"
最后,基于特定指标获取评估结果。以Readability
为例:
bash python scripts/get_metric_readability.py --model ${model} --output_path_root ${root}
更多维度的命令:
bash
对于Correctness
python scripts/get_metric_correctness.py --model ${model} --output_path_root ${root}
对于Maintainability
python scripts/get_metric_maintainability.py --model ${model} --output_path_root ${root}
对于Efficiency
python scripts/get_metric_efficiency.py --model ${model} --output_path_root ${root}

- RACE数据集首次发表,由清华大学和微软亚洲研究院共同发布,旨在评估机器阅读理解能力。
- RACE数据集首次应用于多项机器阅读理解竞赛,成为评估模型性能的重要基准。
- RACE数据集被广泛应用于学术研究和工业界,推动了阅读理解技术的发展。
- RACE数据集的扩展版本发布,增加了更多的阅读材料和问题,进一步提升了数据集的挑战性。
新能源光伏功率预测数据
采集数值天气预报数据、实时环境气象数据、光伏电站实时输出功率数据等信息,通过气象预测模型与功率预测算法,实现对光伏电站未来一段时间内气象数据及功率数据的预测。
安徽省数据知识产权登记平台 收录
中国交通事故深度调查(CIDAS)数据集
交通事故深度调查数据通过采用科学系统方法现场调查中国道路上实际发生交通事故相关的道路环境、道路交通行为、车辆损坏、人员损伤信息,以探究碰撞事故中车损和人伤机理。目前已积累深度调查事故10000余例,单个案例信息包含人、车 、路和环境多维信息组成的3000多个字段。该数据集可作为深入分析中国道路交通事故工况特征,探索事故预防和损伤防护措施的关键数据源,为制定汽车安全法规和标准、完善汽车测评试验规程、
北方大数据交易中心 收录
YOLO Drone Detection Dataset
为了促进无人机检测模型的开发和评估,我们引入了一个新颖且全面的数据集,专门为训练和测试无人机检测算法而设计。该数据集来源于Kaggle上的公开数据集,包含在各种环境和摄像机视角下捕获的多样化的带注释图像。数据集包括无人机实例以及其他常见对象,以实现强大的检测和分类。
github 收录
Materials Project
材料项目是一组标有不同属性的化合物。数据集链接: MP 2018.6.1(69,239 个材料) MP 2019.4.1(133,420 个材料)
OpenDataLab 收录
猫狗图像数据集
该数据集包含猫和狗的图像,每类各12500张。训练集和测试集分别包含10000张和2500张图像,用于模型的训练和评估。
github 收录