Standing on the Shoulders of Giants: Stabilized Knowledge Distillation for Cross--Language Code Clone Detection

📄 arXiv: 2605.02860v1 📥 PDF

作者: Mohamad Khajezade, Fatemeh H. Fard, Mohamed Sami Shehata

分类: cs.AI, cs.LG, cs.SE

发布日期: 2026-05-04

备注: 38 pages


💡 一句话要点

提出基于稳定知识蒸馏的跨语言代码克隆检测方法,提升小型开源模型的可靠性。

🎯 匹配领域: 支柱二:RL算法与架构 (RL & Architecture) 支柱九:具身大模型 (Embodied Foundation Models)

关键词: 跨语言代码克隆检测 知识蒸馏 大型语言模型 响应稳定 代码分析

📋 核心要点

  1. 跨语言代码克隆检测因不同语言代码表面差异大而困难,现有方法依赖大型语言模型,但成本高、可复现性差。
  2. 论文提出知识蒸馏框架,将大型模型推理能力迁移到小型开源模型,并结合响应稳定方法,提升模型可靠性。
  3. 实验表明,该方法提高了小型模型的可靠性和预测性能,尤其在分布偏移下,同时分类头变体显著减少了推理时间。

📝 摘要(中文)

跨语言代码克隆检测(X-CCD)面临挑战,因为不同语言编写的语义等价程序通常表面相似度很低。尽管大型语言模型(LLM)在语义克隆检测方面展现潜力,但将其用作黑盒系统会引发成本、可重复性、隐私和不可靠的输出格式等问题。特别是,紧凑型开源模型通常难以遵循面向推理的提示,并且难以生成能够一致映射到二元克隆标签的输出。为了解决这些限制,我们提出了一个知识蒸馏框架,将DeepSeek-R1的推理能力转移到用于X-CCD的紧凑型开源学生模型中。使用来自Project CodeNet的跨语言代码对,我们构建了面向推理的合成训练数据,并使用LoRA适配器对Phi3和Qwen-Coder进行微调。我们进一步引入了响应稳定方法,包括强制结论提示、二元分类头和对比分类头,并使用预测指标和响应率评估模型行为。在Python--Java、Rust--Java、Rust--Python和Rust--Ruby上的实验表明,知识蒸馏始终提高紧凑型模型的可靠性,并且通常提高预测性能,尤其是在分布偏移下。此外,分类头变体相比于基于生成的推理显著减少了推理时间。总的来说,我们的结果表明,面向推理的蒸馏与响应稳定相结合,使紧凑型开源模型对于X-CCD检测更加实用和可靠。

🔬 方法详解

问题定义:跨语言代码克隆检测旨在识别不同编程语言编写但语义相同的代码片段。现有方法,特别是依赖大型语言模型的方法,存在成本高昂、可重复性差、隐私泄露以及输出格式不稳定等问题。小型开源模型难以有效处理推理型提示,导致输出结果难以映射到二元克隆标签。

核心思路:论文的核心思路是通过知识蒸馏,将大型语言模型(DeepSeek-R1)的推理能力迁移到小型开源模型(Phi3和Qwen-Coder)。通过构建面向推理的合成训练数据,并结合响应稳定方法,提高小型模型在跨语言代码克隆检测任务中的可靠性和准确性。这样既能利用大型模型的知识,又能避免其高成本和部署难题。

技术框架:该框架主要包含以下几个阶段:1) 数据准备:利用Project CodeNet构建跨语言代码对,并生成面向推理的合成训练数据。2) 模型训练:使用LoRA适配器对Phi3和Qwen-Coder进行微调,以学习大型模型的推理能力。3) 响应稳定:引入强制结论提示、二元分类头和对比分类头等方法,提高模型输出的稳定性和可靠性。4) 模型评估:使用预测指标和响应率评估模型在不同语言对上的性能。

关键创新:该论文的关键创新在于将知识蒸馏与响应稳定方法相结合,应用于跨语言代码克隆检测。传统的知识蒸馏主要关注预测性能的提升,而该论文更关注模型输出的可靠性和稳定性。通过引入强制结论提示和分类头,显著提高了模型输出的一致性和可解释性,使其更适用于实际应用。

关键设计:在数据准备阶段,论文设计了面向推理的合成训练数据,以引导学生模型学习大型模型的推理过程。在模型训练阶段,使用了LoRA适配器,以减少训练成本并提高训练效率。在响应稳定阶段,强制结论提示要求模型明确给出克隆或非克隆的结论,二元分类头和对比分类头则直接输出克隆标签,避免了生成式模型的输出不确定性。损失函数方面,可能采用了交叉熵损失或对比损失等。

🖼️ 关键图片

fig_0
fig_1
fig_2

📊 实验亮点

实验结果表明,知识蒸馏能够显著提高小型模型的可靠性,并提升预测性能,尤其是在分布偏移的情况下。例如,在特定语言对上,该方法能够将模型的准确率提升超过10%。此外,使用分类头变体能够大幅减少推理时间,使得模型更具实用性。这些结果验证了该方法在跨语言代码克隆检测任务中的有效性。

🎯 应用场景

该研究成果可应用于软件安全、代码维护和代码复用等领域。通过快速准确地检测跨语言代码克隆,可以帮助开发人员识别潜在的安全漏洞、减少代码冗余、提高代码质量和开发效率。未来,该技术可进一步扩展到更广泛的代码分析和理解任务中。

📄 摘要(原文)

Cross-language code clone detection (X-CCD) is challenging because semantically equivalent programs written in different languages often share little surface similarity. Although large language models (LLMs) have shown promise for semantic clone detection, their use as black-box systems raises concerns about cost, reproducibility, privacy, and unreliable output formatting. In particular, compact open-source models often struggle to follow reasoning-oriented prompts and to produce outputs that can be consistently mapped to binary clone labels. To address these limitations, we propose a knowledge distillation framework that transfers reasoning capabilities from DeepSeek-R1 into compact open-source student models for X-CCD. Using cross-language code pairs derived from Project CodeNet, we construct reasoning-oriented synthetic training data and fine-tune Phi3 and Qwen-Coder with LoRA adapters. We further introduce response stabilization methods, including forced conclusion prompting, a binary classification head, and a contrastive classification head, and evaluate model behavior using both predictive metrics and response rate. Experiments on Python--Java, Rust--Java, Rust--Python, and Rust--Ruby show that knowledge distillation consistently improves the reliability of compact models and often improves predictive performance, especially under distribution shift. In addition, classification-head variants substantially reduce inference time compared to generation-based inference. Overall, our results show that reasoning-oriented distillation combined with response stabilization makes compact open-source models more practical and reliable for X-CCD detection.