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%  的性能提升. 这进一步
   218   219   220   221   222   223   224   225   226   227   228