Page 227 - 《软件学报》2026年第3期
P. 227
1190 软件学报 2026 年第 37 卷第 3 期
值亦不容忽视. 实验结果显示, 该策略在提升代码模型性能和代码嵌入质量方面亦具备一定的潜力. 因此, 我们计
划将其延伸至代码数据质量优化领域, 研究如何将 CoDefense 作为一种高效的数据预处理工具, 通过优化输入代
码数据质量, 以期在增强模型鲁棒性的同时, 促进模型性能和嵌入质量的进一步提升. 这一研究方向有望为代码模
型性能优化开辟新的途径.
第四, 其他编程语言验证与扩展. 受限于计算资源和时间成本, 当前研究主要聚焦于 Java 语言环境下的 CoDefense
性能评估. 为全面评估其泛化能力, 我们计划在未来工作中将 CoDefense 工具扩展至更多编程语言, 包括但不限
于 C/C++、Python 等, 并在这些编程语言上进行广泛的实验验证. 通过比较与分析, 我们将进一步揭示 CoDefense
在不同编程环境下的适用性, 为其在实际应用中的广泛部署提供坚实支撑.
6.5 有效性威胁
内部有效性威胁. 内部有效性威胁主要来自 CoDefense 方法的实现和对比方法的实现. 为了有效减少此类威
胁, 对于 CoDefense 方法的实现, 本文依赖于 Python、Tree-sitter 和 srcML 等成熟框架进行实现确保实现过程的稳
定性和可靠性; 对于对比方法的实现, 本文采用了现有研究的开源代码, 保证对比方法的实现准确无误. 此外, 所有
实验结果的分析脚本均经过作者的多次校对, 以确保结果的准确性, 我们将所有数据、模型和代码开源给社区, 以
供同行进一步检查和验证.
● 外部有效性威胁. 外部有效性威胁主要来源于研究的实验对象, 包括实验任务、数据集以及代码模型. 为了
有效减少此类威胁, 对于任务, 所选任务涉及分类和生成任务, 已经被广泛应用于现有的对抗性攻击相关工作 [15,18] ,
具有较高的代表性; 对于数据集, 不仅使用了在许多对抗性攻击相关研究中常用的 CodeXGLUE 基准数据集, 还包
括了新的 OWASP 基准数据集, 以评估方法的普遍适用性; 对于代码模型, 与最新研究保持一致, 选择了最流行且
性能较高的不同架构的代码模型, 确保实验结果的普适性. 在未来的工作中, 我们将在更多的实验对象上进行验
证, 以进一步表明 CoDefense 的有效性和可扩展性. 此外, 现有研究表明 [7,10,21,68] , 在代码摘要生成任务中, BLEU-4
值是衡量模型性能的主要指标, 其取值范围为 0–1, 完美匹配的得分为 1, 完全不匹配的得分为 0. 在对抗性攻击效
果的判定方面, 现有方法主要采用两种判定标准: (1) BLEU-4 值发生任意下降即判定为攻击成功 [89,90] ; (2) BLEU-4
值降为 0 时即判定为攻击成功 [16,21] . 本文采用了第 2 种判定方法, 因为相比于 BLEU-4 值任意下降的判定, BLEU-
4 值降为 0 作为攻击成功的标准更为严格且差异更大. 相应地, 我们也在评估对抗性防御技术时采用了类似标准.
尽管当前的这种常用的攻击和防御判定指标可能存在一定的局限性, 为了保证评估结果具有良好的可比性, 仍然
采用这种最常用的判定方式. 在未来, 我们会进一步研究更高差异性、更严格的判定方式.
● 结构有效性威胁. 结构有效性的威胁主要来自实验过程中方法运行时指定的参数设置, 尤其是训练时的超
参数设置 (如批量大小、学习率、优化器等). 为了有效减少此类威胁, 我们参照相关研究 [16] 中公开的预训练代码
模型初始训练时的超参数设置, 并在后续 CoDefense 和对抗性训练的训练过程中与之保持一致, 以确保实验结果
的公平性和可靠性.
7 相关工作
为了提升代码模型的鲁棒性, 目前主要有两类方法: (1) 设计更先进的神经网络以增强模型; (2) 结合更多代码
数据来微调或训练模型. 在第 (1) 类方法中, Bielik 等人 [42] 引入了 (m+1)-class 策略到代码模型中, 通过重新训练模
型使其能够在面对不确定输入时放弃预测. 另外, Bui 等人 [91] 将基于树的卷积神经网络与胶囊网络相结合, 以更好
地学习代码的抽象语法树表示, 从而提高代码模型的泛化能力. 近年来的一些工作 [40,92–94] 则采用对比学习来增强
代码模型的鲁棒性. 对于第 (2) 类方法, 一些研究提出了构建对抗性代码对代码模型进行对抗性训练, 以提高代码
模型的鲁棒性 [15,19] . 类似地, 文献 [52,83,95,96] 提出了利用等价的代码转换规则来进行数据增强, 从而提高代码模
型的鲁棒性. Mi 等人 [97] 则将代码片段视为图像, 通过辅助生成对抗性网络生成增强数据集. 最近, Wang 等人 [50] 结
合课程学习来增强代码数据, 以优化代码模型的微调过程, 减少在目标数据集上的过拟合, 从而提高模型鲁棒性.
近年来, 大语言模型 (如 ChatGPT) 展现了强大的推理能力, 但仍然容易受到基于提示的攻击 (如越狱攻击、

