AGENTLESS: Demystifying LLM-based Software Engineering Agents
Agentless:Demystifying LLM-based Software Engineering Agents近年来,大型语言模型(LLMs)的进展显著推动了软件开发任务的自动化,包括代码合成、程序修复和测试生成。最近,研究人员和行业从业者开发了各种自治LLM代理,以执行端到端的软件开发任务。这些代理具备使用工具、运行命令、观察环境反馈和规划未来行动的能力。然而,这些基于代理的方法的复杂性,以及当前LLM的能力限制,提出了一个问题:我们真的需要使用复杂的自治软件代理吗?为了尝试回答这个问题,我们提出了AGENTLESS——一种无需代理的自动化软件开发问题解决方法。与基于代理方法的冗长复杂设置相比,AGENTLESS采用了简单的三阶段流程:定位、修复和补丁验证,且无需让LLM决定未来的行动或使用复杂工具。我们在流行的SWE-bench Lite基准测试中的结果表明,令人惊讶的是,简单的AGENTLESS不仅能达到最高的性能(32.00%,96个正确修复),还具有较低的成本($0.70),与现有所有开源软件代理相比表现更佳!事实上,AGENTLESS已被OpenAI采纳,作为展示 ...
DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning
DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement LearningAbstract我们介绍了第一代推理模型,DeepSeek-R1-Zero 和 DeepSeek-R1。DeepSeek-R1-Zero 是通过大规模 强化学习(RL) 训练的模型,未经过 监督微调(SFT) 作为预处理步骤,展示了卓越的推理能力。通过强化学习,DeepSeek-R1-Zero 自然地具备了多种强大且引人注目的推理行为。然而,它也面临一些挑战,如 可读性差 和 语言混杂 等问题。为了应对这些问题并进一步提升推理性能,我们引入了 DeepSeek-R1,它在强化学习之前加入了 多阶段训练 和 冷启动数据。DeepSeek-R1 在推理任务中的表现与 OpenAI-o1-1217 相当。为了支持研究社区,我们将 DeepSeek-R1-Zero、DeepSeek-R1 和基于 Qwen 和 Llama 蒸馏的六个密集模型(1.5B、7B、8B、14B、32B、70B)开源。
Introduction
背景与挑战 ...
DeepSeek-Coder: When the Large Language Model Meets Programming - The Rise of Code Intelligence
DeepSeek-Coder: When the Large Language Model Meets Programming - The Rise of Code IntelligenceAbstract大型语言模型的快速发展革新了代码智能在软件开发中的应用。然而,闭源模型的主导地位限制了广泛的研究与开发。为此,我们推出DeepSeek-Coder系列模型——一组包含1.3B到33B参数规模的开源代码大模型,通过从头训练于2万亿token的高质量项目级代码语料库,并采用16K上下文窗口的填充空白预训练任务,显著提升了代码生成与补全能力。大量实验表明,DeepSeek-Coder不仅在多个基准测试中取得了开源代码模型的最优性能,更超越了如Codex和GPT-3.5等闭源模型。此外,DeepSeek-Coder系列采用宽松许可证,允许研究及无限制的商业使用。
Introduction背景与挑战
大型语言模型(LLMs)正深刻改变软件开发,提升代码智能化水平。
这些模型可用于自动化编码任务,如错误检测和代码生成,提高生产力并减少人为错误。
现存挑战:开源模型 vs. 闭源模型的性能差距 ...
LLM Hallucinations in Practical Code Generation: Phenomena, Mechanism, and Mitigation
LLM Hallucinations in Practical Code Generation: Phenomena, Mechanism, and MitigationAbstract代码生成旨在根据输入需求自动生成代码,从而显著提升开发效率。近年来,基于大型语言模型(LLMs)的方法在代码生成任务上取得了显著成果,彻底改变了该领域。然而,尽管表现出色,LLMs 在代码生成场景中仍然容易产生幻觉(hallucinations),特别是在实际开发过程中需要处理复杂上下文依赖的情况下。虽然已有研究分析了 LLM 在代码生成中的幻觉问题,但其研究范围主要局限于独立函数的生成。在本文中,我们进行了一项实证研究,探讨 LLM 幻觉在更实际且更复杂的开发环境中的现象、机制及其缓解方法,重点关注仓库级代码生成场景。首先,我们手动检查六种主流 LLM 的代码生成结果,建立了一套 LLM 生成代码的幻觉分类体系。随后,我们详细阐述幻觉现象,并分析其在不同模型中的分布情况。接着,我们探究幻觉产生的原因,并识别出四个可能导致幻觉的关键因素。最后,我们提出了一种基于 RAG(Retrieval-Augmen ...
Benchmarking Bias in Large Language Models during Role-Playing
Benchmarking Bias in Large Language Models during Role-PlayingABSTRACT大型语言模型(LLMs)已成为现代语言驱动应用的基础,对日常生活产生了深远影响。发挥其潜力的一个关键技术是角色扮演,在这一过程中,LLMs模拟不同角色以增强其在现实世界中的效用。然而,尽管研究已经揭示了LLMs输出中存在社会偏见,但尚不清楚这些偏见在角色扮演情境中是如何出现的,或者其出现的程度。在本文中,我们提出了BiasLens,一个公平性测试框架,旨在系统地揭示LLMs在角色扮演中的偏见。我们的方法使用LLMs生成550个社会角色,涵盖11个不同的群体属性,产生了33,000个针对不同偏见形式的角色特定问题。这些问题包括是/否、多项选择和开放性问题,旨在促使LLMs扮演特定角色并做出相应回答。我们结合了基于规则和基于LLM的策略来识别偏见回应,并通过人工评估进行了严格验证。以这些生成的问题作为基准,我们对OpenAI、Mistral AI、Meta、阿里巴巴和DeepSeek发布的六个先进LLM进行了广泛评估。我们的基准揭示了72,7 ...
Diversity Drives Fairness Ensemble of Higher Order Mutants for Intersectional Fairness of Machine Learning Software
Diversity Drives Fairness: Ensemble of Higher Order Mutants for Intersectional Fairness of Machine Learning SoftwareAbstract交叉公正是机器学习(ML)软件的一个关键要求,要求在多个受保护属性定义的子群体之间保持公正性。本文介绍了FairHOME,一种新颖的集成方法,通过对输入进行高阶变异,在推理阶段增强ML软件的交叉公正性。FairHOME的灵感来源于社会科学理论,这些理论强调多样性带来的益处。FairHOME为每个输入实例生成代表不同子群体的变异体,从而拓宽视角范围,促进更公平的决策过程。与传统的集成方法不同,传统方法通过结合不同模型的预测,FairHOME通过结合原始输入及其变异体的预测(所有预测均由同一个ML模型生成)来得出最终决策。值得注意的是,FairHOME甚至可以应用于已部署的ML软件,因为它无需训练新的模型。我们在24个决策任务上,使用广泛采用的评价指标,全面评估了FairHOME与七种最先进的公正性提升方法的表现。结果表明,FairHOME在所有 ...
Teaching Code LLMs to Use Autocompletion Tools in Repository-Level Code Generation
Teaching Code LLMs to Use Autocompletion Tools in Repository-Level Code GenerationABSTRACET摘要:近年来,大型代码语言模型(LLMs)在生成独立函数方面表现出色。然而,由于缺乏对仓库级依赖(如用户自定义属性)的感知,它们在仓库级代码生成中存在一定局限性,容易导致依赖性错误,例如未定义变量错误和缺少成员错误。在本研究中,我们提出了TOOLGEN方法,通过将自动补全工具集成到代码LLM的生成过程中,以解决这些依赖性问题。TOOLGEN包含两个主要阶段:触发器插入和模型微调(离线阶段),以及工具集成代码生成(在线阶段)。在离线阶段,TOOLGEN对给定代码语料库中的函数进行增强,加入一个特殊的标记符号,用于指示触发自动补全工具的位置。这些增强的函数及其对应的描述随后用于微调所选的代码LLM。在在线阶段,TOOLGEN通过微调后的LLM逐步预测生成函数的每个标记。当遇到标记符号时,TOOLGEN调用自动补全工具提供代码补全建议,并通过约束贪婪搜索选择最合适的建议。
我们进行了全面的实验,评估了TOOLGE ...
Explaining Structured Queries in Natural Language
Explaining Structured Queries in Natural LanguageAbstract摘要——许多应用程序为普通用户提供了一种基于表单的环境,使其无需熟悉数据库模式或结构化查询语言即可访问数据库。用户的交互会被翻译成结构化查询并执行。然而,由于用户不太可能了解表单中各字段之间的底层语义关系,因此为用户提供查询的文本解释通常是有用的。在本文中,我们采用一种基于图的方式来解决查询翻译问题。我们将各种形式的结构化查询表示为有向图,并使用可扩展的模板机制为图的边添加模板标签。我们提出了多种图遍历策略,用于高效地探索这些图并生成查询的文本描述。最后,我们通过实验展示了所提方法在效率和效果上的表现。
INTRODUCTIONBackground and motivation
问题背景:结构化查询语言(SQL)的局限性
SQL 对高级用户和开发者是强大的工具,但大多数普通用户不熟悉。
为此,许多应用提供基于表单的查询环境,简化了数据库搜索和操作。
应用场景
基于表单的查询在以下领域常见:
博物馆门户网站
数字图书馆
电子商务网站
新兴的 DIY 数据库驱动的 W ...
Fuzzing JavaScript Interpreters with Coverage-Guided Reinforcement Learning for LLM-Based Mutation
Fuzzing JavaScript Interpreters with Coverage-Guided Reinforcement Learning for LLM-Based MutationAbstractJavaScript解释器对现代网络浏览器至关重要,需要一种有效的Fuzzing方法来识别安全相关的漏洞。然而,输入的严格语法要求呈现出重大挑战。最近将语言模型整合到上下文感知的突变Fuzzing中的努力是有前景的,但缺乏必要的覆盖指导以充分发挥效用。本文提出了一种新的技术,名为CovRL(基于覆盖率的强化学习),它将大型语言模型(LLMs)与基于覆盖反馈的强化学习(RL)相结合。我们的Fuzzer,CovRL-Fuzz,通过利用词频-逆文档频率(TF-IDF)方法将覆盖反馈直接整合到LLM中,构建了一个加权覆盖图。该图是计算Fuzzing奖励的关键,然后将此奖励应用于基于LLM的突变器通过强化学习。CovRL-Fuzz通过这种方法,能够生成更有可能发现新覆盖区域的测试用例,从而提高漏洞检测效率,同时最小化语法和语义错误,而无需额外后处理。我们的评估结果表明,CovRL-Fuz ...
Finding Logic Bugs in Spatial Database Engines via Affine Equivalent Inputs
Finding Logic Bugs in Spatial Database Engines via Affine Equivalent InputsAbstract空间数据库管理系统(SDBMSs)旨在存储、操作和检索空间数据。SDBMSs 被广泛应用于现代各类应用中,例如地理信息系统、计算机辅助设计工具和基于位置的服务。然而,SDBMSs 中存在逻辑错误可能导致错误的结果,极大地削弱这些应用的可靠性。在 SDBMSs 中检测逻辑错误非常具有挑战性,因为缺乏用于识别错误结果的真实基准。在本文中,我们提出了一种自动几何感知生成器,用于为 SDBMSs 生成高质量的 SQL 语句,并引入了一个新的概念仿射等价输入 (AEI) 来验证 SDBMSs 的结果。我们将这些概念实现为一个名为 Spatter (Spatial DBMSs Tester) 的工具,用于检测四种流行 SDBMSs 中的逻辑错误:PostGIS、DuckDB Spatial、MySQL 和 SQL Server。我们的测试活动检测到了 34 个之前未知且独特的错误,其中已有 30 个得到确认,18 个已被修复。我们的 ...