five

agicorp/commitpackft

收藏
Hugging Face2024-03-23 更新2024-06-11 收录
下载链接:
https://hf-mirror.com/datasets/agicorp/commitpackft
下载链接
链接失效反馈
官方服务:
资源简介:
CommitPackFT是CommitPack的一个过滤版本,大小为2GB,仅包含高质量的提交消息,这些消息类似于自然语言指令。数据集包含277种语言,并且可以按照提供的指令重新创建。数据集的结构包括提交ID、文件名称、文件内容、提交主题、提交消息、编程语言、许可证和代码来源的仓库名称等信息。

CommitPackFT是CommitPack的一个过滤版本,大小为2GB,仅包含高质量的提交消息,这些消息类似于自然语言指令。数据集包含277种语言,并且可以按照提供的指令重新创建。数据集的结构包括提交ID、文件名称、文件内容、提交主题、提交消息、编程语言、许可证和代码来源的仓库名称等信息。
提供机构:
agicorp
原始信息汇总

数据集卡片 for CommitPackFT

数据集描述

  • 概述: CommitPackFT 是一个 2GB 的过滤版本数据集,源自 CommitPack,仅包含高质量的提交信息,这些信息类似于自然语言指令。
  • 创建: 该数据集可以通过提供的指令重新创建。
  • 语言: 277 种编程语言。

数据集结构

数据实例

一个数据实例的示例如下:

json { "commit": "0c17311f7fd511f5dae8f8e4acc2dce1a2de3cf5", "old_file": "main.py", "new_file": "main.py", "old_contents": "import numpy as np import matplotlib.pyplot as plt

generate sample data

x_data = np.linspace(-5, 5, 20) y_data = np.random.normal(0.0, 1.0, x_data.size)

plt.plot(x_data, y_data, o) plt.show() ", "new_contents": "import math import numpy as np import matplotlib.pyplot as plt

generate sample data

x_data = np.linspace(-math.pi, math.pi, 30) y_data = np.sin(x_data) + np.random.normal(0.0, 0.1, x_data.size)

plt.plot(x_data, y_data, o) plt.show()

", "subject": "Change to sin() function with noise", "message": "Change to sin() function with noise ", "lang": "Python", "license": "mit", "repos": "MorganR/basic-gaussian-process" }

数据字段

数据字段在所有拆分中相同:

  • commit: 唯一的提交 ID
  • old_file: 提交前的文件名
  • new_file: 提交后的文件名
  • old_contents: 提交前的文件内容
  • new_contents: 提交后的文件内容
  • subject: 提交的主题(用于论文中的所有实验)
  • message: 提交信息(通常与主题相同)
  • lang: 编程语言
  • license: 代码来源仓库的许可证,可选值包括 [mit, artistic-2.0, isc, cc0-1.0, epl-1.0, mpl-2.0, unlicense, unknown, apache-2.0, bsd-3-clause, agpl-3.0, lgpl-2.1, bsd-2-clause]
  • repos: 代码来源的仓库名称(如果有多个,用逗号分隔)

数据拆分

名称 兆字节 占总量的百分比 样本数 占总量的百分比
total 1545.02 100.0% 702062 100.0%
ruby 195.292 12.6401% 69413 9.887%
yaml 190.876 12.3543% 114320 16.2835%
python 132.68 8.5876% 56025 7.9801%
markdown 131.152 8.4887% 62518 8.9049%
javascript 125.008 8.091% 52989 7.5476%
json 86.744 5.6144% 39777 5.6657%
shell 66.864 4.3277% 31217 4.4465%
text 66.664 4.3148% 46588 6.6359%
php 60.22 3.8977% 24791 3.5312%
java 56.284 3.6429% 20635 2.9392%
html 48.42 3.1339% 20214 2.8792%
c# 26.84 1.7372% 9346 1.3312%
xml 23.676 1.5324% 9337 1.3299%
html+erb 23.104 1.4954% 10910 1.554%
c 21.08 1.3644% 8506 1.2116%
ini 21.04 1.3618% 11360 1.6181%
coffeescript 16.96 1.0977% 5513 0.7853%
swift 16.272 1.0532% 4849 0.6907%
restructuredtext 15.728 1.018% 6560 0.9344%
typescript 14.284 0.9245% 5868 0.8358%
c++ 14.136 0.9149% 4992 0.711%
scss 13.208 0.8549% 6829 0.9727%
go 12.132 0.7852% 5004 0.7128%
scala 11.184 0.7239% 5040 0.7179%
haml 10.74 0.6951% 4415 0.6289%
css 9.364 0.6061% 5049 0.7192%
rust 7.244 0.4689% 2996 0.4267%
toml 5.584 0.3614% 3424 0.4877%
jsx 5.5 0.356% 2199 0.3132%
kotlin 5.368 0.3474% 2214 0.3154%
clojure 5.068 0.328% 2403 0.3423%
perl 4.988 0.3228% 2288 0.3259%
bitbake 4.464 0.2889% 1308 0.1863%
groovy 4.168 0.2698% 1486 0.2117%
twig 3.956 0.256% 1610 0.2293%
nix 3.84 0.2485% 1593 0.2269%
sql 3.74 0.2421% 2069 0.2947%
less 3.724 0.241% 1360 0.1937%
haskell 3.308 0.2141% 1389 0.1978%
handlebars 3.292 0.2131% 1429 0.2035%
unknown 3.048 0.1973% 1597 0.2275%
batchfile 2.984 0.1931% 1466 0.2088%
cucumber 2.588 0.1675% 976 0.139%
makefile 2.528 0.1636% 960 0.1367%
elixir 2.348 0.152% 1150 0.1638%
jade 2.348 0.152% 1119 0.1594%
cmake 2.268 0.1468% 981 0.1397%
powershell 2.064 0.1336% 991 0.1412%
slim 2.056 0.1331% 1052 0.1498%
emacs-lisp 1.972 0.1276% 1015 0.1446%
dart 1.96 0.1269% 765 0.109%
viml 1.956 0.1266% 1063 0.1514%
asciidoc 1.864 0.1206% 523 0.0745%
lua 1.852 0.1199% 920 0.131%
llvm 1.6 0.1036% 780 0.1111%
smarty 1.588 0.1028% 737 0.105%
diff 1.48 0.0958% 680 0.0969%
common-lisp 1.448 0.0937% 778 0.1108%
saltstack 1.412 0.0914% 617 0.0879%
vue 1.384 0.0896% 587 0.0836%
sass 1.364 0.0883% 705 0.1004%
fish 1.328 0.086% 813 0.1158%
erlang 1.192 0.0772% 480 0.0684%
freemarker 1.028 0.0665% 510 0.0726%
stylus 0.948 0.0614% 480 0.0684%
qml 0.936 0.0606% 368 0.0524%
hcl 0.912 0.059% 421 0.06%
html+django 0.848 0.0549% 399 0.0568%
mako 0.756 0.0489% 170 0.0242%
ada 0.728 0.0471% 265 0.0377%
ocaml 0.704 0.0456% 333 0.0474%
f# 0.656 0.0425% 254 0.0362%
elm 0.62 0.0401% 265 0.0377%
tex 0.564 0.0365% 307 0.0437%
rdoc 0.552 0.0357% 270 0.0385%
csv 0.532 0.0344% 375 0.0534%
protocol-buffer 0.524 0.0339% 181 0.0258%
smalltalk 0.46 0.0298% 284 0.0405%
arduino 0.456 0.0295% 225 0.032%
java-server-pages 0.452 0.0293% 173 0.0246%
scheme 0.42 0.0272% 213 0.0303%
groff 0.396 0.0256% 192 0.0273%
objective-c++ 0.376 0.0243% 86 0.0122%
desktop 0.364 0.0236% 186 0.0265%
factor 0.356 0.023% 113 0.0161%
crystal 0.348 0.0225% 182 0.0259%
rhtml 0.348 0.0225% 135 0.0192%
haxe 0.344 0.0223% 174 0.0248%
glsl 0.34 0.022% 164 0.0234%
gas 0.336 0.0217% 193 0.0275%
html+php 0.332 0.0215% 150 0.0214%
qmake 0.32 0.0207% 140 0.0199%
julia 0.312 0.0202% 1
搜集汇总
数据集介绍
main_image_url
构建方式
在代码大语言模型指令微调的研究背景下,CommitPackFT数据集通过精密的过滤流程构建而成。其源数据CommitPack包含了跨350种编程语言的4TB规模GitHub提交记录。构建团队依据特定质量标准,从海量原始提交中筛选出那些提交信息与自然语言指令高度相似的样本,最终形成约2GB的高质量子集。这一过程旨在提取能够清晰描述代码变更意图的文本,为模型提供优质的指令-代码对训练数据。
特点
该数据集的核心特征在于其高质量与多样性。数据样本覆盖了多达277种编程语言,其中Ruby、YAML、Python、Markdown和JavaScript等语言占据较大比例,体现了广泛的代码生态覆盖。每个样本不仅包含提交前后的完整代码内容,还附带了提交主题、消息、仓库名称及开源许可证等信息,结构清晰完整。这种设计使得数据集能够精准地捕捉从自然语言指令到具体代码变更的映射关系,为指令跟随能力的训练提供了丰富且真实的语境。
使用方法
在代码智能领域,CommitPackFT主要用于大语言模型的指令微调。研究人员可将其与OASST等对话数据集结合,对如StarCoder或CodeGeeX2等基础代码模型进行监督微调,以培育模型理解和执行自然语言编码指令的能力。典型的使用流程包括加载数据集、按任务格式组织样本(例如将提交主题作为指令,代码变更作为输出),并融入标准的指令微调训练循环。经过该数据集训练的模型,如OctoCoder,在HumanEvalPack等基准测试中展现出更强的代码生成与编辑性能。
背景与挑战
背景概述
在代码大语言模型(Code LLMs)的演进历程中,如何高效地利用海量开源代码数据进行指令微调,成为提升模型遵循自然语言指令能力的关键。CommitPackFT数据集应运而生,由BigCode项目团队于2023年创建,作为OctoPack研究框架的核心组成部分。该数据集从原始4TB的CommitPack数据中精炼而来,专注于筛选出那些提交信息(commit messages)质量高、且类似于自然语言指令的样本,旨在为代码生成与理解任务提供高质量的监督信号。其构建直接支撑了如OctoCoder等先进模型的训练,显著推动了代码智能领域向更精准、更可控的方向发展。
当前挑战
CommitPackFT致力于解决代码大语言模型在指令遵循与代码编辑任务上的泛化能力挑战。其核心在于如何从庞杂的代码变更历史中,自动识别并提取出高质量的、指令式的自然语言描述,以构建有效的监督数据。在构建过程中,面临多重挑战:首要挑战是数据清洗与质量把控,需从涵盖350种编程语言、噪声巨大的原始提交中,精准过滤出语义清晰、与代码变更强相关的提交信息;其次,数据分布极度不均衡,主流语言与边缘语言样本量差异悬殊,可能影响模型在多语言场景下的公平性与鲁棒性;此外,还需妥善处理开源许可的合规性,确保数据使用的法律安全性。
常用场景
经典使用场景
在代码智能研究领域,CommitPackFT数据集为指令微调代码大语言模型提供了核心训练资源。该数据集通过精心筛选GitHub提交记录,保留了高质量、类似自然语言指令的提交信息,从而构建了代码变更与人类意图之间的精确映射。其经典应用场景在于训练模型理解代码修改的语义,使模型能够根据自然语言描述生成或重构代码片段,显著提升了代码生成与补全任务的性能。
解决学术问题
CommitPackFT有效解决了代码大语言模型在指令遵循与代码编辑任务中面临的语义对齐难题。传统代码数据集往往缺乏明确的指令-代码对,导致模型难以准确响应复杂编程需求。该数据集通过提供大量高质量的提交信息与对应代码变更,为模型学习代码演化逻辑与人类编程意图提供了监督信号,从而推动了代码智能领域在程序合成、代码修复及自动化重构等方向的研究进展。
衍生相关工作
基于CommitPackFT衍生的经典工作包括OctoCoder与OctoGeeX等指令微调模型,这些模型在HumanEvalPack等基准测试中展现了卓越的代码生成能力。相关研究进一步扩展了代码指令数据集的构建方法论,促进了多语言代码理解与生成任务的统一建模。同时,该数据集也启发了对代码提交链进行时序建模的研究,为程序演化分析与自动化软件维护提供了新的技术路径。
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

面向社区/商业的数据集话题

二维码
科研交流群

面向高校/科研机构的开源数据集话题

数据驱动未来

携手共赢发展

商业合作