RepoZero
收藏数据集概述:RepoZero
RepoZero 是一个用于评估大型语言模型(LLM)进行 零样本仓库级代码翻译 能力的基准数据集和评估套件。其目标是测试模型将整个真实世界库代码库跨编程语言生态系统进行迁移的能力。
核心任务
RepoZero 包含两个代码翻译任务,共涉及 35 个开源库 和 600 个测试文件:
| 任务 | 源语言 | 目标语言 | 库数量 | 测试文件数 |
|---|---|---|---|---|
| C2Rust | C++ | Rust | 11 | 200 |
| Py2JS | Python | JavaScript (Node.js ESM) | 24 | 400 |
- C2Rust:要求模型将 C++ 库实现翻译为地道的、正确的 Rust 代码,需精准匹配原始 C++ 测试程序的 I/O 行为。
- Py2JS:要求模型将 Python 库实现翻译为 Node.js ES 模块(
.mjs)等价物,仅允许使用 Node.js 内置模块,输出需逐字节一致。
其中,Py2JS 任务的每个测试文件根据翻译复杂度被分为三个难度等级:EASY(148 个)、MEDIUM(149 个)、HARD(149 个)。
评估指标
所有评估脚本报告以下两个指标:
- All-Pass Rate(全通过率):所有测试用例均通过的源文件比例。
- Test-Case Pass Rate(测试用例通过率):每个文件通过的测试用例比例的平均值。
数据集结构与格式
数据集仓库结构如下:
RepoZero/ ├── crossant.json # Croissant 元数据描述符 ├── C2Rust/ │ ├── CppLarge/ # C++ 源库 (11 个仓库) │ │ ├── Clipper/ │ │ ├── ... │ │ └── url-parser/ │ └── cleaned_test_cases.jsonl # C2Rust 评估的测试用例参数 ├── Py2JS/ │ ├── dataset/ # Python 源文件 (24 个库,各 20 个测试文件) │ │ ├── base58/ │ │ ├── ... │ │ ├── yaml/ │ │ └── difficulty.json # 每个文件的难度分类 │ └── testcases_60/ # 测试用例参数 JSONL 文件 ├── evaluate/ # 评估脚本 └── run_c2rust/ 和 run_py2js/ # 运行脚本
数据集格式 包括两种 JSONL 文件:
gold_test_files.jsonl:每行是一个 JSON 对象,标识一个基准测试文件,包含分类、文件名、路径和所属库。- 测试用例 JSONL 文件:每行包含一个源文件单次测试调用的命令行参数。
C2Rust 源库列表(11 个)
Clipper, color, earcut.hpp, exprtk, hopscotch-map, idna-cpp, immer, indicators, inflection-cpp, sortedcontainers-cpp, url-parser
Py2JS 源库列表(24 个)
base58, bech32, bencoder, bidict, bitarray, bitstring, boltons, canonicaljson, construct, deepdiff, ecdsa, fractions, furl, idna, jose, jsonschema, markdown, moneyed, mpmath, networkx, pbkdf2, pyaes, rsa, schedule, sqlparse, whoosh, yaml
许可协议
数据集和代码基于 CC0 1.0 发布。基准中使用的所有源代码均衍生自开源仓库,其原始许可证在其各自目录内仍然有效。




