基于累积学习与知识蒸馏的低资源安全补丁识别

《Science of Computer Programming》:Low-resource security patch identification based on cumulative learning and knowledge distillation

【字体: 大 中 小 】 时间:2026年09月06日 来源:Science of Computer Programming 1.6

编辑推荐:

   # 摘要 安全补丁识别是软件维护中的一项重要任务,旨在从开源软件(OSS)仓库中识别与漏洞相关的补丁。先前的工作倾向于采用预训练模型来提高模型性能。这些模型通常构建在数十亿个参数之上,需要充足的计算资源和足够的数据进行有监督微调,才能应用于下游分类任务。然而,现有研究主要通

  

# 摘要

安全补丁识别是软件维护中的一项重要任务,旨在从开源软件(OSS)仓库中识别与漏洞相关的补丁。先前的工作倾向于采用预训练模型来提高模型性能。这些模型通常构建在数十亿个参数之上,需要充足的计算资源和足够的数据进行有监督微调,才能应用于下游分类任务。然而,现有研究主要通过重采样或重加权策略来解决类别不平衡问题。重采样可能引入合成噪声或破坏提交数据的原始分布,而固定的重加权方案缺乏对模型学习状态的动态感知,导致过度平滑、优化不稳定和欠拟合。此外,日益庞大的预训练模型需要大量的计算资源进行训练和部署,限制了其在低资源场景中的实际使用。在本工作中,我们提出通过累积学习和知识蒸馏来增强安全补丁识别,旨在在低资源场景下解决安全补丁识别问题,同时保持高质量的识别性能。为了缓解数据不平衡问题,受累积学习启发,我们设计了一种新颖的自适应平滑损失,该损失通过训练轮次动态控制平滑系数 a。在早期阶段,设置较高的平滑系数以平衡多数类的影响,而在后期阶段逐步降低该系数,以确保少数类的预测与真实标签紧密一致。为了弥合高质量识别性能与低计算资源之间的差距,基于教师-学生网络理论,我们采用Kullback-Leibler散度来最小化教师模型分布与学生模型分布之间的差异。教师模型还用于为未标记数据生成伪标签,从而增强学生模型的性能。在两个开源数据集上的实验结果表明,我们提出的方法不仅在少数类上将最佳基线提高了14.14%和8.81%,还将模型大小减少了68%。代码和数据已分享于 https://github.com/AppleMax1992/low-resource-commit-classification。

# 引言

开源软件(OSS)[1], [2] 已成为现代软件生态的重要基础,其中广泛使用的OSS项目中的漏洞会迅速传播到下游应用程序和系统中。为维护软件的可靠性和安全性,开发者通过OSS仓库中的提交持续发布补丁和代码更新。然而,随着OSS项目的规模不断扩大,从庞大的提交历史中手动识别安全相关提交变得越来越困难且耗时。

安全补丁识别 [3], [4], [5] 因此旨在从OSS仓库中自动识别安全相关补丁,将安全补丁与非安全补丁区分开来。准确的安全补丁识别可以帮助软件测试人员、安全分析师和代码审核工程师高效检测与安全相关的代码变更,优先进行漏洞检查,并加速软件补丁管理流程。

先前的工作 [5], [6] 提出了基于提交信息及其标签的传统机器学习方法来解决问题补丁识别任务。其中,一些工作 [7], [8] 利用线性模型,如支持向量机(SVM),将补丁分为两类:安全和非安全。尽管这些工作提供了有效解决安全补丁识别问题的自动化方案,但通常需要手工特征工程。一些工作采用了神经网络 [9], [10] 来自适应地从提交信息中提取特征。与传统机器学习方法相比,这些工作能够自动从原始提交日志中提取特征,但缺乏良好的泛化能力。随着预训练模型的发展,提交分类器的性能取得了突破性进展。一些工作 [4], [11] 利用预训练模型中编码的先验知识来增强性能。通过引入预训练模型,这些方法能够学习适用于多种相关任务的通用特征。与从头训练模型相比,这些方法有效减少了对数据量的需求。

