five

CDNA-CoDET-M4

收藏
Hugging Face2026-04-04 更新2026-04-05 收录
下载链接:
https://huggingface.co/datasets/mohameddhameem/CDNA-CoDET-M4
下载链接
链接失效反馈
官方服务:
资源简介:
CDNA-CoDET-M4是一个用于代码作者身份识别任务的数据集,由新加坡管理大学CodeDNA团队基于原始CoDET-M4数据集增强开发。该数据集通过代码属性图(CPG)表示法,将代码片段转换为结合了抽象语法树(AST)、控制流图(CFG)和程序依赖图(PDG)的图结构,以捕捉更深层次的代码风格特征。 数据集包含约77,000个Python和Java代码样本,涵盖GPT-4o、CodeLlama、Llama 3.1、Nxcode、CodeQwen 1.5等6种大型语言模型生成的代码以及人类编写的基础代码。提供两种配置:'hetero'包含完整的图结构表示(33,342个样本),'scalar'则包含22个预计算的结构特征(77,332个样本)。 数据按语言(Python/Java)和模型来源分为训练集(~20,000/语言)、验证集(~2,000/语言)和测试集(~17,700/语言)。每个样本包含唯一ID、内容哈希、目标模型、语言、分割标记、原始代码等字段,'hetero'配置额外包含GraphML序列化的CPG,'scalar'配置则包含循环复杂度、代码行数等22个结构特征。 该数据集主要用于研究LLM代码指纹识别、比较不同模型的结构特征差异,以及建立代码作者身份识别基准。但需注意其局限性:仅包含独立函数而非完整项目、样本均为合成数据、C++语言支持缺失等。数据集采用MIT许可证发布,要求使用时引用相关论文。
创建时间:
2026-03-29
原始信息汇总

CDNA-CoDET-M4 数据集概述

数据集基本信息

  • 数据集名称:CDNA-CoDET-M4: Code Authorship Attribution via Code Property Graphs (Enhanced)
  • 数据集地址:https://huggingface.co/datasets/mohameddhameem/CDNA-CoDET-M4
  • 许可证:MIT License
  • 语言:英语、代码
  • 任务类别:文本分类
  • 规模类别:1M < n < 10M
  • 多语言性:多语言
  • 注释创建者:无注释
  • 源数据集:DaniilOr/CoDET-M4

数据集摘要

此数据集是新加坡管理大学CodeDNA团队对原始CoDET-M4数据集的增强版本,旨在解决LLM代码作者归属问题。数据集通过将代码片段转换为代码属性图来捕获更深层次、更可靠的风格指纹。它包含约77K个Python和Java样本,涵盖6个模型和一个人类编写的基线,并提供两种即用型配置。

数据集详情

语言与任务

  • 编程语言:Python, Java
  • 任务:多类别代码作者归属(6分类)
  • 类别:GPT-4o, CodeLlama, Llama 3.1, Nxcode, CodeQwen 1.5, Human
  • 分析单元:独立函数(非完整仓库)

配置

CDNA-CoDET-M4作为单个Hugging Face数据集发布,包含两种配置:

hetero – 异构代码属性图

通过Joern静态分析提取的完整图结构表示,结合了AST、CFG和PDG信息。

  • 图表示:异构多重图(多种边类型:控制流、数据流、语法)
  • 节点特征:语法类型、源代码标记序列、语义角色
  • 边特征:边类型标签
  • 样本数:33,342
  • 数据大小:约11 GB(数据集),约23 GB(未压缩)

scalar – 聚合结构特征

从CPG派生的预处理汇总统计数据,适用于传统ML基线和可解释性研究。

  • 特征集:22个手工制作的结构度量
  • 格式:表格(数字向量以及代码文本和元数据)
  • 样本数:77,332
  • 数据大小:约26 GB(数据集),约54 GB(未压缩)

数据划分

两种配置遵循相同的划分结构:

划分 数量 用途
训练集 每种语言约20,000 模型训练
验证集 每种语言约2,000 超参数调优
测试集 每种语言约17,700 最终评估

数据格式与模式

通用字段(两种配置)

字段 类型 描述
idx int64 唯一样本标识符
hash string 内容哈希
target string 源LLM或"human"
model string 完整模型标识符
language string "python"或"java"
split string "train", "validation", 或 "test"
source string 生成上下文或数据源
code string 原始源代码
graphml string GraphML序列化的CPG(hetero)或空(scalar)

