遇见数据集

x86_64-freestanding-corpus

收藏
Hugging Face2026-08-21 更新2026-08-22 收录
官方服务:

资源简介:

x86_64-freestanding-corpus 是一个面向自由态(freestanding)、无 libc 的系统编程场景的 x86_64 代码样本数据集,共包含 74,463 条可编译、可执行的代码样本,总计约 787.8 万 token。该数据集专为现有代码模型设计,用于领域适应(domain-adaptation)和监督微调(SFT),而非从零预训练。其中 74,063 条(99.5%)经过验证,确保能以 -Werror 编译并通过执行后干净退出。数据集包含自然语言提示(prompt)、难度等级(easy/medium/hard)和基于标签的过滤功能。数据集分为五个子集:kernel_bypass(5,850 行)、syscall(20,619 行)、fundamentals(38,011 行)、advanced(4,600 行)、quirks(5,383 行)。模式包含字段:id、lang、scenario、code、build_cmd、verified_run、prompt、expected_stdout、assertions、difficulty、tags、tokens、n_lines、ub_risk、runtime。适用任务包括:继续预训练、指令微调、评估。数据集由 12 个 GLM-5.2 子代理生成,许可证为 MIT。

x86_64-freestanding-corpus is a dataset of x86_64 code samples for freestanding (no libc) system programming scenarios, containing 74,463 compilable and executable code samples with approximately 7.878 million tokens. It is designed for domain adaptation and supervised fine-tuning (SFT) of existing code models, not for pre-training from scratch. 74,063 samples (99.5%) are verified to compile with -Werror and exit cleanly after execution. The dataset includes natural language prompts, difficulty levels (easy/medium/hard), and tag-based filtering. It is divided into five subsets: kernel_bypass (5,850 lines), syscall (20,619 lines), fundamentals (38,011 lines), advanced (4,600 lines), and quirks (5,383 lines). The schema includes fields: id, lang, scenario, code, build_cmd, verified_run, prompt, expected_stdout, assertions, difficulty, tags, tokens, n_lines, ub_risk, and runtime. Suitable tasks include continued pre-training, supervised fine-tuning (SFT), and evaluation. The dataset was generated by 12 GLM-5.2 sub-agents and is licensed under MIT.

创建时间:
2026-08-21
原始信息汇总

x86_64-freestanding-corpus 数据集详情

数据集概览

这是一个面向无libc的x86_64独立系统编程的领域适应与SFT数据集,包含94,546个可编译、可执行的x86_64代码样本。每个样本都配有自然语言提示、难度级别和基于标签的过滤功能。其中93,986行(99.4%)经过验证,可用-Werror标志编译,执行时能干净退出。总计约1,001.7万个token。

适用场景

该数据集适用于已有代码模型的领域适应和指令微调,而非从零预训练。主要用途包括:

  • 持续预训练:可以5-15%的权重与通用代码语料库(如The Stack v2)混合使用
  • 指令微调(SFT):使用prompt列提供的自然语言指令与验证代码直接进行SFT
  • 评估:保留子集,针对expected_stdoutassertions检查pass@k指标

子集构成

子集 行数 运行验证通过率 带提示 带断言
kernel_bypass 5,850 100.0% 5,850 0
syscall 20,619 100.0% 20,619 0
fundamentals 58,014 100.0% 58,014 3,476
advanced 4,600 91.3% 4,600 0
quirks 5,463 97.1% 5,463 240
总计 94,546 99.4%
  • kernel_bypass:使用用户空间可访问的CPU指令(rdtsc、cpuid、rdpmc、原子操作、栅栏、fxsave、SSE等)绕过内核的Ring-3安全代码,涵盖20种场景
  • syscall:使用x86_64 Linux ABI的原始syscall指令,无libc依赖,涵盖20种系统调用场景
  • fundamentals:基本的编程结构(打印、算术、数学、循环、排序、字符串、位操作、递归)的独立实现,涵盖20种场景
  • advanced:栅栏、故障处理器、幽灵缓解、SIMD、UEFI、PIC、cpuid功耗,涵盖23种场景
  • quirks:C/C++/ASM语言特性,如RAII、版本特性、ISA指令,涵盖70种场景

