tokyotech-llm/swallow-code
收藏Hugging Face2026-03-01 更新2025-05-31 收录
下载链接:
https://hf-mirror.com/datasets/tokyotech-llm/swallow-code
下载链接
链接失效反馈官方服务:
资源简介:
SwallowCode是一个包含约161亿个Python代码标记的高质量代码数据集。该数据集通过语法验证、pylint风格过滤、风格引导代码重写(SGCR)和自包含优化代码重写(SCOR)的四阶段管道处理,以提高大型语言模型在程序合成和代码生成方面的性能。
SwallowCode is a high-quality code dataset containing approximately 16.1 billion Python code tokens. The dataset is processed through a four-stage pipeline including syntax validation, pylint style filtering, style-guided code rewriting (SGCR), and self-contained optimization code rewriting (SCOR) to enhance the performance of large language models in program synthesis and code generation.
提供机构:
tokyotech-llm搜集汇总
数据集介绍

构建方式
SwallowCode数据集的构建源自于The-Stack-v2-train-smol-ids中的Python代码子集,经由一个精心设计的四阶段流水线进行精炼。该流程首先利用compile()函数进行语法错误过滤,剔除约9.7%的无效样本;随后引入基于pylint的代码风格过滤,以7.0分为阈值并结合注释惩罚启发式,进一步筛除34.3%的低质量代码。在此基础上,采用Llama-3.3-70B-Instruct模型分两阶段进行重写:第一阶段为风格引导代码重写,强制遵循Google Python风格指南以提升可读性与一致性;第二阶段为自包含优化重写,确保代码片段的独立性与算法效率,并将简单片段转化为具有教育意义的范例。最终形成了包含约161亿个token的高质量Python代码数据集。
特点
SwallowCode数据集的核心特点在于其卓越的质量与系统性的净化流程。通过语法与风格双重过滤,有效消除了代码中的噪声与不良实践;而两阶段的大语言模型重写策略,不仅赋予了代码统一的风格规范,更显著增强了其自包含性与算法优化程度。该数据集在代码生成基准测试中展现出非凡的性能提升,以Llama-3.1-8B模型进行持续预训练后,在HumanEval和HumanEval+上分别取得了相较于Stack-Edu数据集17.0和17.7个百分点的pass@1指标提升。此外,数据集附带了一系列消融实验的中间产物,为研究代码质量增强的各个环节提供了宝贵的分析资源。
使用方法
SwallowCode数据集以JSONL格式存储,可通过HuggingFace Datasets库便捷加载。用户可使用`load_dataset`函数,指定配置名为'swallow-code'以获取最终精炼版本,或选择'ablation/'目录下的各消融实验配置(如'exp2-syntax-error'、'exp3-linter'等)来访问中间处理阶段的数据。该数据集主要面向大语言模型的文本生成任务,适用于代码合成与程序生成的预训练或微调场景。需注意,数据集采用Llama 3.3社区许可协议发布,使用者应同时遵守The-Stack-v2的许可条款。对于需要复现完整流水线的研究者,详细的管道代码与提示词已开源在GitHub仓库中。
背景与挑战
背景概述
近年来,大规模语言模型在代码生成领域的突破性进展高度依赖于高质量预训练语料库的可用性。然而,从网络爬取的原始代码数据往往充斥着语法错误、风格不一致以及缺乏自包含性等缺陷,严重制约了模型对编程逻辑与代码规范的深层理解。在此背景下,东京工业大学团队(主要研究人员包括Kazuki Fujii、Yukito Tajima等)于2025年发布了SwallowCode数据集,旨在通过系统性数据重写管线提升代码数据的质量。该数据集源自The-Stack-v2,经由语法验证、pylint风格过滤以及Llama-3.3-70B-Instruct驱动的两阶段重写(风格引导重写SGCR与自包含优化重写SCOR),最终生成约161亿个Python代码令牌。SwallowCode在HumanEval和HumanEval+基准测试上分别实现了+17.0和+17.7的pass@1提升,显著超越了Stack-Edu等同类数据集,为程序合成与代码生成领域树立了新的数据质量标杆。
当前挑战
SwallowCode所应对的领域问题核心在于:原始代码数据集(如The-Stack-v2)中普遍存在的低质量样本——包括语法错误、非标准编码风格、注释语言混杂以及代码片段缺乏自包含性——严重阻碍了语言模型对编程语义的准确习得,导致生成代码的可靠性低下。在数据集构建过程中,团队面临多重挑战:首先,如何设计有效的过滤规则以剔除海量无效代码,例如通过compile()函数移除约9.7%的语法错误样本,并利用pylint阈值与注释惩罚启发式进一步筛除34.3%的低分代码;其次,如何确保大规模语言模型(Llama-3.3-70B-Instruct)在重写过程中既能强制执行Google Python风格指南,又能避免引入模型自身的风格偏好偏差;最后,如何平衡数据重写的计算成本与质量收益,尤其是在SCOR阶段将碎片化代码转化为自包含且算法优化的示例,这对提示工程与模型推理能力提出了极高要求。此外,数据集还面临潜在的安全风险(如ClamAV检测到的恶意代码标记)以及多语言扩展性不足等局限。
常用场景
经典使用场景
SwallowCode最经典的使用场景在于作为大规模语言模型(LLM)的持续预训练语料,尤其是针对代码生成与程序合成任务。该数据集通过严格的四阶段流水线——包括语法错误过滤、pylint风格过滤以及两阶段的大语言模型重写(SGCR与SCOR)——将原始庞杂的Python代码转换为高质量、风格统一且语义自洽的训练样本。研究者常将其作为代码子集与数学等其他领域数据混合,用于提升模型在HumanEval等基准上的pass@1性能,其效果显著优于同类数据集如Stack-Edu。
衍生相关工作
SwallowCode的发布衍生了一系列相关经典工作。其姊妹数据集SwallowMath专注于数学推理,二者共同构成了多领域高质量预训练语料体系。论文中详尽的消融实验(如exp2至exp11)为后续研究提供了各环节效果的量化基准,启发了诸如直接重写(direct-SGCR)与评分过滤(LLM-based scoring)等变体方法的探索。此外,该工作还催生了基于Llama-3.3-70B-Instruct的代码重写流水线开源工具,推动了代码数据增强领域在可复现性与透明度方面的进步。
数据集最近研究
最新研究方向
当前,大型语言模型在代码生成领域的性能优化已成为前沿热点,而高质量训练数据的构建是实现突破的关键瓶颈。SwallowCode数据集应运而生,它从The-Stack-v2中精选约161亿词元的Python代码,通过语法验证、pylint风格过滤及Llama-3.3-70B-Instruct驱动的两阶段重写(SGCR与SCOR),将原始代码转化为风格统一、自包含且算法高效的样本。这一创新性的数据精炼管线不仅显著提升了代码的可读性与教学价值,更在HumanEval基准上实现了相较Stack-Edu高出17.0个百分点的pass@1成绩,有力证明了重写策略对模型编程能力的增益。该工作与同期发布的SwallowMath数据集共同构成了东京工业大学团队在数学与代码推理领域的前沿探索,其开源的管线代码与消融实验为后续研究提供了可复现的范式,推动了高质量预训练数据构建从粗放过滤向精细化重写的演进。
以上内容由遇见数据集搜集并总结生成