附加标量特征(scalar配置):

字段 类型 描述
cyclomatic_complexity float McCabe复杂度度量
lines_of_code int 物理LOC
fan_in int 不同的数据源
fan_out int 不同的数据目标
graph_density float 边与可能边的比率
(+17个附加度量) 参见模式元数据

数据格式

  • 文件格式:Apache Arrow
  • 划分:22个Arrow分片(hetero),54个Arrow分片(scalar)
  • 压缩:LZ4

数据集创建

代码生成与收集

  1. LLM提示:六个最先进的代码生成模型被独立提示,为不同领域生成单函数实现。
  2. 采样策略:提示涵盖5-10个不同的算法领域以确保多样性。
  3. 过滤:排除解析失败或产生语法错误的样本。

代码属性图提取

  1. 工具:Joern静态分析框架
  2. 提取步骤:解析、控制流、数据流、异构集成。
  3. 归一化:节点特征标准化、边类型分层、图大小限制。

预处理与特征工程

  1. 标量特征计算:McCabe圈复杂度、Halstead体积度量等。
  2. 划分:按语言和模型进行分层随机划分。
  3. 序列化:hetero配置使用GraphML格式,scalar配置使用Arrow原生数字列。

数据质量与来源

  • 无手动注释:真实标签是确定性的。
  • 去重:通过内容哈希删除重复代码片段。
  • 偏差缓解:按模型分层采样以避免类别不平衡。
  • 可重复性:固定随机种子;版本化提示。

预期用途与限制

主要用例

  1. LLM代码指纹研究
  2. 比较分析
  3. 结构理解
  4. 基线建立

已记录的限制

  1. C++支持:由于Joern静态分析器的限制,目前未包含。
  2. 单函数范围:数据集包含独立函数,而非完整仓库或多文件项目。
  3. 合成数据来源:所有代码均为LLM生成或人类开源代码。
  4. 领域偏移:测试分布与训练集来自相同问题领域。
  5. 训练数据重叠:某些LLM可能共享指令调优语料库。
  6. 粒度敏感性:此数据集仅为函数级别。
  7. 评估方法:基线比较使用宏平均F1分数。

超出范围

  • 生产取证:此数据集未经验证用于现实世界源代码调查或法律证据环境。
  • 对抗鲁棒性:未针对代码混淆、风格转移或故意模型欺骗攻击进行测试。
  • 现实世界人类代码:在此数据集上训练的作者归属模型不应假定适用于任意生产代码。

个人信息与伦理考量

  • 负责任使用指南:引用此数据集时应讨论其约束。

许可

此数据集根据MIT许可证发布。

引用

