[Paper] LLMSniffer:通过 GraphCodeBERT 与监督对比学习检测 LLM 生成的代码

发布: (2026年4月17日 GMT+8 21:32)
7 分钟阅读
原文: arXiv

Source: arXiv - 2604.16058v1

概述

LLMSniffer 解决了一个及时的问题:随着 GPT‑4 等大型语言模型(LLM)开始编写生产级代码,开发者、教育者和安全团队需要可靠的方法来判断代码片段是由人类编写还是由 AI 生成。作者提出了一种检测框架,通过两阶段监督对比学习管道对代码感知的 Transformer GraphCodeBERT 进行微调,在两个已建立的基准上实现了显著的准确率提升。

关键贡献

  • 对代码检测的对比微调 – 引入一种两阶段的监督对比学习方案,锐化 GraphCodeBERT 的嵌入空间,使 AI 生成的代码和人工编写的代码易于区分。
  • 注释移除预处理 – 在训练前剥除注释,防止模型依赖表面线索(例如 “generated by …”),迫使模型学习更深层的语义。
  • 在精炼嵌入上使用 MLP 分类器 – 轻量级的多层感知器将对比学习得到的表征转化为二元决策(LLM 生成 vs. 人工)。
  • 领先的实验结果 – 在 GPTSniffer 数据集上将准确率从 70 % 提升至 78 %(F1 从 68 % 提升至 78 %),在 Whodunit 数据集上将准确率从 91 % 提升至 94.65 %(F1 从 91 % 提升至 94.64 %)。
  • 开放资源 – 发布模型检查点、预处理脚本、数据集以及交互式演示,以加速可复现性和后续研究。

方法论

  1. 数据准备 – 作者使用两个公开语料库(GPTSniffer,Whodunit),其中包含配对的人类编写和 LLM 生成的代码片段。所有注释均被剥除,以避免出现琐碎的检测信号。
  2. 基础编码器 – GraphCodeBERT,一个在源代码图(AST 增强)上预训练的 Transformer,作为骨干网络,因为它已经能够捕获语法和数据流信息。
  3. 两阶段监督对比学习
    • 阶段 1:使用监督对比损失对编码器进行微调,使同一类别(human 或 AI)的嵌入靠近,而不同类别的嵌入相互远离。
    • 阶段 2:在更具判别性的嵌入空间上,进一步使用标准交叉熵损失对同一编码器进行精炼。
  4. 分类头 – 一个简单的 MLP(两层隐藏层)读取最终嵌入并输出二元标签。
  5. 评估 – 使用准确率、F1‑score 和 t‑SNE 可视化来评估定量性能以及学习到的嵌入簇的质量。

结果与发现

数据集基线准确率 / F1LLMSniffer 准确率 / F1
GPTSniffer70 % / 68 %78 % / 78 %
Whodunit91 % / 91 %94.65 % / 94.64 %
  • Embedding separation:t‑SNE 图显示在人类与 AI 代码之间形成紧密、良好分离的簇,经过对比微调后,确认损失函数有效地构造了潜在空间。
  • Robustness to comment removal:即使没有注释线索,模型仍保持高性能,表明它学习了更深层的代码语义而非表面模式。
  • Efficiency:添加的对比阶段带来适度的训练开销,但实现了显著的准确率提升,使其在实际流水线中具有实用性。

实际意义

  • 代码审查工具 – 将 LLMSniffer 集成到 pre‑commit hook 或 CI 步骤中,以标记 AI 生成的代码片段,帮助团队执行编码标准或检测潜在抄袭。
  • 学术诚信 – 大学可以自动筛选学生提交的代码,检测是否为 LLM 生成,维护编程作业的公平性。
  • 安全审计 – AI 生成的代码可能携带细微漏洞;提前发现可让安全团队进行有针对性的静态分析。
  • 许可证合规 – 公司可以监控因专有 LLM 生成而意外包含的、可能受不同使用许可证约束的代码。
  • 研究基础 – 发布的检查点和演示为未来在多模态检测(例如,将代码与提交信息结合)或扩展到其他编程语言的工作提供基线。

限制与未来工作

  • 语言覆盖 – 实验聚焦于有限的语言集合(主要是 Python/Java)。扩展到不常见的语言可能需要额外的预训练。
  • 不断演进的 LLM – 随着 LLM 的提升,检测成为一个不断变化的目标;作者指出需要使用最新的 AI 生成样本持续重新训练。
  • 对抗性规避 – 简单的混淆(变量重命名、重新格式化)可能削弱检测效果;未来工作可以探索针对这些攻击的鲁棒性。
  • 可解释性 – 虽然嵌入向量区分度良好,但模型目前未提供人类可读的决策依据;加入可解释层将有助于在生产环境中建立信任。

作者

  • Mahir Labib Dihan
  • Abir Muhtasim

论文信息

  • arXiv ID: 2604.16058v1
  • 分类: cs.SE, cs.CL
  • 发表时间: 2026年4月17日
  • PDF: 下载 PDF
0 浏览
Back to Blog

相关文章

阅读更多 »