Hyperswitch Curriculum Learning Dataset
收藏github2025-12-10 更新2025-12-17 收录
下载链接:
https://github.com/AdityaNarayan001/Phased-CPT-DatasetGenerator
下载链接
链接失效反馈官方服务:
资源简介:
该数据集包括:- **未分割数据集**(860 MB,28,703条目)- 用于动态分块的完整条目 - **分块数据集**(904 MB,50,145块)- 预分割为8192个标记 - **课程学习阶段** - 3个渐进式训练阶段以实现最佳学习
This dataset includes:
- **Unsegmented Dataset** (860 MB, 28,703 entries) – Complete entries for dynamic chunking
- **Chunked Dataset** (904 MB, 50,145 chunks) – Pre-split into 8192 tokens
- **Curriculum Learning Stages** – 3 progressive training stages for optimal learning
创建时间:
2025-12-10
原始信息汇总
Hyperswitch CPT 数据集概述
数据集简介
该数据集生成器用于从 Hyperswitch 仓库生成用于持续预训练(CPT)的综合数据集。
预构建数据集
可直接使用的数据集下载地址: https://huggingface.co/datasets/AdityaNarayan/HS-Repo-Curriculum-Learning
数据集包含:
- 未分块数据集(860 MB,28,703 条条目)- 用于动态分块的完整条目
- 分块数据集(904 MB,50,145 个块)- 已按 8192 个令牌预分块
- 课程学习阶段 - 3 个渐进式训练阶段,用于优化学习
数据来源与特征
此工具从多个来源提取并格式化训练数据:
- 完整仓库快照 - 所有 Rust 源文件、配置、模式、测试
- Git 提交历史 - 包含差异和消息的完整提交历史
- GitHub PRs - 包含描述、差异、审查和评论的拉取请求
- 测试-代码对 - 测试文件与其实现配对
- 课程学习 - 自动将数据组织成 3 个训练阶段以优化学习
所有数据均使用 GLM-4.5-Air 分词器进行分词,并对大文件进行可配置的分块。
输出格式
数据集以 JSONL 格式生成,每行是一个 JSON 对象。training_content 字段包含用于模型训练的格式化文本,其他字段是用于过滤/分析的元数据。
数据集类型
- file - 仓库源文件
- commit - 包含差异的 Git 提交
- pr_diff - 包含审查的拉取请求
- test_pair - 测试和实现配对
数据集统计信息(基于 2024 年 12 月的 Hyperswitch 仓库)
未分块数据集
- 总条目数: 28,703
- 文件大小: 860 MB
- 分布:
- 提交:42.8%(12,283 条条目)
- 文件:32.2%(9,235 条条目)
- PRs:24.6%(7,056 条条目)
- 测试对:0.4%(129 条条目)
分块数据集(8192 令牌/块)
- 总块数: 50,145
- 文件大小: 904 MB
- 分布:
- 提交:49.5%(24,804 个块)
- PRs:29.8%(14,928 个块)
- 文件:20.1%(10,104 个块)
- 测试对:0.6%(309 个块)
课程学习阶段(推荐)
未分块版本
- 阶段 1(基础):9,364 条条目,66 MB
- 阶段 2(演进):12,325 条条目,457 MB
- 阶段 3(PR 精通):7,014 条条目,337 MB
分块版本
- 阶段 1(基础):10,413 个块,69 MB
- 阶段 2(演进):25,124 个块,485 MB
- 阶段 3(PR 精通):14,608 个块,351 MB
训练策略概述
阶段 1:代码基础(2 轮次)
目标: 学习 Hyperswitch 代码库结构、Rust 语法和基本模式 内容: 所有仓库文件(10,104 条目)和测试-实现配对(309 条目)
阶段 2:变更模式(2-3 轮次)
目标: 理解代码如何演进以及如何进行增量更改 内容: 按时间顺序排序的所有提交(24,804 条目)和小于 5K 字符的小型 PRs(320 条目)
阶段 3:PR 精通(3-4 轮次)
目标: 掌握 PR 解决、代码审查和复杂变更 内容: 中型 PRs(4,474 条目)和包含讨论的大型 PRs(10,134 条目),按复杂度排序
预期结果
与随机训练相比:
- 训练收敛速度: 提升 25-40%
- 代码补全准确率: 从 72% 提升至 85-88%
- PR 质量: 从 65% 提升至 78-82%
- 知识保留率: 提升约 30%
硬件要求
- 最低配置: GPU 24GB VRAM(RTX 3090, A5000), RAM 32GB, 磁盘 10GB
- 推荐配置: GPU 40GB+ VRAM(A100, H100), RAM 64GB, 磁盘 50GB(用于检查点)
系统要求
- Python 3.8+
- 本地安装 Git
- GitHub API 令牌(具有仓库读取权限的细粒度令牌)
- 约 1GB 磁盘空间用于输出
总结
总训练时间: 跨 3 个阶段共 8-9 轮次 预计时长: 在单 A100 上 24-48 小时 成果: 能够理解 Hyperswitch 代码库并有效解决 PRs 的模型 课程学习方法确保模型渐进式学习,更好地保留知识,并取得比随机训练好 25-40% 的结果。
搜集汇总
数据集介绍

