HuggingFaceTB/stack-edu
收藏官方服务:
资源简介:
Stack-Edu是一个包含125B个标记的教育代码数据集,它是从The Stack v2数据集中筛选出来的。这个数据集是为语言模型训练而设计的。Stack-Edu使用了一种基于分类器的过滤策略,旨在保留最高质量的教育编程内容。Stack-Edu在所有编程语言上都在MultiPL-E基准上表现出比StarCoder2data更好的性能。
Stack-Edu is a 125B token dataset of educational code filtered from The Stack v2, specifically the curated training corpus of StarCoder2 models denoted StarCoder2Data. It is intended for Language Models training. Stack-Edu uses a classifier-based filtering strategy to retain only the highest-quality educational programming content. Stack-Edu shows consistent improvement over StarCoder2data on all the programming languages on MultiPL-E benchmark.
提供机构:
HuggingFaceTB搜集汇总
数据集介绍
构建方式
在大规模代码预训练语料库中,如何筛选出高质量的教育性编程内容始终是提升语言模型性能的关键。Stack-Edu 数据集正是基于这一目标,从 StarCoder2 模型的训练语料 StarCoder2Data 中精心构建而成。其构建流程首先选取了其中规模最大的 15 种编程语言,随后为每种语言分别训练了基于 StarEncoder 模型的分类器。这些分类器利用 Llama3-70B-Instruct 模型生成的合成标注进行训练,从而学习判别代码片段的教育价值。最终,通过设定过滤阈值(除 Java 为 2 分外,其余语言均为 3 分,满分 5 分),从海量代码中保留了最具教育意义的样本,形成了总计约 1250 亿词元的高质量数据集。
特点
Stack-Edu 数据集最鲜明的特点在于其卓越的教育性与广泛的语言覆盖。通过分类器驱动的精细过滤策略,数据集中的每个样本都经过严格的教育价值评估,使得该语料在 MultiPL-E 基准测试中,相较于原始 StarCoder2Data,在所有编程语言上均展现出持续的性能提升。数据集覆盖了包括 Python、Java、C++、JavaScript 等在内的 15 种主流编程语言,其中 Java 子集规模最大,达到 421 亿词元,而 Ruby 子集最小,亦有 16.1 亿词元。此外,每个样本均包含丰富的元信息,如文件路径、源代码编码、许可证类型以及教育评分,为下游任务提供了灵活的数据选择空间。
使用方法
Stack-Edu 数据集的使用需通过 Hugging Face 的 datasets 库进行加载,并配合 Software Heritage 的 S3 存储服务获取实际代码内容。用户可依据所需编程语言,指定相应的配置名称(如 'Python'、'Java')加载对应的训练子集。加载后,需借助 boto3 客户端,根据每条记录中的 blob_id 从 S3 存储桶中下载并解压文件内容。建议在多核环境下并行执行下载与过滤操作,以提升效率。成功获取文本内容后,即可将数据集用于语言模型的预训练或微调,亦可基于其教育评分进行进一步的数据筛选或分析。
背景与挑战
背景概述
在大型语言模型(LLM)蓬勃发展的浪潮中,训练数据的质量与规模成为决定模型性能的核心要素。HuggingFaceTB/stack-edu数据集由Hugging Face团队于2025年发布,旨在解决代码生成领域高质量教育性编程数据稀缺的瓶颈。该数据集从StarCoder2模型的训练语料StarCoder2Data中精心筛选,涵盖15种主流编程语言,总计1250亿个token,其构建灵感源于FineWeb-Edu的成功经验。通过采用基于分类器的过滤策略,Stack-Edu显著提升了代码语言模型在教育性编程内容上的学习效果,在MultiPL-E基准测试中展现出优于原始数据集的性能,为代码智能领域的研究提供了坚实的数据基石。
当前挑战
Stack-Edu所面对的挑战是多维度的。在领域问题层面,代码生成模型常因训练数据混杂低质量或非教育性内容而难以掌握编程最佳实践与算法思维,亟需一个专注高质量教育性代码的数据集来提升模型在代码理解、生成与调试任务上的表现。在数据构建过程中,团队面临两大难题:一是如何从海量开源代码中精准识别教育性内容,这要求训练15个语言专用分类器,并依赖Llama3-70B-Instruct进行合成标注;二是数据合规性挑战,数据集仅提供SWHID标识符而非直接存储文件内容,用户需从Software Heritage的S3存储桶下载,下载过程在16核实例上耗时约6小时,且存在部分文件因缺失而下载失败的风险,增加了数据获取的复杂性与不确定性。
常用场景
经典使用场景
在代码智能与语言模型研究领域,Stack-Edu 数据集的核心价值在于为大规模编程语言模型的预训练提供高质量、教育导向的语料资源。该数据集从 StarCoder2 的原始训练语料 The Stack v2 中,通过基于分类器的精细过滤策略,精选出涵盖 15 种主流编程语言、总计 1250 亿 token 的教育性代码内容。其经典使用场景是作为基础训练语料,用于提升语言模型对编程语义、算法逻辑与代码风格的理解能力,尤其在 MultiPL-E 基准测试中展现出跨语言性能的显著提升。研究者可直接利用该数据集进行模型预训练或微调,以增强模型在代码生成、补全与理解任务上的表现,从而推动代码智能领域的基础模型发展。
衍生相关工作
Stack-Edu 数据集催生了一系列具有影响力的衍生研究工作,其中最典型的是 SmolLM2 系列模型。该工作以 Stack-Edu 为核心训练语料之一,探索了在有限参数规模下通过数据驱动策略实现高性能语言模型的可能性,验证了教育性代码数据对小模型能力提升的关键作用。此外,基于 Stack-Edu 的过滤方法论,研究者进一步开发了针对不同编程领域的专用分类器集合,推动了代码数据清洗技术的标准化。这些衍生工作不仅深化了对代码数据质量影响模型性能的理解,还为后续研究提供了可复现的基线,促使领域内形成以教育性为核心的数据构建共识。
数据集最近研究
最新研究方向
在当前大语言模型快速演进的浪潮中,代码智能领域正经历着从海量原始数据向精细化、高质量训练语料转型的关键阶段。Stack-Edu数据集应运而生,它从StarCoder2Data中筛选出125B token的教育性代码片段,其核心创新在于采用基于分类器的过滤策略——每个编程语言均训练独立的StarEncoder模型,并借助Llama3-70B-Instruct生成的合成标注进行监督学习。这一方法直接呼应了FineWeb-Edu在文本领域验证的“教育质量过滤”范式,并将其成功迁移至代码域。实验表明,Stack-Edu在MultiPL-E基准测试中全面超越了原始StarCoder2Data,尤其在高资源语言如Java和Python上提升显著。该数据集的发布不仅为SmolLM2等小型高效模型的训练提供了关键支撑,更推动了代码预训练数据从“以量取胜”向“以质取胜”的范式转变,对降低模型训练成本、提升少样本学习能力具有深远意义。
以上内容由遇见数据集搜集并总结生成