数据模式

数据集包含以下字段:

  • id(int32):子集内唯一标识
  • lang(string):c89/c99/c11/c17/c23/cpp98..cpp23/asm_x86_64
  • scenario(string):场景名称
  • code(string):完整源代码
  • build_cmd(string):确切的编译命令
  • verified_run(bool):二进制是否干净退出
  • prompt(string):自然语言指令
  • expected_stdout(string):预期标准输出
  • assertions(string):分号分隔的CHECK()表达式
  • difficulty(string):easy / medium / hard
  • tags(string):逗号分隔的标签
  • tokens(int32):预估token数
  • n_lines(int32):行数
  • ub_risk(string):静态分析发现的UB风险
  • runtime(string):linux / uefi

语言分布

支持12种语言变体,覆盖C和C++各版本以及x86_64汇编。其中asm_x86_64数量最多(25,474行),其次是c99(11,007行)。

构建验证

  • 使用gcc 14.2.0、g++ 14.2.0、nasm 2.16.01、ld 2.44进行编译验证
  • 每个可运行行均作为静态二进制执行并干净退出
  • 仅UEFI场景(runtime=uefi)需要UEFI固件执行,这些行已通过构建验证且代码正确

数据加载

可通过datasets库或pyarrow加载数据: python from datasets import load_dataset ds = load_dataset("Kureiwa/x86_64-freestanding-corpus", "fundamentals")

或通过pyarrow读取parquet文件: python import pyarrow.parquet as pq t = pq.read_table("data/fundamentals.parquet")

构建命令

  • C:gcc -std=cNN -m64 -nostdlib -ffreestanding -static -no-pie -Werror file.c -o file
  • C++:g++ -std=c++NN -m64 -nostdlib -ffreestanding -static -no-pie -fno-exceptions -fno-rtti -Werror file.cpp -o file
  • ASM:nasm -f elf64 file.s -o file.o && ld -nostdlib -static file.o -o file

局限性

  • 尚无组合示例:每行是单一隔离场景,计划添加多场景程序组合子集
  • 输出验证不完整:大多数行的expected_stdout为空,运行时断言仅覆盖约5%的行
  • 入口点样板代码:大多数行使用void _start(void),计划增加入口模式变化
  • 无多文件示例:每行均为单文件,计划支持多文件

生成方法

