微信扫一扫,关注公众号

  • 科技行者

  • 算力行者

见证连接与计算的「力量」

首页 AI侦探破案:挪威奥斯陆大学团队首次揭秘LLM生成代码的"指纹"识别技术

AI侦探破案:挪威奥斯陆大学团队首次揭秘LLM生成代码的"指纹"识别技术

2025-06-26 10:13
分享至:
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-
2025-06-26 10:13 科技行者

这项由挪威奥斯陆大学的塔马斯·比斯特雷(Tamas Bisztray)领导,联合阿联酋技术创新研究院、匈牙利厄特弗什·洛兰德大学等多个国际机构的研究团队完成的突破性研究,发表于2025年6月18日的计算机科学预印本论文库arXiv上。有兴趣深入了解的读者可以通过arXiv:2506.17323v1访问完整论文。

故事要从一个令人困惑的现象说起。你有没有想过,当ChatGPT、Claude或者其他AI写代码的时候,它们是否会像人类程序员一样留下独特的"签名"?就像每个厨师炒菜都有自己的手法,每个画家画画都有独特的笔触一样,不同的AI模型在生成代码时是否也会留下属于自己的痕迹?

这个问题在当今时代变得越来越重要。随着AI生成代码的使用越来越普遍,我们急需一种方法来识别"这段代码到底是哪个AI写的"。这不仅关系到学术诚信问题——比如学生用AI完成编程作业,更关系到代码安全问题。研究表明,超过60%的AI生成C代码都存在安全漏洞,如果我们能识别出代码的"作者",就能更好地评估和防范这些风险。

比斯特雷和他的团队就像数字时代的福尔摩斯,他们要解决的案件是:能否通过代码的"指纹"来识别生成它的AI模型?这听起来就像要通过一张照片判断是用哪台相机拍摄的一样困难,但研究团队相信这是可能的。

为了破解这个谜题,研究团队首先需要收集"证据"。他们创建了一个名为LLM-AuthorBench的庞大"案例库",就像警察局的指纹数据库一样。这个数据库包含了32000个可编译的C语言程序,这些程序分别由八个顶级AI模型生成:GPT-4.1、GPT-4o、GPT-4o-mini、DeepSeek-V3、Qwen2.5-72B、Llama 3.3-70B、Claude-3.5-Haiku和Gemini-2.5-Flash。

收集证据的过程就像设计一系列标准化的"测试题"。研究团队手工制作了300个不同的编程任务模板,就像准备了300道不同类型的数学题。每个模板都包含可变参数,比如"写一个C程序,用冒泡排序算法对包含{size}个整数的数组进行排序",其中{size}可以是1到100之间的任何数字。通过这种方式,他们能够生成约21亿种不同的编程问题,但实际选择了4000个独特的任务给每个AI模型"答题"。

这就像让八个不同的大厨用相同的食材做同一道菜,看看他们各自的手法有什么不同。虽然题目相同,但每个AI模型生成的代码都带有自己独特的"烹饪风格"——有的喜欢加很多注释(就像爱唠叨的厨师),有的代码结构简洁明了(像极简主义厨师),有的喜欢使用特定的变量命名方式(像有强迫症的厨师)。

接下来,研究团队需要训练一个"AI侦探"来识别这些不同的编程风格。他们开发了一个名为CodeT5-Authorship的专门模型,这个模型就像一个经验丰富的刑警,能够通过观察代码的各种细节来判断是哪个AI"作案"的。

这个AI侦探的工作原理很有趣。它基于CodeT5模型的编码器部分进行改造,就像把一个强大的翻译官改造成专门的笔迹鉴定专家。原本的CodeT5是一个既能理解代码又能生成代码的"全能选手",但在这个任务中,研究团队只需要它的"理解"能力,所以把生成部分删掉了,专门强化分析能力。

