《Mathematics》:SeqRankFL: Sequence-Aware Ranking of LLM-Based Code Representations for Statement-Level Fault Localization
编辑推荐:
软件可靠性是复杂工程系统可靠性保证的重要组成部分,及时故障诊断支持安全连续运行。测试失败后,语句级故障定位对源代码行进行排序以便早期检查。基于表示的方法通过从冻结的代码大语言模型(code LLM)中提取行级隐藏状态,无需覆盖率矩阵即可运行,但其下游读取和训练
软件可靠性是复杂工程系统可靠性保证的重要组成部分,及时故障诊断支持安全连续运行。测试失败后,语句级故障定位对源代码行进行排序以便早期检查。基于表示的方法通过从冻结的代码大语言模型(code LLM)中提取行级隐藏状态,无需覆盖率矩阵即可运行,但其下游读取和训练目标不一定与源窗口排序和错误版本级评估一致。研究人员提出了SeqRankFL,一种用于基于LLM的代码表示的序列感知排序器。它结合了双向长短期记忆网络(BiLSTM)——该网络遵循源窗口内的代码顺序——以及一个混合目标(Hybrid objective),将二元交叉熵(BCE)与列表式学习排序损失ListNet相结合。在源窗口排序任务中,使用BugsInPy和Defects4J已知错误文件内最多128个物理行的窗口,相对于共享相同表示、划分和评估协议的匹配LLMAO风格Transformer+BCE参考模型,SeqRankFL将等权Top-1从51.31%提升至58.58%,绝对增益为7.27个百分点,且两个数据集上均有持续改进。进一步的控制分析表明,多深度层混合和语法作用域主要改善平均排名,而控制流/数据流图和失败行为在模型、语言和项目划分上具有条件依赖效应。控制结果确定列表式目标为Top-1改进的主要驱动因素,BiLSTM读取在排序感知目标下提供了额外的架构依赖增益。
软件可靠性对复杂工程系统至关重要,故障定位是可靠性保证中的关键诊断活动。传统基于频谱的故障定位方法依赖覆盖率矩阵,但在测试基础设施不完善或仅有源代码时受限。基于表示的方法利用冻结的代码大语言模型(code LLM)提取行级隐藏状态,无需覆盖率矩阵,但其下游读取器与训练目标未能与源窗口排序及错误版本级评估对齐。为此,研究人员提出SeqRankFL,一种序列感知的排序器,用于语句级故障定位。SeqRankFL结合双向长短期记忆网络(BiLSTM)与混合目标(二元交叉熵(BCE)与ListNet的加权和),在BugsInPy(Python)和Defects4J(Java)的真实缺陷基准上评估。与匹配的LLMAO风格Transformer+BCE参考模型相比,SeqRankFL将等权Top-1从51.31%提升至58.58%,绝对增益7.27个百分点。该研究表明,将序列读取与列表式排序目标结合能显著提升语句级故障定位的性能。论文发表在《Mathematics》。
关键技术方法:研究人员采用冻结的代码LLM(Qwen2.5-Coder-1.5B-Instruct为主,控制实验扩展至Qwen3-4B和Qwen2.5-Coder-7B),通过终端对齐提取每行的隐藏状态;构建内部表示视图(层混合、深度残差、邻域残差、语法作用域);使用BiLSTM作为序列读取器,编码源窗口内的代码顺序;训练目标为BCE与ListNet的等权混合,其中ListNet对窗口内softmax分布施加列表式排序约束。实验遵循固定十折协议,并以错误版本为评估单元;留一项目(LOPO)用于跨项目泛化检验。
研究结果部分:
RQ1:SeqRankFL提升版本级源窗口排序。在相同表示、划分和评估协议下,BugsInPy的Top-1从50.23%提升至58.88%,Defects4J从52.38%提升至58.27%,等权平均增益7.27个百分点。所有五个版本级指标(Top-1、Top-3、Top-5、MFR、MAR)均一致改善。配对bootstrap 95%区间不包含零。版本分组十折和LOPO比较支持相同方向。
RQ2:局部器架构与训练目标的联合效应。仅将Transformer替换为BiLSTM(BCE下)增益0.79个百分点,仅将BCE替换为Hybrid(Transformer下)增益0.05个百分点;同时采用BiLSTM+Hybrid则增益7.27个百分点。列表式目标是主要驱动,BiLSTM提供额外架构增益。类别加权和焦点损失不能替代排序约束,最佳Transformer族Top-1(53.24%)仍低于SeqRankFL(58.58%)。
RQ3:内部表示信息的影响。固定SeqRankFL和Code-Only,改变行表示构建方式。层混合与语法作用域的组合在全部六个模型-数据集组合中改善MAR(增益0.235至0.972),Top-1在四个组合中正向。因子分解显示层混合、邻域残差、语法作用域的平均边际效应分别为+0.296、+0.108、+0.084个百分点,而深度残差为-0.168个百分点;交互项符号相反,表明条件依赖。
RQ4:外部输入信息的条件性。在Transformer+BCE参考中,仅六个模型-数据集组合中的四个选择外部输入作为最优设计。DFG和失败行为输入在BugsInPy上均为负向平均Top-1变化,在Defects4J上均为正向;十折静态输入最佳设计在项目隔离下方向反转。因此Code-Only是更稳健的默认选择,外部输入需目标域验证后才可启用。
讨论总结:排序质量由局部器架构与训练目标共同决定。类成本不等于排序对齐;内部表示信息互补但有条件;相关信息并非自动可用;BCE与ListNet的相对系数扫描显示非等权设置无法同时在两个数据集上改善。研究结论:SeqRankFL结合BiLSTM与混合目标,在版本级评估下显著提升语句级故障定位效果。列表式目标是主要驱动,外部输入应针对具体目标域验证。