由12个GLM-5.2子代理编写人工策划的种子模板,确定性扩展器生成变体。生成后每行均经过构建验证和运行验证,失败行被修复或过滤。kernel_bypass子集受EoSD(https://github.com/rui-727/eosd)启发,展示"内核绕过"是使用ring-3安全的用户空间指令,而非ring-0特权指令。

许可证

MIT许可证,由GLM-5.2(Z.ai)生成。

搜集汇总
数据集介绍
x86_64-freestanding-corpus 数据集图片
构建方式
本数据集由GLM-5.2模型生成的12个子代理精心策划,基于手工筛选的种子模板,通过确定性扩展器生成变体,最终产出94,546个可编译可执行的x86_64裸机系统编程代码样本。每条样本均配备自然语言提示、难度等级和标签,并经过严格的构建验证与运行验证,其中99.4%的样本通过-Werror编译并干净退出,确保代码的可靠性与正确性。
特点
该数据集具有高度的领域针对性与实用性,覆盖内核旁路、系统调用、基础编程、高级特性和语言怪癖五大子集,情景丰富多样。所有样本均支持按语言、场景、难度等标签进行精细过滤,并包含构建命令、预期输出和断言等元数据,便于自动化评估。此外,数据集中融合了x86_64底层特性、无libc环境编程以及多种C/C++/汇编语言标准,展现了深度与广度。
使用方法
数据集适用于领域自适应预训练与指令微调,可作为现有代码模型的延续训练语料,建议以5%-15%的比例与通用代码语料混合;也可直接用于SFT,利用prompt列与验证代码对进行监督微调。同时,可留出部分样本作为评估集,通过expected_stdout和assertions进行pass@k评测。用户可通过HuggingFace datasets库加载单个子集或全部子集,并利用pyarrow进行数据表操作,依据verified_run、难度、语言等条件筛选训练数据,或自行编译运行样本以复现验证流程。
背景与挑战
背景概述
随着操作系统与底层系统编程对高效、无依赖代码需求的日益增长,x86_64架构下的独立环境(freestanding)编程成为关键领域。该数据集由GLM-5.2生成,包含94,546个可编译且可执行的x86_64代码样本,覆盖系统调用、内核绕过、基础语法、高级特性及语言怪癖等场景,旨在为代码模型提供领域适应与指令微调资源。其构建源于对传统libc依赖的突破,强调直接使用底层指令与系统调用,推动低层次编程的自动化生成与验证。该语料库规模适中,约为1,000万token,适用于持续预训练、监督微调及评估,为代码智能在系统编程领域的应用奠定了坚实基础,影响力辐射至内核开发、嵌入式系统及安全研究等领域。
当前挑战
该数据集面临的挑战多维且复杂。首先,领域问题层面,独立环境编程需规避标准库依赖,确保代码在无libc条件下正确编译与运行,同时处理x86_64特有的指令集、系统调用ABI及硬件特性,如原子操作、SIMD优化和异常处理,对模型的低层语义理解构成严格考验。其次,构建过程中,需保证大规模样本的验证准确性,通过gcc、nasm等工具链严格编译与执行测试,实现99.4%的运行成功率,但高级子集(如UEFI)因固件依赖导致验证受限,且输出验证尚不全面,仅有少量样本含断言。此外,数据多样性不足,缺乏组合示例、多文件程序及入口点变化,难以防范模型记忆,降低泛化能力。
常用场景
经典使用场景
x86_64-freestanding-corpus数据集作为面向无libc依赖的x86_64裸机系统编程领域的高质量语料库,其经典使用场景聚焦于代码模型领域适配与指令微调。研究者可将其按5%-15%的权重与通用代码语料(如The Stack v2)混合,用于大型语言模型的持续预训练,以强化其在底层系统编程任务中的表征能力。同时,该数据集内嵌的自然语言指令与验证无误的代码对,可直接用于监督式指令微调,使模型习得精确遵循底层编程规范的能力。此外,该语料亦支持构建评估基准,通过预留子集并依据expected_stdout与断言机制计算pass@k指标,客观衡量模型在无标准库约束下的代码生成正确性与鲁棒性。
解决学术问题
该数据集精准回应了代码生成领域长期存在的学术挑战,即大模型在应对底层系统编程(如系统调用、内核旁路、硬件交互)时,因缺乏针对性训练语料而性能欠佳的问题。传统通用代码数据集多涵盖应用程序级代码,对无libc环境下的裸机编程、ABI约定及指令级细节覆盖不足,导致模型生成代码常存在编译失败或运行异常。此数据集通过提供逾九万条经严格编译与运行验证的样本,使模型得以学习freestanding环境中的编程范式,显著提升生成代码的可编译性与执行正确性,从而深化对计算机系统底层机理的理解,为构建更稳健、更专业的代码智能模型奠定了数据基石。
衍生相关工作
该数据集的发布催生了一系列衍生学术探索。其一,基于其验证机制与场景划分,研究者得以构建针对底层代码生成模型的专用评测集,推动开发更精准的pass@k评估工具与编译验证流程,使得模型在freestanding环境下的性能可量化、可比较。其二,其内核旁路子集启发了对无特权指令安全运用的系统化研究,衍生了关于用户态指令序列与操作系统安全边界交互的探讨。其三,数据集所包含的C/C++语言特性谜题(quirks子集)激发了对模型在语言标准细节把握上的专项分析,促进了面向极端编程语义的模型鲁棒性改进工作。此外,该语料的生成方法(基于种子模板与确定性扩展器)亦为自动化构建高验证密度代码数据集提供了可复用的方法论参考。
以上内容由遇见数据集搜集并总结生成
二维码
社区交流群
二维码
科研交流群
商业服务