← 最新论文
💻 computer science

PuzzleMark: Implicit Jigsaw Learning for Robust Code Dataset Watermarking in Neural Code Completion Models

PuzzleMark 是一个专为神经代码补全模型设计的鲁棒且不可感知的框架,它通过基于代码复杂度的载体选择以及一种新颖的变量名拼接模式,在保护数据集知识产权的同时实现完美的验证准确率并规避现有检测方法。

原作者: Haocheng Huang, Yuchen Chen, Weisong Sun, Peizhuo Lv, Yuan Xiao, Chunrong Fang, Yang Liu, Xiaofang Zhang

发布于 2026-05-01
📖 1 分钟阅读☕ 轻松阅读

原作者: Haocheng Huang, Yuchen Chen, Weisong Sun, Peizhuo Lv, Yuan Xiao, Chunrong Fang, Yang Liu, Xiaofang Zhang

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

以下是《PuzzleMark》论文的通俗化解读,辅以生动的类比。

核心难题:窃取“独家秘方”

想象你是一位厨师,花费数年收集了全球最棒的食谱,经过反复测试,整理成一本完美无缺的巨型食谱书。这本食谱书是你最宝贵的资产。

现在,想象有人想不付钱就利用你的食谱书开餐厅。他们不能直接复印这本书(那样太明显了),所以他们雇佣一个机器人来阅读你的书并学习烹饪。一旦机器人学会了,他们就解雇你,自己开了一家餐厅。你无法证明机器人是向你的书学习的,因为机器人的烹饪看起来和正常烹饪一模一样。

在计算机代码的世界里,这本“食谱书”就是代码数据集,而那个“机器人”就是AI 编程助手(如 GitHub Copilot)。构建这些数据集既昂贵又费力。但目前,如果有人窃取了你的特定数据集,却没有任何好的方法能证明 AI 是基于该数据集训练的。

旧方案:“便利贴”(以及它为何失败)

以前的研究人员试图通过在代码中隐藏“水印”来解决这个问题。这就像在食谱书的每第 10 页塞进一张便利贴,上面写着:“本书归厨师 X 所有”。

  • 缺陷: 这些旧的“便利贴”太明显了。如果小偷查看这本书,他们很容易发现这些奇怪的便签,把它们撕掉,甚至扔掉整页。或者,他们可以扫描全书,找出这些奇怪的规律,在训练机器人之前将其移除。这些“便利贴”太容易被检测并清除了。

新方案:PuzzleMark

本文的作者提出了一种名为PuzzleMark的新方法。他们不再使用便利贴,而是将代码本身转化为一种微妙、无形的拼图。

其工作原理分为三个简单步骤:

1. 挑选合适的“藏身处”(载体选择)

想象你试图在图书馆里隐藏一条秘密信息。

  • 错误做法: 如果你把信息藏在一本已经很奇怪、破损或用奇怪语言写成的书里,人们会立刻起疑。
  • PuzzleMark 的改进: 系统会扫描整个图书馆,利用“复杂度计”来寻找那些完全正常、书写精良且常见的书籍。它拒绝在那些已经混乱或可疑的书中隐藏信息。通过只选择看起来最“自然”的代码片段来承载秘密,水印变得极难被察觉。

2. “七巧板”技巧(拼接模式)

旧的水印依赖于简单的模式:例如“如果你看到单词 key,下一个单词必须是 value"。这就像代码规定“如果你看到一辆红车,旁边必须有一辆蓝车”。小偷很容易发现这种模式并将其破坏。

PuzzleMark 采用了一种“七巧板”方法:

  • 它不使用固定规则,而是取代码中两个现有的变量名(例如 keyiterator),将它们拼接在一起,创造出一个新的、略显不寻常的名字(例如 key_iterator)。
  • 这就像把两块正常的拼图碎片粘在一起,做成一块新碎片,它看起来属于那里,但只有知道秘密胶水的人才能识别。
  • 因为代码看起来大部分是正常的,而且“胶水”会根据具体的代码片段而变化,小偷极难在不破坏代码本身的情况下找到并移除它。

3. “黑盒”测试(验证)

你如何证明 AI 是向你的书学习的?

  • 你不需要窥探 AI 的大脑。你只需给它一个特定的“触发器”(一段包含隐藏拼图碎片的特定代码片段)。
  • 如果 AI 是在你带有水印的数据集上训练的,它会本能地用你创建的“粘合”名称来完成代码。
  • 如果它不是基于你的数据训练的,它只会猜测一个普通的名称。
  • 作者使用统计检验(费舍尔精确检验)来判断 AI 是否过于频繁地猜对,从而排除巧合。如果数学结果显示“是”,你就有了证据。

为何这更好?(结果)

论文将 PuzzleMark 与旧方法进行了测试,发现:

  • 它隐形: 人类开发者和自动化工具都无法区分带水印的代码和正常代码。它像幽灵一样隐形。
  • 它坚韧: 即使小偷试图通过移除可疑代码来“清洗”数据集,水印依然幸存。即使他们试图通过混入数百万份其他干净代码文件来“稀释”它,水印仍然可被检测。
  • 它不破坏任何东西: 在这种带水印的代码上训练的 AI 模型,其表现与在干净代码上训练的模型一样好。这种“胶水”并没有毁掉食谱。

总结

PuzzleMark 是一种保护代码数据集知识产权的新颖且稳健的方法。它不像留下容易被小偷撕掉的明显“便利贴”,而是将所有权证明隐藏在代码的自然流动中,就像一种秘密的食谱配料,只有当你尝试烹饪这道菜时才会显现。它确保了如果有人窃取你的数据来训练 AI,即使他们试图掩盖行踪,你也能在法庭上证明这一点。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →