在代码搜索中,生成增强检索(GAR)框架可以生成示例代码片段来增强查询,它已成为解决代码片段和自然语言查询之间模态不一致的主要挑战的一种有前途的策略,特别是对于演示的代码大型语言模型(LLM)的生成能力。然而,我们的初步调查表明,这种 LLM 增强框架所带来的改进在某种程度上受到限制。这种限制可能归因于这样一个事实:生成的代码尽管功能准确,但经常显示出与代码库中的真实代码明显的风格偏差 ...
最近,对比学习已成为微调代码搜索模型以提高软件开发效率和有效性的关键组成部分。它将积极的代码片段汇集在一起,同时将消极的样本排除在给定的搜索查询之外。在对比学习中,InfoNCE由于其更好的性能而成为使用最广泛的损失函数 ...
代码搜索是基于自然语言查询从源代码语料库中搜索可重用的代码片段。基于深度学习的代码搜索方法已经显示出有希望的结果。然而,以往的方法关注检索准确性,而缺乏对检索过程效率的关注 ...
自然语言处理(NLP)的最新发展在码文本检索问题上取得了显着的进展。随着该任务中使用的基于 Transformer 的模型的规模不断增加,端到端微调所需的计算成本和时间变得相当可观。当计算资源有限时,这对适应和利用这些模型提出了重大挑战 ...
得益于大语言模型(LLM)前所未有的语言理解和生成能力,检索增强代码生成(RaCG)最近在软件开发人员中得到了广泛的应用。虽然这提高了生产率,但仍然经常出现提供错误代码的情况。特别是,在某些情况下,对于无法使用给定查询和 API 描述进行回答的用户查询,会生成看似合理但不正确的代码 ...
用于代码标记嵌入的预训练语言模型用于代码搜索、代码克隆检测和其他与代码相关的任务。同样,代码函数嵌入在此类任务中也很有用。然而,当前文献中没有现成的函数嵌入模型 ...
尽管文本检索在许多 NLP 任务中取得了成功,但代码检索仍然是一个很大程度上未被开发的领域。大多数文本检索系统都是针对自然语言查询量身定制的,通常忽略了检索代码的具体挑战。这一差距使得现有模型无法有效地捕获跨不同领域的编程语言和任务的多样性,这凸显了在代码检索方面进行更有针对性的研究的必要性 ...
预训练语言模型在代码相关任务中表现出强大的有效性,例如代码检索、代码生成、代码摘要和代码完成任务。在本文中,我们提出了通过检索增强语言模型(CONAN)的代码助手,旨在通过模仿人类在编码过程中的知识寻求行为来构建代码助手。具体来说,它由代码结构感知检索器(CONAN-R)和基于双视图代码表示的检索增强生成模型(CONAN-G)组成 ...
最近,检索增强生成(RAG)范式因其无需进一步训练即可将外部知识整合到大型语言模型(LLM)中的潜力而引起了广泛关注。虽然在自然语言应用程序中得到了广泛的探索,但它在代码生成中的利用仍未得到充分探索。在本文中,我们介绍了知识汤中的主动检索(ARKS),这是一种泛化代码大型语言模型的高级策略 ...
使用大型语言模型的代码生成已显示出巨大的前景,特别是在使用少量示例的检索增强生成(RAG)时。然而,选择提高生成质量的有效示例仍然是一项具有挑战性的任务,特别是当目标编程语言 (PL) 代表性不足时。在这项研究中,我们提出了两个关键发现:(1)检索其所提出的算法计划可以被参考以生成所需行为的示例显着提高了生成准确性,以及(2)将代码转换为伪代码可以有效地捕获此类算法计划,甚至提高检索质量当源 PL 和目标 PL 不同时 ...