Hugging Face代码模型训练相关的训练数据集推荐
程序编码
训练数据集
Hugging Face
代码生成
深度学习
当我第一次研究代码生成模型时,总觉得找不到合适的数据集,不是格式不对,就是规模太小,没法训练出有竞争力的模型。后来发现 Hugging Face 的 Datasets 库,里面有各种编程相关的数据集,简直让我大开眼界。为了让大家也能少走弯路,我整理了一些实用的代码数据集,一起看看吧。
以下列出了 Hugging Face 平台上几个主流的代码训练数据集,涵盖多种语言和应用场景。
1. The Stack
- 描述:由 BigCode 项目提供的多语言代码数据集,包含超过 3 TB 的代码。
- 链接:bigcode/the-stack-dedup
- 特点:
- 多语言支持:涵盖 Python、JavaScript、C++ 等 30 多种语言。
- 去重技术:通过 Near-Duplicate 技术减少重复代码。
- 许可证过滤:支持根据许可证类型(如 MIT、Apache-2.0)筛选代码。
2. CodeSearchNet
- 描述:用于代码搜索和理解任务的代码与文档对齐数据集。
- 链接:code_search_net
- 特点:
- 六种语言:Python、Java、JavaScript、PHP、Ruby 和 Go。
- 代码与注释对齐:适合训练自然语言到代码搜索模型。
3. GitHub Code Dataset
- 描述:从 GitHub 仓库提取的大型多语言代码数据集。
- 链接:huggingface/github-code
- 特点:
- 多种语言支持,适合训练语言模型。
- 提供原始代码片段或文件数据。
4. PY150 Dataset
- 描述:150,000 个 Python 文件的数据集,适合 Python 代码建模。
- 链接:codeparrot/py150
- 特点:
- 数据多样化,覆盖各种应用场景。
- 已预处理,适合直接用于模型训练。
5. CodeXGLUE
- 描述:微软提供的多任务代码数据集集合,包括代码生成、分类等任务。
- 链接:microsoft/CodeXGLUE
- 特点:
- 包括代码分类、缺陷检测、代码翻译等任务。
- 提供统一的评估指标,方便基准测试。
6. APPS Dataset
- 描述:以编程挑战为中心的代码生成数据集。
- 链接:codeparrot/apps
- 特点:
- 包含从简单到复杂的编程问题及参考解决方案。
- 适合代码生成与自动程序合成任务。
7. CodeParrot Dataset
- 描述:面向 Python 代码模型的高质量数据集。
- 链接:codeparrot/codeparrot-clean
- 特点:
- 包含大量 Python 代码。
- 数据清洗严格,无低质量代码或敏感信息。
8. Ethical-Code Dataset
- 描述:标注了不符合伦理和存在安全风险的代码数据集。
- 链接:ethics/ethical-code
- 特点:
- 涉及多种语言,专注于代码安全和伦理问题。
9. CodeNet Dataset
- 描述:IBM 发布的大型代码数据集,包含 1400 万代码样本。
- 链接:frank-xwang/CodeNet
- 特点:
- 涉及 50 多种编程语言,适合代码生成等任务。
- 提供代码运行结果等元数据,适合代码优化研究。
10. MultiPL-E Dataset
- 描述:多语言代码对齐数据集,适合代码翻译任务。
- 链接:nuprl/MultiPL-E
- 特点:
- 支持多语言转换,适合训练多语言模型。
- 包含测试用例,用于验证代码正确性。
如何使用这些数据集?
-
安装 Datasets 库:
pip install datasets
-
加载示例:
from datasets import load_dataset # 加载 CodeSearchNet 的 Python 部分 dataset = load_dataset("code_search_net", "python") # 查看数据 print(dataset['train'][0])
-
注意事项:
- 查看许可证条款,避免违规使用。
- 数据集可能需要预处理,例如去掉注释或格式化代码。
更多资源
- BigCode 项目:BigCode 页面
- GitHub 仓库:了解数据集的更多细节和使用方式。
Hugging Face 上的这些数据集,几乎覆盖了代码生成、翻译、搜索等所有主流任务。还在等什么?赶紧试试,用它们训练属于你的代码模型吧!