大语言模型(LLMs)[12] 已成为自动化各种软件维护任务的强大工具,在代码审查、漏洞检测和安全补丁识别方面展现出令人瞩目的能力。尽管它们在代码生成和代码理解方面取得了成功 [13], [14],但近期研究表明,LLMs在识别安全相关提交方面的效果仍然有限 [15]。这表明即使对于大规模预训练模型而言,安全补丁识别仍然是一个具有挑战性的判别任务,而在现实软件仓库中常见的数据不平衡场景下,这种难度进一步加剧。在OSS仓库中,普通维护提交通常占提交历史的多数,而安全相关提交出现频率低得多。因此,在如此倾斜的分布上训练的模型往往被多数非安全提交所主导,可能对少数安全相关提交关注不足。这一问题尤为关键,因为少数类对应安全相关提交,其漏检可能会延迟漏洞检查和补丁管理。此外,尽管简单地采用LLMs并不能完全解决安全补丁识别问题,但近期研究仍倾向于通过使用更大的预训练模型或更复杂的模型架构来提升性能。这种趋势表明,安全补丁识别中的性能提升越来越依赖于计算资源。

然而,现有方法的两个挑战仍可总结如下:

- 现有研究主要通过两类策略来缓解数据不平衡问题:重采样方法和重加权方法。重采样方法试图通过对多数类进行欠采样或对少数类进行过采样来平衡数据分布。然而,这类方法可能引入合成噪声或破坏提交数据的原始分布结构,从而降低模型的泛化能力。重加权方法在损失函数中为少数类分配更大的权重,以增加模型对困难样本的关注。然而,大多数现有重加权策略采用固定的加权方案,缺乏对训练过程中模型学习状态的动态感知。因此,它们无法根据不同的类别的学习难度和错误分布自适应地调整优化优先级,使训练过程容易受到过度平滑、优化不稳定和欠拟合的影响。

- 如上所述,现有方法倾向于采用日益庞大的预训练模型来提高安全补丁识别性能。然而,随着模型规模不断扩大,模型训练和部署都需要大量的计算资源。例如,Jiang等人 [16] 系统评估了大模型在安全相关漏洞检测和修复任务中的性能,表明即使在推理阶段,往往也需要昂贵的硬件资源如A100 GPU,更不用说训练成本。这样高的计算需求对非AI软件开发公司和独立研究者构成了实际限制。

在本工作中,我们提出了一种基于累积学习和知识蒸馏的低资源安全补丁识别方法。这里,"累积学习"指的是在训练过程中动态调整标签平滑系数,如公式(7)所示,而非持续学习或终身学习。首先,我们设计了一个具有自适应平滑损失的教师网络来缓解数据不平衡问题,该损失通过训练轮次动态控制平滑系数。与具有固定平滑权重的传统方法相比,我们的方法可以有效缓解训练阶段的过度平滑问题。其次,教师模型的输出logits被用于在未标记数据上推断伪标签,以训练学生模型。最后,采用Kullback-Leibler散度来最小化教师模型和学生学习结果的分布差异,以进一步提升学生模型的性能。在两个开源数据集上的实验结果表明,我们提出的方法可以有效应用于低资源场景,不仅缓解了数据不平衡问题,还减少了模型的大小。

本工作的主要贡献总结如下:

1. 我们提出了一种用于低资源安全补丁识别的统一教师-学生训练框架,通过自适应平滑损失提高教师模型在不平衡数据集上的性能,并通过知识蒸馏将教师模型的知识迁移到学生模型以减小模型大小。

2. 为缓解数据不平衡问题,受累积学习启发,我们设计了一种自适应平滑损失,通过训练过程动态控制平滑系数 a。在早期阶段,设置较高的平滑系数以平衡多数类的影响,而在后期阶段逐步降低平滑系数,以确保少数类的预测与真实标签紧密一致。

