Code Fingerprints: Disentangled Attribution of LLM-Generated Code

📄 arXiv: 2603.04212v1 📥 PDF

作者: Jiaxun Guo, Ziyuan Yang, Mengyu Sun, Hui Wang, Jingfeng Lu, Yi Zhang

分类: cs.SE, cs.CL

发布日期: 2026-03-04

备注: 11 pages, 11 figures

🔗 代码/项目: GITHUB


💡 一句话要点

提出解耦代码归因网络DCAN,用于识别LLM生成代码的来源模型。

🎯 匹配领域: 支柱二:RL算法与架构 (RL & Architecture) 支柱九:具身大模型 (Embodied Foundation Models)

关键词: 代码归因 大型语言模型 解耦表示 对比学习 软件安全 模型指纹 代码生成

📋 核心要点

  1. 现有方法难以识别代码的具体来源LLM,阻碍了漏洞溯源、许可审计等应用。
  2. DCAN通过解耦代码的语义信息和风格特征,提取模型特有的生成指纹进行归因。
  3. 实验表明,DCAN在多种LLM和编程语言上实现了可靠的代码归因性能。

📝 摘要(中文)

大型语言模型(LLM)的快速应用改变了现代软件开发,实现了大规模的自动化代码生成。虽然这些系统提高了生产力,但也为软件治理、责任追溯和合规性带来了新的挑战。现有研究主要集中在区分机器生成的代码和人工编写的代码;然而,许多实际场景,如漏洞分类、事件调查和许可审计,需要识别生成给定代码片段的LLM。本文研究了模型级代码归因问题,旨在确定负责生成代码的源LLM。尽管归因具有挑战性,但训练数据、架构、对齐策略和解码机制的差异引入了模型相关的风格和结构变化,这些变化可以作为生成指纹。基于此,我们提出了解耦代码归因网络(DCAN),它将源不可知的语义信息与源特定的风格表示分离。通过对比学习目标,DCAN在保留任务语义的同时,隔离了区分性的模型相关信号,从而实现了跨模型和编程语言的多类归因。为了支持系统评估,我们构建了第一个大规模基准数据集,其中包含由四个广泛使用的LLM(DeepSeek、Claude、Qwen和ChatGPT)在四种编程语言(Python、Java、C和Go)中生成的代码。实验结果表明,DCAN在不同的设置下实现了可靠的归因性能,突出了软件工程环境中模型级溯源分析的可行性。

🔬 方法详解

问题定义:论文旨在解决模型级别的代码归因问题,即确定一段代码是由哪个LLM生成的。现有方法主要关注区分机器生成代码和人类编写代码,而忽略了不同LLM之间的差异,无法满足漏洞分析、许可审计等实际应用的需求。现有方法无法有效提取不同LLM的生成指纹,导致归因准确率低。

核心思路:论文的核心思路是利用不同LLM在训练数据、模型架构、对齐策略和解码机制上的差异,导致生成的代码在风格和结构上存在差异,这些差异可以作为LLM的生成指纹。通过解耦代码的语义信息和风格特征,可以有效提取这些指纹,从而实现模型级别的代码归因。

技术框架:DCAN(Disentangled Code Attribution Network)包含以下主要模块:1) 代码嵌入模块:将代码转换为向量表示。2) 解耦模块:将代码表示解耦为源不可知的语义信息和源特定的风格表示。3) 对比学习模块:通过对比学习,使模型能够区分不同LLM生成的代码。4) 分类器:根据风格表示对代码的来源LLM进行分类。

关键创新:论文的关键创新在于提出了解耦代码表示的方法,将代码的语义信息和风格特征分离。这种方法能够有效提取不同LLM的生成指纹,从而提高代码归因的准确率。此外,论文还构建了一个大规模的代码归因数据集,为该领域的研究提供了基准。

关键设计:DCAN使用Transformer作为代码嵌入模块。解耦模块使用对抗学习,使风格表示尽可能包含源信息,同时语义表示尽可能不包含源信息。对比学习使用InfoNCE损失函数,鼓励来自同一LLM的代码具有相似的风格表示,而来自不同LLM的代码具有不同的风格表示。分类器使用全连接层,将风格表示映射到LLM的类别。

🖼️ 关键图片

fig_0
fig_1
fig_2

📊 实验亮点

DCAN在包含DeepSeek、Claude、Qwen和ChatGPT四个LLM以及Python、Java、C和Go四种编程语言的大规模数据集上进行了评估。实验结果表明,DCAN能够有效识别代码的来源LLM,显著优于现有方法。具体性能数据在论文中给出,展示了DCAN在不同设置下的可靠归因性能。

🎯 应用场景

该研究成果可应用于软件安全领域,例如漏洞溯源、恶意代码分析等。在软件工程领域,可用于代码许可审计、代码质量评估等。此外,该技术还有助于理解不同LLM的代码生成特性,为改进LLM的代码生成能力提供参考。

📄 摘要(原文)

The rapid adoption of Large Language Models (LLMs) has transformed modern software development by enabling automated code generation at scale. While these systems improve productivity, they introduce new challenges for software governance, accountability, and compliance. Existing research primarily focuses on distinguishing machine-generated code from human-written code; however, many practical scenarios--such as vulnerability triage, incident investigation, and licensing audits--require identifying which LLM produced a given code snippet. In this paper, we study the problem of model-level code attribution, which aims to determine the source LLM responsible for generated code. Although attribution is challenging, differences in training data, architectures, alignment strategies, and decoding mechanisms introduce model-dependent stylistic and structural variations that serve as generative fingerprints. Leveraging this observation, we propose the Disentangled Code Attribution Network (DCAN), which separates Source-Agnostic semantic information from Source-Specific stylistic representations. Through a contrastive learning objective, DCAN isolates discriminative model-dependent signals while preserving task semantics, enabling multi-class attribution across models and programming languages. To support systematic evaluation, we construct the first large-scale benchmark dataset comprising code generated by four widely used LLMs (DeepSeek, Claude, Qwen, and ChatGPT) across four programming languages (Python, Java, C, and Go). Experimental results demonstrate that DCAN achieves reliable attribution performance across diverse settings, highlighting the feasibility of model-level provenance analysis in software engineering contexts. The dataset and implementation are publicly available at https://github.com/mtt500/DCAN.