2024 年 8 月暨 ACL 2024 57篇代码大模型论文精选

引言:

2024年8月中旬,国际计算语言学大会 ACL 在泰国曼谷召开。在本文中,亲临现场的小编为大家整理了会议中所展示的48篇代码大模型相关论文,包括24篇主会与24篇 findings。在本文的末尾,我们也额外整理了9篇8月最新代码大模型论文精选。

若您想了解其他时期的代码大模型论文,也欢迎关注我们的代码大模型综述 https://arxiv.org/abs/2311.07989 和 GitHub 开源项目 https://github.com/codefuse-ai/Awesome-Code-LLM,以及往期回顾:

原文推荐

2024 年 7 月 117 篇代码大模型论文最全整理

2024 年 6 月 118 篇代码大模型论文最全整理

2024 年 5 月 90 篇代码大模型论文最全整理

01

主会

XFT: Unlocking the Power of Code Instruction Tuning by Simply Merging Upcycled Mixture-of-Experts

本文提出了名为 XFT 的新型训练方案,通过将 upcycle 后的混合专家模型 (MoE) 合并来提升指令微调代码大模型的性能上限。XFT 在稀疏 upcycle 中引入了共享专家机制和一种新型的路由权重归一化策略,显著提升了指令微调效果。在对 upcycle 后的 MoE 模型进行微调后,XFT 引入了一种可学习的模型合并机制,将 MoE 模型合并回密集模型,从而以仅使用密集模型的计算量实现 MoE 水平的性能。XFT 可以应用于各种代码指令微调任务,并与现有技术互补,为提升代码指令微调效果开辟了新的维度。

链接:https://arxiv.org/abs/2404.15247

机构:University of Illinois Urbana-Champaign

WaveCoder: Widespread And Versatile Enhancement For Code Large Language Models By Instruction Tuning

本文针对代码大模型在多任务场景下的泛化能力问题,提出了一系列名为 WaveCoder 的模型。WaveCoder 通过利用开源代码数据集生成大量高质量的多任务指令数据,并使用该数据对模型进行训练,从而提升模型在多个代码相关任务上的泛化能力。实验结果表明,WaveCoder 在不同代码任务上的泛化能力显著优于其他开源模型,其中 WaveCoder-Ultra-6.7B 模型在各种代码相关任务上展现出最强的泛化能力。

链接:https://arxiv.org/abs/2312.14187

机构:Microsoft

DolphCoder: Echo-Locating Code Large Language Models with Diverse and Multi-Objective Instruction Tuning

本文提出了一种名为 DolphCoder 的多样化指令模型,通过自评估的方式来提升代码生成能力。该模型学习多种指令目标,并结合代码评估目标来增强其代码生成能力,在 HumanEval 和 MBPP 基准测试中取得了优异的性能。论文主要发现:增加更多具有不同推理路径的回答可以提升大模型的代码生成能力,且提高模型评估代码解决方案正确性的能力也能增强其代码生成能力。

链接:https://arxiv.org/abs/2402.09136

机构:Beijing University of Posts and Telecommunications

UniCoder: Scaling Code Large Language Model via Universal Code

本文提出了一个名为 UniCode 的通用代码中间表示,通过将算法步骤用编程语言中的赋值运算符、条件运算符和循环等语法描述来训练一个名为 UniCoder 的多任务学习模型。该模型通过在代码生成过程中加入通用代码,使模型能够更好地理解自然语言指令并生成高质量的代码。实验证明,UniCoder 在代码翻译和生成任务中显著优于现有的基于思维链的提示方法,展现了伪代码结构提示的有效性。

链接:https://arxiv.org/abs/2406.16441

机构:Beihang University

StepCoder: Improve Code Generation with Reinforcement Learning from Compiler Feedback

本文提出了一个用于代码生成的强化学习框架 StepCoder。该框架通过将长代码生成任务分解成一系列代码补全子任务来解决大语言模型在生成复杂代码时的探索挑战,并通过屏蔽未执行的代码片段进行精细化的优化来提高代码生成质量。该论文还构建了一个手动验证的测试集 APPS+ 用于强化学习训练,且实验结果表明 StepCoder 在相关基准测试中取得了优于现有技术的成果。

链接:https://arxiv.org/abs/2402.01391

机构:Fudan University

JumpCoder: Go Beyond Autoregressive Coder via Online Modification

本文提出了一个名为 JumpCoder 的框架,增强代码大模型的可逆性,使它们能够像人类一样在编程过程中及时修正先前遗漏的语句,从而减少错误传播并提高生成代码的质量。JumpCoder 通过一个辅助的填充模型,在生成过程中根据需要将新的代码插入到已生成的代码中,并使用抽象语法树解析器和生成模型评分来判断填充的有效性。实验结果表明,JumpCoder 在多个基准测试中都显著提升了现有代码大模型的性能。

链接:https://arxiv.org/abs/2401.07870

机构:Zhejiang University

HiRoPE: Length Extrapolation for Code Models Using Hierarchical Position

