five

DafnyBench

收藏
arXiv2024-06-13 更新2024-06-14 收录
下载链接:
https://github.com/sun-wendy/DafnyBench
下载链接
链接失效反馈
官方服务:
资源简介:
DafnyBench是由哈佛学院和麻省理工学院等机构的研究人员创建的一个大型基准数据集,专门用于训练和评估机器学习系统在形式化软件验证方面的能力。该数据集包含782个独立的Dafny程序,总计约53,000行代码。这些程序来源于GitHub、Clover和Dafny-synthesis等多个来源,旨在通过自动化定理证明工具来验证程序的正确性。DafnyBench的应用领域主要集中在提高软件验证的自动化水平,解决传统验证方法成本高、难度大的问题,从而推动形式化验证技术的广泛应用。

DafnyBench is a large benchmark dataset created by researchers from institutions such as Harvard College and the Massachusetts Institute of Technology (MIT), specifically developed for training and evaluating the capabilities of machine learning systems in formal software verification. This dataset contains 782 standalone Dafny programs, totaling approximately 53,000 lines of code. These programs are derived from multiple sources including GitHub, Clover, and Dafny-synthesis, and are designed to verify program correctness via automated theorem proving tools. The core applications of DafnyBench focus on enhancing the automation of software verification, addressing the high cost and difficulty issues associated with traditional verification methods, thereby promoting the widespread adoption of formal verification technologies.
提供机构:
哈佛学院
创建时间:
2024-06-13
搜集汇总
数据集介绍
main_image_url
构建方式
在形式化软件验证领域,数据集的构建质量直接影响机器学习模型的训练与评估效果。DafnyBench的构建过程体现了严谨的工程方法,其核心数据来源于三个渠道:首先,通过GitHub API系统性地爬取截至2023年底所有公开的Dafny文件,经过基于MinHash算法的去重处理,从约15,000个文件中筛选出约5,000个,再使用Dafny 4.3.0验证器进行严格验证,最终保留556个具备完整确保语句和断言子句的基准程序。其次,整合了Clover数据集的62个教科书式程序,并移除了原有的编译器提示以统一格式。最后,吸纳了dafny-synthesis基准中的164个从MBPP翻译而来的程序。整个构建流程确保了数据集的规模、多样性与验证可靠性,形成了包含782个独立可验证程序的集合。
使用方法
该数据集的核心使用范式围绕“填充提示”任务展开,旨在评估大型语言模型为形式化验证生成必要推理注解的能力。具体流程为:给定一个移除所有断言和不变式提示的Dafny程序,模型需重构完整的验证注解,使程序能通过Dafny验证器。评估遵循严格标准:重构程序必须通过验证;所有前置条件与后置条件必须保持原样;禁止使用{:verify false}或assume false等规避手段。研究实践中,可通过设定温度参数与最大输出标记等超参数,并允许模型基于验证错误信息进行多次尝试,以系统量化其性能。数据集为训练与评估提供了清晰框架,支持对模型在程序长度、提示数量等维度上的能力进行细粒度分析。
背景与挑战
背景概述
在形式化软件验证领域,构建大规模、高质量的基准数据集对于推动机器学习技术的应用至关重要。DafnyBench由哈佛大学、麻省理工学院、斯坦福大学等机构的研究团队于2024年联合创建,旨在填补形式化验证领域基准数据稀缺的空白。该数据集汇集了782个经过验证的Dafny程序,包含约5.3万行代码,是目前规模最大的形式化软件验证基准。其核心研究问题是评估大型语言模型为Dafny验证引擎自动生成验证提示的能力,从而降低形式化验证的人力成本,推动自动化验证工具的发展。该数据集的发布为形式化验证与人工智能的交叉研究提供了重要基础设施,有望加速可靠软件系统的开发进程。
当前挑战
DafnyBench面临的挑战主要体现在两个维度。在领域问题层面,形式化软件验证本身具有极高复杂性,需要为程序生成精确的循环不变式、断言等验证提示,这要求模型深入理解程序语义和逻辑约束。现有最佳模型在该数据集上的成功率仅为68%,表明当前人工智能技术在处理形式化验证任务时仍存在显著局限。在构建过程中,研究团队遭遇了多重挑战:需要从海量GitHub代码库中筛选并去重有效的Dafny程序,确保每个程序都能通过验证器;必须处理程序间复杂的依赖关系,将多文件项目转化为独立的基准单元;同时还需避免数据污染问题,防止基准评估受到模型训练数据的影响。这些挑战共同构成了该数据集在质量和实用性方面的核心考验。
常用场景
经典使用场景
在形式化软件验证领域,DafnyBench作为当前规模最大的基准数据集,其经典使用场景聚焦于评估大型语言模型自动生成验证提示的能力。该数据集通过移除Dafny程序中的断言和循环不变式等关键提示,要求模型重构完整的可验证程序,从而精准测试模型在形式化验证任务中的实际效能。这种设计模拟了现实开发中需要补充验证条件以通过形式化验证工具的场景,为衡量AI辅助验证技术的成熟度提供了标准化测试平台。
解决学术问题
DafnyBench有效解决了形式化验证领域长期存在的基准数据稀缺问题。传统验证数据集如Clover仅包含66个程序,难以支撑机器学习模型的训练与评估。该数据集整合了GitHub开源项目、Clover教科书案例及自动翻译程序,构建了包含782个程序的丰富语料库,显著提升了验证任务的复杂性和多样性。通过量化不同模型在提示生成任务上的成功率,该数据集为研究形式化验证与机器学习交叉领域提供了关键实验基础,推动了可验证代码生成技术的系统性发展。
实际应用
在实际工程应用中,DafnyBench为开发智能验证辅助工具提供了核心训练与评估资源。基于该数据集训练的模型能够自动为Dafny程序生成验证条件,大幅降低形式化验证的技术门槛与人力成本。在航空航天、安全关键系统等对代码可靠性要求极高的领域,此类技术可实现近乎实时的代码正确性验证,有效预防类似阿里安5型火箭爆炸等灾难性软件故障。数据集展现的68%基线成功率,预示着AI驱动形式化验证工具在工业界规模化应用的可行性。
数据集最近研究
最新研究方向
在形式化软件验证领域,DafnyBench作为当前规模最大的机器学习基准数据集,正推动着人工智能辅助验证技术的前沿探索。该数据集通过整合GitHub开源项目、Clover及dafny-synthesis等多元来源,构建了包含782个Dafny程序的验证任务集合,其核心研究方向聚焦于大型语言模型在形式化验证提示生成中的能力评估与优化。当前研究热点体现为对GPT-4、Claude 3等先进模型在程序验证提示填充任务中的系统性测试,揭示了模型在理解Dafny验证语义、处理错误反馈机制方面的局限性,同时探索了程序复杂度与验证成功率之间的量化关系。这一基准的建立不仅为自动化验证工具的性能评估提供了标准化框架,更通过揭示现有模型在长程序验证和多提示生成场景中的性能衰减规律,为下一代可验证代码生成系统的设计提供了关键洞察。其深远意义在于构建了连接形式化方法与机器学习研究的桥梁,有望加速实现编译器级自动验证的愿景,从根本上提升软件系统的可靠性。
相关研究论文
  • 1
    DafnyBench: A Benchmark for Formal Software Verification哈佛学院 · 2024年
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

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

二维码
科研交流群

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

数据驱动未来

携手共赢发展

商业合作