HS-Repo-Curriculum-Learning
收藏Hugging Face2025-12-10 更新2025-12-11 收录
下载链接:
https://huggingface.co/datasets/AdityaNarayan/HS-Repo-Curriculum-Learning
下载链接
链接失效反馈官方服务:
资源简介:
Hyperswitch课程学习数据集(未分割)是一个全面的数据集,用于在Hyperswitch支付处理代码库上对大型语言模型进行持续预训练(CPT)。数据集按照课程学习阶段组织,包含完整、未分割的条目。数据集内容涵盖源代码文件(.rs、.toml、.yaml、.json、.md)、Git提交历史(包含完整差异)、GitHub Pull Requests(包含评论和讨论)以及测试-实现配对。关键特点是每个条目都是完整存储的,未在token边界处分割,允许在训练期间根据任何序列长度(8K、16K、32K、64K+)进行动态分块。数据集分为三个渐进阶段:1. 代码基础阶段(学习代码库结构、语法和测试模式);2. 演化模式阶段(理解代码演化、变更模式和增量开发);3. PR掌握阶段(掌握复杂变更、代码审查实践和协作模式)。
创建时间:
2025-12-05
原始信息汇总
Hyperswitch Curriculum Learning Dataset (Unbroken) 数据集概述
数据集基本信息
- 名称:Hyperswitch Curriculum Learning Dataset (Unbroken)
- 语言:英语
- 主要标签:代码、Rust、支付处理、课程学习、持续预训练、Hyperswitch
- 规模类别:10K < n < 100K
- 任务类别:文本生成
- 格式:JSONL
数据集核心目标
用于大型语言模型在 Hyperswitch 支付处理代码库上进行持续预训练的综合数据集,按课程学习阶段组织,包含完整、未中断的条目。
关键特性
- 每个条目均以完整形式存储,未在令牌边界处中断,允许在训练期间针对任何序列长度(8K、16K、32K、64K+)进行动态分块。
- 数据源自完整的 Hyperswitch 仓库知识,包括:
- 源代码文件(.rs, .toml, .yaml, .json, .md)
- 包含完整差异的 Git 提交历史
- 包含评论和讨论的 GitHub Pull Requests
- 测试-实现配对
数据集结构(课程学习阶段)
数据集分为 3 个渐进阶段:
阶段 1:代码基础 (phase1_foundation.jsonl)
- 内容:仓库文件 + 测试-实现配对
- 目的:学习代码库结构、语法和测试模式
- 训练建议:2 个周期
- 条目:完整文件和测试配对(未中断)
阶段 2:演化模式 (phase2_evolution.jsonl)
- 内容:Git 提交(按时间顺序)+ 小型 PR
- 目的:理解代码演化、变更模式和增量开发
- 训练建议:2-3 个周期
- 条目:包含完整差异的完整提交、小型 PR(未中断)
阶段 3:PR 精通 (phase3_pr_mastery.jsonl)
- 内容:包含评论和讨论的中型及大型 PR
- 目的:掌握复杂变更、代码审查实践和协作模式
- 训练建议:3-4 个周期
- 条目:包含所有审查和评论的完整 PR(未中断)
数据格式
每个条目为单行 JSON 对象(JSONL 格式)。主要条目类型及其结构示例如下:
文件条目
包含 type、path、size_bytes 和 training_content 字段。training_content 包含完整文件内容。
提交条目
包含 type、commit_hash、author、date、message 和 training_content 字段。training_content 包含完整 Git 差异。
PR 条目
包含 type、pr_number、title、state、author、created_at 和 training_content 字段。training_content 包含完整描述、审查和评论。
测试配对条目
包含 type、test_file、impl_file 和 training_content 字段。training_content 包含测试内容和实现内容。
数据集统计
| 阶段 | 条目数量 | 内容类型 | 平均条目大小 |
|---|---|---|---|
| 阶段 1 | ~15K | 文件、测试配对 | 可变(完整文件) |
| 阶段 2 | ~5K | 提交、小型 PR | 可变(完整提交/PR) |
| 阶段 3 | ~1K | 中型/大型 PR | 较大(完整 PR 线程) |
- 总计:约 21K 个完整、未中断的条目。
未中断与分块版本对比
未中断(本数据集)
- 完整的语义单元得以保留。
- 代码/差异中无人为中断。
- 适用于任何序列长度,灵活性高。
- 在训练期间动态分块。
- 数据集文件大小更小(无重叠)。
使用方式
加载数据集
提供 Python 代码示例,展示如何使用 json 模块加载课程阶段文件。
训练动态分块
提供 Python 代码示例,展示如何使用分词器对完整条目进行分块以适应训练序列长度。
推荐训练计划
- 阶段 1:代码基础,2 个周期,学习率 1e-5。
- 阶段 2:演化模式,2-3 个周期,学习率 8e-6。
- 阶段 3:PR 精通,3-4 个周期,学习率 5e-6。
课程学习优势
- 渐进式复杂度:从简单开始,逐步增加难度。
- 更好的收敛性:相比随机训练有 25-40% 的改进。
- 领域适应:学习仓库特定的模式。
- 代码理解:语法 → 变更 → 协作。
- 高效训练:每个阶段有明确的学习目标。
技术细节
仓库信息
- 来源:Hyperswitch
- 主要语言:Rust
- 领域:支付处理、金融科技
- 组件:连接器、API 模型、路由逻辑、状态机
数据收集
- 文件:基于模式提取(Rust、TOML、YAML、JSON、Markdown)。
- 提交:从仓库创建开始的完整 Git 历史。
- PR:通过 GitHub API 获取已合并和已关闭的 PR 及其审查和评论。
- 测试:自动将测试文件与实现配对。
序列长度灵活性
此未中断数据集适用于任何序列长度:
| 序列长度 | 使用场景 | 分块策略 |
|---|---|---|
| 8K 令牌 | 基础模型 | 带重叠的分块 |
| 16K 令牌 | 扩展上下文 | 所需分块较少 |
| 32K 令牌 | 长上下文模型 | 大多数文件可完整放入 |
| 64K+ 令牌 | 超长上下文 | 完整提交/PR |
致谢与引用
- 感谢 Juspay 的 Hyperswitch 团队 提供开源支付处理平台。
- 数据集由 Aditya Narayan 策划和组织。
- 数据集使用自定义提取管道生成并按课程组织。
- 提供了引用该数据集的 BibTeX 格式。
搜集汇总
数据集介绍

