Reasoning Distillation for Lightweight Automated Program Repair

📄 arXiv: 2601.10987v1 📥 PDF

作者: Aanand Balasubramanian, Sashank Silwal

分类: cs.LG

发布日期: 2026-01-16

备注: 8 pages, 5 tables. Preprint


💡 一句话要点

提出基于推理蒸馏的轻量级自动化程序修复方法,提升模型性能。

🎯 匹配领域: 支柱二:RL算法与架构 (RL & Architecture)

关键词: 自动化程序修复 知识蒸馏 符号推理 轻量级模型 CodeT5

📋 核心要点

  1. 现有小型代码模型在程序修复中性能受限,难以学习深层程序结构,依赖浅层关联。
  2. 提出推理蒸馏方法,利用大型教师模型提供的符号推理标签,指导小型学生模型学习。
  3. 实验表明,推理监督能显著提升模型在低频bug类别上的修复性能,且不增加模型复杂度。

📝 摘要(中文)

本文研究了轻量级符号推理监督是否能改善紧凑型自动化程序修复模型中的修复类型分类。小型代码模型在资源受限的环境中很有吸引力,但它们通常只产生单一预测,这使得我们不清楚它们是否学习了有意义的程序结构,还是仅仅依赖于浅层关联。我们提出了一种推理蒸馏方法,其中大型教师模型提供结构化的符号推理标签以及修复类型标签。这些标签捕获了bug的高级因果属性,而无需自由形式的解释。我们在IntroClass基准上,在仅标签和推理蒸馏设置下训练了一个基于CodeT5的学生模型。推理监督持续提高了宏平均性能,尤其是在不太常见的bug类别上,而没有增加模型大小或复杂性。我们进一步分析了推理准确性和修复类型预测之间的关系,表明正确的推理轨迹与正确的预测密切相关,但并非完全决定它们。我们的结果表明,符号推理蒸馏是提高轻量级程序修复模型的可解释性和鲁棒性的一种实用方法。

🔬 方法详解

问题定义:自动化程序修复旨在自动定位并修复代码中的错误。现有方法,特别是针对资源受限场景的小型模型,往往难以学习到深层次的程序结构,容易依赖于数据中的浅层关联,导致泛化能力不足,尤其是在处理不常见的bug类型时表现更差。

核心思路:本文的核心思路是利用知识蒸馏,将大型教师模型所具备的符号推理能力迁移到小型学生模型中。通过让学生模型学习教师模型提供的结构化符号推理标签,使其能够更好地理解bug的因果关系,从而提升修复类型分类的准确性。

技术框架:整体框架包含两个主要部分:一个大型的教师模型和一个小型的学生模型。教师模型负责生成结构化的符号推理标签,这些标签描述了bug的高级因果属性。学生模型则在这些标签的监督下进行训练,目标是学习如何根据代码的特征预测正确的修复类型。训练过程包括两个阶段:首先,训练教师模型;然后,利用教师模型生成的标签训练学生模型。

关键创新:关键创新在于引入了符号推理蒸馏的概念,将符号推理作为一种结构化的监督信号,用于指导小型程序修复模型的训练。与传统的知识蒸馏方法不同,本文不仅仅传递预测结果,而是传递更深层次的推理过程,从而使学生模型能够更好地理解bug的本质。

关键设计:本文使用CodeT5作为学生模型的基础架构。教师模型未知,但需要具备符号推理能力。关键在于设计合适的符号推理标签,这些标签需要能够简洁地表达bug的因果关系,同时又易于学生模型学习。损失函数包括修复类型分类的交叉熵损失和推理标签预测的损失。具体的参数设置和网络结构细节在论文中可能未详细描述,属于未知信息。

📊 实验亮点

实验结果表明,在IntroClass基准上,推理监督能够持续提高宏平均性能,尤其是在不太常见的bug类别上。推理准确性和修复类型预测之间存在强相关性,正确的推理轨迹与正确的预测密切相关。推理蒸馏在不增加模型大小或复杂性的前提下,提升了模型性能。

🎯 应用场景

该研究成果可应用于资源受限的嵌入式系统、移动设备等场景,实现轻量级的自动化程序修复。通过提升小型代码模型的修复能力,可以降低软件维护成本,提高软件质量和可靠性。未来,该方法有望推广到更复杂的程序修复任务中,并与其他程序分析技术相结合,实现更智能化的自动化程序修复。

📄 摘要(原文)

We study whether lightweight symbolic reasoning supervision can improve fix type classification in compact automated program repair models. Small code models are attractive for resource-constrained settings, but they typically produce only a single prediction, making it unclear whether they learn meaningful program structure or rely on shallow correlations. We propose a reasoning distillation approach in which a large teacher model provides structured symbolic reasoning tags alongside fix-type labels. These tags capture high-level causal properties of bugs without relying on free-form explanations. We train a CodeT5-based student model under label-only and reasoning-distilled settings on the IntroClass benchmark. Reasoning supervision consistently improves macro averaged performance, particularly on less frequent bug categories, without increasing model size or complexity. We further analyze the relationship between reasoning accuracy and fix-type prediction, showing that correct reasoning traces strongly correlate with correct predictions, while not fully determining them. Our results suggest that symbolic reasoning distillation is a practical way to improve interpretability and robustness in lightweight program repair models.