本文提出了一种名为 HiRoPE 的新型层次旋转位置嵌入方法,用于解决现有大语言模型在处理长代码序列时由于上下文长度限制而导致的性能问题。HiRoPE 受人类程序员理解代码的启发,将传统的旋转位置嵌入扩展为层次结构,并能轻松地集成到现有的语言模型中,无需额外的训练成本。实验证明,HiRoPE 在语言建模和长代码补全等任务中表现稳定,并且有效地扩展了语言模型的上下文长度,使其能够处理比训练长度指数级更长的序列。

链接:https://arxiv.org/abs/2403.19115

机构:Peking University

Enhancing Large Language Models in Coding Through Multi-Perspective Self-Consistency

本文提出了一种名为多视角自一致性 (MPSC) 的框架,以增强大语言模型的代码生成性能。MPSC 将 LLM 的推理过程视为不同的视角,通过引导模型生成解决方案、规范和测试用例三种不同的输出,构建一个三部图。利用两种一致性度量函数,MPSC 将跨视角间的相互一致性和单个视角内部的一致性信息嵌入到图中,并基于图分析确定最佳解决方案。MPSC 在各种基准测试中显著提高了基座模型 (ChatGPT) 的性能,包括 HumanEval (+15.91%)、MBPP (+6.43%) 和 CodeContests (+9.37%),甚至超越了 GPT-4。

链接:https://arxiv.org/abs/2309.17272

机构:Peking University

ArchCode: Incorporating Software Requirements in Code Generation with Large Language Models

本文提出了一个名为 ArchCode 的新框架,利用上下文学习从文本描述中提取并组织完整的软件需求,包括功能性需求和非功能性需求,并推断出未明确表达的需求。ArchCode 可以根据描述生成需求,并在此基础上生成代码片段和测试用例,每个测试用例都针对特定的需求,从而根据执行结果与需求的符合程度对代码片段进行排序。实验结果表明,ArchCode 能够提高对功能性需求的满足度,显著提升 pass@k 得分。此外,论文还引入了首个用于评估代码生成中非功能性需求的基准 HumanEval-NFR,证明了 ArchCode 在该领域优于其他基线方法。

链接:https://www.arxiv.org/abs/2408.00994

机构:Seoul National University

CodeAgent: Enhancing Code Generation with Tool-Integrated Agent Systems for Real-World Repo-level Coding Challenges

本文提出了一种名为 CodeAgent 的新型代码生成框架,通过整合外部编程工具来提升大语言模型在真实世界代码库级别的代码生成能力。CodeAgent 能够与软件工件交互,获取信息、导航代码符号和测试代码,从而显著提高大语言模型的性能,在真实场景代码库级别的代码生成任务中取得了优于商业产品的效果。

链接:https://arxiv.org/abs/2401.07339

机构:Peking University

MapCoder: Multi-Agent Code Generation for Competitive Problem Solving

本文提出了一种新的代码生成方法 MapCoder。它利用多个 LLM 智能体模拟人类开发者的程序合成过程,具体包含四个智能体,分别负责回忆相关示例、规划、代码生成和调试。通过在八个具有挑战性的问题解决和程序合成基准测试中进行全面实验,MapCoder 展现出卓越的代码生成能力,在多个数据集上取得了最先进的结果。此外,该方法在不同编程语言和问题难度下都表现出色。

链接:https://arxiv.org/abs/2405.11403

机构:Bangladesh University of Engineering and Technology

MPCODER: Multi-user Personalized Code Generator with Explicit and Implicit Style Representation Learning

本文提出了一种名为 MPCoder 的多用户个性化代码生成方法。该方法利用显式编码风格残差学习捕捉语法代码风格标准,同时通过隐式风格学习捕捉语义代码风格约定。此外,论文还提出了一种多用户风格适配器,通过对比学习更好地区分不同用户的隐式特征表示,最终实现多用户的个性化代码生成。论文还提出了一种新的评估指标,用于估计不同编码风格代码之间的相似性。实验结果表明了该方法在这一新颖任务上的有效性。

链接:https://arxiv.org/abs/2406.17255

机构:Zhejiang University

Dataflow-Guided Retrieval Augmentation for Repository-Level Code Completion

本文提出了一种名为 DraCo 的数据流引导的检索增强方法,用于仓库级别的代码补全任务。DraCo 通过扩展的数据流分析,将私有仓库解析为代码实体并建立它们之间的关系,形成特定于仓库的上下文图。在触发代码补全时,DraCo 能够从上下文图中精确地检索相关的背景知识,并生成格式良好的提示来查询代码语言模型。此外,论文还构建了一个更加多样化的 Python 数据集 ReccEval。实验结果表明,与现有最先进的方法相比,DraCo 在代码精确匹配率和标识符F1分数方面平均提高了 3.43% 和 3.27%,展现出了优越的准确性和适用效率。

链接:https://arxiv.org/abs/2405.19782

机构:Nanjing University

Exploring Hybrid Question Answering via Program-based Prompting

本文提出了一种名为 HProPro 的新型基于程序的提示框架,用于解决异构数据上的问答任务。该框架利用代码生成和执行范式,通过集成各种功能来处理混合推理场景,例如函数声明和函数实现,从而无需训练专门的检索器或进行模态转换,就能直接在来自不同来源和模态的数据上进行混合信息检索和推理。实验结果表明,HProPro 在两个典型混合问答基准数据集上取得了最优性能,并优于所有基准系统,尤其是在小样本情况下表现出色。

链接:https://arxiv.org/abs/2402.10812

