cassanof/CodeEditSearch
收藏Hugging Face2024-04-28 更新2024-06-12 收录
下载链接:
https://hf-mirror.com/datasets/cassanof/CodeEditSearch
下载链接
链接失效反馈官方服务:
资源简介:
该数据集名为CodeEditSearch,是从CommitPackFT数据集中构建的,包含了约1500个提交的差异(diff),涵盖了多种编程语言,如Python、JavaScript、TypeScript、Go、Ruby、Java、PHP、C、C++、Rust、Swift、Scala和Bash。数据集的目标是评估模型在给定指令的情况下检索差异的能力。每个配置(config)都包含多个特征(features),如after、before、diff、instruction、license、repos和commit,并且每个配置都有一个训练集(train split),包含了不同数量的样本和字节大小。
该数据集名为CodeEditSearch,是从CommitPackFT数据集中构建的,包含了约1500个提交的差异(diff),涵盖了多种编程语言,如Python、JavaScript、TypeScript、Go、Ruby、Java、PHP、C、C++、Rust、Swift、Scala和Bash。数据集的目标是评估模型在给定指令的情况下检索差异的能力。每个配置(config)都包含多个特征(features),如after、before、diff、instruction、license、repos和commit,并且每个配置都有一个训练集(train split),包含了不同数量的样本和字节大小。
提供机构:
cassanof原始信息汇总
数据集概述
数据集名称
- 名称: CodeEditSearch
许可证
- 许可证: MIT
数据集特征
- 特征列表:
- after: 数据类型为string
- before: 数据类型为string
- diff: 数据类型为string
- instruction: 数据类型为string
- license: 数据类型为string
- repos: 数据类型为string
- commit: 数据类型为string
数据集配置
- 配置列表:
- config_name: c
- 特征: 如上
- 训练集信息:
- num_bytes: 4158322.23
- num_examples: 1590
- download_size: 2035558
- dataset_size: 4158322.23
- config_name: c++
- 特征: 如上
- 训练集信息:
- num_bytes: 5312874.125
- num_examples: 1690
- download_size: 2326229
- dataset_size: 5312874.125
- config_name: go
- 特征: 如上
- 训练集信息:
- num_bytes: 4383070.38
- num_examples: 1752
- download_size: 2251777
- dataset_size: 4383070.38
- config_name: java
- 特征: 如上
- 训练集信息:
- num_bytes: 4773885.306
- num_examples: 1756
- download_size: 2199832
- dataset_size: 4773885.306
- config_name: javascript
- 特征: 如上
- 训练集信息:
- num_bytes: 4047063.3755
- num_examples: 1711
- download_size: 2129053
- dataset_size: 4047063.3755
- config_name: php
- 特征: 如上
- 训练集信息:
- num_bytes: 4369481.745
- num_examples: 1745
- download_size: 2101446
- dataset_size: 4369481.745
- config_name: python
- 特征: 如上
- 训练集信息:
- num_bytes: 4140224.83
- num_examples: 1645
- download_size: 2139718
- dataset_size: 4140224.83
- config_name: ruby
- 特征: 如上
- 训练集信息:
- num_bytes: 4551232.455
- num_examples: 1617
- download_size: 2186935
- dataset_size: 4551232.455
- config_name: rust
- 特征: 如上
- 训练集信息:
- num_bytes: 4267898.9775
- num_examples: 1695
- download_size: 2077686
- dataset_size: 4267898.9775
- config_name: scala
- 特征: 如上
- 训练集信息:
- num_bytes: 3270129.05
- num_examples: 1465
- download_size: 1607389
- dataset_size: 3270129.05
- config_name: shell
- 特征: 如上
- 训练集信息:
- num_bytes: 3212433.444
- num_examples: 1402
- download_size: 1737402
- dataset_size: 3212433.444
- config_name: swift
- 特征: 如上
- 训练集信息:
- num_bytes: 4690656.537
- num_examples: 1722
- download_size: 2005364
- dataset_size: 4690656.537
- config_name: typescript
- 特征: 如上
- 训练集信息:
- num_bytes: 4155557.285
- num_examples: 1705
- download_size: 2065707
- dataset_size: 4155557.285
- config_name: c
数据集标签
- 标签: code
搜集汇总
数据集介绍

构建方式
该数据集源自CommitPackFT,旨在评估模型依据指令检索代码差异的能力。构建过程首先从CommitPackFT中按编程语言加载数据,经过随机打乱后,通过过滤条件剔除长度超过2500字符以及新旧内容为空的样本。对于每种语言,选取至多2000条符合条件的记录,利用difflib库统一生成差异文本,并整合为包含变更前后代码、差异文本、指令、许可证、仓库及提交信息的结构化数据。最终过滤掉差异行数不足10的样本,形成高质量评估集。
特点
数据集覆盖Python、JavaScript、TypeScript、Go、Ruby、Java、PHP、C、C++、Rust、Swift、Scala及Shell等13种主流编程语言,每种语言对应独立的配置子集,便于针对性评估。每个样本均包含完整的代码变更上下文(before与after)及统一差异格式,配合自然语言指令,可有效检验模型对代码修改意图的理解与检索能力。数据规模适中,各语言样本量在1400至1752之间,确保评估的均衡性与代表性。
使用方法
使用时可通过HuggingFace Datasets库按语言配置加载,例如`load_dataset('cassanof/CodeEditSearch', 'python', split='train')`。每个样本的字段包括'before'(原始代码)、'after'(修改后代码)、'diff'(差异文本)、'instruction'(修改指令)等。适用于构建代码检索与语义匹配任务的测试集,研究者可基于指令与差异的对应关系,评测模型在多语言代码场景下的检索精度与泛化能力。
背景与挑战
背景概述
在软件工程领域,代码变更理解与检索是提升开发效率与代码质量的核心议题。cassanof/CodeEditSearch数据集由研究者于近期构建,源自CommitPackFT这一大规模代码提交语料库,旨在系统评估模型根据自然语言指令检索对应代码差异(diff)的能力。该数据集覆盖Python、JavaScript、Java、Go、Rust等13种主流编程语言,每个语言配置包含约1500至1752条训练样本,每条样本均提供变更前(before)、变更后(after)的代码快照、统一差异格式的diff以及对应的提交消息(instruction)。其发布为代码智能领域引入了细粒度的指令-差异对齐基准,推动了对代码编辑意图理解与检索技术的深入研究。
当前挑战
当前数据集面临的核心挑战体现在两个层面。其一,所解决的领域问题——代码差异检索——要求模型在缺乏显式上下文的情况下,仅凭自然语言指令精准匹配对应的代码变更片段,这需模型具备跨模态语义理解与代码结构感知能力,而现有模型在此类细粒度检索任务上表现尚不成熟。其二,构建过程中面临数据稀疏性与噪声干扰的挑战:原始CommitPackFT语料中大量提交消息质量参差不齐,部分指令模糊或与代码变更不直接相关;此外,每个语言仅保留约2000条经过长度与内容过滤的样本,导致数据规模有限,可能限制模型泛化能力,尤其是对低频编程语言或复杂代码变更模式的覆盖不足。
常用场景
经典使用场景
在代码智能与软件工程领域,CodeEditSearch数据集被广泛用于评估和训练代码编辑检索模型。该数据集涵盖了Python、JavaScript、Java、Go、C++等十余种主流编程语言,每个样本包含代码修改前后的快照、统一的差异补丁以及对应的自然语言指令。研究者通常利用这一资源构建基于指令的代码变更检索任务,即给定一条描述代码修改意图的指令,模型需从大量候选差异中精准匹配出与之对应的diff。这一场景深刻契合了开发者日常工作中理解、定位与复用代码变更的痛点。
解决学术问题
CodeEditSearch数据集有效解决了代码变更检索领域中缺乏大规模、多语言、高质量标注数据的学术困境。传统方法往往依赖于人工构造的合成数据或局限于单一语言的评估,难以真实反映模型在多样化编程语言和复杂编辑模式下的泛化能力。该数据集基于CommitPackFT构建,从真实开源仓库的提交历史中提取自然指令与对应diff,使得研究能够深入探究语义匹配、代码理解与指令对齐等核心问题。其意义在于为代码检索与生成任务提供了标准化基准,推动了代码智能模型从简单补全向更复杂的编辑理解范式演进。
衍生相关工作
CodeEditSearch数据集催生了一系列聚焦代码变更理解与检索的经典研究成果。其中,基于对比学习的代码差异表示模型利用该数据集的指令-diff对进行预训练,在多个下游任务上取得了优异表现。另有工作探索了将代码编辑检索与代码生成模型结合,通过检索增强的方式提升代码修复与自动补全的准确性。此外,多语言代码变更分类与摘要任务也常以该数据集为评估基准,衍生出诸如EditSum、DiffBERT等代表性方法。这些工作共同推动了代码智能领域从静态分析向动态编辑理解的纵深发展。
以上内容由遇见数据集搜集并总结生成



