检索增强的生成(RAG)通过整合外部知识基础来增强大语言模型(LLM),从而实现最新的编码任务。抹布的核心是检索演示示例,这对于平衡有效性(发电质量)和效率(检索时间)至关重要。但是,代码表示和大型知识库的高维质通常会产生效率瓶颈,这在先前的研究中被忽略了 ...
软件是我们人类可以使用的最强大的工具之一。它允许熟练的程序员以复杂而深刻的方式与世界互动。同时,由于大语言模型(LLM)的改进,AI代理商也有了迅速的发展,与周围环境的互动并影响变化。在本文中,我们介绍了开放式(f ...
汇编代码搜索对于减轻逆向工程师的负担至关重要,使他们能够在大量二进制程序中使用自然语言快速识别特定功能。尽管其意义重大,但构建高质量数据集所涉及的复杂性阻碍了这项关键任务。本文探讨了训练大型语言模型 (LLM) 来模拟通用编译器 ...
用于自然语言处理的大型语言模型(LLM)已嫁接到用于推进代码智能的编程语言建模上。尽管可以以文本格式表示,但是在句法上,代码更加严格,以便正确编译或解释以执行任何输入,以执行一组所需的行为。在这种情况下,现有的作品受益于句法表示,以抽象语法树,控制流图等的形式从代码中学习不那么模棱两可 ...
代码搜索旨在检索给定自然语言查询的最相关的代码片段,是软件开发实践中的常见活动。最近,对比度学习被广泛用于代码搜索研究中,其中许多数据增强方法用于源代码(例如, ...
语义代码搜索是在给出其功能的文本描述的情况下检索代码片段的任务。最近的工作重点是使用文本和代码的神经嵌入之间的相似性度量。然而,众所周知,当前的语言模型难以应对较长的组合文本和多步骤推理 ...
可区分的体系结构搜索(DAS)在搜索以降低计算成本的高性能体系结构方面取得了长足进步。但是,基于DAS的方法主要集中于搜索可重复的单元结构,然后将其顺序堆叠在多个阶段中以形成网络。这种配置大大减少了搜索空间,而忽略了单元格之间的连接的重要性 ...
代码执行是编程语言语义的一个基本方面,它反映了代码的确切行为。然而,大多数用于代码智能的预训练模型都会忽略执行跟踪,而仅依赖于源代码和语法结构。在本文中,我们研究了预训练模型如何很好地理解和执行代码 ...
编程语言的预训练模型最近在代码智能方面取得了巨大成功。为了支持与代码相关的理解和生成任务,最近的工作尝试预训练统一的编码器-解码器模型。然而,这种编码器-解码器框架对于自回归任务来说并不是最优的,尤其是需要仅解码器方式才能进行有效推理的代码完成 ...
在本文中,我们提出了 CodeRetriever 模型,该模型通过大规模代码文本对比预训练来学习功能级代码语义表示。我们在CodeRetriever中采用两种对比学习方案:单峰对比学习和双峰对比学习。对于单模态对比学习,我们设计了一种无监督学习方法来根据文档和函数名称构建语义相关的代码对 ...