机构:Harbin Institute of Technology

Eliciting Better Multilingual Structured Reasoning from LLMs through Code

本文提出了一个多语言结构化推理和解释数据集 xSTREET,涵盖六种语言的四项推理任务,并揭示了大语言模型在英语和非英语推理任务之间的性能差距。论文进一步提出了两种方法来弥补这一差距,核心思想是利用代码训练的语言模型更擅长推理。第一种方法在训练时通过机器翻译将代码数据集的多语言注释与原始代码结合;第二种方法在推理时采用包含逐步代码注释的提示结构来推断新事实并找到解决方案。这些方法在 xSTREET 上显著提升了多语言推理性能,尤其是在科学常识推理子任务上。此外,模型在非推理任务上未出现性能下降,表明该技术保留了通用能力。

链接:https://arxiv.org/abs/2403.02567

机构:Amazon

Understanding the Effects of Noise in Text-to-SQL: An Examination of the BIRD-Bench Benchmark

本文深入分析了常用的 Text-to-SQL 基准测试集 BIRD-Bench 中的噪音问题,发现该数据集存在大量的噪音,包括问题和标准答案查询中的错误。作者分析了不同领域和不同噪音类型的分布,并揭示了错误答案查询对基准测试可靠性的负面影响。研究还发现,在使用修正后的 SQL 查询进行评估时,简单的零样本基线方法超越了最先进的提示方法。研究结论强调了为开发能够处理各种噪音类型的 Text-to-SQL 方法,信息丰富的噪音标签和可靠的基准测试至关重要。

链接:https://arxiv.org/abs/2402.12243

机构:Linköping University

Synthesizing Text-to-SQL Data from Weak and Strong LLMs

本文提出了一种利用合成数据来缩小开源和闭源大语言模型在文本到 SQL 任务上的差距的方法。该方法通过将较强模型生成的数据与较弱模型产生的错误信息数据结合,不仅提高了文本到 SQL 模型的领域泛化能力,还探索了错误数据监督在偏好学习中的潜力。论文利用该方法对开源大模型进行指令微调获得了名为 SENSE 的文本到 SQL 模型,在 SPIDER 和 BIRD 基准测试中取得了最先进的结果,有效弥合了开源模型与闭源模型方法之间的性能差距。

链接:https://arxiv.org/abs/2408.03256

机构:Alibaba Group

Quantifying Contamination in Evaluating Code Generation Capabilities of Language Models

本文系统地研究了流行的代码生成基准数据集中的数据污染问题,通过表面和语义层面的匹配,精确地量化了这些基准数据集与预训练语料库的重叠程度。研究发现,流行的代码生成基准数据集与公开的训练语料库存在大量重叠,模型在训练过程中见过相似解决方案的基准数据集子集上表现显著更好。此外,论文还对模型大小、问题难度和问题长度等因素对模型记忆和泛化能力的影响进行了深入分析,并公开了匹配流程的全部结果文件,供未来研究使用。

链接:https://arxiv.org/abs/2403.04811

机构:Yale University

CodeScope: An Execution-based Multilingual Multitask Multidimensional Benchmark for Evaluating LLMs on Code Understanding and Generation

本文介绍了一个基于执行的多语言、多任务、多维度的代码理解和生成能力评估基准 CodeScope。与现有基准相比,CodeScope 涵盖了更多编程语言和代码任务,并考虑了生成的代码的可执行性和执行结果的一致性,为评估大语言模型在编程任务中的表现提供了一个更全面和真实的框架。

链接:https://arxiv.org/abs/2311.08588

机构:University of California, Santa Barbara

xCodeEval: A Large Scale Multilingual Multitask Benchmark for Code Understanding, Generation, Translation and Retrieval

本文介绍了一个名为 xCodeEval 的大规模多语言多任务代码评估基准,涵盖了约 7.5K 个独特问题和11种编程语言。xCodeEval 提供了7个涉及代码理解、生成、翻译和检索的任务,并采用基于执行的方法进行评估。论文还提出了一个名为 ExecEval 的多语言代码执行引擎,支持所有11种语言的单元测试执行。为了平衡验证/测试集中文本-代码样本在多个属性上的分布,作者提出了一种基于几何平均和图论原理的新型数据分割和选择方案。通过对闭源和开源大模型(零样本和微调)进行实验,论文发现 xCodeEval 对当前的语言模型来说仍然具有相当大的挑战性。

链接:https://arxiv.org/abs/2303.03004

机构:Islamic University of Technology

Who Wrote this Code? Watermarking for Code Generation

本文提出了一种名为 SWEET(Selective WatErmarking via Entropy Thresholding)的方法来在代码生成任务中嵌入水印。研究者发现现有的水印方法在低熵的代码生成任务中表现不佳,因此他们通过扩展一种基于 logit 修改的水印方法,引入了熵阈值的概念。SWEET 通过在生成和检测水印时移除低熵片段,既提高了检测能力,又减少了对代码质量的负面影响。实验结果表明,SWEET 在保持代码质量的同时,在检测机器生成的代码文本方面优于所有基线方法,包括事后检测方法。这项研究为解决大语言模型在代码生成任务中的伦理和法律问题提供了一种有效的方法。

链接:https://arxiv.org/abs/2305.15060