构建方式
在支付处理领域的代码智能研究中,数据集的构建质量直接影响模型对复杂金融系统的理解能力。该数据集通过系统化提取Hyperswitch开源支付平台的完整知识资产构建而成,涵盖源代码文件、Git提交历史、GitHub拉取请求及测试-实现配对等多维度内容。其核心创新在于采用“未分割”存储策略,每个条目均保持完整的语义单元,避免了在固定令牌边界处的人为切割,从而为动态分块训练提供了灵活性。数据收集过程结合了模式匹配提取与API自动化采集,确保了代码库结构、演化轨迹及协作模式的全面覆盖。
特点
本数据集在代码预训练领域展现出鲜明的结构化特征,其核心在于遵循课程学习范式,将数据划分为三个渐进式阶段。第一阶段聚焦代码基础,包含完整的仓库文件与测试配对,旨在建立语法与结构认知;第二阶段呈现演化模式,按时间顺序组织提交记录与小规模拉取请求,揭示增量开发规律;第三阶段专注于拉取请求精通,整合中大型变更及其评审讨论,以掌握复杂协作逻辑。所有条目均以未分割的JSONL格式保存,支持从8K至64K以上任意序列长度的动态分块,兼顾了语义完整性与训练适应性。
使用方法
针对大语言模型的持续预训练任务,该数据集的使用需依托动态分块机制。使用者首先加载各阶段的JSONL文件,随后利用分词器将每个条目的完整训练内容转换为令牌序列,并根据目标模型的上下文长度进行灵活分割。训练流程建议遵循课程顺序:从代码基础阶段开始,进行约两轮迭代以熟悉代码库;继而进入演化模式阶段,通过两到三轮训练理解变更模式;最后在拉取请求精通阶段进行三至四轮迭代,以深化对代码评审与协作实践的掌握。这种渐进式训练策略能有效提升模型在支付处理领域的代码理解与生成能力。
背景与挑战
背景概述
在大型语言模型持续预训练领域,针对特定代码库的领域适应已成为提升模型专业能力的关键路径。HS-Repo-Curriculum-Learning数据集由Aditya Narayan于2025年构建,其核心研究问题聚焦于如何通过课程学习策略,使语言模型系统掌握Hyperswitch支付处理代码库的复杂结构与演化逻辑。该数据集创新性地整合了源代码文件、完整Git提交历史、拉取请求讨论及测试-实现配对等多模态代码知识,旨在推动模型从基础语法理解向协作开发模式认知的渐进式学习,为金融科技领域的代码智能应用提供了高质量的训练资源。
当前挑战
该数据集致力于解决代码领域持续预训练中模型难以理解大规模真实代码库演化逻辑与协作模式的挑战。具体而言,其构建面临多重困难:首先,需从异构数据源(包括版本控制历史、代码审查记录等)中提取并保持代码实体的完整语义单元,避免因固定长度分块导致的结构断裂;其次,设计合理的课程学习阶段需平衡知识渐进性与训练效率,确保模型能从基础代码结构自然过渡到复杂协作模式的理解;此外,支付处理领域代码对安全性与正确性的极高要求,也使得数据清洗与质量验证过程尤为严谨。
常用场景
经典使用场景
在软件工程与代码智能领域,该数据集为大型语言模型在特定代码库上的持续预训练提供了结构化范例。其经典使用场景聚焦于采用课程学习策略,引导模型从基础代码语法逐步过渡到复杂协作模式。通过分阶段呈现完整的源代码文件、测试-实现配对、Git提交历史及拉取请求讨论,模型能够系统性地吸收支付处理系统的领域知识,从而在代码生成、补全和审查等任务中展现出更精准的语义理解与生成能力。
解决学术问题
该数据集有效应对了代码预训练中普遍存在的知识碎片化与领域适应难题。通过提供未经切割的完整语义单元,它支持动态分块训练,使模型能够灵活适应不同上下文长度,同时保持代码结构与逻辑的完整性。这为研究代码表征学习、长序列建模以及课程学习在软件工程中的优化效果提供了高质量实验平台,推动了领域自适应预训练方法的实证探索与性能边界拓展。
衍生相关工作
围绕该数据集衍生的经典工作主要集中于课程学习策略的优化与长上下文代码建模。研究者借鉴其分阶段设计,探索了不同复杂度序列对模型收敛速度与泛化能力的影响;同时,其完整的未分块条目为超长序列Transformer架构的评估提供了基准。相关研究进一步扩展至多模态代码理解,如结合提交历史与PR讨论以建模开发意图,或利用测试-实现配对提升代码的可靠性与可维护性分析。
以上内容由遇见数据集搜集并总结生成



