Page 224 - 《软件学报》2026年第3期
P. 224

田朝 等: CoDefense: 面向对抗性攻击的多粒度代码归一化防御方法                                           1187


                 表明  CoDefense 在保持模型原始性能方面的显著优势.

                  6   讨 论

                  6.1   CoDefense 对嵌入质量的影响
                    现有研究    [80,81] 已明确指出, 嵌入质量  (embedding quality) 对于代码模型学习深层代码语义特征以划定有效决
                 策边界具有至关重要的作用. 为了深入对比原始模型与                   CoDefense  增强后模型的嵌入质量差异, 我们采用了            t-
                 SNE (t-distributed stochastic neighbor embedding) 技术  [82] . 该技术将目标代码模型生成的高维嵌入向量映射至二维
                 空间, 以直观地揭示代码嵌入之间的相对关系. 鉴于先前研究                  [81] 中, t-SNE  以离散程度作为关键衡量标准在评估分
                 类任务嵌入质量方面展现出了卓越性能, 我们同样选择了两项分类任务                        (即漏洞检测和代码克隆检测任务) 进行
                 实验评估, 并覆盖了所有       3  个预训练代码模型. 与现有工作保持一致           [80,81] , 我们采用质心距离  (centroid distance) 作
                 为量化嵌入离散程度及嵌入质量的度量标准. 质心距离数值越大, 则反映嵌入空间内各类别界限越清晰和明确, 进
                 而表明嵌入质量的提升.
                    图  3  直观地展示了在    6  个实验场景下    (涉及  3  个代码模型和两个分类任务组合) 测试集样本的              t-SNE  可视化
                 结果. 图中, “Original”标签指代原始模型, 而“w/CoDefense”则对应       CoDefense 增强后的模型, “VD”与“CCD”分别
                 指代漏洞检测任务和代码克隆检测任务, “类别-0”和“类别-1”分别表示这两个分类任务中不同的类别, 用下划线表
                 示较优结果. 在这     6  个实验场景的评估中, 针对质心距离的测量结果显示, CoDefense 增强后的模型在其中                    4  个实
                 验场景中都实现了更优异的分离效果. 进一步分析详细数据, 我们发现相较于原始模型, CoDefense 不仅未破坏原
                 始模型的嵌入质量和模型性能, 反而平均提升了               1.96%  的质心距离   (反映嵌入质量增强) 和      0.23%  的  Accuracy (表
                 明模型性能亦有小幅提升), 充分支持了研究问题               3  的实验结论.

                                            类别-0    类别-1     类别-0的质心    类别-1的质心
                  Original



                    质心距离 (↑): 66.30  质心距离 (↑): 51.29  质心距离 (↑): 63.80  质心距离 (↑): 36.30  质心距离 (↑): 43.43  质心距离 (↑): 37.93
                  w/CoDefense




                    质心距离 (↑): 66.21  质心距离 (↑): 57.35  质心距离 (↑): 64.29  质心距离 (↑): 36.44  质心距离 (↑): 42.06  质心距离 (↑): 38.57
                    (a) CodeBERT×VD  (b) CodeGPT×VD  (c) PLBART×VD  (d) CodeBERT×CCD  (e) CodeGPT×CCD  (f) PLBART×CCD
                                      图 3 原始模型和      CoDefense 增强后模型的嵌入质量对比

                  6.2   CoDefense 在大模型上的泛化性
                    关于大规模模型的对抗性攻击有效性问题, 我们深入分析了相关研究成果                        [83–85] , 当前的研究表明, 即便是最先
                 进的大语言模型, 在应对对抗性攻击时仍存在一定的脆弱性. 例如, Zhang                  等人  [84] 展示了在较小规模代码模型上生
                 成的对抗性样本在大模型         (如  GPT-3.5、GPT-4、Claude-2  等) 上仍然有效. 此外, Li 等人  [83] 的研究验证了代码变
                 异策略   (如代码重命名和等价结构转换) 在大型代码模型               (如  StarCoder 和  CodeGen2) 上的有效性, 而  Yang 等人  [85]
                 发现, 通过插入函数名或关键字的对抗性扰动可以诱导诸如                    Code Gemma、Code Llama 和  CodeGeeX2  等模型生
                 成恶意代码片段. 这些研究表明, 本文所针对的变量名替换、死代码插入和结构等价转换等对抗性防御方法在当
                 前研究中仍具备实际价值.
                    为进一步评估      CoDefense 在更大规模模型上的泛化能力, 我们增加了             DeepSeek-Coder-1.3B [86] 作为新的研究
   219   220   221   222   223   224   225   226   227   228   229