机构:Seoul National University

Learning Task Decomposition to Assist Humans in Competitive Programming

本文提出了一种新的方法,通过将语言模型生成的编程问题复杂解决方案自动分解为多个简单的子任务来帮助人们更容易地理解和修复有缺陷的解决方案。作者引入了一个称为"辅助价值"(AssistV)的新目标函数,用于衡量人类修复分解后解决方案的可行性和速度。通过收集人类在不同分解解决方案上的修复经验数据,并将其作为上下文示例,该方法学会了批评、改进和排序分解后的解决方案,以改进 AssistV。在竞赛编程问题的验证中,该方法使非专家解决的问题数量提高了33.3%,速度提高了3.3倍,使他们能够与没有辅助的专家相匹敌。

链接:https://arxiv.org/abs/2406.04604

机构:Tsinghua University

Rewriting the Code: A Simple Method for Large Language Model Augmented Code Search

本文提出了一种名为 ReCo 的方法,对生成增强检索(GAR)框架进行了改进。ReCo 在代码库中重写代码以实现风格规范化,解决了生成的代码与实际代码库中代码风格不一致的问题。实验结果表明,ReCo 显著提高了多种检索场景下的检索准确率。此外,论文还首次提出了"代码风格相似度"指标,用于量化代码间的风格相似性。研究发现现有的指标无法充分捕捉代码的风格细节,凸显了这一新指标的重要性。

链接:https://arxiv.org/abs/2401.04514

机构:Nanyang Technological University

Revisiting Code Similarity Evaluation with Abstract Syntax Tree Edit Distance

本文重新审视了近期的代码相似性评估指标,特别关注了抽象语法树(AST)编辑距离在不同编程语言中的应用。研究通过实验证明了 AST 编辑距离在捕捉复杂代码结构方面的有效性,并发现它与现有指标高度相关。论文还比较了 AST 编辑距离和基于提示的 GPT 相似性分数与 BLEU 得分、执行匹配和 Jaccard 相似度的优缺点。最终,研究者基于树相似度编辑距离(TSED)的改进版本提出了一个适用性强的指标,在所有测试语言中都表现出色。

链接:https://arxiv.org/abs/2404.08817

机构:University of Luxembourg

02

Findings

Code Needs Comments: Enhancing Code LLMs with Comment Augmentation

本文发现代码注释密度对代码大模型的性能有显著影响,并提出了一种新颖的数据增强方法,通过生成代码注释并过滤掉与自然语言相关性低的代码数据,来提高模型对编程技能的理解和掌握。研究结果表明,使用增强后的数据训练的模型在两个广泛使用的编程技能基准测试中表现优于其他模型,证明了该方法的有效性。

链接:https://arxiv.org/abs/2402.13013

机构:Shanghai AI Laboratory

INTERVENOR: Prompting the Coding Ability of Large Language Models with the Interactive Chain of Repair

本文提出了一种名为 INTERVENOR 的系统,它模仿人类在交互式代码修复过程中的行为,涵盖代码诊断和代码修复两个方面。INTERVENOR 通过让大语言模型扮演不同的角色来实现这一目标:代码学习者负责根据指令生成或修复代码,而代码教师则负责构建修复链作为学习者的指导。代码教师在构建修复链时,需要检查学习者生成的代码并根据编译器反馈的错误信息重新评估如何解决代码错误。实验结果表明,INTERVENOR 优于基线模型,在代码生成和代码翻译任务中分别比 GPT-3.5 提高了约 18% 和 4.3%。进一步的分析表明,修复链能够清晰地阐明错误背后的原因,并用自然语言概述解决方案计划。借助代码编译器的反馈,INTERVENOR 可以准确地识别语法错误和断言错误,并提供精确的代码修复指令。

链接:https://arxiv.org/abs/2311.09868

机构:Northeastern University

OpenCodeInterpreter: Integrating Code Generation with Execution and Refinement

本文提出了 OpenCodeInterpreter,一个开源代码大模型系统家族,旨在生成、执行和迭代优化代码。该系统通过 Code-Feedback 数据集,整合了代码执行和人工反馈,实现了动态代码优化。实验证明,OpenCodeInterpreter 在 HumanEval、MBPP 等基准测试中表现出色,尤其 OpenCodeInterpreter-33B 模型的准确率与 GPT-4 Code Interpreter 相近,并且在使用 GPT-4 模拟的人工反馈后,准确率进一步提升,缩小了开源代码大模型与 GPT-4 等专有模型之间的差距。

链接:https://arxiv.org/abs/2402.14658

机构:Multimodal Art Projection Research Community

Iterative Refinement of Project-Level Code Context for Precise Code Generation with Compiler Feedback

本文提出了 CoCoGen,一种新的利用编译器反馈来改进大语言模型生成的代码的方法。CoCoGen 通过静态分析识别生成的代码与项目上下文之间的不匹配,然后利用从代码库中提取的信息迭代地调整和修复识别出的错误,从而有效提高了大模型在生成依赖项目上下文的代码方面的能力,并显著优于现有的基于检索的代码生成基线。

链接:https://arxiv.org/abs/2403.16792

机构:Huazhong University of Science and Technology

Functional Overlap Reranking for Neural Code Generation

