中文

未经我同意即被训练:检测基于代码训练的语言模型中的代码包含情况

软件工程 2024-11-01 v4 机器学习

摘要

代码审计通过验证开发的代码不包含来自受保护来源的代码,以确保其符合标准、法规和版权保护。近年来,大型语言模型(LLMs)作为软件开发过程中的编码助手出现,给代码审计带来了新的挑战。用于训练这些模型的数据集主要从公开来源收集。这引发了知识产权侵权问题,因为开发者的代码已被包含在数据集中。因此,审计使用 LLMs 开发的代码具有挑战性,由于无法访问这些模型的训练数据集,很难可靠地断言开发过程中使用的 LLM 是否曾在特定的受版权保护代码上进行过训练。鉴于训练数据集的不公开,传统的代码克隆检测等方法不足以断言版权侵权。为应对这一挑战,我们提出了一种新方法 TraWiC;这是一种基于成员推断的、与模型无关且可解释的方法,用于检测 LLM 训练数据集中的代码包含情况。我们提取每个程序独有的语法和语义标识符来训练分类器以检测代码包含。在实验中,我们观察到 TraWiC 能够检测到 83.87% 的曾用于训练 LLM 的代码。相比之下,流行的克隆检测工具 NiCad 仅能检测到 47.64%。除了卓越的性能外,与 CodeWhisperer 引用追踪器等工具在审计过程中进行的成对克隆检测(涉及数千个代码片段)相比,TraWiC 的资源开销很低。

关键词

引用

@article{arxiv.2402.09299,
  title  = {Trained Without My Consent: Detecting Code Inclusion In Language Models Trained on Code},
  author = {Vahid Majdinasab and Amin Nikanjam and Foutse Khomh},
  journal= {arXiv preprint arXiv:2402.09299},
  year   = {2024}
}

备注

Accepted for publication in TOSEM (ACM Transactions on Software Engineering and Methodology)