这个改造后的模型包含24层神经网络层,能够处理512个字符长度的代码片段。当它看到一段代码时,会首先将代码转换成数字向量(就像把文字转换成密码),然后通过两层分类器进行分析。第一层分类器会把复杂的代码特征压缩成更容易处理的形式,中间使用了GELU激活函数(一种数学运算方式)和20%的随机忽略机制来防止过度学习。最后一层会输出一个概率分布,告诉我们这段代码最可能是哪个AI模型生成的。

为了验证这个AI侦探的能力,研究团队进行了大量的"破案测试"。他们不仅测试了自己开发的CodeT5-Authorship模型,还邀请了其他七种传统机器学习"侦探"和八种基于Transformer架构的现代"侦探"来参与竞赛,包括BERT、RoBERTa、CodeBERT、ModernBERT、DistilBERT、DeBERTa-V3、Longformer,以及经过LoRA微调的Qwen2-1.5B。

第一个测试场景是"二元识别",就像问"这段代码是GPT-4.1写的还是GPT-4o写的?"这是最困难的挑战,因为这两个模型来自同一家公司,训练数据相似,就像要区分双胞胎的笔迹一样困难。

测试结果令人惊讶。研究团队发现,即使是如此相似的模型,它们的"编程指纹"依然存在可识别的差异。GPT-4o似乎更喜欢添加详细的注释,就像一个话多的程序员,总是要解释自己在做什么。而GPT-4.1则更加简洁直接,就像一个言简意赅的老手。

比如,当要求两个模型都写一个简单的"Hello World"程序时,GPT-4o生成的代码是这样的:

```c #include int main() { // Print the message to the console printf("ACM AISec is an amazing conference!\n"); return 0; // indicate successful execution } ```

而GPT-4.1的版本则是:

```c #include int main() { printf("ACM AISec is an amazing conference!\n"); return 0; } ```

可以明显看出,GPT-4o添加了更多解释性注释,而GPT-4.1更加简洁。这种细微的差异成为了AI侦探破案的关键线索。

在二元识别测试中,CodeT5-Authorship模型表现最佳,达到了97.56%的准确率。这意味着100段代码中,它能正确识别出97段的真正"作者"。其他模型的表现也相当不错:DeBERTa-V3达到97%,QWEN2-1.5B达到96.88%。

有趣的是,研究团队发现注释的存在对识别准确率有显著影响。当他们移除代码中的所有注释时,所有模型的准确率都会下降2-3个百分点。这证明了注释风格确实是区分不同AI模型的重要"指纹特征"。

传统的机器学习方法表现也不错,但明显逊色于深度学习模型。最好的传统方法XGBoost达到了92.2%的准确率,但仍然比CodeT5-Authorship低了5个百分点以上。这就像用放大镜观察指纹和用高科技指纹扫描仪的区别,后者能看到更多细节。

第二个测试场景是"多元识别",难度更大。研究团队选择了五个差异较大的AI模型进行测试:Gemini 2.5 Flash、Claude 3.5 Haiku、GPT-4.1、Llama 3.3和DeepSeek-V3。这就像要求侦探从五个不同国家的嫌疑人中找出真凶一样。

在这个更复杂的测试中,CodeT5-Authorship依然保持领先,达到95.40%的准确率。Longformer紧随其后,达到95.00%。这个结果相当令人印象深刻,因为要在五个选项中做出正确判断,随机猜测的准确率只有20%。

研究团队还制作了一个"混淆矩阵"来分析哪些模型最容易被误判。结果发现,DeepSeek-V3是最容易被误认的模型,800个DeepSeek样本中只有723个被正确识别,其余的经常被误认为是Llama-3.3-70B、Claude-3.5-haiku或GPT-4.1生成的。这可能说明DeepSeek-V3的编程风格与其他模型有更多重叠,就像一个"变色龙"程序员,能够模仿多种编程风格。

为了确保研究结果的可靠性,研究团队还进行了"交叉验证"测试。他们使用完全不同的API接口生成新的代码样本,确保AI侦探识别的是模型本身的特征,而不是某个特定API的"水印"。结果证明,即使在这种更严格的测试条件下,模型依然能够以99%和100%的置信度正确识别GPT-4o和GPT-4.1。