本文提出了一种名为 SRank 的新型代码生成重排序策略,它通过量化代码解决方案集群之间的功能重叠,来更好地对代码解决方案进行排序。SRank 模型着重于代码解决方案集群之间的关系,避免了以往方法忽视解决方案集群之间复杂的功能相似性和交互性的问题。实验证明,SRank 在 pass@1 指标上取得了显著成果,显著优于现有方法。即使在有限的采样解决方案和测试用例的情况下,SRank 也表现出鲁棒性和优越性,为代码生成重排序领域树立了新标准。

链接:https://arxiv.org/abs/2311.03366

机构:FPT Software AI Center

Comments as Natural Logic Pivots: Improve Code Generation via Comment Perspective

本文提出了一个名为 MANGO 的新方法,通过利用代码注释作为自然语言和代码语言之间的逻辑桥梁,来增强中小型代码大模型的代码生成能力。该方法包括一种注释对比训练策略和相应的逻辑注释解码策略,在 HumanEval 和 MBPP 数据集上取得了显著的代码生成效果提升,并展现出比传统思维链提示方法更强的鲁棒性。

链接:https://arxiv.org/abs/2404.07549

机构:Beijing Jiaotong University

Fine-tuning Language Models for Joint Rewriting and Completion of Code with Potential Bugs

本文提出了一种新的方法来解决代码补全应用中遇到的部分代码不完整或存在潜在错误的问题。该方法将部分代码视为实现提示,并使用语义转换和迭代自生成方法对代码预训练模型进行微调,使模型能够同时重写和补全部分代码,生成完整的可执行程序。研究结果表明,该方法显著提升了代码补全的成功率,有效处理了潜在错误的代码,并最大限度地保留了原始部分代码的完整性。

链接:https://aclanthology.org/2024.findings-acl.938/

机构:University of Oxford

RePair: Automated Program Repair with Process-based Feedback

本文提出了一种基于过程监督和反馈的小型语言模型自动程序修复方法。通过构建一个包含多个修复记录的 CodeNet4Repair 数据集,作者对基座模型进行了微调,并开发了一个奖励模型作为反馈机制,不断优化修复策略。该方法在迭代生成解决方案过程中,利用编译器和测试用例的反馈,实现了与大型商业语言模型相近的修复效果,并优于基于输出的生成方法。

链接:https://arxiv.org/abs/2408.11296

机构:University of Science and Technology of China

Investigating the Impact of Data Contamination of Large Language Models in Text-to-SQL Translation

本文研究了数据污染对 GPT-3.5 在 Text-to-SQL 代码生成任务中的影响。研究者发现,即使在数据库信息被修改的情况下,GPT-3.5 在未曾见过的 Termite 数据集上的性能也显著下降,这表明数据污染对大语言模型在 Text-to-SQL 翻译任务中的表现有显著影响。

链接:https://arxiv.org/abs/2402.08100

机构:University of Rome Tor Vergata

Decomposition for Enhancing Attention: Improving LLM-based Text-to-SQL through Workflow Paradigm

本文提出了一种基于工作流程范式的方法,旨在通过分解任务来增强大语言模型在文本到 SQL 任务中的注意力和问题解决范围。具体而言,信息确定模块用于消除冗余信息,而基于问题分类的全新提示结构大大增强了模型的注意力。另外,新加入的自我纠正和主动学习模块极大扩展了大模型的问题解决范围,从而提高了基于大模型的方法的性能上限。广泛的实验表明,该方法在 Spider Dev、Spider-Realistic 和 Bird Dev 三个数据集上比现有的基线方法提高了2-3个百分点,并在 Spider Test 数据集上取得了新的最佳性能。

链接:https://arxiv.org/abs/2402.10671

机构:Sun Yat-sen University

Knowledge-to-SQL: Enhancing SQL Generation with Data Expert LLM

本文提出了一个名为“知识到 SQL”的框架,旨在解决现有的文本到 SQL 模型在生成准确 SQL 语句时,由于缺乏必要知识而导致的性能问题。该框架利用一个专门的数据专家大语言模型 (DELLM) 提供额外的知识,以弥补数据库模式和用户问题中缺失的信息,从而提升文本到 SQL 模型的准确性和鲁棒性。

链接:https://arxiv.org/abs/2402.11517

机构:Jinan University

Before Generation, Align it! A Novel and Effective Strategy for Mitigating Hallucinations in Text-to-SQL Generation

本文针对大语言模型在文本到 SQL 转换任务中出现的幻觉问题进行了研究,分析了幻觉的类型和原因,并提出了一种新的任务对齐(TA)策略来缓解这一问题。TA 通过鼓励大模型利用类似任务的经验,减少其泛化负担,从而有效地抑制幻觉。论文设计了基于 TA 的文本到 SQL 框架 TA-SQL,且实验结果表明该框架显著提升了模型的性能,并在多个基准数据集上取得了优异的表现。

链接:https://arxiv.org/abs/2405.15307

机构:The University of Hong Kong

Enhancing Text-to-SQL Parsing through Question Rewriting and Execution-Guided Refinement

