遇见数据集

the-stack-v2-smollm3

收藏
Hugging Face2026-09-04 更新2026-09-05 收录
官方服务:

资源简介:

该数据集是 The Stack v2 的一个子集,专注于选定的编程语言并提供了材料化的源代码内容。数据集包含 17 种编程语言配置:TypeScript、Swift、Ruby、Rust、Go、Shell、Jupyter_Notebook、HTML、Python、Java、JavaScript、C、C++、C-Sharp、PHP、SQL 和 Markdown。每种配置仅包含训练集,数据以 Parquet 格式存储。每个样本除了原始元数据外,还添加了 `content` 列(解码后的源代码内容)和 `download_error` 列(成功材料化时为 null,否则记录错误信息)。材料化过程基于 Software Heritage 存档,对每个 blob 进行 SHA-1 验证以确保可重现性。失败和恢复记录分别存储在 `_failures/` 和 `_recoveries/` 目录下。该数据集适用于代码生成、代码补全、编程语言建模、代码分类等任务。

This dataset is a subset of The Stack v2, focusing on selected programming languages and providing materialized source code content. It contains 17 programming language configurations: TypeScript, Swift, Ruby, Rust, Go, Shell, Jupyter_Notebook, HTML, Python, Java, JavaScript, C, C++, C-Sharp, PHP, SQL, and Markdown. Each configuration includes only a training set, and the data is stored in Parquet format. In addition to the original metadata, each sample includes a `content` column (decoded source code content) and a `download_error` column (null if materialization succeeded, otherwise error information). The materialization process is based on the Software Heritage archive, with SHA-1 verification for each blob to ensure reproducibility. Failure and recovery records are stored in the `_failures/` and `_recoveries/` directories respectively. This dataset is suitable for tasks such as code generation, code completion, programming language modeling, and code classification.

创建时间:
2026-09-01
原始信息汇总

The Stack v2 精选语言数据集(含已物化源代码)

数据集概述

该数据集是 The Stack v2 的精选子集,其特点在于已将上游数据集中引用的源代码内容(source code)实际下载并物化(materialized)到数据集中,而非仅提供指向 Software Heritage 存档的引用。该数据集基于 bigcode/the-stack-v2 的指定提交版本(e565caa3a78c2423bd374333a472b049eb090e47)构建。

数据集配置

数据集中包含 17 种语言/格式的配置,每种配置对应独立的训练数据分片(Parquet 格式),具体包括:

  • TypeScript(默认配置)
  • Swift、Ruby、Rust、Go、Shell、Python、Java、JavaScript、C、C++、C-Sharp、PHP、SQL
  • Jupyter_Notebook、HTML、Markdown

每个配置的数据文件路径为 data/<语言名称>/train-*.parquet,仅包含 train 分割。

新增字段与失败处理

  • 新增 content 字段:存储解码后的源代码内容。
  • 新增 download_error 字段:在成功物化时为 null
  • 若 Software Heritage 中单个对象缺失或不可用,物化过程不会中断,原始元数据行会被保留,但 content 字段为 null
  • 详细的失败记录存储在 _failures/<语言>/ 路径下。
  • 在 S3 获取失败后通过 Software Heritage API 恢复的对象记录在 _recoveries/<语言>/ 路径下。

可复现性与审计

  • 版本固定:所有上游元数据来自上述指定提交。
  • 完整性校验:成功获取的源代码 blob 已根据其 blob_id 进行 SHA-1 验证。
  • 溯源信息:机器可读的源代码来源信息在 provenance.json 文件中。
  • 运行配置:各语言/分区的物化器运行配置保存于 _runs/,检查点保存于 _state/
  • 分区信息:大型语言的分区数量已明确(如 Python、Java、C 等语言分区数在 2-3 之间)。分区文件带有 part-<索引>-of-<总数> 标签,以便并发处理。
  • 语言分配:默认语言分配基于 language_stats.csv 快照中的原始字节数和文件数,平衡传输量与 HTTP 请求数。
  • 上传机制:Parquet 分片以最多 8 个批次上传,每个批次及其检查点和审计文件原子性提交。
