论文

Spaghetti Architect:抗污染、按构造标记的多语言代码数据集生成器

Spaghetti Architect: A Contamination-Resistant, By-Construction-Labelled, Multi-Language Code Dataset Generator

模型评测基准与评测资源

摘要

挖掘出来的代码语料库非常丰富,但不受控制:片段的语义、表面的“混乱”和难度都是野生的;没有已知的最佳评分参考;并且任何公共样本都可能已经位于模型的训练集中。我们推出了 Spaghetti Architect,这是一种工具,可以通过语料库所缺乏的控制来创建代码数据集。反优化转译器将干净的、与语言无关的 JSON 中间表示映射到五种语言(Python、JavaScript、Go、Java、C++)中故意冗余的、完全扁平化的程序;每个程序都根据参考预言机进行编译、运行和检查,因此每个实例的构造都是正确的。干净的IR是已知的最佳参考,混乱是通过严格嵌套的反模式配置文件来调节的,每个实例都沿着两个正交的难度轴进行标记,内在的(问题大小)和偶然的(以固定语义表示),并且通过从私人保留的种子中铸造新的变体来抵制污染。我们提供了构造有效性证据,证明质量顺序移动了既定的复杂性和可读性指标,并报告了四模型开放阶梯的基线:精确匹配随着规模的增加而增加,而内在旋钮将即使是最强模型的算术聚合精度也压缩为零。此外,开发集分数与新重新铸造的保留分数相同,在 $|Δ|\le 0.012$(理解)和 $\le 0.011$(重构)范围内;在相同的程序上,重构等价($0.73 \rightarrow 0.99$)是尺度不变的,而输出预测崩溃;消除生成器的自注释表明,它们使最弱的模型比最强的模型膨胀了一个数量级($-0.173$ vs $-0.017$):带注释的梯子解析了三个相邻对中的一个,而未注释的梯子解析了所有三个。开源 (MIT)、无依赖性、在持久 DOI 下存档。