five

RACE

收藏
arXiv2024-07-16 更新2024-07-18 收录
下载链接:
https://github.com/jszheng21/RACE
下载链接
链接失效反馈
官方服务:
资源简介:
RACE数据集由中国信息处理实验室等机构创建,旨在全面评估大型语言模型生成的代码质量。该数据集包含923条数据,涵盖代码的多个维度评估,如可读性、可维护性、正确性和效率。创建过程中,研究者设计了多种用户需求类型,以确保模型生成的代码不仅正确,还能满足特定需求。RACE数据集主要应用于软件开发领域,帮助评估和改进模型在实际应用中的代码生成能力。

The RACE dataset was created by institutions including the China Information Processing Laboratory, aiming to comprehensively evaluate the code quality generated by large language models (LLMs). It comprises 923 data samples, covering multi-dimensional evaluations of code across aspects like readability, maintainability, correctness, and efficiency. During its development, researchers designed multiple types of user requirements to ensure that the code produced by models not only achieves correctness but also fulfills specific targeted needs. The RACE dataset is primarily applied in the software development domain to assist in evaluating and enhancing the code generation capabilities of models in real-world scenarios.
提供机构:
中国信息处理实验室
创建时间:
2024-07-16
原始信息汇总

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支持openaivllm。要使用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维度的评估分布在代码readabilitymaintainabilityefficiency维度上。

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}

搜集汇总
数据集介绍
main_image_url
构建方式
RACE数据集的构建基于大规模的英语阅读理解任务,涵盖了从初中到高中的多个年级段。数据来源于中国中学生的英语考试,经过精心筛选和标注,确保了文本的多样性和难度层次。构建过程中,研究团队采用了自动化的文本处理技术,结合人工校验,以确保每个问题的准确性和合理性。
特点
RACE数据集以其广泛的教育背景和多样的文本类型著称,包含了多种题型,如选择题、填空题等,能够全面评估学生的阅读理解能力。此外,数据集中的文本涉及多个领域,如科学、历史和社会等,增强了数据集的实用性和教育价值。
使用方法
RACE数据集适用于开发和评估自然语言处理模型,特别是那些专注于阅读理解任务的模型。研究者可以通过该数据集训练模型,以提高其在复杂文本理解和问题回答方面的性能。同时,教育工作者也可以利用该数据集进行教学评估和学生能力分析,从而制定更有效的教学策略。
背景与挑战
背景概述
RACE数据集,全称为ReAding Comprehension dataset from Examinations,由清华大学于2017年发布,旨在解决大规模阅读理解任务中的挑战。该数据集源自中国中学生的英语考试,涵盖了多种题型和难度级别,包括选择题、填空题等。RACE的发布标志着阅读理解领域的一个重要里程碑,因为它不仅提供了丰富的训练和测试数据,还推动了自然语言处理技术在教育评估中的应用。通过引入这一数据集,研究者们能够开发出更高效、更准确的阅读理解模型,从而在教育领域产生深远影响。
当前挑战
RACE数据集的构建过程中面临了多项挑战。首先,数据集的多样性要求模型能够处理不同类型的阅读理解问题,这增加了模型的复杂性和训练难度。其次,由于数据来源于真实考试,文本和问题的质量控制成为一大难题,确保数据的准确性和一致性至关重要。此外,RACE数据集的规模庞大,如何高效地处理和分析这些数据,同时保持模型的轻量化和高效性,也是研究者们需要克服的挑战。最后,随着教育评估标准的不断变化,数据集的更新和维护也是一个持续性的问题,确保其能够适应未来的教育需求。
发展历史
创建时间与更新
RACE数据集由清华大学于2017年创建,旨在推动阅读理解领域的研究。该数据集自创建以来,经历了多次更新,以适应不断发展的技术需求和研究方向。
重要里程碑
RACE数据集的创建标志着阅读理解领域的一个重要里程碑。其首次引入了大规模的多项选择题阅读理解任务,挑战了现有模型的能力。2018年,RACE数据集被广泛应用于多项国际竞赛中,显著提升了模型的性能和研究者的关注度。随后,2019年,RACE数据集的更新版本进一步扩展了数据规模和多样性,为研究者提供了更丰富的资源。
当前发展情况
当前,RACE数据集已成为阅读理解领域的重要基准之一,广泛应用于学术研究和工业应用中。其不仅推动了自然语言处理技术的发展,还促进了跨学科的合作与创新。随着深度学习技术的进步,RACE数据集的应用范围不断扩大,为智能教育、智能问答系统等领域提供了坚实的基础。未来,RACE数据集有望继续引领阅读理解领域的研究方向,推动技术的进一步突破。
发展历程
  • RACE数据集首次发表,由清华大学和微软亚洲研究院共同发布,旨在评估机器阅读理解能力。
    2017年
  • RACE数据集首次应用于多项机器阅读理解竞赛,成为评估模型性能的重要基准。
    2018年
  • RACE数据集被广泛应用于学术研究和工业界,推动了阅读理解技术的发展。
    2019年
  • RACE数据集的扩展版本发布,增加了更多的阅读材料和问题,进一步提升了数据集的挑战性。
    2020年
常用场景
经典使用场景
在教育领域,RACE数据集被广泛用于评估和提升机器阅读理解的能力。该数据集包含了大量来自中国中学生英语考试的阅读理解题目,涵盖了多种题型和难度级别。通过分析和处理这些数据,研究人员能够开发出更为精准和高效的阅读理解模型,从而推动自然语言处理技术在教育评估中的应用。
解决学术问题
RACE数据集解决了机器阅读理解领域中多选题型和复杂推理的挑战。传统的阅读理解数据集多集中于简单问答或填空题型,而RACE数据集的引入,使得研究者能够探索更为复杂的文本理解和推理任务。这不仅提升了模型的推理能力,还为教育评估提供了更为全面和准确的工具,具有重要的学术意义。
衍生相关工作
基于RACE数据集,研究者们开发了多种先进的阅读理解模型,如BERT、RoBERTa等,这些模型在多项阅读理解任务中取得了显著的性能提升。此外,RACE数据集还激发了关于多语言阅读理解的研究,推动了跨语言教育评估工具的发展。这些衍生工作不仅丰富了自然语言处理的研究内容,也为教育技术的进步提供了坚实的基础。
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

面向社区/商业的数据集话题

二维码
科研交流群

面向高校/科研机构的开源数据集话题

数据驱动未来

携手共赢发展

商业合作