本文提出了一种名为 DART-SQL 的新方法,通过利用数据库内容和执行反馈来增强现有的基于大语言模型的文本到 SQL 任务的提示工程方法。DART-SQL 主要包含两个关键组件:问题重写和执行引导的细化。通过利用数据库信息来消除歧义,DART-SQL 可以重写自然语言问题,并利用生成的 SQL 语句的执行结果来迭代地细化 SQL 语句。实验结果表明,该框架在 DAIL-SQL 和 C3 两种基于大模型的方法中,分别平均提高了12.41%和5.38%的执行准确率。

链接:https://aclanthology.org/2024.findings-acl.120/

机构:Harbin Institute of Technology (Shenzhen)

Generalization-Enhanced Code Vulnerability Detection via Multi-Task Instruction Fine-Tuning

本文提出了一个名为 VulLLM 的新框架,通过整合多任务学习和大语言模型,有效挖掘代码漏洞的深层特征,克服了现有代码大模型在漏洞检测中泛化能力不足的问题。VulLLM 利用漏洞补丁构建漏洞定位任务,并利用 GPT-4 提取补丁中的漏洞特征构建漏洞解释任务。这些辅助任务迫使模型理解复杂的漏洞模式,从而提升了漏洞分类的准确性、泛化性和鲁棒性。

链接:https://arxiv.org/abs/2406.03718

机构:Huazhong University of Science and Technology

CodeAttack: Revealing Safety Generalization Challenges of Large Language Models via Code Completion

本文提出了一种名为 CodeAttack 的框架,将自然语言输入转换为代码输入,以测试大语言模型在代码领域的安全泛化能力。研究发现,现有的大模型在面对代码输入时存在普遍的安全漏洞,CodeAttack 能够绕过超过80%的模型的安全防护措施。论文认为,代码训练过程中,大模型学习到的偏见可能导致其优先考虑代码完成,而忽略潜在的安全风险。研究结果表明,大模型在代码领域存在新的安全风险,需要更强大的安全对齐算法来应对其代码生成能力的提升。

链接:https://arxiv.org/abs/2403.07865

机构:Shanghai Jiao Tong University

The Counterfeit Conundrum: Can Code Language Models Grasp the Nuances of Their Incorrect Generations?

本文发现,尽管语言模型在代码生成方面越来越出色,但它们仍然经常生成错误的程序。这些错误程序中,有些明显错误,另一些则更加隐蔽,能够通过简单的正确性检查,例如编译成功。研究者将这些隐蔽的错误程序称为“赝品”,并发现大多数模型对赝品理解非常浅薄,表现出三种明显的失败模式:误判赝品为正确程序、无法准确预测赝品的执行行为、修复赝品的成功率往往低于从头生成正确程序的概率。论文还揭示了赝品的一些意外特性,例如赝品的复杂程度并不一定与问题难度相关,不同模型生成的赝品都难以被自身或其他模型识别。因此,研究者建议,在依赖模型理解自身生成样本时,尤其是在没有外部反馈的情况下,要谨慎小心。

链接:https://arxiv.org/abs/2402.19475

机构:MIT CSAIL

A Critical Study of What Code-LLMs (Do Not) Learn

本文通过对代码大模型的注意力图和隐藏表示进行细粒度分析,发现尽管这些模型在编码辅助任务中表现出色,但它们仍然存在局限性。研究表明,代码大模型只编码输入 token 的特定子集之间的关系,即语法 token 之间和标识符之间的关系,但无法编码语法 token 和标识符之间的关系。此外,与预训练模型相比,微调后的模型对这些关系的编码更差,并且参数数十亿的大模型编码的代码信息明显少于仅有数亿参数的模型。这一发现有助于理解代码大模型的内部工作原理及其局限性。

链接:https://arxiv.org/abs/2406.11930

机构:Technische Universität Darmstadt

StudentEval: A Benchmark of Student-Written Prompts for Large Language Models of Code

本文提出了一种新的代码生成模型评估基准——StudentEval,其特点是包含由编程新手撰写的多个提示,而不是专家提示。通过分析学生在与代码生成模型交互过程中撰写的提示,论文发现模型在应对新手提示方面的表现存在较大差异,并揭示了非确定性采样对学生理解其提示有效性的影响,为利用代码生成模型进行编程教学提供了新的见解。

链接:https://arxiv.org/abs/2306.04556

机构:Oberlin College

OOP: Object-Oriented Programming Evaluation Benchmark for Large Language Models

本文针对目前代码生成评估框架缺乏对面向对象编程(OOP)的关注,提出了一个名为 "OOPBench" 的基准测试,包含了 431 个涵盖 OOP 核心概念的 Python 程序,并引入了一个新的评估指标 "pass@o" 以更好地评估 OOP 代码生成能力。实验结果表明 "pass@o" 比传统指标更能有效地反映 OOP 代码生成的质量,同时揭示了目前领先的代码生成模型在 OOP 方面的表现并不理想,这表明在面向对象编程方面,代码大模型仍有很大的提升空间。

链接:https://arxiv.org/abs/2401.06628

机构:Wuhan University

NaturalCodeBench: Examining Coding Performance Mismatch on HumanEval and Natural User Prompts

