引言
本文整理 2024 年 9 月至 10 月中旬全球各大高校与科研机构发布的 70 篇代码大模型相关论文。根据论文内容,我们将这些论文整理为了基座模型、代码微调、测试基准、代码 Agent、代码与大模型推理、代码生成、SQL 生成、代码 embedding、漏洞检测与修复等主题。全文篇幅较长,建议电脑端阅读。
若您想了解其他时期的代码大模型论文,也欢迎关注我们的代码大模型综述https://arxiv.org/abs/2311.07989(已发表于机器学习顶刊 TMLR)和 GitHub 开源项目https://github.com/codefuse-ai/Awesome-Code-LLM,以及前四期回顾:
2024 年 8 月暨 ACL 2024 57篇代码大模型论文精选
01
基座模型
OLMoE: Open Mixture-of-Experts Language Models
本文介绍了 OLMoE,这是一个采用稀疏混合专家(Mixture-of-Experts)的最先进开放式语言模型。OLMoE-1B-7B 拥有 7B 参数,但处理每个输入仅使用 1B 参数。OLMoE 经过了了 5T token 的预训练,并进一步微调获得 OLMoE-1B-7B-Instruct。OLMoE 在所有具有类似激活参数的可用模型中表现出色,甚至超越了 Llama2-13B-Chat 和 DeepSeekMoE-16B 等更大的模型。作者展示了关于 MoE 训练的各种实验,发现模型中的路由显示出高度的专业化,并开源了所有方面模型权重、训练数据、代码和日志。
发布日期:2024-09-03
链接:https://arxiv.org/abs/2409.02060
机构:Allen Institute for AI
Arctic-SnowCoder: Demystifying High-Quality Data in Code Pretraining
本文研究表明,高质量数据对于大模型的有效预训练至关重要。作者介绍了 Arctic-SnowCoder-1.3B,一个在代码领域进行预训练的数据高效基础模型,通过三个阶段逐渐优化数据,实现了领先水平。尽管训练数据有限,Arctic-SnowCoder 在 BigCodeBench 上表现出色,胜过其他规模相似但仅训练了不超过 1T token 的模型,比 Phi-1.5-1.3B 高出 36%。在所有评估基准中,Arctic-SnowCoder-1.3B 都超过了在 1T token 上进行预训练的 StarCoderBase-3B。此外,它在 HumanEval+ 等基准上与预训练超过 3.3T token 的 StarCoder2-3B 相匹敌,并在 BigCodeBench 上也保持竞争力。作者的评估提供了对 Arctic-SnowCoder 各项设计选择的全面分析,最重要的是发现高质量数据的关键在于与下游应用程序的分布对齐。
发布日期:2024-09-03
链接:https://arxiv.org/abs/2409.02326
机构:Snowflake AI Research
How Does Code Pretraining Affect Language Model Task Performance?
本文研究表明,将自然语言和代码混合训练大模型可能对特定任务产生积极影响。作者通过控制语言和代码数据之间的关系,发现在预训练中增加代码比例可以提高在语义解析和数学等结构化输出任务上的性能,但也可能对需要语言结构敏感性的任务产生负面影响,如句法或形态学,以及衡量现实世界知识的任务。
发布日期:2024-09-06
链接:https://arxiv.org/abs/2409.04556
机构:Google Research
Qwen2.5-Coder Technical Report
本文介绍了 Qwen2.5-Coder 系列。该系列包括两个模型:Qwen2.5-Coder-1.5B 和 Qwen2.5-Coder-7B。作为一个专门针对代码的模型,Qwen2.5-Coder 基于 Qwen2.5 架构构建,并在超过 5.5T token 的庞大语料库上进行预训练。通过精心的数据清洗、可扩展的合成数据生成和平衡的数据混合,Qwen2.5-Coder 展示了令人印象深刻的代码生成能力,同时保留了通用的多功能性。该模型已在广泛的与代码相关任务上进行评估,在超过 10 个基准测试中取得了最先进的性能,包括代码生成、补全、推理和修复,在相近模型大小的情况下始终优于更大的模型。作者相信 Qwen2.5-Coder 系列的发布不仅将推动代码智能研究的边界,而且通过其宽松的许可证,将鼓励开发者在现实应用中更广泛地采用。
发布日期:2024-09-18
链接:https://arxiv.org/abs/2409.12186
机构:Alibaba Group
aiXcoder-7B: A Lightweight and Effective Large Language Model for Code Completion
本文提出了一个轻量而有效的代码补全大模型 aiXcoder-7B。相比现有大模型,aiXcoder-7B 在较小规模(7B 参数)下实现了更高的代码补全准确性。作者将 aiXcoder-7B 的优越性归因于三个关键因素:多目标训练、多样化数据采样策略和大量高质量数据。实验证明,aiXcoder-7B 在五个常用代码补全基准测试和本文收集的新基准测试中表现优异,超越了最新的六个规模相近的大模型,甚至胜过四个更大的大模型(如 StarCoder2-15B 和 CodeLlama-34B),使其成为学术界和工业界的轻量而有效的大模型。
发布日期:2024-10-17
链接:https://arxiv.org/abs/2410.13187
机构:aiXcoder
02
代码微调
GALLa: Graph Aligned Large Language Models for Improved Source Code Understanding
本文提出了一种名为 GALLa(图对齐大模型)的框架,通过利用图神经网络和跨模态对齐技术,在微调过程中将代码的结构信息作为辅助训练任务注入到大模型中。GALLa 既不依赖于特定模型,也不依赖于特定任务,可适用于任何代码大模型和下游任务,且仅在训练时需要来自与微调数据无关的语料库的结构图数据,在推理时与基线大模型相比没有额外成本。实验证明,GALLa 在五个代码任务上对四种不同规模的基座大模型(从 350M 到 8B)均取得了显著性能提升。
发布日期:2024-09-06
链接:https://arxiv.org/abs/2409.04183
机构:Ant Group
How Do Your Code LLMs Perform? Empowering Code Instruction Tuning with High-Quality Data
本文研究了如何构建更好的代码指令微调数据。作者发现,使用现有数据集训练的代码模型在 HumanEval 上表现优秀,但在 LiveCodeBench 等其他基准测试中表现较差。经进一步调查,发现许多数据集存在严重的数据泄漏问题。清理了大部分泄漏数据后,一些知名高质量数据集表现不佳。这一发现揭示了一个新挑战:如何识别哪些数据集真正符合高质量代码指导数据的标准。为解决这一问题,作者提出了一种高效的代码数据修剪策略以选择优质样本。该方法基于指令复杂性、响应质量和指令多样性三个维度进行选择。基于所选数据,作者提出了 XCoder,一系列从 LLaMA3 微调而来的模型。实验证明,XCoder 在使用更少训练数据的情况下实现了新的最先进性能,验证了数据策略的有效性。此外,作者对数据组成进行了全面分析,发现现有代码数据集根据构建方法具有不同特征,为未来代码代码大模型提供了新的见解。
发布日期:2024-09-05
链接:https://arxiv.org/abs/2409.03810
机构:Beijing University of Posts and Telecommunications
Policy Filtration in RLHF to Fine-Tune LLM for Code Generation
本文研究了基于人类反馈的强化学习在大模型中的应用。作者提出了一种名为 Policy Filtration for Proximal Policy Optimization (PF-PPO) 的方法,通过过滤那些可能不可靠的奖励样本,以提高策略学习的信噪比。实验证明,PF-PPO 在代码生成任务中取得了显著的效果,在 HumanEval、MBPP 以及一项新的更具挑战性的 LeetCode Contest 基准测试中,一些 PF-PPO 的变体表现出色,实现了新的最先进性能。
发布日期:2024-09-11
链接:https://arxiv.org/abs/2409.06957
机构:无
RLEF: Grounding Code LLMs in Execution Feedback with Reinforcement Learning
本文提出了一种端到端的强化学习方法,用于引导模型在代码合成领域中利用执行反馈,从而使得大模型能够在竞赛编程任务中取得新的最先进结果,同时将所需样本量减少一个数量级。作者的分析表明,该方法下大模型能够有效地在多个步骤中利用自动反馈。
发布日期:20244-10-02
链接:https://arxiv.org/abs/2410.02089
机构:Meta AI
Training Language Models on Synthetic Edit Sequences Improves Code Synthesis
本文开发了一种名为 LintSeq 的算法,用于生成合成数据,通过将现有代码重构为代码编辑序列,从而填补了代码编辑数据稀缺的空白。作者通过在合成编辑序列上微调模型,展示了相较于基准数据集,这些模型在编程任务上表现出更多样化且更好的推理能力,为代码合成任务带来了更好的性能提升。此外,作者还展示了在代码理解领域,通过在合成代码编辑上微调微型模型,可以实现最先进的代码合成技术,即使是在设备端模型类别下。
发布日期:2024-10-03
链接:https://arxiv.org/abs/2410.02749
机构:New York University
CodeDPO: Aligning Code Models with Self Generated and Verified Source Code
本文提出了 CodeDPO,一个集成了偏好学习的框架,旨在改善代码生成中的两个关键偏好因素:代码正确性和效率。作者通过一种新颖的数据集构建方法,利用自生成和验证机制,同时生成和评估代码和测试用例。通过这种自我验证过程,他们的 PageRank 启发式算法迭代地更新每个代码片段的排名分数,最终创建了一个基于正确性和效率的代码偏好优化数据集。CodeDPO 在五个广泛使用的基准测试中进行了全面评估,证明相较于现有方法,它在正确性和效率方面取得了显著改进。
发布日期:2024-10-08
链接:https://arxiv.org/abs/2410.05605
机构:ByteDance
03
测试基准
ComplexCodeEval: A Benchmark for Evaluating Large Code Models on More Complex Code
本文介绍了一个名为 ComplexCodeEval 的基准测试,旨在评估大模型在各种开发任务中的表现,包括代码生成、完成、API 推荐和测试用例生成。通过对高星 GitHub 仓库中的 3,897 个 Java 样本和 7,184 个 Python 样本进行注释,模拟真实开发环境,作者的实验揭示了上下文对性能的提升作用,以及数据泄漏可能导致性能高估,突显了更准确评估的重要性。
发布日期:2024-09-16
链接:https://arxiv.org/abs/2409.10280
机构:University of Electronic Science andTechnology of China
CodeMMLU: A Multi-Task Benchmark for Assessing Code Understanding Capabilities of CodeLLMs
本文介绍了一个名为 CodeMMLU 的综合性多项选择基准测试,旨在评估大模型对软件和代码理解的深度。与传统基准测试不同,CodeMMLU 评估模型推理代码的能力,而非仅仅生成代码,从而更深入地了解它们对复杂软件概念和系统的掌握程度。作者的广泛评估揭示了即使是最先进的模型在面对 CodeMMLU 时也面临重大挑战,突显了在代码生成之外理解方面的不足。通过强调代码理解与有效生成之间的重要关系,作者希望 CodeMMLU 能成为推进 AI 辅助软件开发的重要资源。
发布日期:2024-10-02
链接:https://arxiv.org/abs/2410.01999
机构:FPT Software AI Center
BabelBench: An Omni Benchmark for Code-Driven Analysis of Multimodal and Multistructured Data
本文介绍了一项创新性的基准框架 BabelBench,用于评估大模型在处理多模态多结构数据和代码执行方面的能力。该基准通过 247 个精心策划的问题,挑战模型在知觉、常识推理、逻辑推理等任务中的表现。实验证明,即使像 ChatGPT 4 这样的前沿模型也有很大的改进空间。
发布日期:2024-10-01
链接:https://arxiv.org/abs/2410.00773
机构:ByteDance Inc.
SWE-bench Multimodal: Do AI Systems Generalize to Visual Software Domains?
本文研究了大模型代理在软件工程领域的贡献,提出了 SWE-bench Multimodal(SWE-bench M)来评估大模型在修复视觉型、用户界面 JavaScript 软件中的 Bug 能力。通过研究发现,现有的顶尖 SWE-bench 系统在解决 SWE-bench M 上存在困难,揭示了在视觉问题解决和跨语言泛化方面的局限性。最后,作者展示了 SWE-agent 灵活的语言无关特性使其在 SWE-bench M 上明显优于其他系统,在解决任务实例中达到 12%,而第二最佳系统仅为 6%。
发布日期:2024-10-04
链接:https://arxiv.org/abs/2410.03859
机构:Stanford University
SWE-Bench+: Enhanced Coding Benchmark for LLMs
本文针对软件工程中大语言模型在编码方面的应用进行了研究。作者通过对 SWE-bench 数据集的实证分析揭示了一些关键问题:在解决问题方面,SWE-Agent+GPT-4 虽然在排行榜上名列前茅,但数据集存在解决方案泄露(已包含在问题报告中)和测试用例不足等问题。在去除这些问题后,SWE-Agent+GPT-4 的成功率从 12.47% 下降到了 3.97%。
发布日期:2024-10-09
链接:https://arxiv.org/abs/2410.06992
机构:York University
HumanEval-V: Evaluating Visual Understanding and Reasoning Abilities of Large Multimodal Models Through Coding Tasks
本文介绍了名为 HumanEval-V 的新型轻量级基准测试,旨在通过代码生成评估大型多模态模型对视觉理解和推理能力。作者通过修改原始问题的上下文和算法模式,重新绘制视觉元素,确保与源文本的区别,从而创建了 108 个精心设计的入门级 Python 编程任务。评估结果显示,当前大模型在视觉推理和编码能力方面存在显著挑战,为未来研究提供了重要方向。
发布日期:2024-10-16
链接:https://arxiv.org/abs/2410.12381
机构:City University of Hong Kong
Codev-Bench: How Do LLMs Understand Developer-Centric Code Completion?
本文提出了一种名为 Codev-Agent 的基于代理的系统,通过分析工业代码完成工具的业务数据,重新定义评估标准,以更好地符合开发者意图和所需的完成行为。作者还介绍了 Code-Development Benchmark(Codev-Bench),这是一个细粒度、现实世界、存储库级和以开发者为中心的评估框架,旨在评估代码完成工具是否能够捕捉开发者的即时意图,并在不同情境下提供适当的代码,为现代软件开发提供更真实的基准。
发布日期:2024-10-02
链接:https://arxiv.org/abs/2410.01353
机构:Northwestern University
04
代码 Agent
MarsCode Agent: AI-native Automated Bug Fixing
本文介绍了 MarsCode Agent,一个利用大语言模型自动识别和修复软件代码中漏洞的新框架。通过结合大语言模型的强大能力和先进的代码分析技术,MarsCode Agent 能够准确定位故障并生成补丁。我们的方法遵循一套系统化的流程,包括规划、漏洞复现、故障定位、候选补丁生成和验证,以确保高质量的漏洞修复。在 SWE-bench 上 对 MarsCode Agent 进行的评估显示相比大多数现有的自动化方法,MarsCode Agent 在漏洞修复方面取得了较高的成功率。
发布日期:2024-09-02
链接:https://arxiv.org/abs/2409.00899
机构:ByteDance
Large Language Model-Based Agents for Software Engineering: A Survey
本文对软件工程领域中基于大语言模型的智能代理进行了全面系统的调研。作者收集了 106 篇论文,并从软件工程和代理两个角度对其进行了分类。研究发现,基于大语言模型的代理在软件工程中展现出显著的效果,有望通过多个代理之间的协同作用和人机交互解决复杂的实际软件工程问题。
发布日期:2024-09-04
链接:https://arxiv.org/abs/2409.02977
机构:Fudan University
A Pair Programming Framework for Code Generation via Multi-Plan Exploration and Feedback-Driven Refinement
本文基于对编程实践的借鉴提出了一种新型大模型框架——PairCoder,用于代码生成。PairCoder 包含两个协作的 LLM 代理,即 Navigator 代理用于高层规划和 Driver 代理用于具体实现。Navigator 负责提出有前景的解决方案计划,选择当前最佳方案,并根据执行反馈指导下一轮迭代。Driver 遵循 Navigator 的指导进行初始代码生成、代码测试和优化。这种交织和迭代的工作流涉及多计划探索和基于反馈的优化,模仿了配对程序员的协作。作者在各种代码生成基准测试上评估了 PairCoder,广泛的实验结果表明 PairCoder 的准确性优越,相对于直接提示 LLM,Pass@1 提升了 12.00%-162.43%。
发布日期:2024-09-08
链接:https://arxiv.org/abs/2409.05001
机构:Nanjing University
Agents in Software Engineering: Survey, Landscape, and Vision
本文对将大模型代理与软件工程相结合的研究进行了综述,提出了软件工程中基于大模型代理的框架,包括三个关键模块:感知、记忆和行动。同时本文总结了在整合这两个领域中存在的挑战,并针对现有挑战提出了未来的机遇。
发布日期:2024-09-13
链接:https://arxiv.org/abs/2409.09030
机构:Sun Yat-sen University
HyperAgent: Generalist Software Engineering Agents to Solve Coding Tasks at Scale
本文介绍了一种名为 HyperAgent 的新型通用多智能体系统,旨在模拟人类开发者的工作流程,以解决不同编程语言下广泛的软件工程任务。通过四个专门的代理 - 计划者、导航器、代码编辑器和执行器,HyperAgent 管理软件工程任务的整个生命周期,从最初的构思到最终的验证。经过广泛的评估,HyperAgent 在各种软件工程任务上取得了最先进的性能,例如在 GitHub 问题解决方面成功率达到 25.01%,在代码仓库级代码生成和故障定位与程序修复方面表现卓越。
发布日期:2024-09-09
链接:https://arxiv.org/abs/2409.16299
机构:FPT Software AI Center
REDO: Execution-Free Runtime Error Detection for COding Agents
本文介绍了一种名为 REDO 的方法,该方法结合了大模型和静态分析工具,用于检测编程代理的运行时错误,而无需执行代码。此外,作者提出了一个基于 SWE-Bench(lite)的基准任务 SWE-Bench-Error-Detection(SWEDE),用于评估在具有复杂外部依赖关系的存储库级问题中的错误检测。通过对各种错误检测任务进行定量和定性分析,作者展示了 REDO 相对于当前最先进方法的优越表现,实现了 11.0%更高的准确率和 9.1%更高的加权 F1 分数,并提供了将大模型纳入错误检测的优势见解。
发布日期:2024-10-10
链接:https://arxiv.org/abs/2410.09117
机构:AWS AI Labs
Evaluating Software Development Agents: Patch Patterns, Code Quality, and Issue Complexity in Real-World GitHub Scenarios
本文研究评估了 10 个顶级代理生成的 4,892 个补丁,针对 500 个来自 SWE-Bench Verified 的真实 GitHub 问题,重点关注它们对代码质量的影响。研究发现,有 170 个问题没有任何代理能解决,表明还有改进的空间。大多数代理保持了代码的可靠性和安全性,避免了新的错误或漏洞;一些代理增加了代码复杂性,但许多减少了代码重复,并减少了代码异味。最后,代理在较简单的代码库上表现更好,这表明将复杂任务分解为较小的子任务可能会提高效率。
发布日期:2024-10-16
链接:https://arxiv.org/abs/2410.12468
机构:Singapore Management University
05
代码生成
USCD: Improving Code Generation of LLMs by Uncertainty-Aware Selective Contrastive Decoding
本文提出了一种简单而有效的不确定性感知选择性对比解码(USCD)机制,旨在提高大模型在一次性生成中的代码质量,减少输出噪声的影响。通过精心设计负面提示(即无效提示)来消除输出噪声,作者首次展示了标准提示的预测分布不确定性与输出噪声之间的低 Jensen-Shannon 散度(约为 0.25),进一步表明它们之间的高相关性。通过基于标准提示的预测分布不确定性有选择性地消除由无效提示引起的输出噪声,本方法在推理过程中具有出色的灵活性。在多个大模型上进行的广泛实验显示 USCD 显著提升了一次生成的代码质量,平均 pass@1 分数提高了 16.59%。
发布日期:2024-09-09
链接:https://arxiv.org/abs/2409.05923
机构:Wuhan University
Multi-Programming Language Ensemble for Code Generation in Large Language Model
本文提出了多编程语言集成(MPLE),一种新颖的基于集成的代码生成方法,利用多种编程语言中的代码生成来增强整体性能。通过将每种特定语言的代码生成过程视为一个单独的“弱专家”,并有效地整合它们的输出,MPLE 减轻了特定语言的错误和偏见。这种多语言集成策略利用了不同编程语言的互补优势,使模型能够生成更准确、更稳健的代码。该方法可以无缝集成常用技术,如反射算法和蒙特卡洛树搜索,以进一步提高代码生成质量。实验结果表明,该框架在现有基准(HumanEval 和 HumanEval-plus)上始终将基准性能提升了高达 17.92%,在 HumanEval 上达到 96.25%,在各种大模型中取得了最先进结果。
发布日期:2024-09-06
链接:https://arxiv.org/abs/2409.04114
机构:NinjaTech AI
RethinkMCTS: Refining Erroneous Thoughts in Monte Carlo Tree Search for Code Generation
本文提出了一种名为 RethinkMCTS 的方法,通过在生成代码之前使用蒙特卡洛树搜索算法进行思维级别搜索,从而探索更广泛的策略。作者利用细粒度的代码执行反馈构建口头反馈,以在搜索过程中修正错误的想法,确保搜索沿着正确的推理路径进行,从而提高了树的整体搜索质量。实验结果表明,RethinkMCTS 优于先前基于搜索和基于反馈的代码生成基准。在 HumanEval 数据集上,它将 GPT-3.5-turbo 的 pass@1 从 70.12 提高到 89.02,将 GPT-4o-mini 的分数从 87.20 提升到 94.51。
发布日期:2024-09-15
链接:https://arxiv.org/abs/2409.09584
机构:Shanghai Jiao Tong University
RAMBO: Enhancing RAG-based Repository-Level Method Body Completion
本文介绍了一种基于 RAG 的新方法 RAMBO,用于处理仓库级别的方法体完成任务。RAMBO 通过识别仓库特定的元素,如类、方法和变量/字段,及其相关用法,将这些元素和相关用法纳入代码生成过程中,确保生成更准确、与上下文相关的方法体。作者在 40 个 Java 项目中使用领先的代码大模型进行实验,结果显示 RAMBO 在 BLEU 提高了高达 46%,在 CodeBLEU 提高了 57%,在 Compilation Rate 提高了 36%,在 Exact Match 方面提高了最多 3 倍。值得注意的是,RAMBO 在 Exact Match 方面超过 RepoCoder Oracle 方法高达 12%,为仓库级别的方法体完成设立了新的基准。
发布日期:2024-09-23
链接:https://arxiv.org/abs/2409.15204
机构:Vietnam National University
Preference-Guided Refactored Tuning for Retrieval Augmented Code Generation
本文提出了 RRG(Retrieve, Refactor, Generate)框架,用于解决检索增强代码生成中存在的信息冗余和偏好差异问题。通过引入一个代码重构器模块,RRG 将检索器和生成器进行连接,重构检索到的代码,消除冗余信息和噪音,为生成器提供更高质量的上下文,使其能够以更低的推理成本产生更准确的结果。实验证明,RRG 成功地弥合了检索器和生成器之间的偏好差距,取得了显著的性能改进,包括 EM 增加达到 28%,BLEU 增加 13%,CodeBLEU 增加 6.8%。
发布日期:2024-09-24
链接:https://arxiv.org/abs/2409.15895
机构:Fudan University
Horizon-Length Prediction: Advancing Fill-in-the-Middle Capabilities for Code Generation with Lookahead Planning
本文提出了一种名为 Horizon-Length Prediction(HLP)的新颖训练目标,旨在解决 Fill-in-the-Middle(FIM)训练范式的局限性。通过教导模型在每一步预测剩余中间 token 的数量(即视野长度),HLP 在提前规划方面推动了 FIM 的进展,使模型能够在任意左右上下文中固有地学习填充边界,而无需依赖于特定于数据集的后处理。作者的评估结果表明,HLP 在不同模型和规模上显著提高了 FIM 的性能,相对提升高达 24%,涵盖了各种基准测试,包括文件级和存储库级,而无需借助不现实的后处理方法。此外,通过 HLP 获得的增强规划能力提升了模型在代码推理方面的性能,且只带来微不足道的训练开销,没有额外的推理成本,确保在实际场景中的可行性。
发布日期:2024-10-04
链接:https://arxiv.org/abs/2410.03103
机构:University of Illinois Urbana-Champaign
RGD: Multi-LLM Based Agent Debugger via Refinement and Generation Guidance
本文介绍了一种名为“Refinement and Guidance Debugging (RGD)”的新型 LLM 代理架构,旨在提高大模型在代码生成和自动调试方面的能力。通过引入三种不同的 LLM 代理——指导代理、调试代理和反馈代理,RGD 将代码生成任务分解为多个步骤,从而实现更清晰的工作流程,并通过自我反思和反馈实现迭代式代码优化。实验证明,RGD 在 HumanEval 数据集上取得了 9.8%的性能提升,在 MBPP 数据集上取得了 16.2%的性能提升,相较于现有技术和传统的直接提示方法,展现出卓越的代码生成能力。
发布日期:2024-10-02
链接:https://arxiv.org/abs/2410.01242
机构:University of Sydney
Survey on Code Generation for Low resource and Domain Specific Programming Languages
本文系统地调研了当前 LLM 在低资源编程语言(LRPLs)和领域特定语言(DSLs)代码生成方面的状态、方法论和挑战。作者筛选了自 2020 年至 2024 年间逾 27,000 篇发表的研究中的 111 篇论文,评估了 LLM 在 LRPLs 和 DSLs 中的能力和局限。本文报告了 LLM 的使用情况、基准测试和评估指标,提高性能的策略,以及数据集收集和整理的方法。通过识别出四种主要的评估技术和多个用于评估 LRPLs 和 DSLs 代码生成的指标,作者将改进方法分类为六大类,总结了研究人员提出的新颖架构,并指出了当前缺乏用于评估 LRPLs 和 DSLs 代码生成的标准方法和基准数据集。
发布日期:2024-10-04
链接:https://arxiv.org/abs/2410.03981
机构:Indian Institute of Technology Madras
From Code to Correctness: Closing the Last Mile of Code Generation with Hierarchical Debugging
本文介绍了一种多粒度调试器(MGDebugger),通过将有问题的代码分解成层次树结构的子函数,在不同级别的粒度上隔离、识别和解决错误。MGDebugger 能够有效地在底层语法错误到高层算法缺陷的各个级别上分析和修复问题,提出了一种 LLM 模拟的 Python 执行器来测试每个子函数,准确定位错误。实验结果表明,MGDebugger 在准确性上优于现有的调试系统,在 HumanEval 中比种子生成提高了 18.9%的准确性,在 HumanEvalFix 中有着 97.6%的修复成功率。此外,MGDebugger 能够有效修复不同类别和难度级别的错误,展示了其鲁棒性和有效性。
发布日期:2024-10-02
链接:https://arxiv.org/abs/2410.01215
机构:Shanghai Jiao Tong University
06
代码与大模型推理
Unlocking Reasoning Potential in Large Langauge Models by Scaling Code-form Planning
本文介绍了一个可扩展的框架 CodePlan,赋予大模型生成和遵循“代码形式计划”的能力,即概述高层次、结构化推理过程的伪代码。通过利用代码的结构化和多功能性,CodePlan 有效地捕捉到复杂推理任务固有的丰富语义和控制流。重要的是,CodePlan 允许从庞大、广泛的文本语料库中自动提取代码形式计划,无需特定于任务的数据集,这使得它能够高效扩展并改进大模型在各种场景下的推理能力。作者构建了一个包含 200 万示例的大规模数据集来训练 CodePlan,结果在 13 个具有挑战性的多步推理基准测试中取得了相对改进 25.1%的成绩,涵盖了数学推理、符号推理、遵循指令、多跳 QA 和决策任务。进一步分析显示,CodePlan 在更复杂的推理任务上表现出越来越好的性能提升,并且由于其泛化能力,具有显著的数据效率。
发布日期:2024-09-19
链接:https://arxiv.org/abs/2409.12452
机构:Tsinghua University
Steering Large Language Models between Code Execution and Textual Reasoning
本文研究表明,在优化多智能体框架或推理链的同时,直接生成代码可以更可扩展地解决一些基准任务,避免了与文本迭代和搜索相关的计算开销。作者在 7 种现有流行的方法上进行了实验,发现目前没有最佳方法正确引导大模型在需要时生成代码。他们提出了三种方法来更好地引导大模型的代码/文本生成,并取得了显著改进。
发布日期:2024-10-04
链接:https://arxiv.org/abs/2410.03524
机构:Microsoft
CodePMP: Scalable Preference Model Pretraining for Large Language Model Reasoning
本文介绍了一种名为 CodePMP 的可扩展偏好模型预训练(PMP)管道,通过利用大量合成代码-偏好对,改善了大语言模型在推理能力方面的表现。作者评估了 CodePMP 在数学推理任务(GSM8K,MATH)和逻辑推理任务(ReClor,LogiQA2.0)上的效果,始终显示出在推理性能方面的显著改进,凸显了可扩展偏好模型预训练对于有效奖励建模的重要性。
发布日期:2024-10-03
链接:https://arxiv.org/abs/2410.02229
机构:Chinese Academy of Sciences
Which Programming Language and What Features at Pre-training Stage Affect Downstream Logical Inference Performance?
本文研究了大语言模型在数学和逻辑推理任务中的泛化能力。作者通过对十种编程语言和三个自然语言数据集的预训练,发现使用编程语言进行预训练的模型在逻辑推理任务中表现优异,尤其在遵循指令方面表现更佳。研究结果揭示了编程语言对逻辑推理性能的影响,同时发现程序的抽象语法树深度会影响逻辑推理表现。
发布日期:2024-10-09
链接:https://arxiv.org/abs/2410.06735
机构:The University of Tokyo
MathCoder2: Better Math Reasoning from Continued Pretraining on Model-translated Mathematical Code
本文提出了一种新方法,通过生成数学代码和相应的推理步骤来持续预训练大模型。作者构建了一个高质量的数学持续预训练数据集,包括数学相关的网络数据、使用数学包的代码、数学教科书和合成数据。通过提取 LaTeX 表达式、构建推理步骤、生成相应代码以准确捕捉数学推理过程,作者将生成的代码附加到每个推理步骤中,得到配对的自然语言推理步骤及其对应的代码数据。这些数据与原始数据集结合后,形成了一个 19.2B token 的高性能数学预训练语料库,命名为 MathCode-Pile。使用这个语料库对几种流行的基础模型进行训练显著提高了它们的数学能力,从而创造了 MathCoder2 系列模型。
发布日期:2024-10-10
链接:https://arxiv.org/abs/2410.08196
机构:The Chinese University of Hong Kong
07
AI 代码分析与安全
Automatic Detection of LLM-generated Code: A Case Study of Claude 3 Haiku
本文研究了使用大模型生成的代码在软件开发中可能存在的风险,并提出了一种准确检测大模型生成代码的方法。通过对 CodeSearchNet 数据集上 Claude 3 Haiku 生成的代码进行研究,本文提取了 22 个软件度量特征,并分析了函数级和类级两个层面的代码。研究结果显示,Claude 3 生成的函数较长,类较短,这一特征可用于使用机器学习模型准确识别大模型生成的代码,函数级代码识别准确率为 82%,类级代码识别准确率为 66%。
发布日期:2024-09-02
链接:https://arxiv.org/abs/2409.01382
机构:Concordia University
HexaCoder: Secure Code Generation via Oracle-Guided Synthetic Training Data
本文介绍了 HexaCoder,一种增强大模型生成安全代码能力的新方法。HexaCoder 通过自动合成安全代码来减少寻找合适训练数据的工作量,包括一个由预言引导的数据合成流水线和一个安全代码生成的两步过程。研究表明,HexaCoder 显著降低了生成的易受攻击代码数量,同时提高了生成代码的安全性和功能正确性,为解决大模型生成的代码安全性问题提供了新的思路。
发布日期:2024-09-10
链接:https://arxiv.org/abs/2409.06446
机构:CISPA Helmholtz Center for Information Security
Can OpenSource beat ChatGPT? -- A Comparative Study of Large Language Models for Text-to-Code Generation
本文评估了五种最先进的大模型——Bard、BingChat、ChatGPT、Llama2 和 Code Llama——在文本生成代码的能力方面的表现。研究使用来自编程网站 LeetCode 的编程问题描述作为提示,要求模型生成 Python 解决方案,并通过 LeetCod e 的测试功能评估生成的输出质量。结果显示,在处理编程挑战时,ChatGPT 表现最为出色,甚至超过了像 Code Llama 这样专门针对代码的模型。作者还通过对生成输出的运行时间和内存使用情况进行比较,以及将生成的代码与 LeetCode 上其他代码提交进行对比,深入了解了模型的性能。此外,通过详细的错误分析,包括对生成代码的正确缩进和形式差异的比较,以及将错误类别进行分类,作者得以更加细致地了解结果和改进潜力。研究结果还显示了一个明显的模式,即当模型面对更多上下文信息(即更长的提示)时,生成的代码错误性会逐渐增加。
发布日期:2024-09-06
链接:https://arxiv.org/abs/2409.04164
机构:LMU Munich
AutoSafeCoder: A Multi-Agent Framework for Securing LLM Code Generation through Static Analysis and Fuzz Testing
本文介绍了一种名为 AutoSafeCoder 的多代理框架,旨在通过 LLM 驱动的代理进行代码生成、漏洞分析和安全增强,以实现安全的软件开发。作者通过整合动态和静态测试,在 LLM 代码生成过程中确保多代理代码生成的安全性,从而提高安全性,实验结果表明,与基准 LLM 相比,使用 SecurityEval 数据集可以减少 13%的代码漏洞,而不影响功能。
发布日期:2024-09-16
链接:https://arxiv.org/abs/2409.10737
机构:University of Texas at San Antonio
LLM Hallucinations in Practical Code Generation: Phenomena, Mechanism, and Mitigation
本文研究了大模型在代码生成中出现的幻觉现象,尤其是在处理实际开发过程中复杂上下文依赖的情况下。作者通过对六种主流大模型生成的代码进行手动检查,建立了幻觉分类体系,并深入分析了幻觉现象的分布和成因。最终,作者提出了基于 RAG 的缓解方法,在所有研究的大模型中表现出一致的有效性。
发布日期:2024-09-30
链接:https://arxiv.org/abs/2409.20550
机构:Sun Yat-sen University
Mitigating Gender Bias in Code Large Language Models via Model Editing
本文通过提出一个名为 CodeGenBias 的数据集和一个基于相关职业实际性别分布的评估指标 FB-Score(事实性偏见分数),来评估和量化八个主流代码大模型中的性别偏见。作者还开发了一个名为 MG-Editing(多粒度模型编辑)的模型编辑方法,可以在五个不同的模型参数粒度级别应用编辑,有效缓解了代码大模型中的性别偏见,同时保持了其通用代码生成能力,并展现出良好的泛化能力。
发布日期:2024-10-10
链接:https://arxiv.org/abs/2410.07820
机构:Harbin Institute of Technology
Collu-Bench: A Benchmark for Predicting Language Model Hallucinations in Code
本文介绍了一项名为 Collu-Bench 的基准测试,旨在预测大模型在代码生成和自动程序修复任务中的代码幻觉。通过收集来自五个数据集和 11 个不同的大模型的 13,234 个代码幻觉实例,为研究大模型在代码中的幻觉提供了基础。作者通过传统机器学习技术和神经网络在 Collu-Bench 上进行实验,取得了 22.03 -- 33.15%的准确率,揭示了代码幻觉模式的见解,凸显了准确定位大模型幻觉的挑战,并强调了对更复杂技术的需求。
发布日期:2024-10-13
链接:https://arxiv.org/abs/2410.09997
机构:Purdue University
Effi-Code: Unleashing Code Efficiency in Language Models
本文提出了名为 Effi-Code 的方法,旨在增强大模型在代码生成中的效率和正确性。通过基于开源大模型的自我优化过程,利用开销分析生成高质量的正确且高效代码样本数据集,并用于微调各种大模型。作者的方法涉及通过运行时性能指标和正确性检查引导的生成代码的迭代优化。广泛实验证明,在 Effi-Code 微调的模型在各种任务类型上,代码正确性和效率均有显著改进。Effi-Code 提供了一种可扩展且通用的方法,可改善人工智能系统中的代码生成,在软件开发、算法设计和计算问题解决等领域具有潜在应用。
发布日期:2024-10-14
链接:https://arxiv.org/abs/2410.10209
机构:The University of Hong Kong
SecCodePLT: A Unified Platform for Evaluating the Security of Code GenAI
本文提出了 SecCodePLT,这是一个用于评估代码生成模型风险的统一综合平台。作者通过结合专家和自动生成的方法,引入了一种新的数据创建方法,以确保数据质量同时实现大规模生成。针对不安全代码,作者将样本与测试用例关联,进行与代码相关的动态评估。对于对网络攻击的帮助性,作者建立了一个真实环境,并构建样本以促使模型生成实际攻击,同时在该环境中使用动态度量。实验证明,SecCodePLT 在安全相关性方面胜过了最先进的基准 CyberSecEval。此外,它更好地识别了最先进模型在不安全编码和网络攻击有帮助性方面的安全风险。最后,作者将 SecCodePLT 应用于最先进的代码代理 Cursor,并首次发现了这一先进编码代理中的非平凡安全风险。
发布日期:2024-10-14
链接:https://arxiv.org/abs/2410.11096
机构:Virtue AI
08
代码 Embedding
zsLLMCode: An Effective Approach for Functional Code Embedding via LLM with Zero-Shot Learning
本文提出了一种名为 zsLLMCode 的新方法,利用大模型将源代码转换为简洁的摘要,然后使用专门的嵌入模型将其转化为功能代码嵌入。这种无监督方法消除了对训练的需求,并解决了大模型在应用于复杂任务时出现幻觉的问题。这是首个将大模型和嵌入模型结合生成代码嵌入的方法。实验结果表明,本方法在无监督方法中表现出有效性和优越性。
发布日期:2024-09-23
链接:https://arxiv.org/abs/2409.14644
机构:Macau University of Science and Technology
Instructive Code Retriever: Learn from Large Language Model's Feedback for Code Intelligence Tasks
本文提出了一种名为指导性代码检索器(ICR)的新方法,旨在通过树状损失函数学习语料库的语义和结构信息,以改善大语言模型在各种代码智能任务和数据集上的推理能力。作者通过大模型的反馈来指导检索器的训练,实验证明该方法获得的检索器在各种任务上显著优于现有技术水平。对代码总结、程序合成和故障修复等任务的评估结果显示,与之前的最先进算法相比,该方法在两个代码总结数据集的 BLEU-4 指标上分别提升了 50.0%和 90.0%,在程序合成数据集上的 CodeBLEU 提高了 74.6%,在两个故障修复数据集上的 BLEU-4 分别增加了 3.6 和 3.2。
发布日期:2024-10-15
链接:https://arxiv.org/abs/2410.11300
机构:Zhejiang University
09
SQL 生成
BEAVER: An Enterprise Benchmark for Text-to-SQL
本文研究发现,在使用企业数据仓库数据构建基准测试时,大模型的性能表现不佳,即使采用了标准提示工程和 RAG 技术。这主要由三个原因造成:1)开源大模型无法在企业数据仓库上进行训练,2)企业表的结构比公共数据中的结构更复杂,导致任务更困难,以 3)及商业问题通常更复杂,需要跨多个表进行连接和聚合。因此,本文提出了一个新数据集 BEAVER,从真实企业数据仓库中收集自然语言查询及其正确的 SQL 语句。作者使用最新的大模型对这个数据集进行了评估,并展示了它们在这一任务上的表现不佳。
发布日期:2024-09-03
链接:https://arxiv.org/abs/2409.02038
机构:MIT
PTD-SQL: Partitioning and Targeted Drilling with LLMs in Text-to-SQL
本文提出的 PTD-SQL,通过采用查询组分区使大模型能够集中学习特定问题类型的思维过程,从而增强它们在不同难度级别和问题类别上的推理能力。实验证明,配备 PTD-SQL 的多个先进大模型在 Spider 和 BIRD 数据集上超过或匹敌先前的最先进方法。这些模型在有针对性的训练后显示出显著改进,暗示着与人类学习过程的一定相似性。
发布日期:2024-09-21
链接:https://arxiv.org/abs/2409.14082
机构:Tencent Inc.
DataGpt-SQL-7B: An Open-Source Language Model for Text-to-SQL
本文提出了一个微调后的模型 DataGpt-sql 和自我完善机制,以应对将自然语言查询转换为 SQL 命令的作用,为非专业用户民主化数据访问和分析,减轻了与闭源大模型相关的风险。作者构建了一个包含超过 20,000 个样本的文本到 SQL 数据集以及偏好数据集,以提高 SQL 生成领域的效率。为了进一步确保代码的有效性,作者将代码修正器集成到了模型中。该系统在 spider-dev 数据集上达到了 87.2%的准确率,展示了解决文本到 SQL 转换任务的有效性。
发布日期:2024-09-24
链接:https://arxiv.org/abs/2409.15985
机构:Cainiao Network
From Natural Language to SQL: Review of LLM-based Text-to-SQL Systems
本文总结了基于大模型的文本到 SQL 系统的演变过程,从早期基于规则的模型到先进的大模型方法,并探讨了大模型对这一领域的影响。本文讨论了基准测试、评估方法和评估指标,并独特地研究了知识图谱在这些系统中的整合作用,以提高上下文准确性和模式链接。本文将当前的技术分为上下文学习和微调两类,从而衍生出零样本、少样本学习以及数据增强等方法。最后,本文强调了诸如计算效率、模型稳健性和数据隐私等关键挑战,并展望了未来基于大模型的文本到 SQL 系统在发展和改进方面的潜在领域。
发布日期:2024-10-01
链接:https://arxiv.org/abs/2410.01066
机构:University of Louisiana at Lafayette
10
漏洞检测与修复
Enhancing Source Code Security with LLMs: Demystifying The Challenges and Generating Reliable Repairs
本文引入了一种名为“SecRepair”的基于指令的大语言模型系统,用于可靠地识别、描述和自动修复易受攻击的源代码。通过解决数据收集与标注、系统设计与学习以及性能评估等三大技术挑战,SecRepair 利用强化学习的微调方法实现了对安全代码修复的 12%改进,并展示了在真实测试案例中生成可靠、功能完善且可编译的安全代码修复的能力。
发布日期:2024-09-01
链接:https://arxiv.org/abs/2409.00571
机构:University of Texas at San Antonio
CLNX: Bridging Code and Natural Language for C/C++ Vulnerability-Contributing Commits Identification
本文提出了一种名为 CodeLinguaNexus (CLNX) 的方法,用于增强基于 BERT 的语言模型在轻量化情况下识别 C/C++ 程序的漏洞贡献提交。通过 CLNX,作者成功地提升了模型在识别 C/C++ 漏洞贡献提交方面的性能,使其在真实世界中发现了 38 个开源软件漏洞,取得了新的最先进成果。
发布日期:2024-09-11
链接:https://arxiv.org/abs/2409.07407
机构:Huazhong University of Science and Technology
VulnLLMEval: A Framework for Evaluating Large Language Models in Software Vulnerability Detection and Patching
本文介绍了 VulnLLMEval 框架,旨在评估大模型在识别和修补 C 代码漏洞方面的性能。作者从 Linux 内核中提取了 307 个真实漏洞,创建了一个包含易受攻击和已修补代码的据集。这一基于真实代码的数据集为评估大模型在软件漏洞检测和修补任务中的表现提供了多样且具代表性的实验基础,为严格评估奠定了坚实基础。研究结果显示,大模型在区分易受攻击和已修补代码方面常常遇到困难。此外,在修补任务中,这些模型往往会过于简化代码,生成的解决方案可能需要进一步细化才能直接使用。
发布日期:2024-09-16
链接:https://arxiv.org/abs/2409.10756
机构:University of North Carolina at Charlotte
Can GPT-O1 Kill All Bugs? An Evaluation of GPT-Family LLMs on QuixBugs
本文首次对比了 GPT 家族模型在自动程序修复中的有效性,特别是最新版本的 O1-preview 和 O1-mini 与之前的版本的比较。研究表明,O1 的修复能力超过了之前的 GPT 模型,成功修复了基准测试中的所有 40 个错误。这一研究为进一步深入探讨 GPT 家族模型在自动程序修复中的应用奠定了基础。
发布日期:2024-09-16
链接:https://arxiv.org/abs/2409.10033
机构:Alibaba Cloud
Enhancing Fault Localization Through Ordered Code Analysis with LLM Agents and Self-Reflection
本文介绍了一种新颖的基于 LLM 的故障定位方法 LLM4FL,通过将 SBFL 排名与分治策略相结合,将大型覆盖数据分成可管理的组,并通过提示链接使用多个 LLM 代理,更有效地定位故障。该方法还结合了自我反思和思维链推理,使代理能够迭代生成修复方案并重新排列可疑方法。在 Defects4J(V2.0.0)基准测试上评估 LLM4FL 的结果表明,LLM4FL 在 Top-1 准确率上比 AutoFL 高出 19.27%,超过了 DeepFL 和 Grace 等最先进的有监督技术,而无需特定任务的训练。此外,作者强调了覆盖范围分割和提示链接对故障定位性能的影响,并展示了不同方法排序可以将 Top-1 准确率提高高达 22%。
发布日期:2024-09-20
链接:https://arxiv.org/abs/2409.13642
机构:Concordia University
11
软件工程其他应用
LUK: Empowering Log Understanding with Expert Knowledge from Large Language Models
本文介绍了一种名为 LUK 的新颖知识增强框架,旨在利用大模型中的专家知识来增强较小模型的日志理解能力。通过设计基于大模型的多专家协作框架,并提出两种新颖的预训练任务,LUK 在不同的日志分析任务上取得了最先进的结果。广泛实验证明,来自大模型的专家知识可以更有效地被利用来理解日志。
发布日期:2024-09-03
链接:https://arxiv.org/abs/2409.01909
机构:Fudan University
A Comparative Study on Large Language Models for Log Parsing
本文研究了当前最先进的大模型对日志解析任务的表现。作者选择了六个最新的大模型,包括两个付费专有模型(GPT-3.5 和 Claude 2.1)和四个开源模型,在成熟开源项目的系统日志上比较了它们的性能。研究设计了两种不同的提示方法,并在 16 个不同项目的 1354 个日志模板上应用这些大模型。结果显示,一些开源的模型能够与付费模型竞争,其中 CodeLlama 比 GPT-3.5 多正确提取了 10%的日志模板。此外,研究还提供了关于语言模型可用性的定性见解,例如它们的回答易用程度。作者的结论是,一些较小的、开源的大模型相对于付费专有竞争者,特别是专门针对代码的模型,在日志解析方面能够提供相当大的帮助。
发布日期:2024-09-04
链接:https://arxiv.org/abs/2409.02474
机构:Simula Research Laboratory
Multi-language Unit Test Generation using LLMs
本文通过对大语言模型在自动生成测试方面的应用进行研究,展现了一个通用的流程,结合静态分析来引导大模型生成可编译且具有高覆盖率的测试用例。研究表明,在静态分析的指导下,基于大语言模型的测试生成可以在测试覆盖率方面优于现有技术,并且产生更加自然易读的测试用例,让开发人员容易理解。同时,作者还通过对 161 名专业开发人员进行的用户研究,展示了本方法生成的测试的自然特性。
发布日期:2024-09-04
链接:https://arxiv.org/abs/2409.03093
机构:IBM Research
Generative AI for Requirements Engineering: A Systematic Literature Review
本文通过全面系统的文献综述分析了在需求工程领域利用大模型的最新应用和创新提议。研究调查了关于利用大模型增强需求工程过程的研究,同时识别了这一快速发展领域中的关键挑战和机遇。研究结果突出了对全面评估框架、改进人工智能与人类协作模式以及深入考虑大模型辅助需求工程中伦理影响的迫切需求。未来的研究应优先考虑将大模型应用拓展到整个需求工程生命周期,提升领域特定能力,并制定负责任的人工智能整合策略。
发布日期:2024-09-10
链接:https://arxiv.org/abs/2409.06741
机构:Waseda University
A Fine-grained Sentiment Analysis of App Reviews using Large Language Models: An Evaluation Study
本文研究了使用大语言模型对用户评论进行情感分析,以获取用户对应用功能的看法和不断变化的需求。研究比较了 GPT-4、ChatGPT 和 LLama-2-chat 等最先进的大模型在 0-shot、1-shot 和 5-shot 情景下提取应用功能和相关情感的性能。结果显示,在 0-shot 提取功能时,表现最佳的 GPT-4 模型在 f1 分数上优于基于规则的方法 23.6%;5-shot 进一步提高了 6%。GPT-4 在预测对正确预测的应用功能表示积极情感方面达到了 74%的 f1 分数,5-shot 将其提高了 7%。本研究表明,大模型对生成用户评论的功能特定情感摘要具有很大潜力。
发布日期:2024-09-11
链接:https://arxiv.org/abs/2409.07162
机构:University of Tartu
Context-aware Code Segmentation for C-to-Rust Translation using Large Language Models
本文提出了一种基于大模型的翻译方案,提高了将大规模 C 代码翻译为可编译 Rust 代码的成功率。作者的方法包括三个关键技术:(1)预处理 C 代码以更好地与 Rust 的结构和表达对齐,(2)将代码分割成最适合的翻译单元,以避免超出大模型的上下文窗口限制,(3)通过补充上下文提示,迭代地编译和修复错误,同时保持翻译单元之间的一致性。在对包括超过 4 千行代码的 20 个基准 C 程序进行实验时,作者成功将所有程序翻译为可编译的 Rust 代码,而不会丢失原始代码的对应部分。
发布日期:2024-09-16
链接:https://arxiv.org/abs/2409.10506
机构:The University of Tokyo
TestBench: Evaluating Class-Level Test Case Generation Capability of Large Language Models
本文介绍了 TestBench,这是一个针对基于大模型的测试用例生成的类级别基准,包括来自 GitHub 上 9 个真实大型项目的 108 个 Java 程序,每个代表一个不同的主题领域。作者设计了三种不同类型的提示,基于上下文描述,包括独立上下文、完整上下文和简单上下文。此外,作者提出了一个细粒度评估框架,考虑了测试用例的五个方面:语法正确性、编译正确性、测试正确性、代码覆盖率和缺陷检测率。作者还提出了一个启发式算法来修复大模型生成的错误测试用例。在 TestBench 上评估 CodeLlama-13b、GPT-3.5 和 GPT-4 的实验结果表明,更大的模型展现出更好地利用上下文信息的能力,从而生成更高质量的测试用例;较小的模型可能会受到完整上下文中包含的大量信息引入的噪音的影响。然而,当使用简化版本,即由完整上下文通过抽象语法树分析衍生而来的简单上下文时,这些模型的性能显著提高。作者的分析突出了当前的进展,并指出了未来进一步增强模型效果的方向,即处理测试用例生成的上下文信息。
发布日期:2024-09-26
链接:https://arxiv.org/abs/2409.17561
机构:Nanjing University
Software Engineering and Foundation Models: Insights from Industry Blogs Using a Jury of Foundation Models
本文首次提供了从实践者角度出发对大模型在软件工程领域的应用的调研。作者分析了来自领先科技公司的 155 篇有关 LLM4SE 和 997 篇有关 SE4LLM 的博客文章,利用大模型驱动的调查方法系统地标记和总结了讨论的活动和任务。研究发现,虽然代码生成是 LLM4SE 中最突出的任务,但大模型也被用于许多其他软件工程活动,如代码理解、摘要和 API 推荐。大多数有关 SE4LLM 的博客文章涉及模型部署与操作,以及系统架构与编排。尽管重点是云部署,但对于压缩大模型并将其部署到边缘或移动设备上的兴趣日益增长。作者还提出了八个未来研究方向,旨在弥合学术发现和实际应用之间的差距。
发布日期:2024-10-11
链接:https://arxiv.org/abs/2410.09012
机构:Queen’s University
LogLM: From Task-based to Instruction-based Automated Log Analysis
本文提出了一种基于指令的训练方法,将多个任务和领域的日志-标签对转换为统一格式的指令-响应对。作者训练的模型 LogLM 能够遵循复杂的用户指令,在不同任务中具有更好的泛化能力,提高了灵活性,减少了对特定任务训练数据的依赖。通过将主要的日志分析任务整合到一个模型中,该方法还减轻了模型部署的负担。在实验中,LogLM 在五项日志分析能力上表现优异,对复杂指令和未见任务具有强大的泛化能力。
发布日期:2024-10-12
链接:https://arxiv.org/abs/2410.09352
机构:Huawei
Unraveling the Potential of Large Language Models in Code Translation: How Far Are We?
本文通过进行大规模的实证研究,揭示了大语言模型在代码翻译任务中的能力和局限性。作者首先构建了一个名为 PolyHumanEval 的新型基准,扩展 HumanEval 成为包含 14 种语言的多语言基准。随后,作者在 PolyHumanEval 上进行了超过 11 万次翻译实验,结果显示大语言模型在将 Python 翻译为其他语言时表现不佳,并且广泛采用的优化技术对代码翻译几乎没有影响。为了发掘大语言模型在代码翻译中的潜力,作者提出了两种方法:(1)中介翻译,选择源语言和目标语言之间的中介语言;(2)自我训练,在自动生成的平行数据上微调大语言模型。经过 CodeLlama-13B 评估,该方法在将 Python 翻译为其他语言时平均提高了 11.7%的计算准确度。值得注意的是,作者有趣地发现 Go 语言可以作为任意两种研究语言之间的通用翻译语言。
发布日期:2024-10-13
链接:https://arxiv.org/abs/2410.09812
机构:Shanghai Jiao Tong University
12
联系我们
我们团队的多项工作,包括综述、模型、数据集,都在陆续开源中。如果您喜欢我们的工作,欢迎试用、指正错误和贡献代码,也可以给我们的项目增加 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
获取最新信息
你还可以扫描下方二维码直接加入群聊