Jupyter Notebook Edits Dataset
收藏arXiv2025-01-17 更新2025-01-18 收录
下载链接:
https://doi.org/10.5281/zenodo.14281690
下载链接
链接失效反馈官方服务:
资源简介:
该数据集由滑铁卢大学的研究团队创建,旨在捕捉Jupyter笔记本在机器学习工作流中的维护和编辑模式。数据集包含48,398条编辑记录,源自792个机器学习仓库的20,095次修订,涵盖了6.63百万行代码。数据集详细记录了单元格和行级别的修改,并包含提交信息等元数据。数据集的创建过程通过GitHub API获取了1000个最受欢迎的Jupyter笔记本仓库,并通过Git日志和差异分析工具提取了编辑信息。该数据集的应用领域主要集中在机器学习代码的维护和自动化编辑任务,旨在通过大语言模型(LLMs)提升代码编辑的效率和准确性。
This dataset was created by a research team at the University of Waterloo to capture maintenance and editing patterns of Jupyter Notebooks within machine learning workflows. It contains 48,398 editing records derived from 20,095 revisions across 792 machine learning repositories, spanning 6.63 million lines of code. The dataset meticulously records modifications at both the cell and line levels, and includes metadata such as commit information. To construct the dataset, the team retrieved 1,000 most popular Jupyter Notebook repositories via the GitHub API, and extracted editing information using Git logs and diff analysis tools. Its application domains primarily focus on machine learning code maintenance and automated editing tasks, aiming to improve the efficiency and accuracy of code editing through Large Language Models (LLMs).
提供机构:
滑铁卢大学
创建时间:
2025-01-17
搜集汇总
数据集介绍

构建方式
Jupyter Notebook Edits Dataset 的构建基于对 GitHub 上 792 个机器学习仓库的 20,095 次修订进行深入分析,提取了 48,398 次 Jupyter Notebook 编辑记录。数据收集过程通过 GitHub Search API 筛选出与 Jupyter Notebook 和机器学习相关的高星仓库,随后使用 git log 和 git show 工具提取每次修订的详细信息,包括提交前后的代码内容、提交消息以及单元格和行级别的差异。通过 SequenceMatcher 模块,数据集进一步细化了单元格和行级别的修改,确保了数据的高粒度性。最终,数据集经过过滤和去重处理,保留了具有实际意义的编辑记录。
特点
该数据集的特点在于其高粒度和广泛覆盖性。它不仅捕捉了 Jupyter Notebook 中单元格和行级别的修改细节,还涵盖了 792 个机器学习仓库的 6.63 百万行代码。数据集中的编辑行为高度局部化,平均每次修订仅修改 166 行代码,反映了开发者在实际维护中的增量式修改模式。此外,数据集还包含了丰富的元数据,如提交消息,为理解开发者的编辑意图提供了重要线索。与现有数据集相比,该数据集更注重真实机器学习开发场景,提供了对局部化编辑和增量维护实践的深入洞察。
使用方法
Jupyter Notebook Edits Dataset 可用于研究机器学习代码的维护模式,特别是通过大语言模型(LLMs)预测代码编辑行为。数据集支持两种推理策略:少样本提示(few-shot prompting)和微调(fine-tuning)。在少样本提示中,模型通过提供少量示例来预测文件级别或单元格级别的代码修改。微调则通过在大量 Jupyter Notebook 数据上进行监督学习,提升模型在特定任务上的表现。数据集还可用于评估 LLMs 在处理复杂机器学习代码编辑任务时的性能,帮助研究者探索如何通过上下文信息提升模型的表现。
背景与挑战
背景概述
Jupyter Notebook Edits Dataset 是由滑铁卢大学的研究团队于2025年创建的,旨在解决机器学习开发者在Jupyter Notebook中进行代码维护时的挑战。该数据集包含了来自GitHub上792个机器学习仓库的20,095次修订中的48,398次编辑记录,涵盖了单元格级别和行级别的修改细节。Jupyter Notebook作为机器学习开发中的核心工具,广泛用于数据处理和模型训练,但其维护过程常常面临代码复杂性和碎片化编辑的挑战。该数据集的创建填补了现有研究中关于Jupyter Notebook代码编辑行为的空白,为理解机器学习工作流中的实际维护模式提供了重要基础。
当前挑战
Jupyter Notebook Edits Dataset 的构建和应用面临多重挑战。首先,该数据集旨在解决机器学习代码维护中的实际问题,尤其是如何自动化处理Jupyter Notebook中的代码编辑任务。然而,尽管大型语言模型(LLMs)在代码生成和理解任务中表现出色,但在该数据集上的表现仍然不尽如人意,即使经过微调,模型的准确率依然较低,表明真实世界的机器学习维护任务具有极高的复杂性。其次,在数据集构建过程中,研究团队需要从大量GitHub仓库中提取并处理Jupyter Notebook的编辑记录,涉及复杂的版本控制数据解析和编辑行为的细粒度分析。此外,数据集中编辑行为的局部性特征(平均每次修改仅涉及166行代码)进一步增加了模型预测的难度,要求模型能够精准捕捉上下文信息以生成有效的代码修改建议。
常用场景
经典使用场景
Jupyter Notebook Edits Dataset 主要用于研究机器学习开发者在 Jupyter Notebook 中的代码编辑行为。该数据集通过捕捉 GitHub 上 792 个机器学习仓库中的 48,398 次编辑记录,提供了细粒度的单元级和行级修改信息。研究者可以利用这些数据深入分析开发者在维护机器学习工作流时的编辑模式,尤其是在代码修复、功能添加和调试过程中的行为。
解决学术问题
该数据集填补了现有研究中关于 Jupyter Notebook 代码编辑行为的数据空白,为理解机器学习开发中的维护模式提供了基础。通过分析这些编辑记录,研究者能够探索如何利用大语言模型(LLMs)自动化代码编辑任务,从而提升开发效率。此外,该数据集还为评估 LLMs 在复杂代码编辑任务中的表现提供了基准,揭示了现有模型在实际应用中的局限性。
衍生相关工作
该数据集推动了多项相关研究,特别是在大语言模型(LLMs)应用于代码编辑任务方面。例如,研究者利用该数据集评估了 DeepSeek-Coder 等模型在预测代码编辑中的表现,并探索了少样本学习和微调策略对模型性能的影响。此外,该数据集还激发了关于如何通过上下文信息提升模型编辑能力的研究,为未来开发更智能的代码辅助工具奠定了基础。
以上内容由遇见数据集搜集并总结生成



