遇见数据集

PROBE

收藏
arXiv2026-07-15 更新2026-07-17 收录
官方服务:

资源简介:

PROBE是一个由北卡罗来纳大学夏洛特分校和科英布拉大学联合创建的系统化基准测试框架,专为评估大语言模型在文本到代码生成任务中的性能而设计。该框架基于IBM CodeNet数据集构建,涵盖Python、C++、Java、C和Rust五种编程语言,包含多样化难度级别的问题描述、参考解决方案和单元测试,旨在通过功能正确性、解决方案接近度和代码质量三个维度进行全面评估。其创建过程整合了真实世界编程问题、标准化提示模板和可扩展的实验流程,应用于软件工程领域,旨在解决现有基准测试在语言覆盖、评估维度和可复现性方面的局限,为模型性能提供更透明、公平的比较基础。

PROBE is a systematic benchmarking framework co-developed by the University of North Carolina at Charlotte and the University of Coimbra, specifically designed to evaluate the performance of Large Language Models (LLMs) in text-to-code generation tasks. Built upon the IBM CodeNet dataset, this framework encompasses five programming languages: Python, C++, Java, C, and Rust, and features problem descriptions, reference solutions, and unit tests spanning a wide range of difficulty levels. It aims to conduct comprehensive evaluations across three core dimensions: functional correctness, solution proximity, and code quality. Its development process integrates real-world programming problems, standardized prompt templates, and a scalable experimental workflow, targeting the software engineering domain. It aims to address the limitations of existing benchmarks in terms of language coverage, evaluation dimensions, and reproducibility, providing a more transparent and fair comparative foundation for assessing model performance.

创建时间:
2026-07-15
原始信息汇总

PROBE 数据集概述

基本信息

  • 许可证: CC-BY-SA-4.0
  • 语言: 英语
  • 标签: 代码
  • 数据集大小: 1,000–10,000 条数据

数据结构

数据集以单个 JSONL 文件 (dataset.jsonl) 提供,每行对应一个编程问题,包含以下字段:

  • problem_id: 问题的唯一标识符
  • difficulty_level: 任务难度,取值范围 0(最易)到 3(最难),基于 Python 参考解的圈复杂度、LLOC 和 Halstead 工作量估算
  • prompt: 编程任务的自然语言描述
  • unit_tests: 单元测试列表,每个测试包含:
    • number: 测试编号
    • input: 输入
    • output: 预期输出
  • references: 参考解决方案列表,每个方案包含:
    • language: 编程语言(Python, C++, Java, C, Rust)
    • id: 参考解标识符
    • code: 正确实现的源代码

数据统计

  • 问题总数: 1,651
  • 每个问题的参考解数量:
    • Python, C++: 3–250
    • Java, C: 0–250
    • Rust: 0–180
  • 每个问题的单元测试数量: 6–131

数据来源

基于 Project CodeNet 数据集,包含来自 AizuAtCoder 两个在线评测平台的问题。

  • 提示词 (Prompts): 从包含问题描述的 HTML 文件中提取,结构化为如下格式:

    Problem Description: Input Format: Output Format: Constraints:

  • 参考解决方案: 仅保留正确解,每个问题最多随机选择 250 个参考解

  • 单元测试: 大部分直接来自在线评测平台,部分通过可用参考解生成以增加覆盖率

生成代码

generated_code.zip 包含由以下六个模型生成的解决方案:

  • GPT-4.1-mini
  • Gemini-2.0-Flash
  • Deepseek-Coder-v2 (16b)
  • Qwen2.5-Coder (14b)
  • Qwen2.5-Coder (7/14b)

每个模型为每个问题生成五个独立解,涵盖五种编程语言(Python, C++, Java, C, Rust)。当解决方案错误时,模型最多接受两轮反馈并重新生成:

  • solution.{termination}: 初始生成解(无反馈)
  • solution_0/1.{termination}: 第一/二次反馈后生成的解

预期用途

该数据集适用于文本到代码生成任务中大型语言模型的研究与评估。

支持的功能:

  • 功能正确性评估: 通过大规模单元测试进行
  • 相似性分析: 与人工编写实现的语法、语义或结构相似度比较
  • 代码质量评估: 比较不同模型,以及评估生成代码与高质量人工参考实现的差距