这项研究的意义远不止于学术层面。在实际应用中,这种技术可以帮助教育机构检测学生是否使用AI完成编程作业,帮助企业评估代码的安全风险,甚至可以用于数字取证,在网络犯罪调查中追踪代码的来源。

当然,这项研究也有一些局限性。目前的方法只针对C语言,对于其他编程语言如Python、Java的效果还需要进一步验证。此外,如果有人故意想要隐藏AI生成代码的痕迹,比如手动修改注释风格或变量命名方式,可能会降低识别的准确性。研究团队还没有测试对抗性攻击的防御能力,这是未来需要重点关注的方向。

研究团队的工作就像在数字世界中建立了第一个"指纹识别系统"。正如人类的指纹是独一无二的,每个AI模型在生成代码时也会留下独特的"数字指纹"。这些指纹可能体现在注释的详细程度、变量的命名习惯、代码的结构组织方式,甚至是某些特定编程模式的偏好上。

更令人兴奋的是,研究团队已经将所有的研究代码、数据集和训练脚本都开源发布在GitHub上(https://github.com/LLMauthorbench/),这意味着其他研究者可以在此基础上继续改进和扩展这项技术。他们还提供了Google Colab的可运行脚本,让任何人都能亲自体验这种AI代码识别技术。

从更宏观的角度来看,这项研究开启了"AI内容溯源"这个全新的研究领域。随着AI生成内容越来越普遍,我们不仅需要能够区分"这是人写的还是AI写的",更需要能够回答"这是哪个AI写的"。这种精细化的识别能力将成为未来数字社会的重要基础设施。

研究团队的下一步计划包括扩展到更多编程语言、测试更多AI模型、研究对抗性攻击的防御方法,以及探索零样本和少样本学习的可能性。他们还计划研究如何检测人机协作编写的代码,这在实际应用中可能更加常见。

说到底,这项研究告诉我们一个重要的事实:即使是看似相同的AI模型,它们在生成内容时也会保留各自独特的"个性"。这种个性不是刻意设计的,而是在训练过程中自然形成的,就像每个人都会在不知不觉中形成自己的说话习惯和行为模式一样。

归根结底,这项技术让我们对AI有了更深层的理解。它不仅仅是一个实用的工具,更像是一面镜子,让我们看到了AI模型之间的细微差异和独特特征。在未来的AI时代,这种"数字指纹识别"技术可能会成为保障网络安全、维护学术诚信、追踪内容来源的重要手段。

对于普通人来说,这项研究最直接的意义可能在于提醒我们:在这个AI辅助编程越来越普遍的时代,透明性和可追溯性变得越来越重要。无论是学生学习编程,还是专业开发者使用AI工具,了解和承认AI的参与都将成为新的职业道德标准。而像CodeT5-Authorship这样的技术,则为这种透明性提供了技术保障。

Q&A

Q1:CodeT5-Authorship是什么?它能做什么? A:CodeT5-Authorship是一个专门识别AI生成代码的模型,就像代码界的"指纹识别器"。它能够通过分析C语言代码的编程风格、注释习惯、变量命名等特征,准确判断这段代码是由哪个AI模型生成的,准确率可达97.56%。

Q2:这种技术会不会影响学生和程序员使用AI工具? A:技术本身是中性的,主要作用是提高透明度。对于学生来说,它可能会促使更诚实地申报AI使用情况;对于程序员,它有助于代码质量评估和安全风险管控。关键是建立合理的使用规范,而不是完全禁止AI辅助编程。

Q3:普通人如何使用这项技术?有什么限制? A:研究团队已将代码开源在GitHub上,技术人员可以直接使用。但目前只支持C语言,对其他编程语言的效果未知。此外,如果代码被人工修改过,识别准确率可能会下降。未来可能会有更用户友好的在线工具出现。

分享至
0赞

好文章,需要你的鼓励

推荐文章
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-