如果使用CoDET-M4进行发表研究,请引用: bibtex @dataset{codedna_codetm4, title = {{CDNA-CoDET-M4}: Code Authorship Attribution via Code Property Graphs}, authors = {Gusta, Avisenna and Yinqi, Gu and Sia, Sim Kim and Mohamed, Dhameem and Shenghua, Ye}, year = {2025}, school = {Singapore Management University, School of Computing and Information Systems}, url = {https://huggingface.co/datasets/mohameddhameem/CDNA-CoDET-M4} }

快速开始

安装

bash pip install datasets

加载数据集

python from datasets import load_dataset dataset_hetero = load_dataset("mohameddhameem/CDNA-CoDET-M4", "hetero") dataset_scalar = load_dataset("mohameddhameem/CDNA-CoDET-M4", "scalar")

致谢

此数据集是新加坡管理大学计算与信息系统学院CodeDNA研究项目的一部分。

搜集汇总
数据集介绍
main_image_url
构建方式
在代码作者归属研究领域,CDNA-CoDET-M4数据集的构建体现了对代码结构深层特征的捕捉。该数据集源自CoDET-M4基准,通过新加坡管理大学CodeDNA团队的增强,将原始代码片段转化为代码属性图(CPG)表示。构建过程首先利用Joern静态分析框架,对Python和Java语言的函数级代码进行解析,集成抽象语法树、控制流图和数据流图,形成异构的多边类型图结构。随后,通过严格的过滤机制排除语法错误样本,并采用分层随机划分策略生成训练、验证和测试集,确保了数据质量与评估的可靠性。
特点
该数据集的核心特点在于其双配置设计,分别提供异构图结构与标量特征向量。异构配置完整保留了代码属性图的拓扑信息,包含节点类型、代码标记序列及多种边类型标签,适用于图神经网络等复杂模型。标量配置则提取了22项预计算的结构化度量,如圈复杂度和图密度,以表格形式呈现,便于传统机器学习方法进行快速实验与可解释性分析。数据集涵盖约77,000个样本,平衡覆盖六种大型语言模型及人类编写的代码,为代码风格指纹研究提供了多维度、可扩展的基准资源。
使用方法
研究人员可通过Hugging Face Datasets库直接加载该数据集,并依据任务需求选择异构或标量配置。加载后,可利用内置过滤功能按编程语言或模型类别筛选样本,进行模型训练与评估。对于图结构分析,异构配置的GraphML序列化数据可直接输入图神经网络;而标量配置的数值特征向量则适用于逻辑回归、随机森林等经典算法。数据集已提供标准划分,支持跨模型比较、结构指纹识别等研究方向,为代码作者归属领域的实验提供了即用型基础设施。
背景与挑战
背景概述
在人工智能与软件工程交叉领域,代码作者归属问题日益凸显,尤其在大型语言模型(LLM)广泛生成代码的背景下。CDNA-CoDET-M4数据集由新加坡管理大学CodeDNA团队于2025年构建,旨在通过代码属性图(CPG)这一结构化表示方法,精准识别代码片段的生成来源。该数据集在原始CoDET-M4基础上增强,涵盖Python与Java两种编程语言,包含约7.7万样本,涉及GPT-4o、CodeLlama等六类模型及人类编写代码。其核心研究聚焦于利用图神经网络捕捉代码的深层风格指纹,为LLM代码指纹识别与模型溯源提供标准化基准,推动了代码智能与软件取证领域的方法创新。
当前挑战
该数据集致力于解决代码作者归属这一复杂分类问题,其核心挑战在于如何从高度相似的LLM生成代码中提取判别性特征。传统基于文本标记的方法难以捕捉代码的结构化语义差异,而代码属性图的构建需融合抽象语法树、控制流图与数据流图,对静态分析工具的准确性与鲁棒性提出极高要求。在数据集构建过程中,团队面临多语言解析一致性、大规模图数据序列化存储以及类别平衡等工程挑战。此外,数据集的局限性体现在其单函数范围、合成数据起源以及跨领域泛化能力未经验证,这些因素共同构成了该领域未来研究需攻克的关键难点。
常用场景
经典使用场景
在代码智能与软件工程领域,CDNA-CoDET-M4数据集为大型语言模型(LLM)的代码作者归属研究提供了结构化基准。其最经典的应用场景是训练和评估基于图神经网络的分类模型,通过代码属性图(CPG)的异构表示来捕捉不同LLM生成代码的深层结构特征。研究者可利用其两种配置——完整的图结构(hetero)与预计算的标量特征(scalar),系统比较模型在Python和Java函数上的风格指纹识别能力,从而推动代码溯源技术的精细化发展。
解决学术问题
该数据集有效解决了代码作者归属研究中缺乏高质量、结构化基准的学术难题。传统方法多依赖原始代码文本的词汇统计,难以捕捉LLM在控制流、数据依赖和语法结构上的细微差异。CDNA-CoDET-M4通过融合抽象语法树、控制流图和程序依赖图,将代码转化为多边类型的异构图,为研究社区提供了可复现的评估框架。其意义在于首次系统地将图表示学习引入LLM代码指纹分析,促进了软件工程与机器学习领域的交叉创新,为理解模型内在编码风格提供了数据基础。
衍生相关工作
围绕该数据集已衍生出多项经典研究工作,主要集中在图神经网络架构创新与特征工程领域。部分研究探索了异构图注意力机制在CPG上的适应性改进,以提升对复杂代码结构的建模能力。另有工作专注于融合语义与结构特征的多模态方法,将代码文本嵌入与图节点特征相结合。在可解释性方向,学者利用其标量特征分析不同LLM在循环复杂度、扇入扇出等指标上的统计差异,为模型行为理解提供了量化依据。这些成果共同推动了代码作者归属技术向更鲁棒、更可解释的方向演进。
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

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

二维码
科研交流群

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

数据驱动未来

携手共赢发展

商业合作