Efficient and Scalable Provenance Tracking for LLM-Generated Code Snippets
作者: Andrea Gurioli, Davide D'Ascenzo, Federico Pennino, Maurizio Gabbrielli, Stefano Zacchiroli
分类: cs.SE, cs.AI, cs.IR
发布日期: 2026-05-27
💡 一句话要点
提出HYBRIDSOURCETRACKER,实现LLM生成代码片段的高效可扩展溯源跟踪
🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)
关键词: 代码溯源 大型语言模型 剽窃检测 向量搜索 指纹识别 代码生成 软件开发
📋 核心要点
- 现有基于指纹的剽窃检测方法(如Winnowing)在LLM代码溯源中面临着对大规模训练集进行线性时间搜索的挑战。
- 论文提出HYBRIDSOURCETRACKER,结合向量搜索快速缩小候选集,再用Winnowing精确匹配,实现高效溯源。
- 实验表明,该方法在保持对数时间复杂度的同时,性能优于Winnowing,尤其是在较长代码片段中,提升高达5.4%。
📝 摘要(中文)
大型语言模型(LLMs)在代码补全和生成中应用日益广泛,但它们可能逐字复制训练样本且不署名,引发关于剽窃和许可合规性的法律和伦理问题。传统的基于指纹的剽窃检测器(如Winnowing)仍然非常有效,但检查需要将代码片段与整个训练集进行比较,其线性时间搜索使其对于训练现代代码LLM的数十亿规模语料库来说不切实际。为了弥合这一差距,我们引入了SOURCETRACKER,一个为代码检索定制的300M参数编码器,以及一个混合两阶段溯源跟踪流水线HYBRIDSOURCETRACKER(HST)。HST首先通过向量搜索缩小一小部分候选片段,然后使用Winnowing对精确指纹重新排序这些候选片段。我们在THESTACKV2数据集的10M片段子集上训练和评估我们的系统,包括模拟真实标识符重命名的逐字和改编片段。在一个具有改编查询的体外10万片段搜索空间中,我们的混合方法对于30个token的片段达到了与Winnowing相当的平均倒数排名。然后,从>=60个token的窗口开始,它始终优于Winnowing高达5.4%,同时保持对数时间查询复杂度。在使用基于LLM的判断器的补充评估中,我们发现许多未标记为ground truth的检索片段仍然与预期来源高度相似,特别是对于更长的上下文窗口,因此对最终用户仍然有用。总的来说,我们的结果表明,将向量搜索与指纹识别相结合,可以实现LLM生成的代码的可扩展、高精度溯源跟踪。
🔬 方法详解
问题定义:论文旨在解决大型语言模型(LLMs)生成代码片段时可能存在的抄袭和版权问题。现有方法,如Winnowing,虽然有效,但在处理LLM训练所需的大规模代码语料库时,由于其线性时间搜索复杂度,变得不切实际。因此,需要一种高效且可扩展的方法来追踪LLM生成代码片段的来源。
核心思路:论文的核心思路是将向量搜索和指纹识别技术相结合,构建一个混合的两阶段溯源跟踪流水线。首先,利用向量搜索快速缩小候选代码片段的范围,然后使用Winnowing算法对候选片段进行精确匹配和排序。这种混合方法旨在利用向量搜索的快速检索能力和指纹识别的精确匹配能力,从而实现高效且准确的溯源跟踪。
技术框架:HYBRIDSOURCETRACKER (HST) 包含两个主要阶段:1) 向量搜索阶段:使用 SOURCETRACKER 编码器将查询代码片段和数据库中的代码片段编码为向量表示,然后使用向量搜索技术(如 FAISS)快速检索与查询向量最相似的候选片段。2) 指纹识别阶段:使用 Winnowing 算法对向量搜索阶段检索到的候选片段进行精确匹配和排序,以确定最可能的来源。
关键创新:该方法最重要的技术创新点在于将向量搜索和指纹识别相结合,构建了一个混合的溯源跟踪流水线。与传统的仅使用指纹识别的方法相比,该方法能够显著提高溯源跟踪的效率,尤其是在处理大规模代码语料库时。与仅使用向量搜索的方法相比,该方法能够提高溯源跟踪的准确性,因为它利用了指纹识别的精确匹配能力。
关键设计:SOURCETRACKER 是一个 300M 参数的编码器,专门为代码检索而设计。它使用 Transformer 架构,并经过训练以生成高质量的代码片段向量表示。在训练过程中,使用了对比学习损失函数,以鼓励相似的代码片段生成相似的向量表示。Winnowing 算法的关键参数包括指纹长度和窗口大小,这些参数需要根据具体的应用场景进行调整,以达到最佳的性能。
🖼️ 关键图片
📊 实验亮点
实验结果表明,在包含10万个代码片段的搜索空间中,对于30个token的片段,HYBRIDSOURCETRACKER的平均倒数排名与Winnowing相当。对于>=60个token的片段,HYBRIDSOURCETRACKER的性能始终优于Winnowing,提升高达5.4%,同时保持对数时间查询复杂度。此外,基于LLM的判断器评估表明,许多未标记为ground truth的检索片段仍然与预期来源高度相似。
🎯 应用场景
该研究成果可应用于软件开发领域,帮助开发者检测LLM生成的代码片段是否存在抄袭或版权问题,确保代码的合法性和合规性。此外,该技术还可用于教育领域,帮助教师检测学生提交的代码作业是否存在抄袭行为。未来,该技术有望集成到代码编辑器和代码审查工具中,实现自动化的代码溯源和版权检测。
📄 摘要(原文)
Large language models (LLMs) for code completion and generation are increasingly used in software development, yet they may reproduce training examples verbatim and without authorship attribution, raising legal and ethical concerns around plagiarism and license compliance. Classical fingerprint-based plagiarism detectors based on fingerprinting, such as Winnowing, remain highly effective, yet the inspection requires comparing fragments of code to the entire training set, and their linear-time search makes them impractical for the billion-scale corpora used to train modern code LLMs. To bridge this gap, we introduce SOURCETRACKER, a 300M-parameter encoder tailored for code retrieval, together with a hybrid two-stage provenance-tracking pipeline HYBRIDSOURCETRACKER (HST). HST first narrows down a small set of candidate snippets via vector search, then re-ranks those candidates using Winnowing on exact fingerprints. We train and evaluate our system on a 10M-snippet subset of the THESTACKV2 dataset, with both verbatim and adapted snippets that emulate realistic identifier renaming. On an in vitro 100k-snippet search space with adapted queries, our hybrid approach reaches a mean reciprocal rank on par with Winnowing for 30-token fragments. Then, starting from windows >= 60 tokens, it consistently over-performs by up to 5.4% while preserving logarithmic-time query complexity. In a complementary evaluation using an LLM-based judge, we find that many retrieved snippets not labeled as ground truth are still highly similar to the expected sources, particularly with longer context windows, and thus remain useful for end users. Overall, our results demonstrate that integrating vector search with fingerprinting enables scalable, high-precision provenance tracking for code produced by LLMs.