论文
SieveFL:基于 LLM 的可扩展故障定位的分层运行时感知修剪
SieveFL: Hierarchical Runtime-Aware Pruning for Scalable LLM-Based Fault Localization
摘要
自动故障定位需要将观察到的测试失败与数千个候选者中的负责方法联系起来——纯统计方法处理的任务精度有限,而且由于词元成本过高和信号稀释,LLM 还无法在整个项目规模上处理。我们提出了 SieveFL,这是一个五阶段的分层框架,它通过积极的预 LLM 过滤来解决这种紧张关系。 SieveFL 将失败的测试转换为自然语言的失败描述,使用密集向量检索将搜索范围缩小到一小组可疑文件,然后通过 JaCoCo 运行时跟踪消除失败测试期间未执行的任何方法。只有幸存的候选者才会被传递到 LLM,它会单独筛选每种方法,并在一次比较过程中对已确认的嫌疑人重新排名。我们使用通过 Ollama 部署在商品工作站(32 GB RAM、8 GB GPU)上的中型、公开可用的 MoE 模型,针对 Defects4J v1.2.0 中的 395 个错误评估了 SieveFL,无需前沿 API 或数据中心硬件。将 12 次不完整的运行视为失败,SieveFL 的 Top-1 准确度为 41.8%(165/395 个错误),MRR 为 0.469,在 Top-1 中比最强的基于代理的先验基线 (AgentFL) 好 2.1 个百分点。运行时修剪删除了 79% 的候选方法,减少了 49% 的输入标记消耗,同时提高了排名质量:Top-1 被准确保留,Top-3 到 Top-10 提高了 2.4 个百分点。这些结果表明,通过正确的过滤架构,能够进行故障定位不需要专有的前沿模型。