搜集汇总
数据集介绍
the-stack-v2-smollm3 数据集图片
构建方式
该数据集源自The Stack v2的精选子集,针对SmolLM3模型训练进行了优化。构建过程基于bigcode/the-stack-v2仓库的特定提交e565caa3a78c2423bd374333a472b049eb090e47,通过Software Heritage存档系统对源文件内容进行实体化提取。每个数据条目均附加了'content'列,存储解码后的源代码;若下载失败,则保留原元数据行并将'content'置为null。为保证数据的完整性,构建流程对每个源blob进行了SHA-1校验,并记录了详细的失败与恢复审计信息,存放于对应的_failures和_recoveries目录中。此外,分区任务被分配至多个worker并发执行,每个分区均设有原子提交的检查点,以确保大规模数据处理的稳定与可复现性。
特点
该数据集具有多项显著特点。首先,它涵盖了17种主流编程语言,包括Python、Java、JavaScript、C、C++、C#、Go、Rust、Ruby、PHP、SQL、HTML、Markdown等,为多语言代码理解任务提供了丰富语料。其次,数据集的构建严格遵循可复现性原则,所有元数据均溯源至固定的上游提交,且源代码内容经过SHA-1哈希验证,保证了数据的一致性与可信度。此外,数据集中还保留了完整的来源信息(provenance.json)和分区的运行配置,便于研究者追溯每条数据的原始出处。面对可能出现的源数据缺失问题,该数据集采用了弹性处理策略,通过归档API尝试恢复,并将失败记录单独留存,从而在不中断整体流程的前提下,最大限度地保持数据集的完整度。
使用方法
研究者可通过HuggingFace datasets库方便地加载此数据集的多语言配置。每条样本包含原始的源文件内容(content字段)以及相关联的元数据字段,可直接用于预训练语言模型或各类代码智能任务,如代码生成、补全与摘要。针对SmolLM3等中小规模模型,开发者可依据语言配置灵活选择子集,或使用内置的流式加载方式处理大规模数据。数据集中所有代码均遵循其原始开源许可,并包含了完整的来源引用(blob_id),便于合规使用。对在实体化过程中失败的样本,'content'字段为null,研究者可结合附带的错误信息决定过滤或利用恢复机制重新获取,从而实现高质量的训练数据筛选。
背景与挑战
背景概述
The Stack v2 SmolLM3 数据集由 BigCode 项目于近年创建,旨在为大规模代码语言模型提供高质量的预训练语料。该数据集基于 The Stack v2 的元数据,通过 Software Heritage 存档物化源代码,覆盖 17 种主流编程语言,包括 Python、JavaScript、Java、C++ 等,并保留了 Jupyter Notebook 等特殊格式。其核心研究问题在于构建一个可复现、可追溯的代码数据集,以支持代码生成、程序理解等任务。该数据集通过 SHA-1 校验确保内容完整性,并提供详细的 provenance 信息,对代码智能领域的研究具有重要影响力,成为多语言代码模型训练的基础资源。
当前挑战
该数据集面临多重挑战。在领域层面,代码数据需应对语法多样性、语言间迁移学习及低资源语言覆盖不足等问题;同时,代码数据的版权与许可合规性要求严苛。在构建过程中,主要挑战包括:从 Software Heritage 大规模拉取内容时的网络与存储瓶颈,部分对象缺失或不可用导致的数据不完整,需通过重试机制缓解;跨语言数据分布不均衡,需通过分区与动态负载平衡优化;数据清洗与去重需平衡精度与效率;以及确保可复现性,需锁定上游版本并记录详细运行配置。此外,原子性提交与并发写入的高复杂度,要求严格的检查点与恢复机制,以保证数据一致性。
常用场景
经典使用场景
在代码智能与软件工程研究的广阔天地中,大规模、多语言源代码语料的获取始终是制约模型性能与泛化能力的瓶颈。The Stack v2 SmolLM3 数据集凭借其精心筛选的17种主流编程语言(涵盖Python、Java、C/C++、JavaScript、Go等)及Jupyter Notebook、Markdown等辅助格式,为研究者提供了丰富的结构化语料。其经典使用场景在于预训练大型代码语言模型,如GPT-Coder、CodeT5等,通过海量真实代码片段的监督学习,使模型掌握语法规则、语义模式与注释规范,从而在下游代码生成、补全、翻译等任务中展现出卓越效能。数据集按语言分区存储、支持部分缺失内容容错的设计,确保了训练流程的稳健性,成为代码大模型研发的基石性资源。
实际应用
在产业界,该数据集的物质化源代码直接服务于代码搜索引擎、智能编程助手与自动化软件维护工具的研发。例如,企业级IDE插件利用基于此语料微调的模型实现实时代码建议与错误修复,显著提升开发效率。教育与培训平台亦借助其多语言资源构建个性化学习路径,帮助新手理解语言差异。此外,安全分析工具可从中挖掘已知漏洞模式,辅助进行静态代码扫描与风险预测。数据集中Jupyter Notebook与SQL配置的存在,拓宽了数据科学与数据库管理场景的应用边界,使得从原型实现到生产部署的全链条开发过程均能获得智能支持。
衍生相关工作
围绕此数据集已衍生出多条研究脉络。在模型层面,基于其预训练的模型被进一步微调用于代码搜索、克隆检测与程序修复,催生了诸如CodeBERT、GraphCodeBERT等结构感知架构的突破。在工具层面,工作流启发下的自动化数据审核与版本管理工具被开发,用于持续更新语料库。数据集提供的语言分布与内容特征亦支撑了难例挖掘研究,推动了对长尾语言(如Swift、Ruby)的特别处理策略诞生。更深远地,其可复现性框架吸引了可解释性研究,通过追溯预训练数据的贡献来归因模型行为,提升了代码智能系统的透明度与可信度。
以上内容由遇见数据集搜集并总结生成
二维码
社区交流群
二维码
科研交流群
商业服务