2024年6月118篇代码大模型论文最全整理
引言本文整理了2024年6月全球各大高校与科研机构发布的118篇代码大模型相关论文。根据论文内容,我们将其整理为基座模型与训练数据、代码微调、测试基准、代码Agent、低资源语言处理、AI代码安全与分析、人机交互、软件工程下游任务应用(包括代码生成、代码总结、代码表征、SQL生成、软件测试、漏洞检测、日志分析、软件建模)等主题的论文专辑。全文篇幅较长,建议电脑端阅读。若您想了解其他时期的代码大模型
引言
本文整理了2024年6月全球各大高校与科研机构发布的118篇代码大模型相关论文。根据论文内容,我们将其整理为基座模型与训练数据、代码微调、测试基准、代码Agent、低资源语言处理、AI代码安全与分析、人机交互、软件工程下游任务应用(包括代码生成、代码总结、代码表征、SQL生成、软件测试、漏洞检测、日志分析、软件建模)等主题的论文专辑。全文篇幅较长,建议电脑端阅读。
若您想了解其他时期的代码大模型论文,也欢迎关注我们的【代码大模型综述】 https://arxiv.org/abs/2311.07989 和【GitHub 开源项目】https://github.com/codefuse-ai/Awesome-Code-LLM。
来自:CodeFuse
01
编辑精选
CodeR: Issue Resolving with Multi-Agent and Task Graphs
本文提出了一个名为 CodeR 的多智能体框架,用于自动修复和解决代码仓库中报告的错误,以及添加新功能。CodeR 采用预定义的任务图来指导修复过程。在 SWE-bench lite 数据集上,CodeR 仅提交一次就能解决 28.33% 的问题。论文还分析了 CodeR 各项设计对性能的影响,为该研究方向的进一步发展提供了见解。CodeR 的提出有望提高软件开发和维护的效率。
发布日期:2024-06-03
链接:https://arxiv.org/abs/2406.01304
机构:Huawei
DataComp-LM: In search of the next generation of training sets for language models
本文提出了一个用于语言模型受控数据集实验的测试平台 DCLM。作者提供了一个从 Common Crawl 中提取的 240T tokens 的标准语料库,有效的预训练方法以及广泛的 53 个下游评估任务。通过在 DCLM 上进行的大量实验,作者发现基于模型的过滤对于构建高质量的训练集至关重要。由此产生的数据集 DCLM-Baseline 能够使用 2.6T 训练 tokens 将一个 7B 参数的语言模型从头训练到 MMLU 上的 64% 的 5-shot 准确率,与之前最先进的开放数据语言模型 MAP-Neo 相比,在计算量减少 40% 的情况下,MMLU 上的性能提高了 6.6 个百分点。该基线模型在 MMLU 上的表现与 Mistral-7B-v0.3 和 Llama-3 8B 相当,在 53 个自然语言理解任务上的平均表现也与 Llama-3 8B 相似,但训练所需的计算量却减少了 6.6 倍。这些结果突出了数据集设计对语言模型训练的重要性,为进一步研究数据策展提供了一个起点。
发布日期:2024-06-17
链接:https://arxiv.org/abs/2406.11794
机构:University of Washington, Apple
DeepSeek-Coder-V2: Breaking the Barrier of Closed-Source Models in Code Intelligence
DeepSeek-Coder-V2 是基于 DeepSeek-V2 4T tokens 检查点做了 6T tokens 加训获得的模型,显著提高了代码和数学推理能力,同时在一般语言任务上保持相当的性能。与之前的版本相比,DeepSeek-Coder-V2 在代码相关任务、推理和通用能力方面都有重大进展,支持的编程语言从86 种扩展到 338 种,上下文长度从 16K 扩展到 128K。在标准基准测试中,DeepSeek-Coder-V2 在代码和数学基准测试方面优于 GPT4-Turbo、Claude 3 Opus 和 Gemini 1.5 Pro 等闭源模型。
发布日期:2024-06-17
链接:https://arxiv.org/abs/2406.11931
机构:DeepSeek-AI
Long Code Arena: a Set of Benchmarks for Long-Context Code Models
本文针对现有的代码处理基准数据集规模有限的问题,提出了一个名为 Long Code Arena 的大型代码处理基准套件,包含六个需要项目级上下文的代码处理任务。这些任务涵盖了代码生成的各种方面,例如基于库的代码生成、CI构建修复、项目级代码补全、提交信息生成、错误定位以及模块摘要等。论文为每个任务提供了经过人工验证的测试数据集、评估套件以及基于流行大语言模型的开源基线解决方案,方便其他研究人员使用和学习。
发布日期:2024-06-17
链接:https://arxiv.org/abs/2406.11612
机构:JetBrains Research
ChatGLM: A Family of Large Language Models from GLM-130B to GLM-4 All Tools
本文回顾了 ChatGLM 家族的发展历史与最新进展,并重点介绍了 GLM-4 模型,开源了 GLM-4 9B。这些模型在大规模中英文语料上进行预训练,并通过监督微调和人类反馈学习等多阶段后训练过程实现了高质量的对齐。实验结果表明,GLM-4 在通用评测、指令遵循、长文本任务和中文对齐等方面表现出色,与 GPT-4 和 Claude 等先进模型相当甚至超越。此外,论文还介绍了 GLM-4 All Tools 模型,它能够理解用户意图并自主决定使用各种工具来完成复杂任务。
发布日期:2024-06-18
链接:https://arxiv.org/abs/2406.12793
机构:Zhipu AI, Tsinghua University
LiveBench: A Challenging, Contamination-Free LLM Benchmark
本文提出了一个名为 LiveBench 的新型基准测试,旨在克服现有基准测试中存在的测试集污染和人工评估/LLM评估问题。LiveBench 通过引入从最近信息来源(如数学竞赛、arXiv论文、新闻文章和数据集)提取的实时问题,并利用客观地面真实值自动评估答案,来构建一个不易受污染且难度更大的基准测试,从而更准确地衡量大模型的能力。
发布日期:2024-06-27
链接:https://arxiv.org/abs/2406.19314
机构:Abacus.AI
02
基座模型与预训练数据
Skywork-MoE: A Deep Dive into Training Techniques for Mixture-of-Experts Language Models
Skywork-MoE 是一个拥有 146B 总参数量和 16 个专家的高性能混合专家(MoE)大语言模型。研究发现,在选择从头训练还是从已有的密集型检查点(Skywork-13B)进行再循环训练时,需要同时考虑现有检查点的性能和 MoE 训练预算。本文还突出了两种创新技术:门控 logit 归一化和自适应辅助损失系数,前者可以提高专家的多样性,后者允许针对不同层调整辅助损失系数。实验结果证实了这些方法的有效性。利用这些技术和见解,经过在 SkyPile 语料库的浓缩子集上进行再循环训练,Skywork-MoE 在各种基准测试中都表现出色。
发布日期:2024-06-03
链接:https://arxiv.org/abs/2406.06563
机构:Kunlun Inc.
Zyda: A 1.3T Dataset for Open Language Modeling
本文构建了一个名为 Zyda 的开放许可数据集,包含 1.3T token,该数据集通过整合多个知名开源数据集构建而成。论文对数据进行了严格过滤和去重处理,确保了数据集的高质量。评估表明 Zyda 不仅在质量上与其他开放数据集如 Dolma、FineWeb 和 RefinedWeb 相媲美,还显著提高了 Pythia 模型套件中同类模型的性能。论文中严格的数据处理方法极大地提高了 Zyda 的有效性,甚至优于其子集中的最佳数据集在独立使用时的表现。
发布日期:2024-06-04
链接:https://arxiv.org/abs/2406.01981
机构:Zyphra
Xmodel-LM Technical Report
Xmodel-LM 是一个 1.1B 参数量的中英双语模型,在 2T tokens 上进行预训练,在各基准测试中表现都超越相似大小的开源模型。
发布日期:2024-06-05
链接:https://arxiv.org/abs/2406.02856
机构:XiaoduoAI
GEB-1.3B: Open Lightweight Large Language Model
GEB-1.3B 是一个 1.3B 参数量的中英双语模型,在 550B tokens 上进行预训练,可在 CPU 上进行高效推理。
发布日期:2024-06-14
链接:https://arxiv.org/abs/2406.09900
机构:GEB
HARE: HumAn pRiors, a key to small language model Efficiency
本文提出了一个利用人类先验知识构建数据集的原则,用于在资源受限的情况下提高小型语言模型的训练效率。该原则强调在保证语义多样性和数据质量一致性的同时,避免数据泄露,从而训练出高性能的小型语言模型。作者基于这一原则训练了一个名为 HARE-1.1B 的小型语言模型,并通过在大规模基准数据集上的广泛实验证明了该原则的有效性。这项研究为从人类先验知识的角度出发,在资源受限的环境下高效训练语言模型提供了新的见解。
发布日期:2024-06-17
链接:https://arxiv.org/abs/2406.11410
机构:LiteAI China Telecom Guizhou Branch
Nemotron-4 340B Technical Report
Numotron-4 340B 是迄今为止最大的开源模型。本模型在各种评估基准测试中表现出色,并且可以部署在单个配备 8 张 H100 的 DGX 机器上上。作者认为,社区可以在各种研究和商业应用中受益于这些模型,特别是在生成合成数据以训练更小的语言模型方面。值得注意的是,在模型对齐过程中使用的数据中,超过 98% 是合成生成的,展示了这些模型在生成合成数据方面的有效性。为了进一步支持开放研究并促进模型开发,作者还开源了在模型对齐过程中使用的合成数据生成流水线。
发布日期:2024-06-17
链接:https://arxiv.org/abs/2406.11704
机构:NVIDIA
CodeGemma: Open Code Models Based on Gemma
CodeGemma 模型由 Gemma 加训 500B tokens 并微调获得,微调后的 7B 模型报告结果为:HumanEval 60.4,MBPP 55.2,GSM8K 47.3,MATH 22.3。
发布日期:2024-06-17
链接:https://arxiv.org/abs/2406.11409
机构:Google LLC
The FineWeb Datasets: Decanting the Web for the Finest Text Data at Scale
本文推出了一个名为 FineWeb 的 15T token 的大模型预训练数据集,它基于96个 Common Crawl 快照,并通过精心设计的去重和过滤策略提高了模型性能。论文还细致地记录了 FineWeb 的构建过程,并通过消融实验分析了各种设计选择的影响。此外,论文还发布了 FineWeb-Edu,一个从 FineWeb 中提取的 1.3T token 教育文本数据集,用于训练在知识和推理密集型任务中表现优异的语言模型。作者开源了 FineWeb、FineWeb-Edu 以及数据处理代码和所有消融实验模型,为研究人员提供更深入的预训练数据集构建和模型训练方法的理解。
发布日期:2024-06-25
链接:https://arxiv.org/abs/2406.17557
机构:Hugging Face
YuLan: An Open-source Large Language Model
本文介绍了12B开源大模型玉兰的开发过程。论文详细阐述了玉兰的训练方法,包括使用多语言数据进行预训练、通过指令微调和人类对齐提升模型能力,以及采用分阶段的课程学习框架帮助模型学习复杂和长尾知识。最终,玉兰在英语和中文基准测试中取得了与当前最先进模型相当的性能,为从零开始开发大型语言模型提供了全面的技术路线图。
发布日期:2024-06-28
链接:https://arxiv.org/abs/2406.19853
机构:Renmin University of China
03
代码微调
PLUM: Preference Learning Plus Test Cases Yields Better Code Language Models
本文提出了一个新的基于偏好学习的框架 PLUM,用于增强代码语言模型的性能。作者通过生成测试用例、采样候选解并根据测试结果创建偏好数据集,最后使用偏好学习算法训练模型。实验结果表明,PLUM 显著提升了现有代码语言模型在 HumanEval 和 MBPP 等基准测试中的表现,即使是在目前最先进的开源语言模型 CodeQwen-1.5-7B-Chat 上也取得了进步。此外,PLUM 与有监督微调(SFT)阶段互补,展现出协同效应。本文还探讨了偏好学习在代码大模型中的关键成功因素和潜在益处。
发布日期:2024-06-11
链接:https://arxiv.org/abs/2406.06887
机构:University of Illinois Urbana-Champaign
Unlock the Correlation between Supervised Fine-Tuning and Reinforcement Learning in Training Code Large Language Models
本文探究了代码生成领域中监督微调 (SFT) 和强化学习 (RL) 之间的关联性。通过构建一个包含基本函数和合成函数的训练集,研究发现 SFT 需要同时使用基本函数和少量合成函数才能实现泛化能力,而 RL 可以进一步增强模型对目标领域的泛化能力,即使使用相同的训练提示词。此外,从头开始训练 RL 可以缓解 SFT 阶段带来的过拟合问题。
发布日期:2024-06-14
链接:https://arxiv.org/abs/2406.10305
机构:ByteDance
Measuring memorization in RLHF for code completion
本文分析了基于人类反馈的强化学习 (RLHF) 过程中训练数据记忆的现象。研究发现,与直接微调相比,RLHF 显著降低了奖励模型和强化学习阶段记忆训练数据的概率,但如果在 RLHF 的微调阶段已经记忆了数据,那么这些数据在大多数情况下仍然会被记忆。该研究重点关注代码补全模型,并揭示了在使用 RLHF 对大模型进行对齐时,训练数据记忆可能带来的隐私风险。
发布日期:2024-06-17
链接:https://arxiv.org/abs/2406.11715
机构:Google DeepMind
Code-Optimise: Self-Generated Preference Data for Correctness and Efficiency
本文提出了 Code-Optimise 框架,它通过利用自生成偏好数据,将代码的正确性(通过或失败)和运行时间(快或慢)都作为学习信号,从而训练代码语言模型生成既正确又高效的代码。Code-Optimise 框架轻量且鲁棒,能够动态选择解决方案减少过拟合,同时避免依赖更大模型来获取学习信号。该框架在保持较高代码正确率的同时,显著降低了代码运行时间,并在不同领域的数据集上都取得了显著效果,同时还缩短了代码长度,降低了推理成本。
发布日期:2024-06-18
链接:https://arxiv.org/abs/2406.12502
机构:Huawei Noah’s Ark Lab
UniCoder: Scaling Code Large Language Model via Universal Code
本文提出了一个名为 UniCode 的通用代码中间表示,通过将算法步骤用编程语言中的赋值运算符、条件运算符和循环等语法描述,并以此训练一个名为 UniCoder 的多任务学习模型。该模型通过在代码生成过程中加入通用代码,使模型能够更好地理解自然语言指令并生成高质量的代码。实验证明,UniCoder 在代码翻译和生成任务中显著优于现有的基于思维链的提示方法,展现了伪代码结构提示的有效性。
发布日期:2024-06-24
链接:https://arxiv.org/abs/2406.16441
机构:Beihang University
Applying RLAIF for Code Generation with API-usage in Lightweight LLMs
本文将 AI 反馈强化学习(RLAIF)应用于提升轻量级语言模型的代码生成能力,特别是针对需要编写 API 调用这一具有挑战性的任务。该框架利用更强大的语言模型(例如 GPT-3.5)的反馈,通过特殊的提示策略训练奖励模型,从而使小型语言模型在代码生成时更精准、更符合预期。实验证明,该框架显著提升了模型的代码生成性能,尤其是小型模型的表现甚至超越了参数量更大的模型,展现了 RLAIF 在提升轻量级语言模型的代码生成能力方面的潜力。
发布日期:2024-06-28
链接:https://arxiv.org/abs/2406.20060
机构:Apple
04
测试基准
AICoderEval: Improving AI Domain Code Generation of Large Language Models
本文构建了一个名为 AICoderEval 的数据集,该数据集专注于基于 HuggingFace、PyTorch 和 TensorFlow 等 AI 领域真实世界任务,并提供了全面的评估指标和完整的测试程序,用于增强大语言模型在特定任务代码生成方面的能力。此外,论文还提出了一个基于代理的框架 CoderGen,以帮助大语言模型在 AICoderEval 上生成与真实世界任务相关的代码,并在此基础上训练了一个名为 AICoder 的更强大的任务特定代码生成模型。实验结果表明了 CoderGen 在提高大语言模型的任务特定代码生成能力方面的有效性,且 AICoder 的表现优于当前的代码生成大语言模型,证明了 AICoderEval 基准的高质量。
发布日期:2024-06-07
链接:https://arxiv.org/abs/2406.04712
机构:AutoAgents.ai
RepoQA: Evaluating Long Context Code Understanding
本文提出了一个名为 RepoQA 的基准测试,用于评估大语言模型在长代码上下文理解方面的能力。与传统的针对原始文本的评估方法不同,RepoQA 专注于评估模型对代码仓库的理解。作者构建了一个名为 Searching Needle Function (SNF) 的任务,要求模型根据自然语言描述搜索相应的函数。RepoQA 是一个多语言和全面的基准测试,包含了来自 5 种现代编程语言的 50 个流行仓库中的 500 个代码搜索任务。通过在 RepoQA 上评估 26 个通用和特定于代码的大语言模型,作者发现了开放和专有模型之间仍然存在差距,不同的模型擅长不同的编程语言,以及模型在没有注释的情况下可能更好地理解代码。
发布日期:2024-06-10
链接:https://arxiv.org/abs/2406.06025
机构:University of Illinois Urbana-Champaign
Can AI Beat Undergraduates in Entry-level Java Assignments? Benchmarking Large Language Models on JavaBench
本文提出了一个全新的 Java 编程基准测试集 JavaBench,用于评估大语言模型在面向对象编程方面的能力。与现有的基准测试集相比,JavaBench 填补了以下三个方面的空白:编程语言的不平衡、代码粒度的不平衡以及缺乏对高级特性的考察。论文还提出了一个系统化的评估设计,涵盖了不同的上下文设置、合成策略和粒度,并使用分层指标进行评估。通过大量实验,论文发现大语言模型在项目级别的 Java 编程方面远远落后于本科生,同时也发现使用方法签名作为提示上下文可能是项目级代码生成的理想平衡点。
发布日期:2024-06-10
链接:https://arxiv.org/abs/2406.12902
机构:The Hong Kong University of Science and Technology
McEval: Massively Multilingual Code Evaluation
本文提出了一个大规模的多语言代码基准测试集 McEval,其包含了 40 种编程语言的一万六千个测试样本。该基准测试集旨在评估代码大语言模型在多语言场景下的能力,并推动相关研究的发展。此外,论文还介绍了一个基于 McEval-Instruct 语料库训练的多语言编程模型 mCoder,用于支持多语言编程语言的生成。通过在 McEval 上的广泛实验,论文揭示了开源模型和封闭源代码语言模型(如 GPT 系列模型)在众多语言上仍存在较大差距,表明在这一领域还有很长的研究之路要走。
发布日期:2024-06-11
链接:https://arxiv.org/abs/2406.07436
机构:Beihang University
VersiCode: Towards Version-controllable Code Generation
本文提出了一个名为 VersiCode 的新数据集,用于评估大语言模型生成与特定库版本相符的代码的能力。该数据集包含 300 个库的 2000 多个版本,跨越了 9 年时间。论文设计了两个评估任务:版本特定的代码补全和依赖版本的代码编辑,并通过实验验证了现有的大语言模型在处理版本特定代码生成任务上的局限性。VersiCode 数据集为研究人员提供了新的工具,能够更深入地了解大语言模型在代码生成方面的能力和局限性,并为未来的研究方向提供了新的方向。
发布日期:2024-06-11
链接:https://arxiv.org/abs/2406.07411
机构:Monash University, Nanjing University of Posts and Telecommunications
Towards more realistic evaluation of LLM-based code generation: an experimental study and beyond
本文针对现有评估大语言模型代码生成能力方法的缺陷,提出了一个全新的、基于软件项目动态演化的评估框架。该框架首先构建了一个包含演化信息、可自动执行的代码生成数据集,并根据代码依赖关系进行分类,更全面地评估模型在不同依赖关系下生成函数的能力。研究结果表明,忽略代码演化会导致对 LLM 性能评估结果的高估,并提出了一些更真实的评估 LLM 代码生成能力的建议。该论文还构建了一个共享的代码生成工具箱,为未来的研究提供便利。
发布日期:2024-06-11
链接:https://arxiv.org/abs/2406.06918
机构:Sun Yat-sen University
VulDetectBench: Evaluating the Deep Capability of Vulnerability Detection with Large Language Models
本构建了一个名为 VulDetectBench 的基准数据集,专门用于评估大语言模型在程序漏洞检测方面的能力。研究人员通过五个难度递增的任务,全面评估了模型识别、分类和定位漏洞的能力。研究结果表明,尽管现有模型在识别和分类漏洞方面可以达到 80% 以上的准确率,但在更具体的漏洞分析任务中表现不佳,准确率低于 30%,难以提供有价值的辅助信息用于专业漏洞挖掘。该基准有效地评估了不同模型在漏洞检测任务中不同层次的能力,为未来研究和提升代码安全领域提供了基础。
发布日期:2024-06-11
链接:https://arxiv.org/abs/2406.07595
机构:Fudan University, Huazhong University of Science and Technology
BookSQL: A Large Scale Text-to-SQL Dataset for Accounting Domain
本文针对现有自然语言接口到数据库数据集的不足,提出了一个名为 BookSQL 的大规模文本到 SQL 数据集,专注于财务和会计领域。该数据集包含10万条自然语言查询-SQL对和100万条记录的会计数据库,旨在为开发能够理解和处理财务领域自然语言查询的模型提供新的训练数据。研究人员还对现有模型进行了实验,发现这些模型在处理 BookSQL 数据集时存在显著的性能差距,表明需要针对该领域开发更专业化的模型。
发布日期:2024-06-12
链接:https://arxiv.org/abs/2406.07860
机构:Indian Institute of Technology Kanpur
ChartMimic: Evaluating LMM's Cross-Modal Reasoning Capability via Chart-to-Code Generation
本文提出了一个名为 ChartMimic 的新基准测试,它旨在评估多模态大模型在视觉基础代码生成方面的能力。ChartMimic 使用信息密集的视觉图表和文本指令作为输入,要求大模型生成相应的图表渲染代码。该基准测试包含1000个由人类精心策划的(图表、指令、代码)三元组,代表了科学论文中不同领域(例如物理学、计算机科学、经济学等)的真实图表使用案例。这些图表涵盖了 18 种常规类型和 4 种高级类型,分为 191 个子类别。此外,论文还提出了多级评估指标,以对输出代码和渲染的图表进行自动和全面的评估。与现有的代码生成基准测试不同,ChartMimic 重点评估达模型协调视觉理解、代码生成和跨模态推理等认知能力的融合能力。对 3 个私有模型和 11 个开放权重模型的评估突出了 ChartMimic 带来的巨大挑战。即使是先进的 GPT-4V 和 Claude-3-opus 的平均得分分别只有 73.2 和 53.7,表明还有很大的改进空间。论文认为:ChartMimic 将激励大模型的开发,推动人工智能的通用化发展。
发布日期:2024-06-14
链接:https://arxiv.org/abs/2406.09961
机构:Tsinghua University, The Chinese University of Hong Kong
CoSQA+: Enhancing Code Search Dataset with Matching Code
本提出了一个名为 CoSQA+ 的新代码搜索数据集,它通过将高质量的自然语言查询与多个合适的代码片段配对,解决了现有代码搜索数据集存在的查询不真实或代码匹配不准确以及仅使用一对一配对等问题。论文利用大语言模型自动完成配对标注、过滤和代码生成,并通过实验表明 CoSQA+ 的质量优于 CoSQA,在 CoSQA+ 上训练的模型表现更好。此外,论文还提出了一种新的评价指标 MMRR 来评估一对多代码搜索的性能。
发布日期:2024-06-17
链接:https://arxiv.org/abs/2406.11589
机构:Sun Yat-sen University
REPOEXEC: Evaluate Code Generation with a Repository-Level Executable Benchmark
本文提出了一个新的基准测试 RepoExec,用于评估大规模代码生成模型在仓库级别上生成可执行和功能正确的代码的能力。论文探索了一个受控场景,开发者指定必要的代码依赖关系,挑战模型准确地集成这些依赖关系。实验表明,预训练的基座模型在正确性方面优于指令微调后的模型,但后者在利用提供的依赖关系和展示调试能力方面表现更好。此外,论文还引入了一个新的指令微调数据集,重点关注代码依赖关系,并证明在该数据集上微调的代码生成模型能够更有效地利用这些依赖关系。RepoExec 旨在提供一个全面的评估方法,评估代码功能性和与开发者意图的一致性,为在实际场景中应用更可靠和适用的代码生成模型铺平了道路。
发布日期:2024-06-17
链接:https://arxiv.org/abs/2406.11927
机构:FPT Software AI Center
ScenEval: A Benchmark for Scenario-Based Evaluation of Code Generation
本文提出了一种评估机器学习模型的新方法,通过构建带有元数据的基准测试数据集,并使用测试态射根据元数据过滤测试用例,形成不同场景下的测试数据集。作者以大语言模型在代码生成任务中的表现为例,构建了一个名为 ScenEval 的基准测试集,并用其评估了 ChatGPT 在 Java 代码生成方面的性能。实验结果表明,ChatGPT 的表现随着编码任务复杂度的增加而下降,在多线程、数据结构算法和递归方法等高级主题上表现最弱。ChatGPT 生成的 Java 代码在代码行数上往往比参考解决方案短得多,但如果生成的代码是正确的,则在圈复杂度和认知复杂度等指标上往往更复杂;如果生成的代码不正确,则复杂度可能低于参考解决方案。
发布日期:2024-06-18
链接:https://arxiv.org/abs/2406.12635
机构:Oxford Brookes University
CodeRAG-Bench: Can Retrieval Augment Code Generation?
本文探讨了检索增强生成(RAG)技术在代码生成任务中的应用。作者构建了一个全面的评估基准 CodeRAG-Bench,涵盖了基本编程、开放领域和仓库级别的代码生成问题。通过从竞赛解决方案、在线教程、库文档、StackOverflow 帖子和 GitHub 仓库中检索上下文信息,研究发现检索高质量的上下文可以显著提高代码生成的性能。然而,当前的检索器在词汇重叠有限的情况下仍然难以获取有用的上下文,生成器也难以在上下文长度有限或整合额外上下文的能力不足时取得改进。该论文为促进面向代码的 RAG 方法的进一步发展提供了一个有效的测试平台。
发布日期:2024-06-20
链接:https://arxiv.org/abs/2406.14497
机构:Carnegie Mellon University
Bug In the Code Stack: Can LLMs Find Bugs in Large Python Code Stacks
本文提出了一个新的基准测试集合 Bug In The Code Stack (BICS),用于评估大语言模型在识别大型源代码中简单语法错误方面的能力。通过对不同模型在代码环境中的表现进行评估,论文揭示了以下三个关键见解:与文本环境相比,代码环境对于信息检索任务构成了更大的挑战;不同模型之间存在显著的性能差异;较长的上下文长度与性能下降之间存在明显的相关性,但不同模型之间性能下降的程度有所不同。这项研究强调了在将大语言模型进一步开发用于程序合成时,需要确保模型能够理解语法并编写语法正确的代码。
发布日期:2024-06-21
链接:https://arxiv.org/abs/2406.15325
机构:University of Waterloo
BigCodeBench: Benchmarking Code Generation with Diverse Function Calls and Complex Instructions
本文提出了一个名为 BigCodeBench 的基准测试,该测试挑战大语言模型在139个库和7个领域中使用多个函数调用作为工具来解决 1140 个精细编程任务的能力。此外,本文还提出了一种面向自然语言的 BigCodeBench 变体,BigCodeBench-Instruct,该变体自动将原始文档字符串转换为只包含基本信息的简短指令。通过评估60个LLMs,结果表明LLMs目前还不具备精确地遵循复杂指令并使用函数调用的能力,得分仅为60%,远低于人类的97%表现。这些结果突出这一领域需要进一步的发展。
发布日期:2024-06-22
链接:https://arxiv.org/abs/2406.15877
机构:Monash University
RES-Q: Evaluating Code-Editing Large Language Model Systems at the Repository Scale
本文提出了一个名为 RES-Q 的基于自然语言指令的基准测试,用于评估基于大语言模型的代码仓库编辑系统。RES-Q 包含100个从真实 GitHub 提交中衍生出的仓库编辑任务,可以更全面地评估模型的能力。作者使用 RES-Q 评估了多个最先进的大模型,发现尽管它们在传统的 HumanEval 基准测试上的表现相差不大,但在 RES-Q 上却有明显差异,表明 RES-Q 能够在传统基准测试趋于饱和时区分模型能力。此外,作者还研究了 token 效率、与现有基准测试的性能关系以及开源与闭源大模型之间的差异。
发布日期:2024-06-24
链接:https://arxiv.org/abs/2406.16801
机构:Qurrent AI
05
代码Agent
Multi-Agent Software Development through Cross-Team Collaboration
本文提出了一个名为跨团队协作(Cross-Team Collaboration,CTC)的可扩展多团队框架,旨在解决大语言模型在软件开发中多智能体协作过程中存在的问题。通过该框架,多个协作团队可以在跨团队协作环境中共同提出各种决策,并相互交流见解,从而实现更优质的内容生成。实验结果表明,该框架在软件开发和故事生成等领域相较于现有基准方法有显著提升,证明了该框架的有效性和广泛适用性。这项工作为大语言模型智能体指明了跨团队协作的新范式,有望推动其在软件开发等领域的显著发展。
发布日期:2024-06-13
链接:https://arxiv.org/abs/2406.08979
机构:Zhejiang University, Tsinghua University
AgileCoder: Dynamic Collaborative Agents for Software Development based on Agile Methodology
本文提出了一个名为 AgileCoder 的多智能体系统,它将敏捷开发方法整合到软件开发流程中,赋予不同智能体特定角色,例如产品经理、开发者和测试人员,并通过迭代的冲刺方式协同开发软件。该系统还引入了一个动态代码图生成模块,能够根据代码库的更新动态创建代码依赖图,帮助智能体更好地理解代码库,从而提高代码生成和修改的精确度。实验结果表明,AgileCoder 在性能上超越了现有的基准模型,展现了多智能体系统在复杂软件工程环境中的潜力,并为软件开发领域树立了一个新的标准。
发布日期:2024-06-16
链接:https://arxiv.org/abs/2406.11912
机构:FPT Software AI Center
MASAI: Modular Architecture for Software-engineering AI Agents
本文提出了一种模块化的软件工程人工智能(MASAI)架构,通过将复杂问题划分为多个子问题,并由不同的大语言模型驱动的子代理来解决,每个子代理具有明确的目标和策略。这种模块化架构的优势在于可以针对不同子代理采用和调整不同的问题解决策略,使子代理能够从仓库中分散的不同信息源收集信息,并避免不必要的长轨迹,从而降低成本和减少无关上下文。在具有挑战性的 SWE-bench Lite 数据集上,MASAI 取得了最高的性能表现,证明了其有效性。论文还对 MASAI 与其他代理方法进行了全面评估,分析了设计决策的影响及其对 MASAI 成功的贡献。
发布日期:2024-06-17
链接:https://arxiv.org/abs/2406.11638
机构:Microsoft Research India
CodeNav: Beyond tool-use to using real-world codebases with LLM agents
本文提出了一种名为 CodeNav 的 LLM 代理,它能够自动索引和搜索代码库中从未见过的代码片段,并将其用于解决用户查询。与需要预先手动描述工具才能使用的 LLM 代理不同,CodeNav 能够自动识别和导入相关代码片段,并利用它们逐步生成解决方案并进行执行反馈。论文通过案例研究展示了 CodeNav 的能力,并通过实验比较了直接使用代码与使用预先定义的工具的效果,最终证实了代码使用在解决用户查询方面的优势。
发布日期:2024-06-18
链接:https://arxiv.org/abs/2406.12276
机构:Allen Institute for AI
06
低资源语言与DSL
VerilogReader: LLM-Aided Hardware Test Generation
本文探索了将大语言模型集成到覆盖率导向测试生成(CDG)过程中的方法。通过让 LLM 充当 Verilog 代码阅读器,准确理解代码逻辑,从而生成能够到达未探索代码分支的测试激励。作者设计了一个 Verilog 基准测试套件,将该框架与随机测试进行比较,实验表明在 LLM 理解范围内的设计上,该框架优于随机测试。此外,论文还提出了优化 LLM 理解范围和准确性的提示工程方法。
发布日期:2024-06-03
链接:https://arxiv.org/abs/2406.04373
机构:Peking University
VHDL-Eval: A Framework for Evaluating Large Language Models in VHDL Code Generation
本文提出了一个全面的评估框架,用于评估大语言模型在 VHDL 代码生成任务中的性能。作者构建了一个包含 202 个问题的 VHDL 评估数据集,并使用专门设计的自验证测试平台来评估生成的 VHDL 代码的功能正确性。通过对不同大语言模型及其变体进行初步评估,研究结果突显了现有大语言模型在 VHDL 代码生成方面面临的重大挑战,表明仍有很大的改进空间。这项研究强调了专门针对 VHDL 进行监督微调代码生成模型的必要性,为寻求高效代码生成解决方案的 VHDL 设计人员提供了潜在的益处。
发布日期:2024-06-06
链接:https://arxiv.org/abs/2406.04379
机构:IBM Research
Benchmarking Generative Models on Computational Thinking Tests in Elementary Visual Programming
本文构建了一个新的基准测试数据集,用于评估生成式模型在计算思维和问题解决方面的能力。研究发现,尽管当前最先进的模型在各种领域的基准测试中表现出色,但在面对小学生水平的问题解决任务时却难以胜任。为了提高模型的性能,作者提出了一种新颖的合成数据生成方法,通过捕捉不同技能水平的符号信息,从而生成全面的数据集。这种方法有助于改进模型在视觉编程领域中的计算思维能力。论文的研究成果为提升生成式模型的计算思维水平提供了新的思路和方向。
发布日期:2024-06-14
链接:https://arxiv.org/abs/2406.09891
机构:MPI-SWS
Program Synthesis Benchmark for Visual Programming in XLogoOnline Environment
本文提出了一个新的视觉编程程序合成基准测试,其包含了 85 个基于 Logo 语言,需要结合空间规划、基础编程和逻辑推理等技能的真实世界任务。研究发现当前最先进的模型如 GPT-4V 和 Llama3-70B 在这些任务上表现不佳。论文接着提出了一种精调流程,通过利用包含超过 80000 个任务的大规模合成训练数据集来提高模型性能。此外,论文还展示了如何利用模拟器驱动的反馈来设计训练数据分布的课程。结果表明,精调后的 Llama3-8B 模型显著超越了 GPT-4V 和 Llama3-70B 模型,并且论文还对模型在不同技能维度的专业知识进行了深入分析。该基准测试将公开发布,以便未来研究人员在视觉编程中的程序合成领域进行研究。
发布日期:2024-06-17
链接:https://arxiv.org/abs/2406.11334
机构:MPI-SWS
DocCGen: Document-based Controlled Code Generation
本文提出了一种名为 DocCGen 的框架,旨在解决大语言模型在结构化领域专用语言 (DSL) 生成方面的局限性。DocCGen 通过将 NL-to-Code 任务分解为两步来利用企业的 DSL 文档资源。首先,它根据 NL 查询匹配库文档,识别出正确的库。然后,它利用从库文档中提取的模式规则来约束解码过程。在 Ansible YAML 与 Bash 两种编程语言上的实验结果表明,DocCGen 在各种规模的语言模型上都取得了显著提升,有效降低了结构化代码中的语法和语义错误。
发布日期:2024-06-17
链接:https://arxiv.org/abs/2406.11925
机构:IIT Bombay, IBM Research
Qiskit HumanEval: An Evaluation Benchmark For Quantum Code Generative Models
本文提出了一个新的数据集 Qiskit HumanEval,用于评估大语言模型生成量子代码的能力。该数据集包含了超过100个量子计算任务,每个任务都有一个提示、一个标准解决方案、一个全面的测试用例和一个难度等级。论文系统地评估了一组大语言模型在生成可执行量子代码方面的表现,结果表明使用大语言模型生成量子代码是可行的,并为量子代码生成领域设立了一个新的基准,鼓励进一步探索和开发基于生成式人工智能的工具。
发布日期:2024-06-20
链接:https://arxiv.org/abs/2406.14712
机构:IBM Research
DistiLRR: Transferring Code Repair for Low-Resource Programming Languages
本文提出了一种名为 Distilling Low-Resource Repairs (DistiLRR) 的方法,用于将高资源语言中代码修复模型的推理和代码生成能力迁移到低资源语言模型上。实验结果表明 DistiLRR 在低资源语言上显著优于基线模型,但在高资源语言上的表现则与基线模型相似。论文进一步分析发现,代码修复效果与推理质量之间的相关性不如预期强,特别是在低资源语言环境下,基础模型对编程语言的理解不足,导致代码修复效果在不同资源语言之间存在差异。
发布日期:2024-06-21
链接:https://arxiv.org/abs/2406.14867
机构:University of California, Santa Barbara
AssertionBench: A Benchmark to Evaluate Large-Language Models for Assertion Generation
本文提出了一个名为 AssertionBench 的新基准,用于量化评估大模型在硬件断言生成方面的有效性。该基准包含100个经过精心挑选的 Verilog 硬件设计和由 GoldMine 和 HARM 生成的正式验证断言。通过使用 AssertionBench,论文比较了最先进的 LLM,评估了它们在推断功能正确的断言方面的有效性,并展示了 LLM 之间的性能差异、使用更多上下文示例在生成更高比例的功能正确断言方面的优势,以及基于 LLM 的断言生成器有很大的改进空间。
发布日期:2024-06-26
链接:https://arxiv.org/abs/2406.18627
机构:University of Illinois Chicago
07
AI代码安全与分析
An LLM-Assisted Easy-to-Trigger Backdoor Attack on Code Completion Models: Injecting Disguised Vulnerabilities against Strong Detection
本文提出了 CodeBreaker,一个利用大语言模型进行代码补全模型后门攻击的框架。与以往攻击方式不同,CodeBreaker 利用 LLM 对恶意代码进行转换,使其能够隐藏在代码中并逃避现有安全检测。该框架能够在多种场景下有效攻击代码补全模型,并通过广泛的实验和用户研究验证了其优越性,突出了当前代码补全模型安全机制的不足,并强调了加强防御措施的必要性。
发布日期:2024-06-10
链接:https://arxiv.org/abs/2406.06822
机构:University of Connecticut
Validating LLM-Generated Programs with Metamorphic Prompt Testing
本文提出了一种名为“变形提示测试”的新方法,用于解决大语言模型生成代码质量和正确性问题。该方法基于一个直观观察:正确的代码片段之间总是存在内在一致性,而有缺陷的代码片段则可能缺乏这种一致性。因此,通过对给定提示进行语义改写,生成多个版本的代码,并交叉验证这些代码之间的语义关系,就能检测出其中可能存在的错误。研究结果表明,该方法能够识别出 GPT-4 生成的75%错误程序,误报率仅为8.6%。
发布日期:2024-06-11
链接:https://arxiv.org/abs/2406.06864
机构:The University of Texas at San Antonio
Where Do Large Language Models Fail When Generating Code?
本文对六种主流大语言模型在代码生成任务上产生的错误代码片段进行了实证研究。通过开放式编码和主题分析,论文构建了一个全面的代码生成错误分类法,从语义特征和语法特征两个维度对所有558个错误代码片段进行了标注。研究结果表明,不同的大语言模型在语义和语法特征上表现出不同的错误分布。此外,论文还分析了不同错误特征与提示长度、代码长度和测试通过率等因素之间的相关性。最后,论文强调了大语言模型在代码生成过程中可能面临的挑战,并为未来利用大语言模型实现可靠的代码生成提供了启示。
发布日期:2024-06-13
链接:https://arxiv.org/abs/2406.08731
机构:University of Alberta
From Effectiveness to Efficiency: Comparative Evaluation of Code Generated by LCGMs for Bilingual Programming Questions
本文构建了一个全面的评估框架,用于评估大型代码生成模型在处理不同自然语言输入时生成代码的质量差异。论文作者构建了一个包含52个双语编程问题的测试集,并开发了自动化的输入生成器。此外,他们通过采样更大的单元测试用例来增强正确性验证,并通过分析相对于输入规模增长的执行时间来估计代码性能。使用该框架,作者对六个最先进的大型代码生成模型进行了实证研究。研究结果表明,这些模型生成的代码在平均10.5%的任务上表现出不同的双语正确性,而在正确代码中,有39.5%表现出不同的双语性能差异。这些发现表明,大型代码生成模型在处理不同语言输入时,可能无法一致地生成高质量的代码,为未来的研究方向提供了启示。
发布日期:2024-06-02
链接:https://arxiv.org/abs/2406.00602
机构:Xi’an Jiaotong University
How Efficient is LLM-Generated Code? A Rigorous & High-Standard Benchmark
本文开发了一个严谨且高标准的基准测试 ENAMEL,用于评估大语言模型在生成高效代码方面的能力。论文作者提出了一种新的效率度量指标 eff@k,该指标将 pass@k 从正确性推广到效率,并适当处理右截断执行时间。此外,他们通过 Rao-Blackwell 方法得出了 eff@k 的无偏差和方差减少的估计量,并提供了数值稳定的实现。为了设置高标准的效率评估,作者聘请人类专家设计最佳算法和实现作为效率的参考解决方案,其中许多比 HumanEval 和 HumanEval+ 中现有的典型解决方案更加高效。为确保严格的评估,作者还聘请人类专家策划强大的测试用例生成器,以过滤错误代码并区分次优算法。使用 ENAMEL 基准测试对30个流行的大语言模型进行广泛研究表明,这些模型在生成专家级高效代码方面仍有不足。通过使用问题集的两个子集,作者证明了这种缺陷是由于当前的大语言模型在设计高级算法方面存在困难,并且几乎没有优化意识。
发布日期:2024-06-10
链接:https://arxiv.org/abs/2406.06647
机构:University of Illinois Urbana–Champaign
We Have a Package for You! A Comprehensive Analysis of Package Hallucinations by Code Generating LLMs
本文揭示了大语言模型在生成代码时产生的“包幻觉”现象,这种现象源于 LLM 在代码生成过程中出现的错误,导致代码推荐出现错误的包。研究人员通过对多种编程语言、环境和参数进行全面评估,发现19.7%的生成代码存在包幻觉问题,并分析了其根源。论文还探讨了通过检索增强生成、自我检测反馈和监督微调等方法来缓解包幻觉现象,取得了一定效果。然而,研究表明:包幻觉是一个系统性和持续性问题,对代码大模型的可靠性提出了重大挑战。
发布日期:2024-06-12
链接:https://arxiv.org/abs/2406.10279
机构:University of Texas at San Antonio
How and Why LLMs Use Deprecated APIs in Code Completion? An Empirical Study
本文首次评估了基于大语言模型的代码补全中废弃 API 的使用情况,从模型、提示和库的角度来揭示废弃 API 使用的现状和根本原因。论文提出了两种轻量级的修复方法:ReplaceAPI 和 InsertPrompt,可以作为未来研究减轻废弃 API 使用的基线方法。此外,论文还为未来将库演化与大语言模型驱动的软件开发相结合的研究提供了启示。
发布日期:2024-06-14
链接:https://arxiv.org/abs/2406.09834
机构:Nanyang Technological University
GitHub Copilot: the perfect Code compLeeter?
本文全面评估了 GitHub Copilot 在 LeetCode 问题集上生成代码的质量。研究者开发了一个自动化框架,对 Copilot 在 Java、C++、Python3 和 Rust 四种编程语言下的表现进行了评估,考察了代码生成阶段的可靠性、生成代码的正确性与编程语言、问题难度和主题的关系,以及代码的时间和内存效率。通过大规模的实验,论文得出了一些有价值的结论,如 Copilot 在 Java 和 C++ 中的表现优于 Python3 和 Rust,排名最高的建议并不总是最佳选择等。此外,论文还发现 Copilot 生成的代码效率高于普通程序员,为 Copilot 的实际应用提供了有益的参考。
发布日期:2024-06-17
链接:https://arxiv.org/abs/2406.11326
机构:KU Leuven
A Critical Study of What Code-LLMs (Do Not) Learn
本文通过对代码大模型的注意力图和隐藏表示进行细粒度分析,发现尽管这些模型在编码辅助任务中表现出色,但它们仍然存在局限性。研究表明,代码大模型只编码输入 token 的特定子集之间的关系,即语法 token 之间和标识符之间的关系,但无法编码语法 token 和标识符之间的关系。此外,与预训练模型相比,微调后的模型对这些关系的编码更差,并且参数数十亿的大模型编码的代码信息明显少于仅有数亿参数的模型。这一发现有助于理解代码语言大模型的内部工作原理及其局限性。
发布日期:2024-06-17
链接:https://arxiv.org/abs/2406.11930
机构:Technische Universität Darmstadt
Where Are Large Language Models for Code Generation on GitHub?
本文通过分析 GitHub 上的真实项目,深入研究了大语言模型生成的代码在实际软件开发中的应用情况。研究发现,ChatGPT 和 Copilot 是目前 GitHub 上最常用的代码生成工具,但其生成的代码主要集中在小型、个人或小型团队开发的项目中,并且代码片段通常较短、复杂度较低。此外,与人类编写的代码相比,LLM 生成的代码在项目中所占比例较小,修改频率也更低,而因 bug 导致的修改更是少之又少。论文还指出,LLM 生成的代码注释信息较为简略,缺乏对代码生成过程、人工修改以及测试状态的描述。研究结果为研究人员和软件开发者提供了宝贵的洞察,可以帮助他们更好地理解 LLM 在实际软件开发中的应用现状和局限性。
发布日期:2024-06-27
链接:https://arxiv.org/abs/2406.19544
机构:Zhejiang University
NLPerturbator: Studying the Robustness of Code LLMs to Natural Language Variations
本文研究了大语言模型在代码生成任务中对自然语言描述变化的鲁棒性,发现 LLM 对自然语言描述的细微变化非常敏感,即使是看似无害的修改也会影响代码生成效果。研究者总结了18种自然语言描述的扰动类别和3种组合,并开发了一个自动化框架 NLPerturbator 来模拟这些扰动。实验结果表明,扰动后的提示会导致代码生成性能显著下降,平均下降4.8%到6.1%,最高可达21.2%。该研究强调了增强 LLM 对真实场景中自然语言描述变化的鲁棒性以及仔细构建提示的重要性。
发布日期:2024-06-28
链接:https://arxiv.org/abs/2406.19783
机构:Zhejiang University
08
人机交互、交互式编程
Learning Task Decomposition to Assist Humans in Competitive Programming
本文提出了一种新的方法,通过将复杂的语言模型生成的解决方案自动分解为多个简单的子任务,以帮助人们更容易理解和修复有缺陷的解决方案。作者引入了一个称为"辅助价值"(AssistV)的新目标函数,用于衡量人类修复分解后解决方案的可行性和速度。通过收集人类在不同分解解决方案上的修复经验数据,并将其作为上下文示例,该方法学会了批评、改进和排序分解后的解决方案,以改进 AssistV。在竞赛编程问题的验证中,该方法使非专家解决的问题数量提高了33.3%,速度提高了3.3倍,使他们能够与没有辅助的专家相匹敌。
发布日期:2024-06-07
链接:https://arxiv.org/abs/2406.04604
机构:Tsinghua University
Impact of AI-tooling on the Engineering Workspace
本文利用 Jellyfish 平台分析了 AI 驱动的开发工具对工程师工作流程和工作环境的影响。通过观察 Copilot 用户在编码时间分配、工单规模、周期时间、代码评审过程等方面的变化,研究发现使用 Copilot 后,写代码时间占比平均减少3%,个别用户减少高达15%;工单规模平均减少16%,周期时间减少8%。此外,代码评审过程也有所改变,评论更加全面详细。尽管并非所有参与公司都观察到所有假设的变化,但有些公司的工作流程瓶颈减少了33%,有一家公司将17%的精力从维护和支持工作转移到了产品增长举措上。这项研究首次利用来自多个公司的数据,超越了简单的生产力和满意度衡量,并考虑了实际的工程设置,强调了不同公司从 Copilot 的使用中获益程度不同,以及在研究工程工作和工作流程的具体方面而非总体时,变化可能较为微妙。
发布日期:2024-06-11
链接:https://arxiv.org/abs/2406.07683
机构:Jellyfish.co
Using AI-Based Coding Assistants in Practice: State of Affairs, Perceptions, and Ways Forward
本文通过对481名程序员进行大规模调查,研究了人工智能助手在软件开发活动和阶段中的具体使用情况。结果表明,开发人员使用人工智能助手的情况因活动和阶段而异,他们认为编写测试和自然语言工件是最不愉快的活动,并希望将其委托给人工智能助手。此外,论文还分析了开发人员不使用助手的原因,除了信任和公司政策等一般因素外,还有一些可以解决的问题,如缺乏项目规模上下文和对助手的认识不足。这些全面而具体的结果可以指导未来的研究,以满足用户对人工智能助手的实际需求。
发布日期:2024-06-11
链接:https://arxiv.org/abs/2406.07765
机构:JetBrains Research
Requirements are All You Need: From Requirements to Code with LLMs
本文提出了一种针对软件开发过程的定制化大语言模型。该模型结合了与软件开发、需求分析、面向对象设计和测试驱动开发相关的知识、启发式方法和指令,能够模拟资深软件工程师的专业知识。论文还引入了一种名为"渐进式提示"的方法,允许软件工程师以循序渐进的方式与该模型进行交互。通过这种方法,模型可以逐步处理软件开发任务,包括解释需求文档、提取功能需求、创建面向对象模型,并根据面向对象设计生成单元测试和代码。论文通过一个关于 Web 项目开发的案例研究,展示了该模型在理解复杂用户需求并产生稳健的设计和代码解决方案方面的能力,突出了将大语言模型集成到软件开发工作流程中以显著提高效率和质量的潜力。
发布日期:2024-06-14
链接:https://arxiv.org/abs/2406.10101
机构:Texas Christian University
Instruct, Not Assist: LLM-based Multi-Turn Planning and Hierarchical Questioning for Socratic Code Debugging
本文提出了 TreeInstruct,一种基于状态空间规划的代码调试教学代理,通过提出探究性问题,引导学生独立识别和解决错误。它能够根据学生对问题的回答和当前知识状态动态构建问题树,有效地解决独立和依赖性错误,并在多轮交互中提供更有效的指导。论文还构建了一个包含150个代码问题、错误解决方案和修复方案的多 bug 数据集,并在基准测试和真实世界案例研究中验证了 TreeInstruct 的有效性,表明它比现有方法更有效地引导学生进行代码调试。
发布日期:2024-06-17
链接:https://arxiv.org/abs/2406.11709
机构:University of Illinois at Urbana-Champaign
CREF: An LLM-based Conversational Software Repair Framework for Programming Tutors
本文评估了大语言模型在程序修复任务中的表现,并提出了一个新的会话式半自动修复框架 CREF。作者首先引入了一个全新的基准测试数据集 TutorCode,避免了数据泄露问题。通过在 TutorCode 上评估12个大语言模型的修复性能,作者发现导师指导是最有效的辅助信息。基于这一发现,作者提出了 CREF 框架,通过与导师的互动和利用历史错误响应的对话,显著提高了大语言模型的修复能力。此外,作者还在真实的教育场景中应用了 CREF,证明了其在减轻导师工作量和提升学生学习体验方面的有效性,展示了该框架在促进其他软件工程任务中的应用前景。
发布日期:2024-06-20
链接:https://arxiv.org/abs/2406.13972
机构:Yanshan University
Transforming Software Development: Evaluating the Efficiency and Challenges of GitHub Copilot in Real-World Projects
本文究评估了使用 GitHub Copilot 在产品开发生命周期中的效率提升、改进领域和新兴挑战。作者识别了15项软件开发任务,并通过针对大型专有代码库的实际项目评估了 Copilot 的好处。研究结果表明,Copilot 可以显著减少开发人员的工作量,节省高达50%的时间用于代码文档和自动完成,以及30-40%的时间用于重复的编码任务、单元测试生成、调试和配对编程。然而,Copilot在处理复杂任务、大型函数、多文件和专有上下文方面存在问题,特别是在 C/C ++ 代码方面。我们预计在云优先的软件开发生命周期中,与编码相关的任务将减少33-36%的时间。本研究旨在量化生产力改进、识别表现不佳的场景、检查实际好处和挑战、调查不同编程语言之间的性能差异,并讨论与代码质量、安全性和开发人员体验相关的新兴问题。
发布日期:2024-06-25
链接:https://arxiv.org/abs/2406.17910
机构:Cisco Systems Inc
09
软工下游任务
代码生成
A Survey on Large Language Models for Code Generation
本文对大语言模型在代码生成领域的最新进展进行了全面而深入的综述。作者从数据处理、最新进展、性能评估和实际应用等多个方面对LLM在代码生成中的发展进行了系统的讨论。此外,论文还对 LLM 在代码生成领域的演化历程进行了回顾,并使用广泛认可的 HumanEval 和 MBPP 基准测试对LLM在代码生成能力上的渐进式提升进行了实证比较。最后,作者指出了学术界与实际开发之间存在的关键挑战和机遇。
发布日期:2024-06-01
链接:https://arxiv.org/abs/2406.00515
机构:The Hong Kong University of Science and Technology (Guangzhou)
A Lightweight Framework for Adaptive Retrieval In Code Completion With Critique Model
本文提出了一种轻量级的评估方法 CARD,用于评估检索在代码补全任务中的必要性,并从多个预测结果中选择最佳答案。CARD 可以无缝集成到任何基于检索增强生成的代码补全系统中,显著提高了效率和准确性,有效减少了检索次数和延迟,并可泛化到不同的语言模型、检索器和编程语言。
发布日期:2024-06-11
链接:https://arxiv.org/abs/2406.10263
机构:Huawei Technologies Co., Ltd
Is Programming by Example solved by LLMs?
探究了大语言模型在 Programming-by-Examples(PBE)任务上的表现。研究发现,尽管预训练模型在 PBE 任务上效果不佳,但经过微调后,在训练数据分布内的测试问题上可以取得很高的性能。论文分析了模型成功和失败的原因,并尝试改进模型在数据分布外的泛化能力。总的来说,大语言模型在典型的 PBE 任务上取得了重大进展,有望提高 PBE 系统的灵活性和适用性,但也存在一些不足之处。
发布日期:2024-06-12
链接:https://arxiv.org/abs/2406.08316
机构:Cornell University
Benchmarks and Metrics for Evaluations of Code Generation: A Critical Review
本文对用于评估大语言模型生成代码能力的现有研究进行了批判性综述,重点关注了评估中使用的基准数据集和指标。作者分析了现有方法的优缺点,并提出了未来研究的方向,旨在推动这一领域的发展。
发布日期:2024-06-18
链接:https://arxiv.org/abs/2406.12655
机构:Oxford Brookes University
MPCODER: Multi-user Personalized Code Generator with Explicit and Implicit Style Representation Learning
本文提出了一种名为 MPCoder 的多用户个性化代码生成方法。该方法利用显式编码风格残差学习捕捉语法代码风格标准,同时通过隐式风格学习捕捉语义代码风格约定。此外,论文还提出了一种多用户风格适配器,通过对比学习更好地区分不同用户的隐式特征表示,最终实现多用户的个性化代码生成。论文还提出了一种新的评估指标,用于估计不同编码风格代码之间的相似性。实验结果表明了该方法在这一新颖任务上的有效性。
发布日期:2024-06-25
链接:https://arxiv.org/abs/2406.17255
机构:Zhejiang University
仓库级代码生成
How to Understand Whole Software Repository?
提出了一种名为 RepoUnderstander 的新型自动软件工程方法,旨在指导代理全面理解整个软件仓库。作者首先以自顶向下的方式将整个仓库的关键信息压缩到仓库知识图谱中,以降低仓库的复杂性。然后,通过提出基于蒙特卡洛树搜索的仓库探索策略,赋予代理理解整个仓库的能力。此外,为了更好地利用仓库级知识,作者指导代理进行总结、分析和规划,使其能够操纵工具动态获取信息并生成补丁来解决现实世界中的 GitHub 问题。广泛的实验证明了所提出的 RepoUnderstander 的优越性和有效性,与 SWE-agent 相比,它在 SWE-bench Lite 基准测试中实现了18.5%的相对改进。
发布日期:2024-06-03
链接:https://arxiv.org/abs/2406.01422
机构:Alibaba Group
R2C2-Coder: Enhancing and Benchmarking Real-world Repository-level Code Completion Abilities of Code Large Language Models
本文提出了一种名为 R2C2-Coder 的方法,用于增强和评测代码大语言模型在实际应用中的代码库级代码补全能力。R2C2-Coder 包括两个部分:R2C2-Enhance 和 R2C2-Bench。其中,R2C2-Enhance 通过构建候选检索池并为每个补全位置从检索池中组装提示,来充分利用项目代码库中的广泛上下文信息。基于 R2C2-Enhance,作者构建了一个更具挑战性和多样性的基准测试 R2C2-Bench,其中还提出了一种上下文扰动策略,以更好地模拟真实世界中的代码库级代码补全任务。在多个基准测试中的广泛结果证明了 R2C2-Coder 的有效性。
发布日期:2024-06-03
链接:https://arxiv.org/abs/2406.01359
机构:Alibaba Group
Enhancing Repository-Level Code Generation with Integrated Contextual Information
本文提出了一种名为 CatCoder 的新型代码生成框架,专门针对静态类型编程语言。CatCoder 通过整合相关代码和类型上下文,增强了仓库级别的代码生成能力。它利用静态分析器提取类型依赖关系,并将这些信息与检索到的代码合并,为大语言模型创建全面的提示。在包含199个 Java 任务和90个 Rust 任务的基准测试中,CatCoder 在 pass@k 得分方面比 RepoCoder 基线高出17.35%。此外,CatCoder 在各种大语言模型上展现出了一致的性能提升,证明了其广泛的适用性和实用性。
发布日期:2024-06-05
链接:https://arxiv.org/abs/2406.03283
机构:Zhejiang University
On The Importance of Reasoning for Context Retrieval in Repository-Level Code Editing
本文将上下文检索任务从仓库级代码编辑流水线的其他组件中解耦出来,并通过单独针对上下文检索进行实验,为定义该组件的优缺点以及推理在其中所起的作用奠定了基础。实验结果表明,虽然推理有助于提高所收集上下文的精确度,但它仍然缺乏识别上下文充分性的能力。此外,本文还概述了专用工具在上下文收集过程中的最终作用。
发布日期:2024-06-06
链接:https://arxiv.org/abs/2406.04464
机构:JetBrains Research
GraphCoder: Enhancing Repository-Level Code Completion via Code Context Graph-based Retrieval and Language Model
本文提出了一种名为 GraphCoder 的代码补全框架,旨在解决现有的大语言模型在特定代码库的代码补全任务上表现不佳的问题。GraphCoder 通过构建代码上下文图(CCG)来更准确地捕获补全目标的上下文信息,并采用由粗到细的检索过程,从当前代码库中定位与补全目标上下文相似的代码片段。实验结果表明,与基准的基于检索的方法相比,GraphCoder 在代码匹配和标识符匹配方面平均实现了更高的精确匹配,同时使用更少的时间和空间,证明了该方法的有效性和效率。
发布日期:2024-06-11
链接:https://arxiv.org/abs/2406.07003
机构:Peking University
STALL+: Boosting LLM-based Repository-level Code Completion with Static Analysis
本文首次系统地研究了在基于大语言模型的仓库级代码补全任务中集成静态分析的有效性和效率。研究者实现了一个名为 STALL+ 的框架,支持在代码补全流程的不同阶段灵活集成多种静态分析策略。通过在最新的仓库级代码补全基准测试 CrossCodeEval 上进行广泛实验,研究发现在提示阶段集成文件级依赖关系效果最好,而在后处理阶段集成效果最差。此外,静态分析对动态语言和静态语言的改进效果不同,例如对 Java 来说提示阶段与解码阶段集成的组合最佳,而对 Python 来说提示阶段与后处理阶段集成的组合最佳。最后,研究还发现了检索增强生成与静态分析集成之间的互补性以及组合后的成本效益。
发布日期:2024-06-14
链接:https://arxiv.org/abs/2406.10018
机构:Fudan University
Hierarchical Context Pruning: Optimizing Real-World Code Completion with Repository-Level Pretrained Code LLMs
本文针对代码大模型在实际开发场景中遇到的问题进行研究,通过实验分析发现,保持文件之间的拓扑依赖关系和增加代码文件内容可以提高代码完成的准确性;去除所有依赖文件中的具体函数实现不会显著降低代码完成的准确性。基于此,本文提出了一种名为 Hierarchical Context Pruning (HCP) 的策略,以构建具有高信息含量的完成提示。该策略在函数级别对代码库进行建模,保持代码文件之间的拓扑依赖关系,同时去除大量不相关的代码内容,显著减少了代码库级别的代码完成输入长度。实验结果表明,该方法可以显著提高代码补全的准确性,同时大幅度减少输入长度。
发布日期:2024-06-26
链接:https://arxiv.org/abs/2406.18294
机构:Chinese Academy of Sciences
SQL生成
DeTriever: Decoder-representation-based Retriever for Improving NL2SQL In-Context Learning
本文提出了一种新颖的示范检索框架 DeTriever,用于解决在上下文学习中如何选择最有益的示范样本这一问题。DeTriever 通过学习大语言模型隐藏状态的加权组合,克服了外部检索器和语言模型之间表示能力的差异。同时,论文还提出了一种基于输出查询相似性的代理分数,用于估计样本的相对效益,从而优化示范样本的选择过程。在两个流行的自然语言转 SQL 基准测试中,DeTriever 显著优于现有的最先进基线方法,展示了其在单样本自然语言转 SQL 任务中的优异表现。
发布日期:2024-06-12
链接:https://arxiv.org/abs/2406.07913
机构:The University of British Columbia
Next-Generation Database Interfaces: A Survey of LLM-based Text-to-SQL
本文综述了基于大语言模型的自然语言问题生成 SQL 语句的研究现状和进展。论文首先概述了文本到 SQL 任务面临的挑战以及该领域的发展历程,然后详细介绍了评估文本到 SQL 系统性能的数据集和指标。作者系统分析了最新的基于大语言模型的文本到 SQL 研究成果,讨论了该领域仍然存在的挑战,并对未来的研究方向提出了展望。该综述全面梳理了大语言模型在文本到 SQL 任务中的应用现状,为相关研究提供了有益参考。
发布日期:2024-06-12
链接:https://arxiv.org/abs/2406.08426
机构:Jinan University, The Hong Kong Polytechnic University
RH-SQL: Refined Schema and Hardness Prompt for Text-to-SQL
本文提出了一种基于精炼模式和难度提示的文本到 SQL 方法,通过过滤低相关度的模式信息以及使用语言模型识别查询难度生成提示,在保持性能的同时降低了存储和训练成本。该方法适用于任何序列到序列的语言模型,在 Spider 数据集上的实验取得了82.6%的优异执行准确率,展示了该方法的有效性和实际应用价值。这一研究为提高文本到 SQL 任务的实用性提供了新的思路。
发布日期:2024-06-13
链接:https://arxiv.org/abs/2406.09133
机构:Central South University
QDA-SQL: Questions Enhanced Dialogue Augmentation for Multi-Turn Text-to-SQL
本文针对大语言模型在多轮 Text-to-SQL 任务中的局限性,提出了一种名为 QDA-SQL 的新颖数据增强方法,该方法利用大语言模型生成多种类型的多轮问答对,并引入验证和校正机制来处理复杂的多轮 Text-to-SQL 任务。实验证明,QDA-SQL 能够提升微调模型的 SQL 语句准确率,并增强其处理多轮 Text-to-SQL 任务中复杂、无法回答的问题的能力。
发布日期:2024-06-15
链接:https://arxiv.org/abs/2406.10593
机构:Harbin Institute of Technology
End-to-end Text-to-SQL Generation within an Analytics Insight Engine
本文介绍了一种基于大语言模型的 Text-to-SQL 生成流水线的设计与实现,该流水线针对当前数据访问民主化进程中面临的问题提供了解决方案。通过预先处理阶段的知识提取、查询生成时的外部知识调用、以及基于CTE(公共表表达式)的层次化SQL查询分解策略,系统能有效支持高复杂度 SQL 查询的自动生成,满足即席查询的低延迟需求,并理解和处理领域特定术语。此外,该系统还包括一个适应性框架,通过反馈机制不断更新外部知识,以持续提升查询生成的质量。文章概述了整个端到端方法,并强调了推理过程中生成 SQL 的关键操作。
发布日期:2024-06-17
链接:https://arxiv.org/abs/2406.12104
机构:Distyl AI
MAGIC: Generating Self-Correction Guideline for In-Context Text-to-SQL
本文提出了 MAGIC,一种新的多智能体方法,用于自动生成文本到 SQL 自校正指南。MAGIC 利用三个专门的智能体:管理者、校正者和反馈者,通过对训练集中基于 LLM 方法的错误进行协作,迭代地生成和改进针对 LLM 错误的自校正指南,模拟人类的流程,但无需人工参与。实验表明,MAGIC 生成的指南优于人类专家制定的指南,并提高了自校正的解释性,为分析 LLM 在自校正中的失败和成功原因提供了见解。该论文还公开发布了所有智能体交互数据,为自动生成自校正指南研究提供了一个合成数据集。
发布日期:2024-06-18
链接:https://arxiv.org/abs/2406.12692
机构:Microsoft
SQLFixAgent: Towards Semantic-Accurate SQL Generation via Multi-Agent Collaboration
本文提出了一种名为 SQLFixAgent 的多智能体协作框架,用于检测和修复文本到 SQL 解析中出现的错误 SQL 语句。该框架通过核心智能体 SQLRefiner 和两个辅助智能体 SQLReviewer 和 QueryCrafter 协同工作,利用橡胶鸭子调试法识别 SQL 语句和用户查询之间的潜在语义不匹配,并生成多个候选修复方案,最终选择最合适的 SQL 语句进行修复。实验结果表明,该框架显著提高了基线模型的执行准确率,尤其是在 Bird 基准测试中提升超过3%,并且在代币效率方面也表现更优。
发布日期:2024-06-19
链接:https://arxiv.org/abs/2406.13408
机构:Soochow University
Unmasking Database Vulnerabilities: Zero-Knowledge Schema Inference Attacks in Text-to-SQL Systems
本文提出了一种零知识框架,能够通过精心设计的自然语言问题,从文本到 SQL 模型中提取数据库模式信息。该框架无需任何数据库先验知识,通过分析模型对问题的 SQL 输出,成功重建了数据库表名,对于专门训练的文本-SQL 模型,F1 得分达到 0.75,而对于生成式语言模型,F1 得分更是高达 0.96。这项研究揭示了文本到 SQL 模型的潜在安全隐患,并为理解和防范此类模型的安全漏洞提供了重要参考。
发布日期:2024-06-20
链接:https://arxiv.org/abs/2406.14545
机构:The University of Texas at San Antonio
用户界面设计
PosterLLaVa: Constructing a Unified Multi-modal Layout Generator with LLM
本文提出了一个统一的自动图形布局生成框架,利用多模态大语言模型来适应不同的设计任务。该方法采用结构化文本和视觉指令调优来生成满足特定视觉和文本约束的布局,包括用户定义的自然语言规范。研究者在公共多模态布局生成基准测试中进行了广泛的实验,取得了最先进的性能,证明了该方法的有效性。此外,考虑到现有数据集在捕捉现实世界图形设计的复杂性方面的局限性,他们还提出了两个新的数据集,用于更具挑战性的任务(用户约束生成和复杂的海报),进一步验证了该模型在实际应用中的实用性。这种方法具有更高的可访问性和适应性,可以进一步实现大规模图形设计任务的自动化。
发布日期:2024-06-05
链接:https://arxiv.org/abs/2406.02884
机构:Hong Kong Polytechnic University, Tencent PCG
UICoder: Finetuning Large Language Models to Generate User Interface Code through Automated Feedback
本文提出了一个利用自动化反馈来提升大语言模型生成高质量 UI 代码能力的新方法。该方法通过使用原始模型自生成大量合成数据集,然后利用编译器和多模态模型对数据进行筛选、评分和去重,最终得到一个精炼的高质量数据集。通过对该数据集进行微调,论文作者成功提升了多个开源 LLM 的性能,使其在自动化指标和人类偏好方面都超越了其他可下载的基线模型,并接近了大型私有模型的水平。
发布日期:2024-06-11
链接:https://arxiv.org/abs/2406.07739
机构:Carnegie Mellon University, Apple Inc.
GUICourse: From General Vision Language Models to Versatile GUI Agents
本文论文提出了一个名为 GUICourse 的全新数据集,旨在训练基于视觉的 GUI 代理,使其能更好地理解和操作图形界面。该数据集包含 GUIEnv、GUIAct 和 GUIChat 三个部分,分别用于增强视觉语言模型的 OCR 和定位能力,以及其对 GUI 组件和交互方式的知识。实验证明,使用 GUICourse 训练的 GUI 代理在常见的 GUI 任务上表现优于基线模型,即使参数量较小的代理也能有效完成单步和多步 GUI 操作。
发布日期:2024-06-17
链接:https://arxiv.org/abs/2406.11317
机构:Renmin University of China, Tsinghua University
Identifying User Goals from UI Trajectories
本文研究了如何通过观察用户在图形界面上的操作轨迹来推断用户的意图,旨在为自动代理提供更个性化和主动的交互体验。论文提出了一个新的评价指标来衡量两个任务描述在特定用户界面环境下的同义性,并利用该指标以及 Android-In-The-Wild 和 Mind2Web 数据集进行实验,比较了人类和 GPT-4、Gemini-1.5 Pro 等模型在识别用户意图方面的表现。结果表明,Gemini 的表现优于 GPT,但仍落后于人类,表明该领域还有很大的提升空间。
发布日期:2024-06-20
链接:https://arxiv.org/abs/2406.14314
机构:Google Research
Automatically Generating UI Code from Screenshot: A Divide-and-Conquer-Based Approach
本文提出了一种名为 DCGen 的自动设计到代码转换方法,它通过将网页截图分割成可管理的片段,生成每个片段的描述,然后将它们重新组合成完整的 UI 代码,从而提高了设计到代码转换的准确性和效率。与现有方法相比,DCGen 在视觉相似性方面取得了显著改进,并首次引入了一种基于分治策略的,关注网页设计片段的提示式 UI 代码生成方法。
发布日期:2024-06-24
链接:https://arxiv.org/abs/2406.16386
机构:The Chinese University of Hong Kong
Web2Code: A Large-scale Webpage-to-Code Dataset and Evaluation Framework for Multimodal LLMs
本文针对当前的多模态大语言模型(MLLM)在理解网页截图和生成对应 HTML 代码方面存在不足的问题,提出了 Web2Code,一个新的网页到代码的大型数据集,以及一个用于评估 MLLM 在网页理解和 HTML 代码翻译能力的框架。Web2Code 通过利用预训练的 LLM 来增强现有的网页到代码数据集,并生成多样化的新的网页图像,进而为MLLM的指令微调提供更丰富的数据。论文通过实验验证了 Web2Code 数据集的有效性,并希望该工作能够促进更通用、适用于网页内容生成和任务自动化的 MLLM 的开发。
发布日期:2024-06-28
链接:https://arxiv.org/abs/2406.20098
机构:MBZUAI
代码表征
Toward Exploring the Code Understanding Capabilities of Pre-trained Code Generation Models
本文首次探索了如何将预训练的代码生成模型的知识迁移到代码理解任务中,显著降低了训练成本。作者研究了使解码器模型获得稳健代码表示的有效策略,并提出了一种名为 CL4D 的对比学习方法,以增强解码器模型的表示能力。通过全面的实验,证明了该方法在代码搜索和克隆检测等理解任务上达到了最先进的性能。作者的分析表明,该方法有效地减少了表示空间中语义相同样本之间的距离。这些发现表明,使用解码器结构的模型有可能统一代码理解和生成任务。
发布日期:2024-06-18
链接:https://arxiv.org/abs/2406.12326
机构:International Digital Economy Academy
Aligning Programming Language and Natural Language: Exploring Design Choices in Multi-Modal Transformer-Based Embedding for Bug Localization
本文研究了代码缺陷定位模型中嵌入技术的影响,通过评估14种不同嵌入模型,发现预训练策略对嵌入质量有着显著影响。此外,嵌入模型对数据的熟悉程度也对缺陷定位模型的性能产生重要影响,尤其是在训练和测试数据来自不同项目时,定位模型的表现会发生较大波动。该研究为代码缺陷定位模型的嵌入技术设计提供了重要参考,帮助开发者更好地理解和利用嵌入模型,提升缺陷定位模型的性能。
发布日期:2024-06-25
链接:https://arxiv.org/abs/2406.17615
机构:University of Waterloo
代码优化
Should AI Optimize Your Code? A Comparative Study of Current Large Language Models Versus Classical Optimizing Compilers
本文比较了 GPT-4.0 和 CodeLlama-70B 两种大语言模型与传统优化编译器在代码优化方面的优劣,并通过定制的基准测试套件评估了它们的性能。研究发现,大语言模型尽管有潜力超越现有的优化编译器,但在处理大规模代码时容易产生错误,需要自动验证机制。CodeLlama-70B 表现优于 GPT-4.0,能够实现高达 2.1 倍的加速,而传统编译器中 CETUS 表现最佳,实现了 1.9 倍的加速。此外,论文还发现两种提示方法(Chain of Thought 和 Instruction Prompting)的性能没有显著差异。
发布日期:2024-06-17
链接:https://arxiv.org/abs/2406.12146
机构:University of Delaware
Iterative or Innovative? A Problem-Oriented Perspective for Code Optimization
本文提出了一种新的面向问题的优化对构建方法,用于增强大语言模型在代码优化方面的能力。与之前基于同一程序员针对同一问题的迭代提交构建优化对的方法不同,该方法允许整合来自不同程序员解决同一问题的各种巧妙思路,使得大语言模型能够进行全局算法创新,而不局限于局部性能改进。实验结果表明,采用面向问题的优化对可以显著提升大语言模型的优化能力。同时,作者还识别出面向问题视角下的性能瓶颈,并通过模型合并进一步克服瓶颈,最终将程序优化率和加速比提升到了新的水平。
发布日期:2024-06-17
链接:https://arxiv.org/abs/2406.11935
机构:Zhejiang University
逆向工程
WaDec: Decompile WebAssembly Using Large Language Model
本文提出了一种新颖的方法 WaDec,通过微调大语言模型来解释和反编译 WebAssembly 二进制代码,生成更高层次、更易理解的源代码表示。WaDec 在多个指标上明显优于当前最先进的工具,包括代码膨胀率、重编译率、重新执行率、输出一致性以及抽象语法树编辑距离、圈复杂度和余弦相似度等。这项工作为 WebAssembly 反编译提供了一种新的有效方法,提高了反编译输出的可读性和可用性。
发布日期:2024-06-17
链接:https://arxiv.org/abs/2406.11346
机构:Huazhong University of Science and Technology
代码解释
Exploring the Efficacy of Large Language Models (GPT-4) in Binary Reverse Engineering
本文研究了大语言模型,特别是GPT-4,在二进制逆向工程中的能力。通过结构化的实验方法,研究人员分析了 LLM 在解释和解释人工编写和反编译代码方面的性能。研究涵盖了两个阶段:第一个阶段是基本代码解释,第二个阶段是更复杂的恶意软件分析。关键发现表明 LLM 在一般代码理解方面具有熟练程度,但在详细的技术和安全分析方面的有效性有所不同。该研究强调了 LLM 在逆向工程中的潜力和当前局限性,为未来应用和改进提供了重要见解。此外,研究人员还检查了他们的实验方法,例如评估方法和数据约束,这为该领域的未来研究活动提供了技术展望。
发布日期:2024-06-09
链接:https://arxiv.org/abs/2406.06637
机构:University of Calgary
Identifying Inaccurate Descriptions in LLM-generated Code Comments via Test Execution
本文提出了一种新的验证软件注释准确性的方法——文档测试。作者发现目前的大语言模型生成的注释中有相当一部分存在不准确的问题,而现有的代码-注释一致性检测技术无法有效地检测出这些不准确的注释。为了解决这一问题,作者提出利用大语言模型根据注释生成测试用例,通过运行这些测试用例来验证注释的准确性。实验表明,该方法与注释准确性有稳健的统计关系,在现有技术难以奏效的情况下取得了进展。定性评估也表明,该方法有望获得开发者的信任,同时也突显出当前实现的局限性。
发布日期:2024-06-21
链接:https://arxiv.org/abs/2406.14836
机构:KAIST
MALSIGHT: Exploring Malicious Source Code and Benign Pseudocode for Iterative Binary Malware Summarization
本文提出了一种新颖的代码摘要框架 MALSIGHT,能够通过探索恶意源代码和良性伪代码来迭代生成二进制恶意软件的描述。该框架首先构建了第一个恶意软件摘要集 MalS 和 MalP,并对这些摘要集进行了手动精炼。然后在训练阶段,对代码模型 MalT5 进行调优,使其能够在MalS数据集和良性伪代码数据集上运行。在测试阶段,将伪代码函数逐步输入到 MalT5 中以获取摘要。此外,还提出了一个新的评估基准 BLEURT-sum,用于衡量摘要的质量。实验结果表明,该框架有效,且提出的 MalT5 仅需 0.77B 参数即可实现与更大的 ChatGPT3.5 相当的性能。
发布日期:2024-06-26
链接:https://arxiv.org/abs/2406.18379
机构:Beijing University of Posts and Telecommunications
漏洞检测
Generalization-Enhanced Code Vulnerability Detection via Multi-Task Instruction Fine-Tuning
本文提出了一个名为 VulLLM 的新框架,利用多任务学习和大语言模型来挖掘代码漏洞的深层特征。VulLLM 通过引入漏洞定位和漏洞解释两个辅助任务,并结合 GPT-4 的生成能力,使模型能够理解复杂漏洞模式,从而避免过度依赖单个任务的表面特征,提高对真实世界场景中漏洞检测的泛化能力和鲁棒性。在六个大型数据集上的实验结果表明 VulLLM 在有效性、泛化性和鲁棒性方面都超越了七个最先进的模型。
发布日期:2024-06-06
链接:https://arxiv.org/abs/2406.03718
机构:Huazhong University of Science and Technology
Security Vulnerability Detection with Multitask Self-Instructed Fine-Tuning of Large Language Models
本文提出了一种名为 MSIVD 的新技术,通过整合多任务序列到序列 LLM 和用图神经网络编码的程序控制流图,实现了基于序列到分类的漏洞检测。该技术受到思维链提示和 LLM 自指令的启发,通过多任务自指令微调,能够同时利用代码和漏洞程序的解释性指标训练 LLM 和 GNN,最终在 BigVul 和 PreciseBugs 数据集上取得了比现有最佳 LLM 漏洞检测方法更高的性能。这项工作表明,结合代码和解释性指标训练 LLM 和 GNN,是提高 LLM 漏洞检测能力,并使其能够推广到未见过数据的新方向。
发布日期:2024-06-09
链接:https://arxiv.org/abs/2406.05892
机构:Carnegie Mellon University
M2CVD: Multi-Model Collaboration for Code Vulnerability Detection
本文提出了一个名为 M2CVD 的多模型协作漏洞检测方法,旨在利用大语言模型在分析漏洞语义方面的优势,提高代码模型的漏洞检测精度。该方法通过协作流程,首先利用代码模型对项目代码的理解来增强 LLM 生成的漏洞语义描述的质量,然后使用改进后的语义描述来提高代码模型的检测精度。实验结果表明,M2CVD 在真实数据集上显著优于基线方法,并且可以扩展到其他 LLM 和代码模型,提升其漏洞检测能力。
发布日期:2024-06-10
链接:https://arxiv.org/abs/2406.05940
机构:Peking University
Towards Effectively Detecting and Explaining Vulnerabilities Using Large Language Models
本文提出了一种名为 LLMVulExp 的新框架,利用大语言模型来进行漏洞检测和解释。该框架通过针对漏洞解释进行专门的微调,不仅能够识别代码中的漏洞类型,还能分析代码上下文,生成漏洞原因、位置和修复建议。研究结果表明,LLMVulExp 能够有效地使LLM执行漏洞检测和解释,并通过使用链式思维(CoT)等高级策略来指导 LLM 专注于易受攻击的代码,从而取得了良好的结果。
发布日期:2024-06-14
链接:https://arxiv.org/abs/2406.09701
机构:Zhejiang University
Vul-RAG: Enhancing LLM-based Vulnerability Detection via Knowledge-level RAG
这篇论文提出了一种新的基于大语言模型的漏洞检测技术 Vul-RAG。该技术利用知识级别的检索增强生成框架,通过三个阶段检测给定代码中的漏洞。首先,从现有的 CVE 实例中通过大语言模型提取多维度知识,构建漏洞知识库。其次,对于给定的代码片段,根据功能语义从构建的知识库中检索相关的漏洞知识。最后,通过推理检索到的漏洞知识的漏洞原因和修复方案,利用大语言模型检查给定代码片段的漏洞。在构建的基准数据集 PairVul 上的评估表明,Vul-RAG 在准确率和成对准确率方面分别比所有基线提高了12.96%和110%。此外,用户研究表明,Vul-RAG 生成的漏洞知识可以作为高质量的解释,将人工检测的准确率从0.60提高到0.77。
发布日期:2024-06-17
链接:https://arxiv.org/abs/2406.11147
机构:Fudan University
软件测试
DLLens: Testing Deep Learning Libraries via LLM-aided Synthesis
本文提出了一种名为 DLLens 的新型深度学习库差分测试技术。DLLens 利用大语言模型合成深度学习库 API 的有效对应物,并结合静态分析方法提取API执行路径的约束条件,从而生成多样化的测试输入。通过在 TensorFlow 和 PyTorch 上的评估,DLLens 展现了优于现有技术的API对应物合成能力、约束条件提取能力以及缺陷检测能力。此外,DLLens 还成功发现了这两个深度学习库中的56个缺陷,其中41个为此前未知,突显了该技术在提升深度学习库质量方面的重要价值。
发布日期:2024-06-12
链接:https://arxiv.org/abs/2406.07944
机构:The Hong Kong University of Science and Technology
Exploring Fuzzing as Data Augmentation for Neural Test Generation
本文提出了一种新的数据增强技术 FuzzAug,结合了模糊测试和大语言模型的优点,在保持增强数据中有效程序语义的同时,为被测函数提供更多样化的输入,帮助模型将嵌入函数动态行为的正确输入与被测函数关联起来。通过在神经测试生成数据集上使用 FuzzAug 来训练最先进的代码生成模型,证明了该技术的有效性,生成的测试用例准确性提高了11%,分支覆盖率提高了一倍。FuzzAug 可应用于各种数据集,用于训练高级代码生成模型,提高其在自动化软件测试中的实用性,展示了使用动态分析结果增强神经测试生成的好处。
发布日期:2024-06-12
链接:https://arxiv.org/abs/2406.08665
机构:University of California, Davis
An Exploratory Study on Using Large Language Models for Mutation Testing
本文系统地研究了大语言模型在生成高效软件变异体方面的表现。通过在两个 Java 基准测试集上进行的大规模实证研究,作者发现与现有方法相比,大语言模型生成的变异体更加多样化,且在行为上更接近真实缺陷。在一个专门为评估基于学习的方法而收集的新缺陷集上,大语言模型生成的变异体的缺陷检测能力比现有方法高出约18%。此外,作者还探讨了替代性提示工程策略以及大语言模型生成不可编译变异体的根本原因,为在变异测试领域应用大语言模型提供了宝贵的见解。
发布日期:2024-06-14
链接:https://arxiv.org/abs/2406.09843
机构:Beijing Jiaotong University
Mokav: Execution-driven Differential Testing with LLMs
本文提出了一种名为 Mokav 的工具,利用大语言模型生成差异暴露测试(DET)以检测程序功能差异。Mokav 通过迭代提示 LLM 生成新的测试输入,并根据先前测试的执行结果提供反馈,最终生成能够揭示程序差异的 DET。实验结果表明,Mokav 在检测程序功能差异方面显著优于现有方法,能够为大量程序对生成 DET,展现了其强大的能力。
发布日期:2024-06-14
链接:https://arxiv.org/abs/2406.10375
机构:KTH Royal Institute of Technology
Code Agents are State of the Art Software Testers
本文主要研究了利用大语言模型构建代码代理来将用户问题转化为测试用例的能力。研究人员设计了一个基于 GitHub 仓库的基准数据集,包含真实的用户问题、修复补丁和黄金测试用例。研究结果表明,LLM 在生成相关测试用例方面表现良好,尤其是那些用于代码修复的代码代理比专门用于测试生成的系统表现更出色。此外,论文还利用测试用例的生成率和覆盖率等指标对代码修复系统进行了更细致的分析。最后,研究发现生成的测试用例可以有效地过滤代码修复建议,从而提高了 SWE-Agent 的精确度。
发布日期:2024-06-18
链接:https://arxiv.org/abs/2406.12952
机构:ETH Zurich
CasModaTest: A Cascaded and Model-agnostic Self-directed Framework for Unit Test Generation
本提出了一种名为 CasModaTest 的级联式、模型无关的端到端单元测试生成框架,旨在克服现有基于机器学习的单元测试生成方法的局限性。CasModaTest 通过两个级联阶段生成完整的单元测试:测试前缀生成和测试断言生成。它利用手动构建的大规模演示池提供高质量的测试前缀和测试断言示例,最终自动组装生成的测试内容并进行编译和执行,以检查其有效性。实验结果表明,与现有方法相比,CasModaTest 在准确率和焦点方法覆盖率方面均取得了显著提升,并且在不同的开源大模型上也表现出优异的性能。
发布日期:2024-06-22
链接:https://arxiv.org/abs/2406.15743
机构:Zhejiang University
An Empirical Study of Unit Test Generation with Large Language Models
本文首次对开源大模型在自动生成单元测试方面的能力进行了全面的实证研究。研究者通过对比五种不同结构和参数规模的开源 LLM,并结合多种提示策略,评估了其在 17 个 Java 项目上的表现。研究发现,提示策略对 LLM 的性能有显著影响,开源 LLM 的表现与商业化的 GPT-4 和传统测试工具 Evosuite 相比各有优劣,并揭示了基于 LLM 的单元测试生成技术存在的局限性。论文最终总结了一系列指导未来研究和实践应用的建议。
发布日期:2024-06-26
链接:https://arxiv.org/abs/2406.18181
机构:Tianjin University
日志分析
Log Parsing with Self-Generated In-Context Learning and Self-Correction
本文提出了一种名为 AdaParser 的日志解析框架,该框架利用大语言模型的强大能力,并结合自生成上下文学习 (SG-ICL) 和自校正机制,实现了更准确、更适应性的日志解析。AdaParser 创新性地引入了一个模板校正器,可以利用 LLM 修正其生成的模板中的潜在解析错误,并通过动态候选集来适应不断变化的日志数据,在各种评估指标上都显著优于现有方法,即使在零样本场景下也表现出色。
发布日期:2024-06-05
链接:https://arxiv.org/abs/2406.03376
机构:Peking University
Stronger, Cheaper and Demonstration-Free Log Parsing with LLMs
本文提出了一个名为 LogBatcher 的基于大语言模型的日志解析器,它无需训练过程或标注数据,通过将日志进行聚类划分,并利用缓存匹配机制和针对日志解析的批量提示上下文,有效地提高了日志解析的效率和效果,并在16个公共日志数据集上验证了其有效性。
发布日期:2024-06-10
链接:https://arxiv.org/abs/2406.06156
机构:Chongqing University
ULog: Unsupervised Log Parsing with Large Language Models through Log Contrastive Units
本文提出了 ULog,一种基于无监督大语言模型的日志解析方法,可以有效地解决现有日志解析方法依赖大量标注数据的问题。ULog 通过分析多个参数部分不同的日志之间的对比关系,利用大语言模型强大的语义理解能力,实现了高效、无需标注的日志解析,并在多个大型公共数据集上取得了优于现有方法的性能。
发布日期:2024-06-11
链接:https://arxiv.org/abs/2406.07174
机构:The Chinese University of Hong Kong
Anomaly Detection on Unstable Logs with GPT Models
本文研究了在软件演化过程中日志不稳定情况下,如何使用大语言模型来进行异常检测。研究表明,经过微调的 LLM (GPT-3) 在处理不稳定日志时,与传统的监督学习方法相比表现略好,尤其是在日志序列变化程度较高的情况下。论文还对比了提示工程 (GPT-4) 和微调两种方法,结果表明,微调在稳定和不稳定日志上都表现出显著的性能优势,为 LLM 在该领域中的有效应用提供了宝贵的见解。
发布日期:2024-06-11
链接:https://arxiv.org/abs/2406.07467
机构:University of Ottawa
软件建模
Leveraging Large Language Models for Software Model Completion: Results from Industrial and Public Datasets
本文提出了一种基于检索增强生成的大模型方法,用于支持软件模型开发过程中的模型补全。该方法利用大语言模型、模型历史记录和检索增强生成技术,能够有效地为模型补全提供推荐。实验结果表明,大语言模型在模型补全方面具有很大的潜力,能够在实际工业数据集中实现 62.30% 的语义正确补全率,以及在模拟模型库中实现高达 86.19% 的类型正确补全率。特别地,大语言模型的泛化推理能力对于处理样本稀缺、噪声或完全没有样本的概念非常有用。
发布日期:2024-06-25
链接:https://arxiv.org/abs/2406.17651
机构:Siemens AG
10
联系我们
我们团队的多项工作,包括综述、模型、数据集,都在陆续开源中。如果您喜欢我们的工作,欢迎试用、指正错误和贡献代码,也可以给我们的项目增加 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
备注:昵称-学校/公司-方向/会议(eg.ACL),进入技术/投稿群
id:DLNLPer,记得备注呦
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)