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) 展现了强大的推理能力, 但仍然容易受到基于提示的攻击                 (如越狱攻击、
   222   223   224   225   226   227   228   229   230   231   232