编程语言具有丰富的语义信息,例如由图表示的数据流,并且从源代码的表面形式无法获得。最近的代码语言模型已扩展到数十亿个参数,但模型源代码仅为文本 Token ,同时忽略了任何其他结构信息。相反,编码代码结构信息的模型对 Transformer 体系结构进行了修改,从而限制了其比例和与验证的LLM的兼容性 ...
尽管在文本到SQL任务上已经取得了重大进展,但最新的解决方案反复为每个问题编码相同的数据库架构,从而导致不必要的高推理成本,并且通常忽略了重要的数据库知识。为了解决这些问题,我们建议您仅阅读一次(Yoro),这是一种新颖的范式,将数据库知识直接将培训过程中文本到SQL模型的参数知识内化为参数知识,并消除了推断期间对模式编码的需求。 Yoro将输入 Token 长度显着减少66%-98% ...
本文介绍了一种培训类似O1的抹布模型的方法,该模型在生成最终答案之前逐步检索和理由,通过相关信息逐步检索和理由。常规的抹布方法通常在生成过程之前执行单个检索步骤,这限制了由于不完善的检索结果而导致的复杂查询的有效性。相比之下,我们提出的方法Corag(重新预应增强链)使该模型可以根据不断发展的状态动态重新重新重新查询查询 ...
当我们进入大型语言模型(LLMS)时代时,人工智能(AI)模型已成为与人类和机器一起编程语言的另一个重要受众。 LLMS现在可以在编码竞赛中表现良好,甚至可以编写开发人员等程序来解决各种任务,包括数学问题。但是,当前程序的语法和布局旨在满足人类开发人员的需求 - 许多语法 Token 和格式化 Token 被用来使人类更容易阅读代码 ...
代码翻译是软件开发和维护过程中的至关重要活动,研究人员最近开始专注于使用预训练的大型语言模型(LLMS)进行代码翻译。但是,现有LLM仅在预训练期间学习代码的上下文语义,忽略了与代码执行状态密切相关的可执行性信息,这导致了不保证的代码可执行性和不可靠的自动码翻译。为了解决此问题,我们提出了专门为代码翻译设计的LLM Execoder,旨在利用可执行性表示,例如功能语义,语法结构和可变依赖性,以增强LLMS在代码翻译中的功能 ...
大型语言模型(LLMS)表现出了为各种编程任务生成代码的令人印象深刻的能力。在许多情况下,LLM可以在进行大量试验时为任务生成正确的程序。因此,最近的趋势是使用模型对程序进行大规模采样,然后根据程序执行程序对少数已知单元测试的程序进行过滤/对程序进行过滤/排名,以选择一个候选解决方案 ...
大型语言模型(LLM)广泛用于自动代码生成。他们依靠不经常更新预处理的数据使他们没有意识到新发现的漏洞和不断发展的安全标准,从而使它们容易产生不安全的代码。相比之下,堆栈溢出的开发人员社区(SO)提供了一个不断发展的知识存储库,在该存储库中,通过集体专业知识积极讨论和解决安全漏洞 ...
在现实世界软件工程任务中,解决问题通常需要在大型代码库中理解和修改多个功能,类和文件。因此,在存储库中,提取相关信息以有效地完成准确的代码完成至关重要。现有的代码完成工具取得了一些成功,但是他们很难动态地优化检索和生成过程 ...
通过自动代码改进优化软件性能,为提高执行速度和效率提供了有希望的途径。尽管LLMS最近取得了进步,但其执行深入计划分析的能力仍然存在很大的差距。这项研究介绍了AutoPatch,这是一种旨在通过使LLMS自动生成优化的代码来弥合此差距的文化学习方法 ...
近年来,随着大型语言模型(LLMS)的出现,自然语言对代码产生的生成取得了重大进展。尽管C,C ++和Python(例如C,C ++和Python)的通用语言产生显着改善,但LLMS与域特定语言或DSL中的自定义功能名称挣扎。这会导致更高的幻觉率和语法错误,特别是对于具有大量自定义功能名称的DSL ...