Does Your Neural Code Completion Model Use My Code? A Membership Inference Approach

2024年04月22日
  • 简介
    最近几年,开发基于深度学习的自动代码补全模型取得了显著进展。虽然在GitHub上使用源代码来训练深度学习模型进行代码补全已经成为一种常见的做法,但这可能会引发一些法律和道德问题,例如侵犯版权。本文通过回答以下问题来调查当前神经代码补全模型的法律和道德问题:你是否使用了我的代码来训练你的神经代码补全模型?为此,我们将一个最初用于分类任务的成员推断方法(称为CodeMI)改进为更具挑战性的代码补全任务。特别地,由于目标代码补全模型作为不透明的黑盒子,无法访问其训练数据和参数,因此我们选择训练多个影子模型来模仿它们的行为。随后,从这些影子模型获得的后验概率被用于训练成员分类器。随后,成员分类器可以根据目标代码补全模型的输出有效地推断给定代码样本的成员身份状态。我们全面评估了这种改进方法在各种神经代码补全模型(如基于LSTM的、CodeGPT、CodeGen和StarCoder)中的有效性。实验结果表明,基于LSTM和CodeGPT的模型存在成员泄露问题,可以通过我们提出的成员推断方法轻松检测,准确率分别为0.842和0.730。有趣的是,我们的实验还表明,当前大型代码语言模型(例如CodeGen和StarCoder)的数据成员身份很难检测,留下了进一步改进的空间。最后,我们还试图从模型记忆的角度解释这些发现。
  • 图表
  • 解决问题
    研究神经代码补全模型的法律和伦理问题,探究是否存在版权侵犯的问题。
  • 关键思路
    采用成员推断方法(CodeMI)来检测神经代码补全模型是否使用了特定代码样本进行训练。通过训练多个阴影模型来模拟目标模型的行为,并利用这些阴影模型的后验概率来训练成员分类器。成员分类器可以有效地推断给定代码样本的成员身份状态。实验结果表明,LSTM-based和CodeGPT模型存在成员泄露问题,而CodeGen和StarCoder的数据成员资格较难检测。
  • 其它亮点
    实验结果表明,神经代码补全模型的使用可能存在法律和伦理问题。同时,CodeMI方法可以有效地检测成员泄露问题。值得深入研究的工作包括如何更好地保护代码隐私和版权。
  • 相关研究
    最近的相关研究包括:1. "Privacy Risks of Pretrained Language Models";2. "Membership Inference Attacks Against Machine Learning Models";3. "Neural Code Completion with Transformer"。
PDF
原文
点赞 收藏 评论 分享到Link

沙发等你来抢

去评论