本文提出了一个新的代码合成基准测试集 NaturalCodeBench (NCB),旨在更好地反映真实编码任务中的复杂性和多样性。NCB 包含了来自在线编码服务的402个高质量的 Python 和 Java 编程问题,涵盖了6个不同的领域。此外,论文还介绍了一种半自动化的测试用例构建流程,与手动解决方案相比,效率提高了4倍以上。通过在39个大语言模型上进行系统实验,作者发现在 HumanEval 得分接近的模型在 NCB 上的性能差距仍然显著,表明现有模型缺乏对实际代码合成场景的关注或过度优化了 HumanEval。同时,即使是表现最好的 GPT-4 在 NCB 上的表现也远未达到满意的程度。

链接:https://arxiv.org/abs/2405.04520

机构:Zhipu.AI

CodeInsight: A Curated Dataset of Practical Coding Solutions from Stack Overflow

本文贡献了一个专门为代码生成设计的全新数据集,旨在帮助开发人员完成常见任务。该数据集包含清晰的意图、关联的代码片段以及平均三个相关的单元测试,涵盖了 Pandas、Numpy、Regex 等库,以及从 Stack Overflow 中提取的超过 70 个 Python 标准库。该数据集由 Python 专家精心制作了 3402 个示例,旨在用于模型微调和独立评估,并通过对示例进行分类以进行更细致的分析,从而增强对模型在特定编码任务中优缺点的理解。为了减少数据污染,作者对示例进行了细化,并通过 Mistral 7B、CodeLLAMA 13B 和 Starcoder 15B 等三个领先模型的性能验证了这一过程。此外,论文还调查了 GPT-4 在部分数据集上的数据污染测试表现。

链接:https://aclanthology.org/2024.findings-acl.354/

机构:无

EHR-SeqSQL : A Sequential Text-to-SQL Dataset For Interactively Exploring Electronic Health Records

本文提出了一个名为 EHR-SeqSQL 的新型电子病历(EHR)数据库序列文本到 SQL 数据集,旨在解决文本到 SQL 解析中的交互性、组合性和效率等关键问题,以及缩短文本到 SQL 领域实际需求与学术研究之间的差距。该数据集不仅是规模最大的医疗文本到 SQL 数据集基准,也是第一个包含顺序和上下文问题的基准。论文通过数据划分和新的测试集来评估模型的组合泛化能力,实验结果证明了多轮方法在学习组合性方面的优势。此外,该数据集还将专门设计的标记集成到 SQL 查询中,以提高执行效率。

链接:https://arxiv.org/abs/2406.00019

机构:KAIST

MultiSQL: A Schema-Integrated Context-Dependent Text2SQL Dataset with Diverse SQL Operations

本文提出了一个新的依赖上下文的 Text2SQL 数据集 MultiSQL,它通过在三个关键方面扩展现有数据集 CoSQL 和 SparC 来更准确地模拟现实世界中的数据库交互:包含更多种类的 SQL 操作、将数据库模式集成到查询上下文中以及扩展对话长度。MultiSQL 包含近 800 个对话组和超过 9000 个交互回合,涵盖了 166 个复杂的数据库,为交互式用户-数据库对话提供了一个更好的基准。论文还设计了一个提示框架,利用历史数据和自我完善来准确捕捉文本查询和数据库结构之间的依赖关系,实验结果表明了该策略的有效性。

链接:https://aclanthology.org/2024.findings-acl.823/

机构:Nanjing University

DevEval: A Manually-Annotated Code Generation Benchmark Aligned with Real-World Code Repositories

本文针对现有的代码能力评估基准与真实世界代码库不匹配的问题,提出了一个新的基准 DevEval。DevEval 更贴近真实代码库,包含开发者标注的详细信息,并涵盖了多个领域和代码库。论文基于 DevEval 评估了8个流行的大模型的代码生成能力,发现它们在真实代码库中表现不佳,并分析了大模型失败的原因和不足之处,旨在推动大模型在真实代码库中的发展。

链接:https://arxiv.org/abs/2405.19856

机构:Peking University

03

8 月最新论文精选

API-guided Dataset Synthesis to Finetune Large Code Models

本文提出了一种名为 DataScope 的框架,用于通过 API 引导的方式生成高质量的代码模型微调数据集。该框架利用 API 的语义信息,通过选择高 API 覆盖率的现有数据集子集以及使用 API 定义的高级功能和代码骨架来生成新的数据集,从而有效提高代码模型的性能。实验表明,使用 DataScope 生成的微调数据集,即使规模远小于未优化数据集,也能显著提高代码模型的性能,为构建高效、低成本的代码模型微调数据集提供了新的方法。

链接:https://arxiv.org/abs/2408.08343

机构:The Hong Kong University of Science and Technology

How Well Do Large Language Models Serve as End-to-End Secure Code Producers?

本文研究了大语言模型生成安全代码的能力,发现虽然 GPT-3.5 和 GPT-4 能够在一定程度上修复其他大模型生成的代码漏洞,但它们对自身生成的代码漏洞却识别和修复能力有限,且缺乏对特定场景安全风险的意识,导致其生成的代码漏洞率高达75%。论文进一步提出了一种轻量级工具,通过迭代修复程序帮助大模型生成更安全的代码,显著提高了修复成功率。这项研究揭示了当前大模型在安全代码生成方面的局限性,并为提升大模型安全代码生成能力提供了可行的解决方案。

链接:https://arxiv.org/abs/2408.10495

机构:Beihang University

To Code, or Not To Code? Exploring Impact of Code in Pre-training

