你的神经代码完成模型用到了我的代码吗?——基于会员推断的方法
软件工程
2024-09-10 v2 人工智能
摘要
近年来,开发基于深度学习的自动代码完成模型取得了显著进展。尽管在GitHub上使用源代码作为训练数据是当前神经代码完成模型的常见做法,但可能引发版权侵权等法律和伦理问题。本文通过回答"你的神经代码完成模型是否使用了我的代码?"这一问题,来探讨当前神经代码完成模型的法律与伦理问题。为此,我们针对更具挑战性的代码完成任务,设计了一种会员推断方法(称为CodeMI),该方法最初用于分类任务。由于目标代码完成模型表现为黑箱,无法获取其训练数据和参数,我们选择训练多个影子模型来模拟其行为。随后,这些影子模型获取的后验概率被用于训练会员分类器。最终,会员分类器可基于目标代码完成模型的输出,有效推断给定代码样本的会员状态。我们全面评估了该方法在多种神经代码完成模型(即LSTM-based、CodeGPT、CodeGen和StarCoder)上的有效性。实验结果表明,LSTM-based和CodeGPT模型存在会员信息泄露问题,可通过我们提出的会员推断方法轻松检测,准确率分别为0.842和0.730。有趣的是,我们的实验还显示,当前大型代码语言模型(如CodeGen和StarCoder)的会员信息难以检测,为进一步改进留下了更大的空间。最后,我们还从模型记忆的角度解释了这些发现。
引用
@article{arxiv.2404.14296,
title = {Does Your Neural Code Completion Model Use My Code? A Membership Inference Approach},
author = {Yao Wan and Guanghua Wan and Shijie Zhang and Hongyu Zhang and Pan Zhou and Hai Jin and Lichao Sun},
journal= {arXiv preprint arXiv:2404.14296},
year = {2024}
}