遇见数据集

KBENCH

收藏
arXiv2024-07-03 更新2024-08-06 收录
数据链接:
官方服务:

资源简介:

KBENCH数据集由哥伦比亚大学和Google等机构创建,包含279个真实的Linux内核崩溃解决案例。每个案例详细记录了崩溃的堆栈跟踪、重现崩溃的输入文件、开发者验证的修复补丁以及相关的编译和执行配置文件。数据集的创建过程涉及从Syzkaller和Syzbot等开源测试服务中收集和筛选数据,确保了数据的真实性和多样性。KBENCH主要用于评估和提升大型语言模型在复杂系统级软件工程任务中的性能,特别是在理解和修复内核级崩溃的能力。

The KBENCH dataset, developed by institutions including Columbia University and Google, contains 279 real Linux kernel crash resolution cases. Each case thoroughly documents the crash stack trace, input files for reproducing the crash, developer-validated fix patches, and associated compilation and execution configuration files. The dataset was created by collecting and filtering data from open-source testing services such as Syzkaller and Syzbot, ensuring the authenticity and diversity of the data. KBENCH is primarily used to evaluate and enhance the performance of large language models (LLMs) on complex system-level software engineering tasks, particularly their ability to understand and fix kernel-level crashes.

创建时间:
2024-07-03
搜集汇总
数据集介绍
KBENCH 数据集图片
构建方式
KBENCH数据集的构建是基于Linux内核中的真实崩溃问题。研究者从Syzbot平台上收集了超过5,000个由Syzkaller检测到的内核崩溃问题,并从中筛选出符合特定标准的崩溃案例,构建了KBENCH数据集。每个KBENCH样本都包含一个内核代码库的提交ID、崩溃堆栈跟踪、一个用于触发崩溃的测试输入程序、一个开发者编写的修复补丁以及编译和执行配置文件。KBENCH数据集的设计旨在评估大型语言模型在解决Linux内核崩溃问题上的能力,从而推动机器学习在系统软件领域的研究。
特点
KBENCH数据集具有以下特点:1)多样性:包含来自Linux内核的多个子系统的崩溃案例,涵盖了各种崩溃类型,并要求从单行到多行代码的修复。2)复杂性:内核代码库庞大且多语言,涉及C、汇编、Bash和Rust等多种语言,需要模型具备硬件感知和内存安全的知识。3)并发性:内核代码高度并发和非确定性,需要模型能够学习和推理并发线程之间的不同交错调度。4)模糊意图:崩溃报告中问题的根本原因往往未知且难以重现,需要模型具备问题识别和修复的能力。5)去中心化开发:内核开发高度分散,每个子系统都有独特的编码规范,需要模型能够适应不同的开发环境和编码风格。
使用方法
使用KBENCH数据集时,首先需要通过KGYM平台构建内核并运行测试输入程序来重现崩溃问题。然后,将崩溃报告和相关的C文件作为输入提示,提供给大型语言模型生成修复补丁。最后,将生成的补丁应用于代码库,并重新编译内核以验证崩溃是否得到解决。KBENCH数据集的设计使得研究人员可以评估不同的大型语言模型在解决内核崩溃问题上的性能,并推动机器学习在系统软件领域的应用和发展。
背景与挑战
背景概述
大型语言模型(LLMs)在软件工程(SE)任务中取得了显著进展,尤其是在现实世界中的软件堆栈中。为了评估这些模型在开发大规模系统级软件时的实用性,研究人员引入了KGYM平台和KBENCH数据集。KGYM平台提供了一个SE环境,用于在Linux内核上进行大规模实验,包括并行编译和运行内核、检测操作和崩溃、检查日志以及查询和修补代码库。KBENCH是一个从真实世界Linux内核错误中提取的崩溃解决基准。KBENCH包含279个Linux内核错误解决的样本,每个样本都包括崩溃堆栈跟踪、错误重放文件、开发人员编写的修复程序以及其他相关数据。KBENCH数据集的创建旨在解决现有SE任务与现实世界SE之间的差距,为LLM在系统软件领域的应用开辟了新的研究途径。
当前挑战
KBENCH数据集面临的挑战包括:1) 所解决的领域问题:KBENCH旨在解决Linux内核崩溃解决这一领域问题,这需要对多语言(低级C/汇编/Bash/Rust)、庞大的代码库(超过2000万行)、关键性(影响全球数十亿设备)和高并发性(涉及复杂的并发多线程)的系统代码进行理解和修复;2) 构建过程中所遇到的挑战:KBENCH的构建过程中,研究人员遇到了如何构建一个包含足够多样性和复杂性的数据集的挑战,以及如何评估LLMs在解决Linux内核崩溃问题上的性能。
常用场景
经典使用场景
KBENCH数据集主要用于评估大型语言模型(LLMs)在解决Linux内核崩溃问题方面的能力。它提供了包含崩溃堆栈跟踪、崩溃重现文件、开发者编写的修复程序和其他相关数据的真实Linux内核错误样本。KGYM平台用于在多个虚拟机上并行编译和运行内核,检测操作和崩溃,检查日志,以及查询和修复代码库。通过KGYM,研究者可以对KBENCH进行评估,以测试LLMs在无辅助和辅助(即向模型公开有问题的文件)的情况下解决Linux内核崩溃的能力。
解决学术问题
KBENCH数据集解决了评估LLMs在解决真实世界软件工程(SE)任务中的能力的挑战。现有的基准测试通常关注编程谜题,而KBENCH则专注于解决生产就绪软件中的复杂崩溃问题。这要求模型掌握新的学习技能,包括理解崩溃原因、修复故障、编写内存安全的硬件感知代码,以及理解并发性。KBENCH为LLMs在系统软件中的应用开辟了新的研究方向。
衍生相关工作
KBENCH数据集的引入推动了机器学习和系统软件交叉领域的研究。它激发了研究者开发新的工具和方法来提高LLMs在解决系统级代码崩溃问题方面的性能。例如,研究者可以探索改进LLMs的代码理解能力、修复能力和并发理解能力。此外,KBENCH还可以用于开发新的基准测试,以评估LLMs在其他系统软件任务中的性能,如性能优化和安全性分析。
以上内容由遇见数据集搜集并总结生成
二维码
社区交流群
二维码
科研交流群
商业服务