Yang, G., Zhou, Y., Zhang, X., Chen, X., Zhuo, T., Lo, D., & Chen, T. (2025). Defending Code Language Models against Backdoor Attacks with Deceptive Cross-Entropy Loss. ACM Transactions on Software Engineering and Methodology, 0(0), Article 0.

研究背景与动机

研究背景
近年来,代码语言模型在代码智能领域取得了显著成功,广泛应用于代码生成、修复、翻译等下游任务。然而,这些模型在追求高性能的同时,其安全性问题,特别是后门攻击,往往被忽视。后门攻击通过在训练数据中植入恶意触发器,使得模型在特定输入下产生攻击者期望的输出,而在正常输入下表现正常,具有极强的隐蔽性和危害性。现有研究多集中于设计针对CLMs的后门攻击方法,而有效的防御机制研究相对匮乏。尽管可以从自然语言处理领域借鉴一些防御方法,但这些方法在直接应用于CLMs时效果有限,缺乏通用性。

研究动机
作者观察到,在CLMs的训练过程中普遍存在“早期学习”现象:模型在训练初期主要学习数据的主要特征,但随着训练进行,逐渐对后门触发器特征过拟合,导致模型易受后门攻击。作者进一步分析发现,常用的交叉熵损失函数的无界性是导致模型对后门触发器过拟合的主要原因。因此,作者提出一种新的损失函数——DeCE,旨在限制交叉熵损失的无界性,防止模型对后门触发器的过拟合,从而提升CLMs的安全性。

研究问题
本论文旨在解决以下核心问题:如何设计一种通用且有效的防御机制,能够在不同任务、模型规模和投毒比例下,显著降低CLMs对后门攻击的脆弱性,同时保持模型在干净数据上的性能。

论文核心方法和步骤

DeCE损失函数的设计
DeCE通过两个关键组件——混合过程和标签平滑——来限制交叉熵损失的无界性,防止模型对后门触发器的过拟合。

  1. 混合过程
    将模型的预测概率分布 $p$ 与一个“欺骗性分布” $y’$ 进行混合,生成混合后的概率分布 $p’$:
    $$
    p’ = \alpha^{epoch} \cdot p + (1 - \alpha^{epoch}) \cdot y’
    $$
    其中,$\alpha < 1$ 是一个超参数,$epoch$ 是当前训练轮数。随着训练进行,$\alpha^{epoch}$ 逐渐减小,使得 $p’$ 逐渐向 $y’$ 靠拢,增强模型对欺骗性分布的置信度。

  2. 标签平滑
    对原始独热编码标签 $y$ 进行平滑处理,生成平滑后的标签 $y’$:
    $$
    y’ = (1 - \epsilon) \cdot y + \frac{\epsilon}{V}
    $$
    其中,$\epsilon$ 是平滑参数,$V$ 是词汇表大小。标签平滑可以减少模型对标签的过度自信,并缓解混合过程可能引起的梯度消失问题。

  3. DeCE损失函数
    基于上述两个组件,DeCE损失函数定义为:
    $$
    \mathcal{L}{\text{DeCE}}(f(x, \theta), y) = -\frac{1}{T} \sum{t=1}^{T} \sum_{i=1}^{V} y_{ti}’ \log p_{ti}’
    $$
    其中,$T$ 是序列长度,$V$ 是词汇表大小。

梯度分析
DeCE的梯度计算为:
$$
\frac{\partial \mathcal{L}{\text{DeCE}}}{\partial \theta} = -\frac{\alpha^{epoch} y_t}{\alpha^{epoch} p_t + (1 - \alpha^{epoch}) y_t} \nabla{\theta}
$$
当标签被投毒($y_t = 1$)而模型预测 $p_t \to 0$ 时,梯度趋近于 $-\alpha^{epoch} / (1 - \alpha^{epoch})$,这是一个有界值,从而避免了因梯度爆炸而导致的对后门触发器的过拟合。

实施步骤

  • 在训练过程中使用DeCE损失函数替代传统的交叉熵损失。
  • 通过调整超参数 $\alpha$ 和 $\epsilon$ 来平衡防御效果与模型性能。
  • 实验涵盖了多种CLMs、任务、投毒策略和比例,以验证DeCE的通用性和有效性。

实验结果与结论

实验结果
作者在多个代码合成任务(代码生成、代码修复)和分类任务(技术债分类、代码坏味检测)上对DeCE进行了全面评估,并与多种主动防御和被动防御方法进行了比较。

  1. 与主动防御方法比较

    • DeCE在几乎所有攻击场景下都能将攻击成功率降至0%,同时保持甚至略微提升模型在干净数据上的性能(BLEU、CodeBLEU、Pass@1等)。
    • 相比之下,其他方法如BKI、In-trust Loss等在不同数据集上表现不一致,且往往以牺牲模型性能为代价;GCE和Moderate-fitting虽然能有效防御,但容易导致模型欠拟合,性能下降明显。
  2. 与被动防御方法比较

    • ONION和Paraphrasing等方法对简单攻击有效,但对复杂攻击(如BadPre、Grammar)防御效果有限,且可能引入额外的计算开销或语义失真。
    • DeCE不仅单独使用效果显著,还可以与被动防御方法结合,进一步提升防御能力。
  3. 超参数分析

    • $\epsilon$ 主要影响模型性能,过大或过小都会导致BLEU下降。
    • $\alpha$ 影响防御效果和模型性能,增大 $\alpha$ 会提高ASR和BLEU。
    • 推荐设置:$\epsilon \in [0.05, 0.1]$,$\alpha \in [0.985, 0.995]$。
  4. 泛化能力验证

    • DeCE在分类任务、更大规模模型(如CodeLlama-7B、DeepSeekCoder-6.7B)和更大数据集(如CodeHarmony、HumanEval、MBPP)上均表现出良好的泛化能力。

结论与意义
本论文提出了一种名为DeCE的新型损失函数,通过混合过程和标签平滑机制,有效限制了交叉熵损失的无界性,防止CLMs对后门触发器的过拟合。实验证明,DeCE在不同任务、模型和攻击策略下均能显著降低后门攻击成功率,同时保持模型在干净数据上的性能。DeCE不仅优于现有防御方法,还具有良好的泛化能力和兼容性,可作为CLMs安全防御的重要组成部分。

未来工作
作者计划进一步优化DeCE的超参数,探索更隐蔽和复杂的攻击方法以评估其鲁棒性,并扩展其在其他代码智能和NLP任务中的应用。


http://example.com/posts/37.html
作者
司马吴空
发布于
2026年3月30日
许可协议