3. 为弥合高质量识别性能与低计算资源之间的差距,我们引入了教师引导的伪标签和蒸馏策略。教师模型被用于在未标记数据上推断伪标签,而学生模型通过知识蒸馏从教师的预测分布中学习,从而在有限标记数据下增强学生模型的性能。

4. 在两个开源数据集上的实验结果表明,我们提出的方法不仅在少数类上将最佳基线提高了14.14%和8.81%,还将模型大小减少了68%,使其更适用于低资源场景。

## 问题陈述

低资源安全补丁识别(LowSPI)旨在在低资源和数据不平衡场景下从大规模开源软件(OSS)仓库中识别安全相关提交(表1)。

给定一个现实的不平衡数据集 D={(ci, yi)}i=1^N,每个提交 ci 由提交信息 cim 和代码差异 cid 组成,表示为 ci=(cim, cid)。相应的标签 yi ∈ {0, 1} 指示该提交是否与安全相关。具体来说,yi=1 表示安全相关提交。

## 整体框架

在本工作中,我们提出了一种基于累积学习和知识蒸馏的低资源安全补丁识别方法。LowSPI 通过在训练阶段利用累积学习和知识蒸馏,在降低模型计算成本的同时保持高质量的识别性能。

我们的方法概述如图1所示。为清晰起见,我们使用编号箭头标注主要处理步骤,并明确区分教师和学生模型。

## 实验

我们进行了大量实验来证明所提方法的有效性。首先,我们将我们的方法与几个强基线进行比较。然后,我们评估了不同损失函数在处理数据不平衡问题方面的性能。最后,我们讨论了不同知识蒸馏损失对学生模型的影响。

## 有效性威胁

一个有效性威胁来自我们所使用数据集的预处理。遵循先前方法,我们采用了公开的结构化数据集进行安全补丁识别,其中提交信息和代码差异已经被提取和清洗。虽然这种预处理有助于模型训练和公平比较,但可能在实验设置与真实场景之间引入差距,在真实场景中原始数据往往是嘈杂和不完整的。在未来的工作中,我们将调查……

## 相关工作

为了更清晰地比较LowSPI与现有方法,表15总结了代表性基线的主要特征,包括模型大小、是否明确处理数据不平衡以及它们在评估数据集上的平均性能。与传统机器学习、神经架构和如CodeBERT和CodeT5等大型预训练模型相比,LowSPI通过自适应平滑提供了明确的不平衡处理机制,并实现了……

## 结论

在本工作中,我们提出了一种基于累积学习和知识蒸馏的低资源安全补丁识别方法。它通过累积学习提高教师模型在不平衡数据集上的性能,并通过知识蒸馏将教师模型的知识迁移到学生模型以减小模型大小。在两个开源数据集上的实验结果表明,我们提出的方法将少数类F1分数提高了14.14%,与……相比。

## CRediT作者贡献声明

Jiajun Tong:撰写 – 初稿,软件,方法论。Zhixiao Wang:撰写 – 审阅与编辑,指导。Xiaobin Rui:撰写 – 审阅与编辑。

## 利益冲突声明

作者声明他们没有任何已知的财务利益或个人关系可能会影响本文所报告的工作。

Jiajun Tong | Zhixiao Wang | Xiaobin Rui
相关新闻
生物通微信公众号
微信
新浪微博
  • 搜索
  • 国际
  • 国内
  • 人物
  • 产业
  • 热点
  • 科普

热点排行

    今日动态 | 人才市场 | 新技术专栏 | 中国科学人 | 云展台 | BioHot | 云讲堂直播 | 会展中心 | 特价专栏 | 技术快讯 | 免费试用

    版权所有 生物通

    Copyright© eBiotrade.com, All Rights Reserved

    联系信箱:

    粤ICP备09063491号