搜集汇总
数据集介绍
PROBE 数据集图片
构建方式
PROBE数据集的构建源于对现有代码生成基准局限性的深刻反思。研究团队从IBM CodeNet数据集中精选了1,651道涵盖多种难度梯度的编程题目,并严格确保了每道题目在Python和C++语言中至少拥有三份已验证的参考解答。为突破传统基准仅依赖单元测试的单一评价维度,PROBE系统性地集成了多层面评估组件:不仅包含了丰富的单元测试用例以验证功能正确性,还纳入了结构化的提示模板与详尽的实验流程。此外,针对题目难度,研究者利用聚类算法依据静态代码指标将问题划分为四个层级,从而构建了一个可扩展、语言无关的基准框架,为后续的多维度评估奠定了坚实的数据基础。
特点
PROBE数据集最显著的特点在于其开创性的三维评估体系,超越了传统基准仅关注功能正确性的局限。该体系不仅通过pass@k和结果率等指标衡量代码的功能正确性,还引入了CodeBLEU分数来评估生成代码与有效参考解之间的语义与结构相似度。同时,数据集利用圈复杂度和代码行数作为静态分析指标,评估代码质量。另一个核心特点是对多语言与多策略的覆盖,系统评估了五种编程语言(Python、C++、Java、C和Rust)在三种不同提示策略(基线、上下文学习、反馈整合)下的表现,揭示了模型在不同语言复杂性与提示条件下的性能差异及其根本错误模式。
使用方法
使用者首先需根据自身研究需求明确评估范围,包括选定目标编程语言和需评估的语言模型。随后,通过调用PROBE公开的提示模板库,结合问题描述、输入输出格式及约束条件,以标准化方式向模型发起代码生成请求。生成的代码将经由框架内置的自动化流程进行全面评估:执行环境会依次进行单元测试以判断功能正确性,计算与参考解的CodeBLEU相似度得分,并利用静态分析工具得出代码质量指标。最终,框架将输出一个涵盖三维度的综合评价结果,便于研究者进行横向模型比较与深度分析。
背景与挑战
背景概述
PROBE是由Rodrigo Pato Nogueira、Marco Vieira和João R. Campos于2026年提出的代码生成基准测试框架,隶属于北卡罗来纳大学夏洛特分校与科英布拉大学的研究团队。该数据集聚焦于大语言模型(LLM)在文本到代码生成任务中的系统化评估,旨在解决现有基准测试普遍存在的局限性,如仅依赖单一编程语言、以单元测试通过率作为唯一评价指标、缺乏标准化评估流程等问题。PROBE框架整合了涵盖功能正确性、解的有效性接近度及代码质量的三维度量体系,并基于IBM CodeNet数据集构建了包含1,651个问题、五种编程语言(Python、C++、Java、C、Rust)和多难度等级的多样化工作负载。其对六种开源和商业模型的实证评估揭示了模型规模、语言特性与任务难度对生成代码性能的深刻影响,为后续LLM代码生成能力的研究提供了可扩展且可复现的评估范式。
当前挑战
PROBE所应对的核心领域挑战在于,现有代码生成基准过于简化评估维度,未能全面揭示LLM的能力边界与缺陷。具体而言,传统评估仅关注单元测试通过率(如pass@k),忽视了代码质量、解的结构相似性以及多语言场景下的鲁棒性。PROBE通过引入代码质量(循环复杂度、代码行数)、解接近度(CodeBLEU)及多维度错误分析来弥补这一空白。在构建过程中,框架面临多重挑战:首先,从IBM CodeNet中提取的原始任务描述存在语言混杂(日文)与格式不统一(HTML)问题,需通过LLM辅助清洗与结构化提取;其次,参考解需经过严格的三阶段验证以剔除错误或异常复杂实现,同时确保每个问题至少存在三个跨语言的有效解;此外,单元测试的扩展面临数量不足(原始数据集平均仅提供一个测试)和覆盖完整性难题,研究团队通过结合现有题库测试、LLM生成及多参考解一致验证,最终实现了平均19.61个测试用例及97.1%的行覆盖率,并采用变异测试验证其充分性。
常用场景
经典使用场景
在自然语言处理与软件工程交叉领域,PROBE数据集常被用于大型语言模型在文本到代码生成任务上的系统性基准测试。其典型场景涵盖多语言、多难度级别的编程问题求解,研究者借助该数据集可全面评估模型在功能正确性、代码质量及与参考解相似度三个维度的表现,从而洞察模型在不同编程语言与提示策略下的适用边界。
解决学术问题
PROBE数据集有效弥补了现有代码生成基准局限于单一语言与单位测试结果的不足。其系统化框架整合了功能正确性、解邻近度与代码质量三项互补指标,支撑了对模型在多语言场景下性能差异的量化分析。学者借助该基准可深入探究模型规模、提示策略与问题难度对生成代码可靠性的影响,为理解大型语言模型的编码能力演化提供了可复现的实证基础。
衍生相关工作
PROBE数据集催生了若干后续研究,包括针对具体编程语言(如Rust)的低资源适应策略探索、基于编译器反馈的迭代修复机制优化,以及跨模型架构(如稠密与混合专家模型)的编码能力对比分析。此外,其可扩展的设计理念亦被借鉴至更贴近工业实践的代码理解与仓库级别推理任务基准构建中,推动了代码生成评估范式的多元化演进。
以上内容由遇见数据集搜集并总结生成
二维码
社区交流群
二维码
科研交流群
商业服务