本文系统地研究了在预训练数据中加入代码对通用语言模型性能的影响,发现即使对于非专门用于代码生成的模型,代码数据也显著提升了模型在各种自然语言推理、世界知识任务、代码基准测试和模型评判胜率方面的表现。研究表明,代码数据是模型泛化能力的关键组成部分,提升代码质量对所有任务的性能都有显著提升。

链接:https://arxiv.org/abs/2408.10914

机构:Cohere For AI

CRUXEval-X: A Benchmark for Multilingual Code Reasoning, Understanding and Execution

本文提出了 CRUXEVAL-X,一个包含 19 种编程语言的多语言代码推理基准测试,旨在解决现有代码基准测试中存在的编程语言偏差和代码任务偏差问题。CRUXEVAL-X 通过全自动、测试引导的方式构建,并利用语言对之间的转换规则来克服跨语言障碍。论文对 24 个代表性的大语言模型进行了评估,发现不同语言之间存在关联性,并揭示了即使是仅在 Python 上训练的模型,在其他语言上的泛化能力也十分可观。

链接:https://arxiv.org/abs/2408.13001

机构:Chinese Academy of Sciences

DOMAINEVAL: An Auto-Constructed Benchmark for Multi-Domain Code Generation

本文提出了一个多领域代码基准测试集 DOMAINEVAL,旨在更全面地评估大语言模型的代码生成能力。该基准测试集包含六个热门领域,并通过一个全自动流程从代码仓库中构建。研究发现,大模型在计算任务上表现较好,但在密码学和系统代码任务上表现较差,性能差距可达68.94%。该研究还观察到,生成更多样本可以提高大模型的整体性能,但可能会加剧领域偏差。

链接:https://arxiv.org/abs/2408.13204

机构:Chinese Academy of Sciences

LogParser-LLM: Advancing Efficient Log Parsing with Large Language Models

本文提出了 LogParser-LLM,一个将大语言模型融入日志解析的新方法。该方法利用大模型强大的语义理解能力和上下文感知能力,无需繁琐的参数调整和标注训练数据,实现了快速适应性和高效的日志解析。论文还针对解析粒度问题,提出了新的评价指标并融入人机交互,让用户可以根据需求调整解析粒度。实验结果表明,LogParser-LLM 在效率和准确性上均优于现有的日志解析方法,展现出强大的解析能力。

链接:https://arxiv.org/abs/2408.13727

机构:Alibaba Group

SWE-bench-java: A GitHub Issue Resolving Benchmark for Java

本文针对软件工程领域中至关重要的 GitHub issue 解决任务,开发了 Java 版本的 SWE-bench,名为 SWE-bench-java,旨在扩展现有 SWE-bench 的多语言支持能力。该论文公开了 SWE-bench-java 数据集、Docker 评估环境和排行榜,并通过经典方法 SWE-agent 和多个强大语言模型的测试验证了其可靠性。论文鼓励社区参与贡献,以推动 SWE-bench-java 的迭代和完善,为实现完全自动化的编程铺平道路。

链接:https://arxiv.org/abs/2408.14354

机构:Chinese Academy of Science

Is Functional Correctness Enough to Evaluate Code Language Models? Exploring Diversity of Generated Codes

本文强调了除了功能正确性以外,代码生成模型生成代码的多样性是评估其代码生成能力的重要指标。论文提出了一种系统的方法来评估代码的多样性,利用了多种衡量代码之间相似性的指标以及功能正确性。该方法引入了利用大语言模型的代码理解和推理能力的代码相似性度量,并证明了该度量与人工判断的相关性最高。通过对模型大小、温度、训练方法、提示策略以及输入问题的难度等因素的深入研究,论文发现,当前的代码生成模型倾向于生成功能上正确的代码,但代码的多样性有限。

链接:https://arxiv.org/abs/2408.14504

机构:Yonsei University

A Survey on Evaluating Large Language Models in Code Generation Tasks

本文对大语言模型在代码生成任务中的评估方法和指标进行了综述。论文首先回顾了大模型在代码生成领域的发展历程,然后详细介绍了评估大模型代码生成能力的各种方法和指标,包括代码正确性、效率、可读性以及基于专家评审和用户体验的评估方法。论文还评估了广泛使用的基准数据集,指出了其局限性并提出了未来改进的方向。通过结合多种评估指标,如代码编译/解释成功率、单元测试通过率以及性能和效率指标,论文分析了代码生成模型在不同任务中的表现,全面评估了大模型在代码生成中的实际应用,并讨论了当前评估大模型代码生成面临的挑战。

链接:https://arxiv.org/abs/2408.16498

机构:Peking University

04

联系我们

我们团队的多项工作,包括综述、模型、数据集,都在陆续开源中。如果您喜欢我们的工作,欢迎试用、指正错误和贡献代码,也可以给我们的项目增加 Star、引用我们的论文以支持我们。

代码大模型综述(覆盖900篇论文):https://arxiv.org/abs/2311.07989

GitHub 项目:https://github.com/codefuse-ai/Awesome-Code-LLM

HuggingFace 主页:https://huggingface.co/codefuse-ai

魔搭社区主页:https://modelscope.cn/organization/codefuse-ai

获取最新信息

你还可以扫描下方二维码直接加入群聊

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值