论文

压缩代码上下文以实现基于 LLM 的问题解决

Compressing Code Context for LLM-based Issue Resolution

上下文与知识上下文工程

摘要

大语言模型 (LLM) 现在能够解决实际的 GitHub 问题。然而,当前的方法过度近似代码上下文,并面临两个复杂的问题:处理大量输入的成本过高,并且由于噪声淹没上下文窗口并分散了模型对错误修复信号的注意力,因此效率低下。现有的压缩技术无法解决这种矛盾:通用压缩器会损害代码的语义完整性,而特定于代码的工具缺乏对代码结构和任务上下文的了解来保留必要的补丁成分。为了解决这个问题,我们提出了一个由两个组件组成的新颖框架。首先,Oracle 引导的代码 蒸馏 (OCD),一种上下文 蒸馏 算法,它结合了遗传搜索和增量调试,可以系统地将代码上下文减少到最小的足够子序列 - 仅保留成功修复所需的成分。我们使用这些提取的数据来微调 SWEzze,这是一个轻量级模型,可以学习在推理时压缩代码上下文、过滤噪声并消除干扰,同时保留修复成分。在 SWE-bench 上进行评估 经过三个前沿 LLM 的验证,SWEzze 跨模型保持约 6 倍的稳定压缩率,相对于未压缩设置将 词元预算 总量减少了 51.8%-71.3%,将问题解决率提高了 5.0%-9.2%,并与最先进的环境相比,在有效性、压缩比和延迟之间提供了最佳的整体平衡压缩基线。