THROWBENCH
收藏arXiv2025-03-06 更新2025-03-08 收录
下载链接:
https://github.com/giganticode/throwbench/
下载链接
链接失效反馈官方服务:
资源简介:
THROWBENCH是由Free University of Bozen-Bolzano和Univ. Bordeaux等机构的研究人员创建的一个数据集,包含超过2400个短小的人类编写的程序,这些程序使用四种不同的编程语言编写。大多数程序在运行时抛出异常(由于程序中的错误)。该数据集旨在评估大型语言模型是否能正确预测运行时程序行为,特别是预测程序是否抛出异常以及抛出哪种类型的异常。数据集中的程序是从RunBugRun数据集中筛选出来的,RunBugRun数据集是基于IBM的CodeNet数据集,包含了多种编程语言编写的编程竞赛提交作品。THROWBENCH数据集可用于评估和改进大型语言模型在代码理解方面的能力。
THROWBENCH is a dataset created by researchers from institutions including the Free University of Bozen-Bolzano and Univ. Bordeaux. It contains over 2,400 short, human-written programs developed in four distinct programming languages. Most of these programs throw runtime exceptions due to internal errors in the source code. This dataset is designed to evaluate whether large language models (LLMs) can correctly predict runtime program behaviors, specifically whether a program will throw an exception and what type of exception it will throw. The programs in THROWBENCH are filtered from the RunBugRun dataset, which is based on IBM's CodeNet dataset and consists of programming contest submissions written in a variety of programming languages. The THROWBENCH dataset can be used to evaluate and improve the code comprehension capabilities of large language models (LLMs).
提供机构:
Free University of Bozen-Bolzano, Univ. Bordeaux, CNRS, Bordeaux INP, LaBRI, UMR 5800
创建时间:
2025-03-06
搜集汇总
数据集介绍

构建方式
THROWBENCH数据集的构建始于对现有代码基准的深入分析,尤其是对代码运行时异常预测的探索。研究人员从RunBugRun数据集中选取了包含运行时抛出异常的短程序,这些程序涵盖了Python、Ruby、C#和Java四种编程语言。为了确保数据集的质量和多样性,研究人员进行了数据平衡,包括按编程语言和异常类型进行子采样,并排除了非常长的程序。最终,数据集包含了2466个示例程序,这些程序引发了37种不同的异常类型。构建过程中,研究人员还引入了正确运行的程序作为对照,以帮助评估模型的性能。
特点
THROWBENCH数据集的独特之处在于它专注于预测程序运行时可能抛出的异常类型,这一任务对大型语言模型(LLMs)来说是一项挑战,因为它要求模型深入理解代码的语义和行为。数据集的多语言特性使其能够在不同编程环境中评估模型的性能。此外,由于所有程序的运行时行为都是通过实际执行确定的,因此不存在数据泄露的问题。THROWBENCH旨在作为现有基准的补充,以更全面地评估LLMs的代码能力。
使用方法
使用THROWBENCH数据集时,模型被要求预测给定的程序在特定输入下是否会抛出异常,如果会,还需要预测异常的类型。评估过程中,研究人员使用了六种最先进的代码LLMs,并在所有模型上获得了 modest 的性能,F1分数在19%到38%之间。用户可以通过访问数据集的GitHub存储库来获取THROWBENCH数据集和所有模型输出。未来,可以通过省略答案选项或使用Chain-of-Though prompting技术来进一步提升数据集的挑战性。
背景与挑战
背景概述
THROWBENCH数据集的创建旨在评估现代大型语言模型(LLMs)在代码理解和合成方面的能力。这一数据集由Julian Aron Prenner和Romain Robbes等研究人员于2025年3月发布,并包含超过2,400个由用户编写的简短程序,涵盖Python、Java、C#和Ruby四种编程语言。这些程序中大多数在运行时抛出异常(由于代码中的错误)。THROWBENCH要求LLMs预测给定程序是否抛出异常,以及如果抛出,是哪种类型的异常。通过对六种最先进的代码LLMs进行评估,发现其性能从19%到38%不等(F1分数)。该数据集的创建填补了现有基准测试的空白,有助于更全面地评估LLMs在代码理解方面的能力,并为识别当前模型中的弱点提供了新的视角。
当前挑战
THROWBENCH数据集面临的挑战包括:1) 解决领域问题的挑战:THROWBENCH旨在测试LLMs预测程序运行时行为的准确性,这是一个新的基准测试任务,需要LLMs对代码语义和运行时行为有深入的理解。2) 构建过程中的挑战:THROWBENCH的数据来自RunBugRun数据集,该数据集是基于IBM的CodeNet数据集的子集。虽然THROWBENCH的设计考虑到了数据污染的问题,但由于训练语料库中几乎没有关于程序运行时行为的信息,因此仍可能存在一些数据污染的问题。此外,THROWBENCH的性能评估结果显示,不同LLMs在不同编程语言和异常类型上的表现存在差异,这表明LLMs在代码理解方面仍存在一定的局限性。
常用场景
经典使用场景
THROWBENCH是一个用于评估大型语言模型(LLM)在预测程序运行时异常方面的能力的基准测试。该数据集包含超过2400个短小的用户编写的程序,这些程序在运行时可能会抛出异常。LLM被要求预测给定的程序是否会抛出异常,以及如果会,抛出的是哪种类型的异常。THROWBENCH通过测试LLM对代码语义和运行时行为的理解,为评估LLM的代码能力提供了一个新的视角。
实际应用
THROWBENCH的实际应用场景包括但不限于代码调试和异常处理。通过对LLM进行异常预测能力的评估,可以更好地理解LLM在实际编程任务中的表现,从而改进代码生成和修复工具。此外,THROWBENCH还可以用于教学和学习,帮助开发人员更好地理解代码运行时可能出现的异常类型,提高代码质量和稳定性。
衍生相关工作
THROWBENCH的引入衍生了更多关于LLM代码理解能力的研究。例如,研究者们可以进一步探索LLM在预测异常类型方面的能力,以及如何通过训练和优化来提高LLM的异常预测准确性。此外,THROWBENCH还可以与其他基准测试相结合,形成一个更全面的评估框架,以更好地评估LLM的代码能力。
以上内容由遇见数据集搜集并总结生成



