准确率为92.7%,接近克劳德3.5,成本降低了86%?

另一个使程序员开心的研究!来自OpenHands,Yale,USC和Stanford的研究团队仅发布了Locagent -Graph Index LLM代理框架的重点是定位代码,该框架直接将代码定位的准确性定位在92.7%的新水平上。该研究被ACL 2025。纸张标题:locatent:本地化纸链接代码:https://arxiv.org/abs/2503.09089代码链接链接:https://github.com.com.com/gersteinlab/locagent here progressmen,我想到了一个错误,我想到了一个错误:改变它?”传统方法要么依赖关键字匹配(太粗糙),要么用LLM直接丢弃代码的整个底座(过于注释),或者让目录代理(太笨拙)团结起来。主要的问题是,自然语言中描述的问题与代码的位置之间通常有许多层次的联系关系要修理。例如,用户反馈XSS的“脆弱性”,但是真正需要更改的内容可能是验证工具的深刻函数。换句话说,代码定位是指对需要更改为主要代码基础的代码位置的准确搜索。在开发和维护软件中,代码的准确定位,代码问题的准确定位是码头问题。需要更改,包括特定的文件和操作。估计和监视层次结构以及对大型基本代码的复杂依赖性。图2:图中的红色节点表示问题描述中明确指出的函数,而黄节点表示真正需要更改的功能。 Kahirbut任务被定义为根据提及目标补丁的函数的代码图中最短路径长度(最小跃点数),而任务的难度是在图的示例中进行2个跳跃。 2。Locagent:安装LLM的“代码映射”。研究团队的解决方案非常聪明:他们首先将代码的整个基础解析为图,包括集成,呼叫,继承和进口文件,类和操作之间关系的关系。然后,该团队发出了一个LLM代理,具有简洁而统一的图原始接口,以支持非效果勘探代码基础。通过将代码的基础解析为异源图表示,大型语言MODELS可以在使用地图,实现多跳的推理并逐渐接触到代码的目标时“有效地移动”代码。图3:一般的Locent框架如图3所示。LocagentFirst基于异源图表示代码,该图包含许多类型的代码生物及其依赖性。在此基础上,系统生成了一个层次稀疏索引,以支持有效的内容和结构化探索。在这些索引中,Locagent可以将图形结构和工具接口组合在一起,以执行由代理驱动的分步搜索过程,以准确地完成代码定位任务。 2.1代码表示构建过程代码图表示构建:同样地表示代码底部的结构和语义信息,基于抽象语法树(AST)的本地代码库并形成异源有向的Graphllm是小心的。该图结构的优势即使两个代码段也被分为不同的模块,只要有呼叫或遗产关系,它们就会“接近”图形。例如,将要考虑到导航目录的先前方法是,由两个子目录隔开的模块是无关的,但是如果在lotagent Graph中称为模块B的模块的模块,则通过调用边缘直接连接A和B。对于代码定位任务,此“邻居”很重要,因为许多问题不仅限于单个文件夹,而是通过链链覆盖许多模块。 2工具,允许LLM代理可以轻松携带图和代码内容的结构。这包括以下三个API:搜索度:此工具基于层次结构实体索引,并使用关键字在代码底部搜索相关生物。当匹配项不在上索引中时,系统会自动搜索机智h下一层索引,从确切匹配到模糊搜索,以找到最接近的匹配。对于获得的每个实体,搜索词都会返回代码段的摘要(如图4所示,可以根据需要根据需要扩展三个级别的崩溃,预览和完整代码)。图4:专为良好代理代码触点而设计的不同输出格式的示例。获取:当代理确定代码实体是目标目标时,该工具可用于检索完整的生物信息。输入实体ID时,获得详细的属性,例如文件路径,启动和终点号码,完整的代码内容等。TraverseGraph:此工具在代码图中进行类型感知的第一优先搜索。代理可以指定实体的起始ID,以及您想要走的参数,例如方向,步骤数(hop),实体类型和关系类型。该工具将采用从起点到图的指定数量的步骤并返回走向的子图结构。通过设置不同类型的过滤,代理可以探索,例如“跟踪呼叫调用的两个步骤”或“查看从指定型开始开始的继承级别”等。值得一提的是,TraverseGraph格式是恢复的子图是在此类构造的文本中的修复子图(请参见图5),因此LLM可以更容易理解拓扑。图5:TraverseGraph工具输出的示例。 LLM代理商在一系列步骤中分解定位代码的指南,该步骤模仿了人类调试以逐步接近目标的想法。然后将与问题相关的关键字沿初始方向进行后续搜索。将关键字链接到代码实体:对于每个获得的关键字,代理称为搜索文明工具,以在代码索引中查找匹配代码实体。生成链接链接的多跳推理:下一步,代理商将尝试连接线索以获取故障的原因从错误表示。它首先确定有问题的初始入口点(例如激发错误的API或功能),然后从这些点开始,然后在代码图中进行迭代探讨:调用TraverseGraph以沿正确的方向搜索,以及呼叫或依赖关系;使用获取查看某些关键节点的实现详细信息;如有必要,请再次将新关键字引入搜索性。通过替代这些工具的许多替代方法,代理逐渐建立了从问题的症状到根本原因的逻辑路径。对象代码锁定:在对问题进行全面了解之后,代理正在寻找对象代码的所有生物(可能有许多操作或类),可能需要根据暴露于“ SIN链接”的可疑链接进行更改。然后,代理商通过触摸将候选人生物的输出组合在一起,并提供其文件路径以及推理的简要描述。对于用户而言,整个位置的使用非常小:仅输入语言问题的自然描述,而LLM代理会自动完成搜索系列,遍历和读取操作,并如上所述,最终给出定位代码的结果。 3。实验结果:Zhenxiang警告说,性能结果和真实数据集的评论令人惊讶。现有的基准数据集用于SWE Bench Lite,而新建的团队的Loc-Bench比较了对各种基线方法的代码定位的效果。 。它也通常用于审查代码定位。它包含300个问题及其相应的代码维修,这主要是错误报告。基于此基准,Locatent在代码定位中实现了当前正确的精度,这比现有方法明显好。与传统的矢量搜索方法相比,它具有重大改进:BM25仅为6ACC@5文件级别为1.7%,而高级代码嵌入式代码仅达到84.7%;虽然locatent的准确率最高为92.7%,但比在功能水平上的定位方法更好。多步推理类推理方法通常优于固定基于程序的过程。基于固定过程(例如代理)的程序通常只能根据字面匹配找到有限的候选人。在介绍了探索的代理之后,可以考虑更大的范围,并且定位位置更好。就三个谷物,文件,模块和功能而言,本地的本地完全比基于GPT-4O或Claude-3.5的现有代理系统更多。当使用Claude-3.5时,Locatent在SWE-Bench Lite ACC@5文件级别上达到94%,这同样优于其他功能的定位级别。与QWEN2.5-32B(微调)模型配对的Locatent性能与Claude-3.5非常相似:SWE Bench Lite文件级的TOP-5准确性的条款为92.7%,后者约为94.2%,空间很小。但是,如果小QWEN2.5-7B(微调)模型,尽管精度率略有降低(约为88.3%,它仍然超过大部分基础),但其性能可能接近GPT-4O效应。 。 Loc-Bench包含560个真正的GitHub问题,涵盖了四个类别:错误维修,新功能,安全弱点和性能优化。这些类型的工作更加平衡,并且接近实际的工程情况。 4。开放资源好处:也可以使用小型模型。这项研究最令人兴奋的事情是失去微调,开放资源模型也可以实现商业大型模型的影响。他们提供两个版本,1。QWEN2.5-7微调! 2.QWEN2.5-32B微调版本:大约在Claude-3.5级别上节省了86%的成本。对于需要大规模扩展的企业,它只是降低成本的魔术工具D提高效率。具体而言,在微调QWEN2.5-7B型号中,Locatent在四种类型的LOC基础场景中的平均级别ACC@5文件为76.8%,功能级别的ACC@15为46.9%,接近Claude-3.5的汗水表现(后面功能的级别约为45.4%)。在Claude-3.5进一步汇总后,平均水平的平均水平可能上升到81.1%,超过其他PAMTHIS在四种活动中几乎是全面的。 5。实际应用:不仅定位,还有助于解决问题 - 解决一个关键点的团队:更准确的定位代码直接提高了解决问题的速度。在GitHub Autofix问题中,使用Locent的PASS@10成功率比基线方法高12%。这意味着该技术不仅是一种“定位工具”,而且是一个可以真正提高整个软件维护过程效率的强大工具。该团队甚至审查了Vari探索其稳定性,成本效率,基本组件的作用以及其在复杂活动中上游应用中的实际价值的角度。 。团队通过操作距离(HOP编号)伪模图测量“难度”:也就是说,问题描述中提到的功能与真正需要更改的功能之间的函数之间的最短路径。直观地说,Hop = 0表示问题直接提及需要更改功能的名称; Hop = 1意味着操作的目的是问题中提到的操作之间的直接相关性,而啤酒花的数量越大,定位的难度越高。实验发现:随着啤酒花的数量增加,所有方法的定位精度也会降低。毕竟,组织的直观较小,模型链接需要推理的时间越长。但是,不同方法的稳定性很明显:拒绝代理类方法的性能在高难度下,难度明显小于搜索课程的过程。特别是,当啤酒花数量增加时,本地可以保持较高的精度,显示出良好的稳定性。相反,如果需要超过两个啤酒花,传统的搜索方法几乎将失败。通过定位功能级别,尽管目标函数的名称出现在查询中,但有时找不到(因为它们通常完全处理查询,并且无法拆卸处理细节)。 。高效率。此外,该团队使用开放的资源模型来实现与大型模型相当的结果,同时大大降低了理解成本并具有实际实施和扩展的可行性。具体而言,当使用Claude-3.5等商业API模型时,每ISYU的平均处理成本约为0.66美元;在使用本地部署的QWEN2.5-32B时,成本降至约0.09美元,减少了86%。如果7B小进一步采用了模型,处理成本可能小于0.05美元,并且它仍然可以比大多数方法保持更好的性能。从成本函数成本水平的比率的角度来看,微调QWEN-2.5-7B是最有效的解决方案,其效率比所有商业模型都要好。 QWEN-2.5-32B是第二,也比Claude-3.5更好。它表明,与局限图相结合,开放资源模型不仅能够与绩效竞争,而且在经济上扩大了。 (3)应用影响:高质量定位可显着提高问题解决率。 TOSESS将代码放置对实际软件维护任务的影响,团队甚至评估了Locent对自动解决GitHub问题的影响。结果表明,通过提高定位的准确性,解决问题的成功率显着改善,表明POSI的更准确位置Tioning可以显着提高自动代码更改的质量和稳定性。该发现证明,位置不仅在定位本身中表现正常,而且有效地促进了任务的整体性能,并具有工程的实际价值。 6.技术含义:结构化指数 +智能推理Lokagent成功表明了一个重要趋势:范式从“暴力计算”转变为“明智的决策”。术方法可以将代码的整个基础直接在llm中处理,以使其与蛮力的匹配力一起,或者根据预设策略使代理通过目录。这些都是“计算机密集型”解决方案。通过结构化的中间表示(例如图形索引)的局部结构,然后允许LLM进行更高水平的推理和决策活动。这种“代理人”的核心在于明智的决策。 thrOugh结构化的中间表示,例如图形和树,信息变得更容易证明是合理的,并且代理可以根据特定问题调整搜索技术,而不是严格粘附以预设路径。它代表了从“人为设计的各种抹布管道”到“如何做出独立决策并找到AI”的iSmoving。将结构化指数和合作设计与LLM代理相结合的范式可能是未来AI工程应用程序的标准模型。这并不是要让LLM进行更多的计算,而是要让LLM做出更明智的决定 - 程序员的专用体验即将升级!