构建方式
在代码语言模型预训练领域,数据集的构建质量直接决定了模型对特定代码库的理解深度。Hyperswitch Curriculum Learning Dataset 的构建采用了多源异构数据融合的策略,系统性地从 Hyperswitch 开源支付路由仓库中提取了四种核心数据类型:完整的 Rust 源代码文件、完整的 Git 提交历史记录、GitHub 拉取请求及其评审讨论、以及测试文件与实现代码的配对。所有原始数据均使用 GLM-4.5-Air 分词器进行处理,并提供了两种序列化格式:一种是保持条目完整性的未分块版本,便于动态分块训练;另一种是预分割为 8192 个令牌且具有 512 令牌重叠的固定分块版本,适用于固定长度序列训练。生成的数据以 JSONL 格式存储,每个条目均包含类型、路径和格式化后的训练内容。
特点
该数据集的核心特征在于其精心设计的课程学习结构,它将超过五万个数据条目组织成三个渐进式训练阶段,模拟了人类开发者从掌握基础到精通复杂任务的学习路径。第一阶段侧重于代码基础,包含所有仓库文件与测试配对,旨在让模型掌握语法与结构。第二阶段聚焦于变更模式,按时间顺序呈现所有提交记录与小规模拉取请求,帮助模型理解代码的演化逻辑。第三阶段致力于拉取请求精通,包含带有复杂讨论的中大型拉取请求,训练模型解决高级协作问题。这种结构化的课程设计,相较于随机混合训练,据称能带来 25% 至 40% 的知识保留与收敛速度提升。数据集同时提供了详尽的元数据分布统计,确保了训练过程的透明性与可复现性。
使用方法
使用该数据集进行模型训练遵循明确的课程学习范式。研究者可从 Hugging Face 平台直接下载预构建的数据集,其中已包含分阶段组织好的文件。训练流程建议从第一阶段开始,使用基础学习率让模型熟悉代码库的静态结构。完成指定轮次后,加载第一阶段的检查点进入第二阶段,以较低的学习率学习代码的增量变更模式。最后,在第三阶段使用进一步降低的学习率,在包含复杂评审的拉取请求数据上进行精调,以掌握高级的代码审查与问题解决能力。每个阶段都配套了建议的批次大小、学习率及训练轮次,用户可根据硬件条件通过梯度累积等技术进行适应性调整,以优化训练效率与最终模型性能。
背景与挑战
背景概述
在软件工程与人工智能交叉领域,代码智能模型的研究日益深入,对高质量、结构化的代码预训练数据集需求迫切。Hyperswitch Curriculum Learning Dataset 应运而生,由 AdityaNarayan 于 2024 年发布,依托 Hyperswitch 开源支付路由项目的完整代码库构建。该数据集旨在支持持续预训练,通过系统整合源代码文件、Git 提交历史、拉取请求及测试-实现配对等多源数据,并创新性地引入课程学习范式,将数据划分为渐进式训练阶段,以优化模型对复杂代码库的理解与演化模式的学习。其设计核心聚焦于提升模型在代码补全、缺陷修复及拉取请求处理等任务上的性能,为代码大语言模型的专项能力微调提供了重要资源。
当前挑战
该数据集致力于解决代码智能领域中模型对特定大型、复杂代码库进行深度理解与协同演化的挑战。其首要挑战在于如何从异构数据源(如源代码、版本历史、协作记录)中提取并融合具有连贯语义的训练样本,以准确反映软件开发的真实上下文与决策逻辑。在构建过程中,面临数据规模与质量的平衡难题,需对海量提交与拉取请求进行筛选与清洗,确保训练内容的有效性与代表性。同时,实施课程学习策略需科学界定不同训练阶段的难度梯度与内容边界,例如合理划分基础语法、变更模式与复杂评审等阶段,以避免知识遗忘或训练不均衡。此外,处理长序列代码的令牌化与分块,以及维持原始代码结构与元数据的完整性,亦是构建过程中的关键技术挑战。
常用场景
经典使用场景
在软件工程与代码智能研究领域,Hyperswitch Curriculum Learning Dataset 为持续预训练模型提供了结构化的学习范例。该数据集通过整合完整的代码库快照、Git提交历史、拉取请求及测试-代码对,构建了渐进式的三阶段课程学习体系。经典使用场景聚焦于训练大型语言模型深入理解复杂支付路由系统Hyperswitch的代码结构与演化模式,使模型能够从基础语法学习逐步过渡到复杂变更的掌握。这种分阶段训练方法优化了知识吸收路径,显著提升了模型在代码补全与问题解决任务上的表现。
实际应用
在实际工业场景中,该数据集能够赋能智能代码助手与自动化代码审查系统的开发。基于此数据集训练的模型可应用于支付系统等关键基础设施的代码库维护,自动生成符合项目规范的补丁建议、解释复杂代码变更意图,并辅助开发人员高效处理拉取请求中的评审意见。其课程学习产出的模型检查点可直接集成至持续集成流水线,用于实时检测代码质量退化或推荐重构方案,从而显著降低大型金融科技项目的维护成本与人工介入频率。
衍生相关工作
围绕该数据集衍生的经典工作主要集中于代码持续预训练范式的优化与领域自适应方法。研究者借鉴其课程学习框架,开发了针对其他开源项目(如Linux内核、Web框架)的类似数据集构建流程,并提出了动态课程调度算法以替代固定三阶段训练。此外,该数据集启发了对代码变更表示学习的新模型架构探索,例如结合图神经网络建模文件依赖关系,以及利用对比学习区分有效提交与噪声变更,进一步推动了智能软件工程工具链的演进。
以上内容由遇见数据集搜集并总结生成



