Page 223 - 《软件学报》2026年第3期
P. 223
1186 软件学报 2026 年第 37 卷第 3 期
能的能力. 相比之下, 3 个对比方法则在不同程度上对原始模型的性能产生了负面影响, 例如在 PLBART 的漏洞检
测和代码摘要生成任务、CodeBERT 的代码摘要生成任务中即有所体现. 这一结果与现有研究 [15,19] 的结论一致,
进一步验证了对抗性防御策略在保持模型原始性能方面的局限性. 在少数特定场景下, CoDefense 的性能提升幅
度略逊于其他对抗性训练策略. 这一现象可以归因于这些对抗性训练策略用到了数量更多的训练集 (包括原始训
练集 Data train 和特定对抗性微调集 Data test-1 ), 而 CoDefense 仅依赖于 (与原始训练集具有相同的数据规模的) 归一
adv
化训练集 Data train 进行训练. 这种训练数据规模的不公平对比, 在一定程度上限制了 CoDefense 在部分特定场景
normal
下的性能. 然而, 即便面临这样的不利条件, 从全局角度审视, CoDefense 在全部 9 个实验场景上, 相较于原始模型,
平均实现了 3.41% 的性能提升; 同时, 与另外 3 种对比方法相比, 更是平均取得了 7.55% 的显著性能提升. 这一结
果不仅彰显了 CoDefense 策略的有效性, 也为其在复杂多变的应用场景中的广泛应用提供了实证基础.
表 7 CoDefense 和对比方法对模型原始性能的影响
Adv-Train
数据集名称 模型 测试指标 Original CoDefense
WIR-Random ALERT StyleTransfer
CodeBERT 98.60 99.05 98.90 99.00 98.60
Vulnerability
CodeGPT Accuracy (%) 97.70 98.75 99.00 98.85 98.60
detection
PLBART 99.60 99.50 (↓) 99.55 (↓) 99.45 (↓) 99.65
CodeBERT 96.05 96.25 96.95 96.05 96.05
Code clone
CodeGPT Accuracy (%) 96.20 97.50 97.50 97.40 96.45
detection
PLBART 96.55 97.70 97.75 96.60 96.70
CodeBERT 18.52 15.01 (↓) 14.43 (↓) 15.52 (↓) 21.17
Code
summarization CodeGPT BLEU-4 15.43 16.39 16.46 16.74 16.66
PLBART 17.76 15.06 (↓) 14.67 (↓) 14.67 (↓) 19.00
在实验设计中, 由于 3 种对比方法使用了 50% 的原始测试数据作为微调集, 因此研究问题 3 的评估只在剩余
50% 的测试集上进行. 为了进一步对比使用和不使用 CoDefense 归一化的训练集在完整原始测试集上的表现, 我
们补充了相关实验, 结果如表 8 所示. 分析表 8 的数据可见, CoDefense 在 7 个实验场景下对模型的原始性能未产
生不利影响 (甚至略有提升), 而在 CodeBERT 的两个实验场景下对模型性能有轻微影响. 我们推测, 这可能是由
于 CodeBERT 作为参数规模最小的模型, 可能在学习归一化代码的语义表示方面有所局限. 相比之下, CoDefense
在参数规模更大、更先进的 CodeGPT 和 PLBART 的全部任务上均实现了性能提升. 总之, 这些实验结果进一步
表明 CoDefense 在保持模型原始性能方面的显著优势.
表 8 CoDefense 在完整测试集上对模型原始性能的影响
数据集名称 模型 测试指标 Original CoDefense
CodeBERT 98.70 98.78
Vulnerability detection CodeGPT Accuracy (%) 97.45 98.60
PLBART 99.52 99.62
CodeBERT 96.33 94.67 (↓)
Code clone detection CodeGPT Accuracy (%) 96.52 96.65
PLBART 96.82 96.98
CodeBERT 18.69 18.46 (↓)
Code summarization CodeGPT BLEU-4 15.40 15.42
PLBART 17.54 17.88
此外, 我们还发现 CoDefense 不仅增强了模型的防御能力, 而且在一定程度上提升了模型的整体性能 (尤其
是 CodeGPT 和 PLBART). 这一新发现为未来工作提供了潜在的研究方向, 即探索 CoDefense 作为一种数据质量
提升工具, 在增强模型鲁棒性的同时, 是否也能作为提升模型性能的有效手段.
结论: 在全部 9 个实验场景中, CoDefense 相比于对比方法对模型性能的负面影响更小. 具体来说, CoDefense
相较于原始模型平均实现了 3.41% 的性能提升, 而相较于 3 种对比方法平均实现了 7.55% 的性能提升. 这进一步

