引言
本文整理2024年7月全球各大高校与科研机构发布的117篇代码大模型相关论文,其中包括12篇发表于今年 ICML 的论文。根据论文内容,我们将这些论文整理为了基座模型、代码微调、测试基准、代码Agent、低资源语言处理、AI代码安全与分析、人机交互、软件工程下游任务应用(包括代码生成、代码翻译、代码优化、SQL生成、漏洞检测与修复、软件测试、代码审核、用户界面设计)等主题。全文篇幅较长,建议电脑端阅读。
若您想了解其他时期的代码大模型论文,也欢迎关注我们的代码大模型综述 https://arxiv.org/abs/2311.07989 和 GitHub 开源项目 https://github.com/codefuse-ai/Awesome-Code-LLM,以及往期回顾:
编辑精选
Qwen2 Technical Report
本文介绍了 Qwen2 系列开源大模型和多模态模型,涵盖了从 0.5B 到 72B 参数的模型,以及密集模型和混合专家模型。Qwen2 在语言理解、生成、多语言能力、编码、数学和推理等方面超越了大多数先前的开源模型,并在各种基准测试中展现出与闭源模型相媲美的性能:基座模型 MMLU 84.2,GPQA 37.9,HumanEval 64.6,GSM8K 89.5,BBH 82.4;微调模型 MT-Bench 9.1,Arena-Hard 48.1,LiveCodeBench 35.7。
发布日期:2024-07-15
链接:https://arxiv.org/abs/2407.10671
机构:Alibaba Group
Apple Intelligence Foundation Language Models
本文介绍了苹果公司为其智能功能开发的基座大模型 AFM,包括一款针对设备高效运行而设计的 3B 参数模型(AFM-on-device)和一款针对私有云计算而设计的更大规模服务器模型(AFM-server),两者都经历了 6.3T tokens 的预训练、1T tokens 的代码与数学加训以及额外 100B tokens 的长上下文训练。这些模型旨在以高效、准确和负责任的方式执行各种任务。论文详细阐述了模型架构、训练数据、训练过程、模型推理优化以及评估结果,并重点介绍了苹果公司对负责任人工智能的关注以及相关原则在模型开发中的应用。
发布日期:2024-07-29
链接:https://arxiv.org/abs/2407.21075
机构:Apple
The Llama 3 Herd of Models
本文介绍了 Llama 家族的最新模型 Llama 3.1 系列,在今年四月发布的 Llama 3 基础上增加了对多语言、工具调用、128K 长上下文的支持,同时也在 8B 与 70B 之外发布了一个 405B 的新模型。实验表明 Llama 3 在多项任务上的表现可与 GPT-4 等领先模型相媲美。论文还发布了用于输入输出安全的 Llama Guard 3 以及将图像、语音、视频等多模态功能整合到 Llama 3 中的实验结果
发布日期:2024-07-31
链接:https://arxiv.org/abs/2407.21783
机构:Llama Team, AI @ Meta
Code Less, Align More: Efficient LLM Fine-tuning for Code Generation with Data Pruning
本文探讨了针对代码大模型的数据剪枝方法。研究者提出了结合多种聚类和剪枝指标的技术,来有选择地减少训练数据,同时不影响生成代码的准确性和功能性。实验表明,合成训练数据中存在显著的冗余,仅使用10%的数据进行训练就能在很大程度上保持基准性能。更有趣的是,适度精简训练数据还能持续改善基准结果。这些剪枝策略不仅降低了所需的计算资源,还提高了整体代码生成质量。该研究为提高代码大模型的训练效率提供了新的思路,对于优化模型训练过程和提升代码生成质量具有重要意义。
发布日期:2024-07-06
链接:https://arxiv.org/abs/2407.05040
机构:NVIDIA
CoIR: A Comprehensive Benchmark for Code Information Retrieval Models
本文提出了一个名为 CoIR 的代码信息检索基准,它包含十个精心收集的代码数据集,涵盖了七个不同领域的八个检索任务,旨在为代码检索系统的评估提供一个全面而鲁棒的工具。该基准通过提供一个用户友好的 Python 框架,以及与其他流行基准(如 MTEB 和 BEIR)相同的架构,简化了代码检索研究工作流程。研究者通过使用该基准评估了九个常用的检索模型,并发现即使是当前最先进的系统在执行代码检索任务方面也面临着巨大挑战,从而激发了代码检索领域的研究,并为进一步开发和探索更强大的代码检索系统提供了有力支撑。
发布日期:2024-07-03
链接:https://arxiv.org/abs/2407.02883
机构:Huawei Noah’S Ark Lab
基座模型
Gemma 2: Improving Open Language Models at a Practical Size
Gemma 2 是 DeepMind 推出的第二代 Gemma 模型,有 2B、9B、27B 三个大小,分别预训练 2T、8T、13T tokens,且两个较小模型由 27B 模型蒸馏获得。在 MMLU、GSM8K、ARC、HellaSwag 等测试基准上的评估表明,Gemma 2 27B 的性能超越相似大小的其他模型(如 Qwen1.5 32B),甚至与更大的模型(LLaMA-3 70B)表现相当。
发布日期:2024-06-27
链接:https://storage.googleapis.com/deepmind-media/gemma/gemma-2-report.pdf
机构:Google DeepMind
Narrow Transformer: Starcoder-Based Java-LM For Desktop
本文介绍了一个名为 NT-Java-1.1B 的开源专业化 Java 语言模型。该模型基于 StarCoderBase-1.1B 构建,专门用于 Java 编程任务,填补了之前研究主要集中在 Python 等语言上的空白。NT-Java-1.1B 在 MultiPL-E Java 代码基准测试中表现出色,超越了其基础模型和大多数同等规模的模型。此外,论文还开发了量化版本的模型,使其适合在开发者桌面部署,解决了代码大模型需要专门硬件的问题。
发布日期:2024-07-04
链接:https://arxiv.org/abs/2407.03941
机构:Infosys Limited
H2O-Danube3 Technical Report
本文文提出了 H2O-Danube3 4B 和 500M 小型语言模型系列。这些模型使用高质量的网页数据进行训练,并在多个学术、聊天和微调基准测试中表现出极具竞争力的指标。得益于紧凑的架构,H2O-Danube3 可以高效地在现代智能手机上运行,即使在移动设备上也能实现本地推理和快速处理能力。所有模型在 Apache 2.0 许可下开源,进一步增强大语言模型的可用性。
发布日期:2024-07-12
链接:https://arxiv.org/abs/2407.09276
机构:H2O.ai
Scaling Granite Code Models to 128K Context
本文将 Granite 代码模型的有效上下文窗口拓展到了 128K tokens。为实现这一目标,研究人员通过逐渐增加其 RoPE 基频,并结合代码仓库级别的文件打包和长上下文数据的长度上采样,对 Granite 3B/8B 代码模型进行了轻量级的持续预训练,将上下文长度从 2K/4K 扩展到 128K。此外,论文还发布了支持长上下文的指令微调模型,这些模型是在长上下文基础模型上进一步微调得到的,训练数据包含了短上下文和长上下文的问答对。与原始的短上下文 Granite 代码模型相比,拓展后的模型在长上下文任务上取得了显著的改进,且没有在常规代码补全基准(如 HumanEval)上出现明显的性能下降。
发布日期:2024-07-18
链接:https://arxiv.org/abs/2407.13739
机构:IBM Research
ALLaM: Large Language Models for Arabic and English
本文提出了 ALLaM,一系列用于支持阿拉伯语技术生态系统的阿拉伯语大模型。ALLaM 在训练过程中充分考虑了语言对齐和知识迁移的价值,通过在阿拉伯语和英语混合文本上进行预训练,模型学习了阿拉伯语,并有效地将英语知识迁移到阿拉伯语,同时避免了对英语的灾难性遗忘。此外,论文还强调了利用平行/翻译数据来促进语言之间知识对齐的有效性。最后,论文展示了对人类偏好的广泛对齐可以显著提升语言模型的性能,即使模型规模较小,也能够比规模更大但对齐质量较低的模型表现更好。ALLaM 在各种阿拉伯语基准测试中取得了最先进的性能,包括 MMLU Arabic, ACVA 和 Arabic Exams。与基础模型相比,对齐后的模型在阿拉伯语和英语方面均取得了提升。
发布日期:2024-07-22
链接:https://arxiv.org/abs/2407.15390
机构:Saudi Data and AI Authority
SeaLLMs 3: Open Foundation and Chat Multilingual Large Language Models for Southeast Asian Languages
本文提出了 SeaLLMs 3,一个基于 Qwen 2 专门针对东南亚语言做了增强的大语言模型。它涵盖了该地区多种语言,包括英语、汉语、印尼语、泰语、越南语、缅甸语、马来语、爪哇语等,并通过高效的语言增强技术和专门构建的指令微调数据集,在保持高性能和多功能性的同时降低了训练成本。SeaLLMs 3 在世界知识、数学推理、翻译和指令遵循等任务中表现出色,在同等规模的模型中取得了最先进的性能,并强调了包容性 AI 的重要性,为东南亚语言和文化社区提供了先进的语言模型技术。
发布日期:2024-07-29
链接:https://arxiv.org/abs/2407.19672
机构:DAMO Academy, Alibaba Group
代码微调
Brevity is the soul of wit: Pruning long files for code generation
本文文针对大语言模型代码生成任务中的数据清洗问题进行了研究。研究发现,简单地剔除过长代码文件能够显著提升模型训练效率和性能,甚至优于基于 embedding 的复杂方法。该方法在训练效率方面可提升两倍,并在 HumanEval 上提升3.5%。然而,该方法可能会导致模型对长代码文件的困惑度上升,这引发了对代码生成模型评价方法的思考。
发布日期:2024-06-29
链接:https://arxiv.org/abs/2407.00434
机构:UCL
InverseCoder: Unleashing the Power of Instruction-Tuned Code LLMs with Inverse-Instruct
本文提出了一种名为 INVERSE-INSTRUCT 的方法,通过利用代码本身生成指令来进一步提升指令微调的代码大模型。该方法基于一个关键观察:将代码(形式语言)翻译成自然语言(非形式语言)比反过来更容易。INVERSE-INSTRUCT 利用代码大模型生成代码片段的摘要,从而生成高质量的指令。通过将原始数据集与自生成指令进行组合,该方法能够有效地提升代码大模型指令微调后的能力,并在多个代码生成任务中取得优于现有模型的结果。
发布日期:2024-07-08
链接:https://arxiv.org/abs/2407.05700
机构:Chinese Academy of Scienc
Curriculum Learning for Small Code Language Models
本文发现,课程学习可以显著提升小规模代码语言模型在代码执行任务上的准确率,尽管它对代码补全的影响并不明显。研究人员通过提出一种新的代码难度评估指标,并设计一种新的课程学习时间表,证明了课程学习方法在训练代码语言模型上的有效性,为未来研究代码语言模型的课程学习应用提供了新的思路。
发布日期:2024-07-14
链接:https://arxiv.org/abs/2407.10194
机构:Ecole nationale Supérieure d’Informatique
Genetic Instruct: Scaling up Synthetic Generation of Coding Instructions for Large Language Models
本文提出了一种名为 Genetic-Instruct 的方法法,利用自指令学习,从少量种子数据中生成大量合成指令,从而提高大语言模型的代码生成能力。该方法能够有效地扩展指令生成过程,并且在多个代码生成模型的微调实验中,使用合成指令训练的模型表现出显著的性能提升。
发布日期:2024-07-29
链接:https://arxiv.org/abs/2407.21077
机构:NVIDIA
测试基准
CodeUpdateArena: Benchmarking Knowledge Editing on API Updates
本文提出了一个名为 CodeUpdateArena 的基准测试,用于评估大语言模型在代码领域的知识编辑能力。该基准测试关注大模型如何更新其对 API 函数的知识,以适应不断演化的代码库和 API 变化。研究者创建了一个包含670个程序合成示例的数据集,涵盖了对7个不同 Python 包中54个函数的各种类型的更新。这个基准测试不仅要求模型理解更新后的函数语法,还需要正确推理其语义。实验结果表明,现有的知识编辑技术在这方面还有很大的改进空间。这项工作填补了代码大模型知识更新研究的空白,为未来在这一领域的方法开发提供了重要基础。
发布日期:2024-07-08
链接:https://arxiv.org/abs/2407.06249
机构:The University of Texas at Austin
On Leakage of Code Generation Evaluation Datasets
本文探讨了当今大模型背景下代码生成测试集的污染问题。作者识别并验证了三种可能的污染来源:直接数据泄露、通过合成数据的间接泄露以及模型选择过程中对评估集的过度拟合。针对这些发现,作者创建了一个包含161个提示及其对应 Python 解决方案的新数据集。
发布日期:2024-07-10
链接:https://arxiv.org/abs/2407.07565
机构:Cohere
NoviCode: Generating Programs from Natural Language Utterances by Novices
这篇论文提出了一个名为 NoviCode 的新型自然语言编程任务,旨在解决现有文本到代码模型无法有效地将非技术用户提供的自然语言描述转化为包含复杂流程(例如 API 访问和循环、条件、序列等控制结构)的可执行程序的问题。论文还构建了一个新的基准测试集,通过评估生成的程序代码的实际功能执行结果来衡量模型的有效性。实验结果表明,NoviCode 是一个具有挑战性的代码合成任务,并且使用自然语言指令生成复杂代码超出了当前文本到代码范式的能力。此外,论文还提出了一种新的方法,通过将自然语言语句与代码的组合层次结构进行对齐,显著提高了大语言模型在这个任务上的性能,优于传统的端到端文本到代码方法。
发布日期:2024-07-15
链接:https://arxiv.org/abs/2407.10626
机构:Bar-Ilan University
Case2Code: Learning Inductive Reasoning with Synthetic Data
本文提出了一种“Case2Code”任务,通过生成程序的输入输出转换,让模型从这些示例中推断出程序的实现代码,考察大语言模型进行归纳推理的能力。论文首先验证了目前的大模型在 Case2Code 任务上表现不佳,随后利用合成数据训练模型,结果表明这种归纳推理训练不仅提升了模型在 Case2Code 任务上的表现,还显著增强了其各种代码能力,证明了合成数据在学习归纳推理方面的巨大潜力。
发布日期:2024-07-17
链接:https://arxiv.org/abs/2407.12504
机构:Fudan University
SciCode: A Research Coding Benchmark Curated by Scientists
本文提出了一种名为 SciCode 的科学编码基准测试,它通过整合16个自然科学领域的科学家和人工智能研究人员的意见,构建了80个具有挑战性的科学研究问题,并将其分解成338个子问题。每个子问题都涉及知识回忆、推理和代码生成,需要模型具备解决真实科学问题的能力。论文发现,即使是目前最先进的语言模型也难以解决大部分问题,表明科学人工智能仍然有巨大的发展空间。SciCode 为评估大语言模型在科学研究中的应用提供了宝贵的资源,并为未来科学人工智能的发展方向提供了新的视角。
发布日期:2024-07-18
链接:https://arxiv.org/abs/2407.13168
机构:University of Illinois Urbana-Champaign
ECCO: Can We Improve Model-Generated Code Efficiency Without Sacrificing Functional Correctness?
本文提出了 ECCO,一个可复现的基准测试,用于评估基于大语言模型的代码生成效率,涵盖了自然语言驱动的代码生成和基于历史的代码编辑两种范式。论文深入研究了三种最有希望的基于大模型的方法,发现虽然大多数方法在提高代码效率的同时会降低功能正确性,但加入执行信息通常有助于保持功能正确性,而自然语言反馈则更能提升效率。论文发布了 ECCO 基准测试,为未来研究大语言模型生成高效代码提供支持。
发布日期:2024-07-19
链接:https://arxiv.org/abs/2407.14044
机构:Carnegie Mellon University
Generating Unseen Code Tests In Infinitum
本文提出了一个生成代码任务测试集变体的方法,该方法可以跨任务和编程语言进行推广,并可应用于内部代码库。该方法可以持续生成测试数据,从而缓解测试集数据泄露到训练数据的问题。论文还实现了一个名为“自回归”的Python 代码生成任务测试集,专门用于辅助调试和跟踪 LLM 回归测试过程中模型生成的变化。
发布日期:2024-07-29
链接:https://arxiv.org/abs/2407.19772
机构:IBM Research AI
Assessing Programming Task Difficulty for Efficient Evaluation of Large Language Models
本文提出了一个名为 HardEval 的框架,用于评估大语言模型在编程任务中的难度。该框架通过分析不同模型对同一任务的多种提示的回答,来计算每个任务的难度评分。研究结果表明,现有的代码生成基准测试中,只有不到三分之一的任务对 LLM 来说是困难的。论文进一步分析了难点任务的特征,并据此创建了新的困难任务,旨在帮助研究人员和开发者更好地评估和改进大模型。
发布日期:2024-07-30
链接:https://arxiv.org/abs/2407.21227
机构:Polytechnique Montréal
WebApp1K: A Practical Code-Generation Benchmark for Web App Development
本文提出 WebApp1K,一个用于评估大语言模型开发网页应用程序能力的代码生成基准。该基准简单易用,可用来校准大模型输出并帮助其逐步提高代码正确性和功能性。论文报告了使用该基准测试最新的大模型的结果,发现开源模型的表现令人印象深刻,紧随 GPT-4o 和 Claude 3.5。此外,模型大小与代码正确性之间存在很强的关联,但目前还没有发现任何提示技巧能够普遍提升所有模型的性能,或者显著提高单个模型的性能。
发布日期:2024-07-30
链接:https://arxiv.org/abs/2408.00019
机构:ONEKQ Lab
代码Agent
INDICT: Code Generation with Internal Dialogues of Critiques for Both Security and Helpfulness
本文提出了 INDICT 框架,旨在通过内部对话机制来提升代码生成大模型的安全性和帮助性。框架由安全型和帮助型两个批评者组成,它们通过外部知识库(如代码片段、网络搜索和代码解释器)对任务和生成的代码进行分析,并在代码生成和执行阶段分别提供预先和事后指导。研究结果表明,INDICT 可以有效提升模型输出代码的安全性和帮助性,显著提高代码质量。
发布日期:2024-06-23
链接:https://arxiv.org/abs/2407.02518
机构:Salesforce Research
Agentless: Demystifying LLM-based Software Engineering Agents
本文提出了一种名为“Agentless”的无代理方法,用于自动解决软件开发问题。与复杂的基于代理的方案相比,Agentless 通过简单的定位和修复两阶段流程来实现目标,避免了让大模型决定未来行动或使用复杂工具。在流行的 SWE-bench Lite 基准测试中,Agentless 表现出更高的性能和更低的成本,证明了这种简单的可解释技术在自动软件开发中具有被忽视的潜力。论文期望 Agentless 能够为自动软件代理设定新的基准,并启发未来在这方面的发展。
发布日期:2024-07-01
链接:https://arxiv.org/abs/2407.01489
机构:University of Illinois Urbana-Champaign
DotaMath: Decomposition of Thought with Code Assistance and Self-correction for Mathematical Reasoning
本文介绍了一种名为 DotaMath 的新型大语言模型系列,旨在解决复杂的数学问题。DotaMath 的创新之处在于它结合了思维分解、代码辅助和自我纠正的方法来进行数学推理。该模型通过将复杂任务分解为简单的逻辑子任务,利用代码解决这些子任务,从代码解释器获取详细反馈,并进行自我反思和纠正。研究者通过注释多样的交互式工具使用轨迹并在 GSM8K 和 MATH 数据集上进行查询演化,生成了一个包含574K 查询-响应对的指令微调数据集 DotaMathQA。基于此数据集的模仿学习训练产生了一系列 DotaMath 模型,这些模型在各种领域内和领域外的基准测试中都表现出色。特别是,DotaMath-deepseek-7B 模型在 MATH 数据集上达到了64.8%的优秀表现,在 GSM8K 上达到了86.7%的成绩。此外,该模型在一系列领域内外的基准测试中保持了强劲的竞争力(平均80.1%)。这项研究为解决复杂数学问题开辟了新的途径,为未来的数学推理研究提供了有价值的参考。
发布日期:2024-07-04
链接:https://arxiv.org/abs/2407.04078
机构:Qwen Team, Alibaba Inc.
CIBench: Evaluating Your LLMs with a Code Interpreter Plugin
本文提出了一种名为 CIBench 的交互式评估框架,用于全面评估大语言模型在数据科学任务中使用代码解释器的能力。该框架通过模拟真实的交互式工作流程,并利用连续的交互式 IPython 会话,构建了一个评估数据集和两种评估模式,以评估 LLM 在有无人类帮助的情况下,使用代码解释器解决问题的能力。论文对24个 LLM 进行了广泛的实验,并对未来 LLM 在代码解释器利用方面的改进提供了宝贵的见解。
发布日期:2024-07-15
链接:https://arxiv.org/abs/2407.10499
机构:Shanghai Artificial Intelligence Laboratory
PyBench: Evaluating LLM Agent on various real-world coding tasks
本文介绍了 PyBench,一个包含五个真实世界任务类别的基准测试,用于评估大语言模型代理在代码解释器帮助下解决实际代码任务的能力。与现有基准测试相比,PyBench 更全面地涵盖了各种日常代码任务,并要求 LLM 代理具备更强大的 Python 包理解、推理能力以及代码反馈整合能力。论文发现现有的开源 LLM 在解决这些任务方面存在困难,并通过分析和实验证明了在 PyBench 上取得良好效果所需具备的综合能力。作者还训练了一个名为 PyLlama3 的 8B 参数模型,在 PyBench 上取得了优异的性能,超越了许多更大规模的模型。
发布日期:2024-07-23
链接:https://arxiv.org/abs/2407.16732
机构:Renmin University of China
AppWorld: A Controllable World of Apps and People for Benchmarking Interactive Coding Agents
本文提出了一种名为 AppWorld 的新基准,用于评估能够处理日常生活数字化任务(例如,为家庭订购杂货)的自主代理。与现有基准不同,AppWorld 不仅包含模拟现实生活中的 9 个应用程序和 457 个 API,还提供 750 个复杂且自然的任务,需要代理生成复杂的代码并与环境交互。AppWorld 引入了基于状态的单元测试,可以评估代理代码的鲁棒性和安全性,并避免意外的负面影响。论文发现,即使是 GPT-4 等最先进的语言模型也难以解决 AppWorld 中的大多数任务,这表明该基准可以有效地推动交互式编码代理的研究发展。
发布日期:2024-07-26
链接:https://arxiv.org/abs/2407.18901
机构:Stony Brook University
AdaCoder: Adaptive Prompt Compression for Programmatic Visual Question Answering
本文提出了 AdaCoder,一个用于视觉程序化模型的自适应提示压缩框架。AdaCoder 通过将预定义的提示根据问题类型进行压缩,减少了用于生成代码的提示长度,从而提高了视觉问答模型的效率和性能,同时无需额外训练,可适配不同的大语言模型。
发布日期:2024-07-28
链接:https://arxiv.org/abs/2407.19410
机构:Tokyo Institute of Technology
低资源语言与DSL
ITERTL: An Iterative Framework for Fine-tuning LLMs for RTL Code Generation
本文提出了一个名为 ITERTL 的迭代训练范式,用于提高大语言模型生成 RTL 代码的能力。该方法通过在每次迭代中从模型生成的样本中采样并进行训练,有效地减少了模型与训练样本之间的分布差异,使其能够探索更广泛的生成空间并获得更全面的反馈。实验结果表明,ITERTL 在 VerilogEval 评估数据集上取得了优异的性能,即使使用更少的参考样本也能达到甚至超越最先进的开源模型,并在数据量受限的情况下为 LLM 生成 RTL 代码提供了可行方案。
发布日期:2024-06-28
链接:https://arxiv.org/abs/2407.12022
机构:Chinese Academy of Sciences
A Comparative Study of DSL Code Generation: Fine-Tuning vs. Optimized Retrieval Augmentation
本文针对大语言模型在领域特定语言(DSL)代码生成中面临的挑战,即自定义函数名称导致的幻觉和语法错误,提出了一种基于检索增强生成(RAG)的优化方法。研究人员创建了一个包含700多个公开 API 的自动化任务 DSL 数据集,并使用该数据集微调了 Codex 模型。结果表明,微调模型在代码相似度方面表现最佳,而优化后的 RAG 模型在相似度指标上与之相当。尽管两者在编译率方面仍存在语法错误,但 RAG 模型表现略好。另一方面,RAG 模型在 API 名称和 API 参数键的幻觉率方面略逊于微调模型。该论文表明,优化后的 RAG 模型能够媲美微调模型,并在处理新的、未知的 API 方面具有优势。
发布日期:2024-07-03
链接:https://arxiv.org/abs/2407.02742
机构:Microsoft Corporation
ConCodeEval: Evaluating Large Language Models for Code Constraints in Domain-Specific Languages
本文评估了大语言模型在理解和执行代码形式约束方面的能力。研究者提出了两个新颖的任务,用于评估 LLM 在五种不同表示形式下处理硬约束和软约束的能力。研究结果表明,无论这些约束在预训练数据中占比如何,LLM 都难以完全理解各种表示形式的约束。虽然模型在理解 JSON、YAML 和自然语言表示的约束方面表现较好,但在处理 XML 和 Python 语言表示的约束时仍然存在困难。这项研究为理解 LLM 在处理领域特定语言(DSL)中的约束时的局限性提供了宝贵见解,为未来改进 LLM 在代码生成和约束处理方面的能力指明了方向。
发布日期:2024-07-03
链接:https://arxiv.org/abs/2407.03387
机构:IBM Research
AutoBench: Automatic Testbench Generation and Evaluation Using LLMs for HDL Design
本文提出了一个名为 AutoBench 的系统,它是首个基于大语言模型的数字电路设计测试台生成器。AutoBench 只需要被测设计(DUT)的描述就能自动生成全面的测试台,大大提高了硬件验证的效率。该系统采用混合测试台结构和自检系统,并引入了一个自动化的测试台评估框架,从多个角度评估生成的测试台质量。实验结果表明,与直接使用 LLM 生成测试台的基准方法相比,AutoBench 在测试台通过率上实现了57%的提升,对于75个顺序电路,其测试台通过率是基准方法的3.36倍。这项研究为数字电路设计中的自动化测试台生成提供了一种高效的解决方案,有望显著减少设计师在验证过程中的工作量。
发布日期:2024-07-04
链接:https://arxiv.org/abs/2407.03891
机构:Technical University of Munich
CodeV: Empowering LLMs for Verilog Generation through Multi-Level Summarization
本文针对现代处理器设计中日益复杂的成本问题,提出了一种基于指令微调的大型语言模型 CodeV,专门用于生成 Verilog 代码。与以往直接生成代码的方式不同,CodeV 利用 LLM 强大的概括能力,通过多级摘要将 Verilog 代码转换为自然语言描述,再将描述转换为代码。这种方法克服了现有模型在 Verilog 代码生成方面表现不佳的缺陷,在多个指标上显著优于现有开源和商业模型,为自动化的处理器设计提供了新的解决方案。
发布日期:2024-07-15
链接:https://arxiv.org/abs/2407.10424
机构:Chinese Academy of Science
Large Language Model for Verilog Generation with Golden Code Feedback
本文提出了一种新的方法来提高开源大语言模型在自然语言到 Verilog RTL 代码生成任务上的性能。研究者使用了基于正确代码反馈的强化学习技术来增强预训练模型的能力。通过利用开源数据和基础模型,他们的方法在性能上大幅超越了现有的最佳模型,特别是他们的6.7B参数模型甚至优于13B和16B的模型。此外,论文还深入分析了直接微调的局限性和强化学习的训练动态,指出开发与 Verilog 代码固有并行语义相一致的全面监督信号对于有效生成代码至关重要。
发布日期:2024-07-21
链接:https://arxiv.org/abs/2407.18271#
机构:City University of Hong Kong
AutoVCoder: A Systematic Framework for Automated Verilog Code Generation using LLMs
本文提出了一个名为 AutoVCoder 的开源框架,旨在提高大语言模型在生成 Verilog 等 RTL 代码时的语法和功能正确性。该框架整合了三项创新技术:高质量硬件数据集生成方法、两轮 LLM 微调方法以及特定领域的检索增强生成(RAG)机制。实验结果表明,AutoVCoder 在 Verilog 代码生成方面的性能优于工业和学术界的大模型。具体而言,与 BetterV 相比,AutoVCoder 在 EvalMachine 和 EvalHuman 基准测试中的功能正确性分别提高了0.5%和2.2%;与 RTLCoder 相比,在 RTLLM 基准测试中的语法正确性和功能正确性均提高了3.4%。
发布日期:2024-07-21
链接:https://arxiv.org/abs/2407.18333
机构:Shanghai Jiao Tong University
OriGen:Enhancing RTL Code Generation with Code-to-Code Augmentation and Self-Reflection
本文提出了一个名为 OriGen 的开源框架,旨在解决现有开源 LLM 在 RTL 代码生成方面性能落后于商业模型的困境。通过结合知识蒸馏的代码增强方法和基于编译器反馈的自我反省机制,OriGen 能够生成高质量的大规模 RTL 代码,并有效纠正语法错误。在实验中,OriGen 在 RTL 代码生成任务中显著超越了其他开源模型,并在自我反省能力方面也超过了 GPT-4,为开源领域提供了一个高性能、安全可靠的 RTL 代码生成方案。
发布日期:2024-07-23
链接:https://arxiv.org/abs/2407.16237
机构:Peking University
AI代码安全与分析
Beyond Functional Correctness: Investigating Coding Style Inconsistencies in Large Language Models
本文通过对比主流代码生成模型生成的代码和人类开发者编写的代码,系统地分析了代码生成模型和人类开发者在代码风格方面的差异,并总结了代码风格不一致的分类。论文还深入研究了这种差异的潜在原因,并提出了一些缓解问题的方法,为提升代码生成模型的代码风格一致性提供了理论依据和实践指导。
发布日期:2024-06-29
链接:https://arxiv.org/abs/2407.00456
机构:Sun Yat-sen University
Is Your AI-Generated Code Really Secure? Evaluating Large Language Models on Secure Code Generation with CodeSecEval
本文研究了大语言模型在代码生成和修复方面的安全问题。作者发现,由于 LLM 的训练数据来自未经清理的开源代码库,例如 GitHub,导致模型在代码生成和修复过程中容易忽略安全漏洞,从而产生存在安全漏洞的代码。为了解决这个问题,作者构建了一个名为 CodeSecEval 的数据集,涵盖了44种关键漏洞类型,并提出了多种策略来利用漏洞信息和不安全代码解释来缓解这些安全漏洞。研究结果表明,目前 LLM 在代码安全方面的表现还有待提升,特别是对于某些类型的漏洞,模型的性能较差。论文的结论表明,这项研究将推动软件工程领域对代码安全问题的关注,并为训练和使用 LLM 提供更安全的方案,从而促进更安全和可信的模型部署。
发布日期:2024-07-02
链接:https://arxiv.org/abs/2407.02395
机构:South China University of Technology
An Empirical Study on Capability of Large Language Models in Understanding Code Semantics
本文提出了一个名为 EMPICA 的综合框架,用于系统性地评估代码大模型在理解代码语义方面的能力。EMPICA 通过对输入代码进行控制性修改或转换,然后检查模型的响应来实现这一目标。研究者认为,对于所有软件工程任务,代码大模型应该对语义等价的代码输入保持鲁棒性,同时对非等价的输入保持敏感性。实验结果显示,最先进的代码大模型在不同任务和转换操作中的鲁棒性和敏感性存在显著差异。此外,模型对语义保持转换的鲁棒性优于对语义非保持转换的敏感性。这些发现突显了增强模型理解代码语义能力的必要性,特别是在敏感性方面。通过这项研究,论文为评估和改进代码大模型的语义理解能力提供了一个新的视角和方法。
发布日期:2024-07-04
链接:https://arxiv.org/abs/2407.03611
机构:VNU University of Engineering and Technology
Code Hallucination
本文深入研究了大语言模型在代码生成过程中出现的幻觉问题。作者首先定义并分类了多种代码幻觉类型,并通过手动方式使用 LLM 生成了这些幻觉代码样本。论文还提出了一种名为 HallTrigger 的技术,利用 LLM 的三种动态属性来构造提示,从而有效地触发模型产生任意的代码幻觉,而无需访问模型的架构或参数。通过对流行的黑盒模型进行实验,作者证明了 HallTrigger 的有效性,并强调了 LLM 幻觉对软件开发的广泛影响。
发布日期:2024-07-05
链接:https://arxiv.org/abs/2407.04831
机构:Cisco Research
Looking into Black Box Code Language Models
本文深入研究了代码大模型中前馈层的作用和特性。研究者使用了两个先进的代码大模型(Codegen-Mono 和 Ploycoder)以及三种常用编程语言(Java、Go 和 Python)进行实验。他们探究了前馈层中存储概念的组织方式、这些概念的可编辑性,以及不同层和输入上下文大小对输出生成的影响。研究发现模型的低层捕捉语法模式,高层编码抽象概念和语义;在不影响模型性能的情况下可以编辑前馈层中的特定概念;初始层充当"思考"层,而后续层对预测下一个代码 token 至关重要;早期层可以准确预测较小的上下文,但较大的上下文需要后期关键层的贡献。这些发现有助于更好地理解、调试和测试代码大模型。
发布日期:2024-07-05
链接:https://arxiv.org/abs/2407.04868
机构:University of Kentucky
What's Wrong with Your Code Generated by Large Language Models? An Extensive Study
本文通过对多种大语言模型进行实证研究,揭示了现有的代码生成方法在应对复杂问题时存在的局限性,并分析了代码生成错误的类型和根源。研究发现,模型在生成更复杂代码时会面临挑战,且倾向于生成更短但更复杂的代码。论文还提出了一个新的无训练迭代方法,利用自批评机制让模型根据错误类型和编译器反馈来修正生成的代码,有效地降低了错误率,表明了模型在处理复杂问题方面具有显著潜力。
发布日期:2024-07-08
链接:https://arxiv.org/abs/2407.06153
机构:Fudan University
Prompting Techniques for Secure Code Generation: A Systematic Investigation
本文研究了不同提示技术对大语言模型生成安全代码的影响。研究者首先通过系统性文献综述识别了现有的可用于代码生成任务的提示技术。然后,他们选取了一部分技术,在 GPT-3、GPT-3.5 和 GPT-4 模型上进行了安全代码生成的评估。研究结果对代码生成的提示技术进行了分类,并针对安全代码生成任务调整和评估了部分技术。特别的,他们发现使用递归批评和改进(RCI)技术后,所测试的大模型生成的代码中的安全弱点显著减少。这项研究为大模型生成代码的安全性讨论提供了宝贵的见解,对推进提示驱动编程的发展具有重要意义。
发布日期:2024-07-09
链接:https://arxiv.org/abs/2407.07064
机构:Hamburg University of Technology
DeepCodeProbe: Towards Understanding What Models Trained on Code Learn
本文文提出了一种名为 DeepCodeProbe 的探测方法,用来评估用于软件维护任务的机器学习模型的语法和表示学习能力。研究发现,尽管小模型能够捕捉到抽象的语法表示,但其对编程语言语法的理解能力有限。增大模型容量可以提升语法学习能力,但也会带来训练时间增加和过拟合等问题。DeepCodeProbe 还识别了模型从训练数据中学习到的特定代码模式,并提供了提高代码模型性能和可解释性的最佳实践建议。
发布日期:2024-07-11
链接:https://arxiv.org/abs/2407.08890
机构:Polytechnique Montreal
Towards More Trustworthy and Interpretable LLMs for Code through Syntax-Grounded Explanations
本文提出了 ASTrust,一种面向代码大模型的可解释性方法。ASTrust 通过将模型置信度与编程语言的语法结构联系起来,生成可解释的代码生成解释。该方法基于抽象语法树(AST),将模型置信度分配给 AST 中的不同语法结构,从而为开发者提供更直观的模型预测解释,提升了对 LLM 的信任度。通过可视化工具,ASTrust 可以帮助开发者理解模型在代码片段和大型数据集上的预测行为,并为实际应用提供了宝贵的参考。
发布日期:2024-07-12
链接:https://arxiv.org/abs/2407.08983
机构:William & Mary
Benchmarking Language Model Creativity: A Case Study on Code Generation
本文提出了一种新的框架,用以量化大型语言模型的创造力,该框架将创造力定义为收敛思维和发散思维的结合。论文通过“否定式提示”技术,逐步增加限制条件,迫使模型采用新的策略,从而提高模型的创造性;并通过 NeoGauge 指标来评估模型在收敛思维和发散思维上的表现。论文应用该框架对 Codeforces 编程问题进行了分析,发现即使是最先进的模型,GPT-4,在创造力方面仍无法达到人类水平。该论文还实验了多种高级推理策略,但没有观察到创造力的显著提升。论文同时发布了 NeoCoder 数据集,供后续研究人员使用。
发布日期:2024-07-12
链接:https://arxiv.org/abs/2407.09007
机构:Johns Hopkins University
TAPI: Towards Target-Specific and Adversarial Prompt Injection against Code LLMs
本文提出了一种名为“目标特定对抗性提示注入”(TAPI)的新攻击模式,针对目前广泛应用于代码编程的代码大模型。TAPI 通过在外部代码中注入包含恶意指令的不可读注释作为触发器,在用户使用代码大模型完成代码时,模型会生成攻击者指定的恶意代码片段,从而实现特定目标的攻击。该方法继承了后门攻击和对抗攻击的优点,克服了现有攻击方法的局限性,能够高效且隐蔽地攻击代码大模型,对现实世界中的代码生成工具构成潜在威胁。
发布日期:2024-07-12
链接:https://arxiv.org/abs/2407.09164
机构:Zhejiang University
On Mitigating Code LLM Hallucinations with API Documentation
本文针对软件工程领域中 API 幻觉问题,提出了一种名为 CloudAPIBench 的新基准测试,用于评估 API 幻觉发生的频率。该论文发现大语言模型在处理低频 API 时表现不佳,并提出了一种文档增强生成 (DAG) 方法来提升低频 API 的性能。为了避免 DAG 对高频 API 的负面影响,论文进一步提出了一种智能触发 DAG 的策略,以平衡低频和高频 API 的性能,最终提高 API 调用的可靠性。
发布日期:2024-07-13
链接:https://arxiv.org/abs/2407.09726
机构:Amazon Web Services
Uncovering Weaknesses in Neural Code Generation
本文系统评估了五个大语言模型在代码生成任务上的表现,并通过分析生成代码的质量,提出了九种代码生成模型弱点分类。研究发现,大语言模型在代码生成任务中普遍存在着不准确的提示、遗漏关键语义以及 API 使用不当等问题,这些问题在不同基准数据集和模型规模中表现出不同的严重程度。这项研究为代码生成领域的研究者指明了未来研究的方向,并提供了更精准的基准数据集子集,以支持更深入的分析。
发布日期:2024-07-13
链接:https://arxiv.org/abs/2407.09793
机构:Beihang University
MaPPing Your Model: Assessing the Impact of Adversarial Attacks on LLM-based Programming Assistants
本文提出了“恶意编程提示(MaPP)”攻击,证明攻击者可以通过在编程任务提示中添加少量文字,诱使大语言模型在生成看似正确的代码的同时,也植入安全漏洞。研究发现,MaPP 攻击对各种 LLM 都有效,并且即使最先进的商业模型也无法完全免疫。这项工作强调了在使用 LLM 辅助编程时,需要保护提示信息免受恶意操作,并对生成的代码进行严格的审计。
发布日期:2024-07-12
链接:https://arxiv.org/abs/2407.11072
机构:University of Oregon
Beyond Correctness: Benchmarking Multi-dimensional Code Generation for Large Language Models
本文提出了 RACE 基准测试,它从可读性、可维护性、正确性和效率四个维度全面评估了大型语言模型生成代码的质量。与现有的代码生成能力评估方法不同,RACE 考虑了用户需求的差异性,设计了不同类型的用户需求来衡量模型生成符合用户要求的优质代码的能力。通过对 18 个代表性模型的评估,论文发现当前大型语言模型生成高质量代码的能力仍无法满足软件开发的要求,可读性是衡量生成代码整体质量的关键指标,大多数模型倾向于特定的代码风格。这些发现有助于研究人员更深入地理解当前大型语言模型的代码生成能力,并为未来模型的改进指明方向。
发布日期:2024-07-16
链接:https://arxiv.org/abs/2407.11470
机构:Chinese Information Processing Laboratory
A Performance Study of LLM-Generated Code on Leetcode
本文通过分析 LeetCode 数据集,评估了大语言模型在代码生成方面的效率,并将其性能与人类编写的解决方案进行了对比。研究发现,不同大模型生成的代码在性能上基本一致,并且平均而言,大模型生成的代码比人类编写的代码更高效。论文还探讨了使用 LeetCode 作为基准数据集的利弊,以及数据污染和平台测量可靠性等问题。研究结果为深入了解大模型在代码生成方面的能力以及未来优化提供了重要参考。
发布日期:2024-07-31
链接:https://arxiv.org/abs/2407.21579
机构:Univ. Lille
人机交互、交互式编程
The GPT Surprise: Offering Large Language Model Chat in a Massive Coding Class Reduced Engagement but Increased Adopters Exam Performances
本文通过一项涉及5831名来自146个国家的学生的在线编程课程的大规模随机对照试验,研究了通用大语言模型如 GPT-4 对编程教育的影响。研究发现,虽然 LLM 的使用对使用者的考试成绩有积极影响,但整体上 LLM 的推广导致了考试参与率的显著下降,以及其他形式的课程参与度的下降。然而,这种下降受学生所在国家的影响,对来自人类发展指数较低的国家学生的考试参与率反而有所提升。研究结果表明,LLM 在入门编程课程中可能存在积极作用,但也存在潜在的参与度下降问题,其对学生学习成功的长期影响尚不明确。这项研究强调需要进一步研究,以更好地了解未来 LLM 在课堂上的应用和整合可能产生的影响。
发布日期:2024-04-25
链接:https://arxiv.org/abs/2407.09975
机构:Stanford University
Let the Code LLM Edit Itself When You Edit the Code
本文提出了一种名为“Positional Integrity Encoding” (PIE) 的方法,用于解决代码生成模型在实时代码编辑场景中遇到的效率和准确性权衡问题。PIE 巧妙地利用旋转位置编码,移除会导致时间混乱的关键缓存中的旋转矩阵,并重新应用正确的旋转矩阵,从而确保了 token 之间位置关系的准确性,且仅需一次矩阵乘法操作。实验结果表明,PIE 在各种模型规模和代码编辑任务中,能够将计算开销降低超过 85%,同时有效地保持了模型的性能。
发布日期:2024-07-03
链接:https://arxiv.org/abs/2407.03157
机构:Peking University
Enhancing Computer Programming Education with LLMs: A Study on Effective Prompt Engineering for Python Code Generation
本文研究了利用大语言模型和提示工程来改善计算机编程教育的潜力。通过对不同教育需求的提示工程策略进行系统分类,以及设计评估框架,该论文探索了如何提升大语言模型解决复杂编程问题的能力。研究结果表明,精心设计的提示策略可以显著提高大语言模型在编程教育中的效力,并为教师和学生提供了优化基于大语言模型的学习体验的框架。
发布日期:2024-07-07
链接:https://arxiv.org/abs/2407.05437
机构:Mercy University
I Need Help! Evaluating LLM's Ability to Ask for Users' Support: A Case Study on Text-to-SQL Generation
本文以文本到 SQL 生成为例,研究了大语言模型主动寻求用户帮助的能力。论文提出了评估性能提升和用户负担之间权衡的指标,并探讨了大语言模型是否能够判断何时需要寻求帮助以及在不同信息可用性水平下的性能。实验结果表明,在没有外部反馈的情况下,许多大模型难以识别其对额外支持的需求。该研究强调了外部信号的重要性,并为未来改进寻求支持策略的研究提供了见解。
发布日期:2024-07-20
链接:https://arxiv.org/abs/2407.14767
机构:Appier AI Research
How Novice Programmers Use and Experience ChatGPT when Solving Programming Exercises in an Introductory Course
本文着重于探讨生成式人工智能(GenAI)工具,尤其是 ChatGPT,在入门编程课程中对学生的实际应用。通过对德国大学298名学生的调查研究,该论文分析了学生使用 ChatGPT 的模式和对其感知,揭示了学生在编程学习中如何利用 ChatGPT 辅助解决问题,以及他们对该工具的评价。研究结果不仅有助于理解学生在编程课程中使用 GenAI 工具的实际情况,也为教育工作者和高校制定适应 GenAI 时代教学和评估方式提供了重要参考。
发布日期:2024-07-30
链接:https://arxiv.org/abs/2407.20792
机构:Nuremberg Tech
软工下游任务
代码生成
Revisiting the Impact of Pursuing Modularity for Code Generation
本文研究了模块化编程在基于大语言模型的代码生成工具中的作用。研究人员发现,与传统的观点相反,模块化并不是提高代码生成模型性能的关键因素。论文提出了一个新的指标来量化代码的模块化程度,并通过实验结果分析了 LLM 在代码生成时对模块化代码和非模块化代码没有明显偏好的原因。
发布日期:2024-07-16
链接:https://arxiv.org/abs/2407.11406
机构:Hanyang University
Evaluating Long Range Dependency Handling in Code Generation Models using Multi-Step Key Retrieval
本文通过一系列多步骤的键检索任务,评估了多种代码生成模型处理长距离依赖的能力。研究发现,当函数引用在提示中定义较后的其他函数时,模型性能显著下降。同时,使用滑动窗口注意力机制的模型在处理超出单个窗口大小的引用时也存在困难。论文通过使用调用图信息进行简单的提示修改,将多步骤检索性能提高了三倍。该研究揭示了长上下文性能的不同方面,并为代码补全工具的提示构造策略提供了启示。
发布日期:2024-07-23
链接:https://arxiv.org/abs/2407.21049
机构:Apple
RLCoder: Reinforcement Learning for Repository-Level Code Completion
本文提出了一种名为 RLCoder 的新型强化学习框架,用于提升代码库级别的代码补全效果。RLCoder 通过迭代地评估检索到的代码内容对目标代码的困惑度,来学习检索有用的代码信息,无需依赖人工标注数据。该框架还引入了停止信号机制,让检索器能够自主决定何时检索以及保留哪些候选代码,进一步提升了代码补全的效果。实验表明,RLCoder 在 CrossCodeEval 和 RepoEval 数据集上显著优于现有的方法,取得了12.2%的EM提升。
发布日期:2024-07-28
链接:https://arxiv.org/abs/2407.19487
机构:Sun Yat-sen University
When to Stop? Towards Efficient Code Generation in LLMs with Excess Token Prevention
本文提出了 CodeFast,一种针对代码生成任务的代码大模型推理加速方法。通过训练一个轻量级模型 GenGuard 来预测何时停止推理,CodeFast 能有效地识别并避免生成不必要的冗余代码,从而显著提升推理速度,同时保持代码质量。实验表明,CodeFast 在不同代码大模型和代码生成数据集上均能有效地提升推理速度,加速比高达 452%。
发布日期:2024-07-29
链接:https://arxiv.org/abs/2407.20042
机构:Sun Yat-sen University
代码翻译
LASSI: An LLM-based Automated Self-Correcting Pipeline for Translating Parallel Scientific Codes
本文提出了一种名为 LASSI 的自动化流水线框架,用于解决科学和工程领域大模型训练数据来源的问题。LASSI 利用现有的闭源或开源 LLM,通过引导提示实现自动增强,将代码翻译成不同的并行编程语言,并通过自校正循环来解决编译和执行过程中遇到的错误,从而提高翻译的准确性和效率。论文通过将 OpenMP 和 CUDA 之间的现有 GPU 基准进行双向翻译,验证了 LASSI 的有效性。结果表明,LASSI 在生成可执行的并行代码方面取得了显著效果,80%的 OpenMP 到 CUDA 翻译和85%的 CUDA 到 OpenMP 翻译产生了预期输出,并且约78%的 OpenMP 到 CUDA 翻译和62%的 CUDA 到 OpenMP 翻译的运行时间与原始基准代码相差10%以内或更快。
发布日期:2024-06-30
链接:https://arxiv.org/abs/2407.01638
机构:University of Illinois Chicago
Rectifier: Code Translation with Corrector via LLMs
本文文提出了一个名为 Rectifier 的通用代码翻译错误修正模型,该模型可以从现有的预训练大语言模型产生的错误中学习,并广泛应用于修正任何 LLM 生成的代码翻译错误。Rectifier 能够有效地修复代码翻译过程中出现的各种错误,包括编译错误、运行时错误、功能错误和非终止执行错误。实验结果表明,Rectifier 在 C++、Java 和 Python 之间进行代码翻译时展现出良好的修复能力,同时还具有跨语言的鲁棒性。
发布日期:2024-07-10
链接:https://arxiv.org/abs/2407.07472
机构:Zhejiang University
Enhancing Code Translation in Language Models with Few-Shot Learning via Retrieval-Augmented Generation
本文提出了一种利用少样本学习和基于检索的技术来提升代码翻译质量的新方法。该方法通过动态检索已有的代码翻译示例来为模型提供上下文信息,从而提高模型对复杂代码翻译任务的理解和处理能力。与传统的微调方法相比,该方法能够利用现有的代码库或本地存储的代码语料库,实现对不同翻译任务的动态适应,无需进行大量重新训练。实验表明,该方法在不同数据集上均优于传统的零样本方法,尤其是在 Fortran 和 CPP 之间的代码翻译中表现出色。
发布日期:2024-07-29
链接:https://arxiv.org/abs/2407.19619
机构:Los Alamos National Laboratory
代码优化
Meta Large Language Model Compiler: Foundation Models of Compiler Optimization
本文介绍了 Meta Large Language Model Compiler (LLM Compiler),一套专门为代码优化任务设计的预训练模型。LLM Compiler 基于 Code Llama 构建,通过大规模训练和指令微调,增强了对编译器中间表示、汇编语言和优化技术的理解。该模型在 546B LLVM-IR 和汇编代码 token 上进行了训练,并以开放的商业许可证发布,提供 7B 和 13B 两种参数规模。论文还展示了模型在代码大小优化和反汇编任务上的优秀表现。LLM Compiler 的发布为编译器优化领域的学术研究和工业应用提供了一个可扩展、经济高效的基础,填补了大模型在代码和编译器优化领域应用的空白。
发布日期:2024-06-27
链接:https://arxiv.org/abs/2407.02524
机构:Meta AI
SQL生成
Lucy: Think and Reason to Solve Text-to-SQL
本文针对大模型在处理大型企业数据库查询时面临的挑战提出了一种新的解决方案。研究者分析了 LLM 在处理复杂数据库结构时的困难,并提出了一个创新的框架,结合了 LLM 理解自然语言问题的能力和自动推理技术处理复杂数据库约束的优势。这种方法在零样本文本到 SQL 转换的复杂基准测试中表现优于现有最先进的技术,为提高大模型在大规模企业数据库环境中的应用效果提供了新的思路。
发布日期:2024-07-06
链接:https://arxiv.org/abs/2407.05153
机构:VMware Research
ESM+: Modern Insights into Perspective on Text-to-SQL Evaluation in the Age of Large Language Models
本文改进了评估文本到 SQL 生成任务性能的指标。作者发现现有的评估指标不足以准确衡量基于大语言模型的未经微调的模型性能。因此,他们分析了两个主要指标:测试套件执行准确率(EXE)和精确集合匹配准确率(ESM),并提出了改进的 ESM+ 指标。对9个大语言模型的性能比较显示 ESM+ 显著降低了假阳性和假阴性率,提供了更稳定可靠的评估。
发布日期:2024-07-10
链接:https://arxiv.org/abs/2407.07313
机构:Emory University
RB-SQL: A Retrieval-based LLM Framework for Text-to-SQL
本文提出了一个名为 RB-SQL 的新型检索式大语言模型框架,用于上下文提示工程在文本到 SQL 任务中的应用。该框架由三个模块组成,专注于检索简洁的表格和列作为模式,并为上下文学习提供有针对性的示例。与之前仅关注使用专门的 SQL 生成提示来提高大语言模型推理能力的方法不同,RB-SQ L特别注重数据库的预处理和有价值信息的提取,以实现更高效的提示工程。这种方法能够更好地处理包含大量表格和列的大型数据库。在 BIRD 和 Spider 等公开数据集上的实验结果表明,RB-SQL 在性能上优于几个具有竞争力的基线模型,证明了其在文本到 SQL 任务中的有效性。
发布日期:2024-07-11
链接:https://arxiv.org/abs/2407.08273
机构:Beihang University
AI-Assisted SQL Authoring at Industry Scale
本文提出了一个名为 SqlCompose 的模型,将生成式 AI 应用于数据分析领域,解决 SQL 语法声明性、表格模式和非线性写作等挑战。该研究通过内部 SQL 基准测试和对 Llama 模型的微调,开发出 SqlComposeSA 和 SqlComposeFIM 两个模型,分别针对 SQL 语法和非线性写作问题,并在性能上显著优于基础模型。研究表明,专门针对特定任务的较小模型可以比通用的大型模型表现更出色,并在 Meta 内部获得广泛应用,帮助数据科学家和软件工程师提高 SQL 编写效率。
发布日期:2024-07-18
链接:https://arxiv.org/abs/2407.13280
机构:Meta Platforms Inc.
SQLfuse: Enhancing Text-to-SQL Performance through Comprehensive LLM Synergy
本文介绍了一个 SQLfuse 系统,它将开源大型语言模型与一系列工具相结合,以提高文本到 SQL 转换的准确性和易用性。通过四个模块,包括模式挖掘、模式链接、SQL 生成和 SQL 评判,SQLfuse 不仅可以生成复杂的 SQL 查询,还能通过持续的优化来提高查询质量。该系统在 Spider 排行榜上取得了领先的成绩,并已在蚂蚁集团等公司投入使用,证明了开源大模型在各种商业环境中的实用价值。
发布日期:2024-07-19
链接:https://arxiv.org/abs/2407.14568
机构:Ant Group
A Survey on Employing Large Language Models for Text-to-SQL Tasks
本文综述了大语言模型在文本到 SQL 任务中的应用,涵盖了基准数据集、提示工程、微调方法和未来的研究方向。作者旨在通过分析大模型的最新进展,帮助读者深入了解文本到 SQL 任务的现状和未来发展趋势,并促进该领域进一步发展。
发布日期:2024-07-21
链接:https://arxiv.org/abs/2407.15186
机构:Peking University
Towards Automated Data Sciences with Natural Language and SageCopilot: Practices and Lessons Learned
本文提出了 SageCopilot,一个将自然语言指令转化为可执行 SQL 脚本并自动完成数据科学流程的系统。它将大语言模型、自治代理和语言用户界面相结合,并采用在线和离线两阶段设计,利用诸如思维链和提示调优等技术,实现了更优异的端到端性能,能够生成或执行脚本,并提供可视化的结果。
发布日期:2024-07-21
链接:https://arxiv.org/abs/2407.21040
机构:Baidu Inc.
Evaluating LLMs for Text-to-SQL Generation With Complex SQL Workload
本文通过对比分析 TPC-DS、BIRD 和 Spider 三种文本到 SQL 基准测试,发现 TPC-DS 的查询结构复杂度远高于其他两个基准测试,突显了开发更复杂基准测试以模拟现实场景的必要性。研究者还利用11个不同的语言模型根据 TPC-DS 的查询描述生成 SQL 语句,发现目前最先进的生成式 AI 模型在生成精确的决策查询方面表现不足,生成的查询精度不足以满足现实世界应用需求。
发布日期:2024-07-28
链接:https://arxiv.org/abs/2407.19517
机构:Ontario Tech University
漏洞检测与修复
Supporting Cross-language Cross-project Bug Localization Using Pre-trained Language Models
本文提出了一种新颖的基于预训练语言模型的 bug 定位技术,具有跨项目和跨语言的泛化能力。该方法利用对比学习来增强 bug 报告和源代码的表示,并结合提交信息和代码片段进行排序。为了实现实际部署,论文还引入了知识蒸馏技术来减小模型大小。这种方法通过整合代码片段和提交信息分析,提高了 bug 定位的准确性,并且在未见过的代码库中也能有效识别 bug。此外,论文提出了一种兼容 CPU 的解决方案,以应对计算资源限制。
发布日期:2024-07-03
链接:https://arxiv.org/abs/2407.02732
机构:Oracle Labs
ALPINE: An adaptive language-agnostic pruning method for language models for code
本文提出了一种名为 ALPINE 的自适应编程语言无关的剪枝技术,旨在显著减少代码语言模型的计算开销。ALPINE 作为一个可插拔层,可以与所有基于 Transformer 的模型集成。它通过自适应压缩输入序列,将序列大小减小至原始大小的三分之一,从而显著降低计算负载。研究在两个软件工程任务上进行了实验,结果表明 ALPINE 可以平均减少50%的浮点运算次数,58.1%的内存占用,并提高28.1%的吞吐量,同时将二氧化碳排放减少高达44.85%。值得注意的是,ALPINE 在保持高达98.1%原始预测性能的同时实现了这些计算资源的减少。这项研究不仅展示了 ALPINE 在提高代码语言模型资源效率和可访问性方面的潜力,同时也揭示了源代码分析语料库中存在的冗余和噪声信息,为软件开发中采用语言模型的可持续性做出了贡献。
发布日期:2024-07-04
链接:https://arxiv.org/abs/2407.04147
机构:Dalhouise University
Tactics, Techniques, and Procedures (TTPs) in Interpreted Malware: A Zero-Shot Generation with Large Language Models
本文提出了一种名为 GENTTP 的零样本方法,用于从解释型恶意软件包中提取攻击战术、技术和程序(TTP)。该方法利用大语言模型自动生成 TTP,输入为恶意软件包,输出为欺骗性战术和执行战术。研究者通过两个数据集验证了 GENTTP 的有效性,并基于3700多个 PyPI 恶意软件的 TTP 构建了一个基于大模型的聊天机器人。此外,论文还对恶意软件的 TTP 进行了大规模的定量分析,发现许多开源软件恶意包共享相对稳定的 TTP,以及TTP 反映了基于恶意软件攻击的特征,并且与攻击者的意图相关联。这项研究为解释型恶意软件分析引入了 MITRE ATT&CK 框架,为理解和防御软件供应链攻击提供了新的视角和工具。
发布日期:2024-07-11
链接:https://arxiv.org/abs/2407.08532
机构:Beijing JiaoTong University
Towards Practical and Useful Automated Program Repair for Debugging
本文文提出了一个名为 PracAPR 的交互式程序修复系统,旨在提高程序修复技术的实用性、有效性和可利用性,并将其融入日常调试过程。PracAPR 不同于传统的程序修复方法,不需要测试套件或程序重新执行,而是通过与开发者交互,获取问题描述,利用测试无关的流分析技术定位错误,并结合大语言模型和策略驱动的全局修复方法生成补丁。此外,PracAPR 还利用模拟轨迹比较来进行补丁验证,进一步提高了修复效率。该系统旨在为开发者提供有效的修复建议,帮助他们更加便捷高效地进行调试。
发布日期:2024-07-12
链接:https://arxiv.org/abs/2407.08958
机构:Wuhan University
SCoPE: Evaluating LLMs for Software Vulnerability Detection
本文研究了 CVEFixes 数据集,特别是 C/C++ 子集。论文提出了一种名为 SCoPE 的源代码处理引擎,可以用来减少 C/C++ 函数的大小并进行规范化,从而对 CVEFixes 数据集进行精炼。论文利用精炼后的数据集对三个预训练的语言模型进行微调,评估了 SCoPE 对软件漏洞检测的有效性。结果表明,SCoPE 成功地识别出评估子集中 905 个重复项,语言模型的结果也证实了其在软件漏洞检测方面的适用性,最佳模型的 F1 分数达到 53%。
发布日期:2024-07-19
链接:https://arxiv.org/abs/2407.14372
机构:Porto School of Engineering
Comparison of Static Application Security Testing Tools and Large Language Models for Repo-level Vulnerability Detection
本文通过比较 15 种 SAST 工具和 12 种大语言模型,对软件漏洞检测领域进行了深入研究。研究发现,SAST 工具虽然在检测率上表现不佳,但误报率较低;而大型语言模型则能够检测出 90% 到 100% 的漏洞,但误报率很高。论文还尝试将 SAST 工具和大语言模型结合,以降低各自的缺点。这项研究不仅分析了当前软件漏洞检测领域的进展,也为未来方向提供了新的思路。
发布日期:2024-07-23
链接:https://arxiv.org/abs/2407.16235
机构:Singapore Management University
Code Structure-Aware through Line-level Semantic Learning for Code Vulnerability Detection
本文提出了一种新的代码漏洞检测方法,该方法特别注重保留和利用代码的结构信息。研究者开发了一种改进的代码文本处理流程,保留了结构元素如换行符和空格,以便在建模过程中保持代码的行级结构信息和语义信息。同时,他们提出了一种新的网络架构——代码结构感知网络(CSLS),该网络通过行级语义学习,整合了全局漏洞感知、行结构感知和敏感行感知三个关键组件。实验结果表明,这种新的代码预处理流程显著提高了现有基线模型的性能,而提出的网络架构在漏洞检测方面的准确性也超越了新建立的基准。这项研究强调了结构信息在提高代码漏洞检测模型效能方面的重要性。
发布日期:2024-07-26
链接:https://arxiv.org/abs/2407.18877
机构:Peking University
A Study of Using Multimodal LLMs for Non-Crash Functional Bug Detection in Android Apps
本文探索了利用大语言模型作为测试先知来检测安卓应用程序中非崩溃功能性(NCF)bug 的可能性。研究者对71个有详细记录的 NCF bug 进行了全面的实证研究,结果表明大模型在 NCF bug 检测方面的表现优于现有工具,达到了49%的检测率。此外,研究团队利用大模型作为测试先知,在64个安卓应用程序中成功检测到24个此前未知的 NCF bug,其中4个已得到确认或修复。尽管研究也发现了大模型在性能下降、内在随机性和误报方面的一些局限性,但总体上突显了大模型在安卓 NCF bug 检测中的潜力,为移动应用 GUI 测试领域提供了新的视角和方法,有望改进传统 GUI 测试技术在 NCF bug 检测方面的不足。
发布日期:2024-07-26
链接:https://arxiv.org/abs/2407.19053
机构:University of Cincinnati
EaTVul: ChatGPT-based Evasion Attack Against Software Vulnerability Detection
本文揭示了深度学习模型在软件漏洞检测中容易受到对抗攻击的弱点,并提出了一种名为 EaTVul 的攻击方法。EaTVul 通过识别重要样本和特征,利用 ChatGPT 生成对抗样本,并采用模糊遗传算法筛选种子数据,最终成功率高达83%,甚至在样本大小为4时达到100%。研究结果强调了在软件漏洞检测中防御对抗攻击的重要性。
发布日期:2024-07-27
链接:https://arxiv.org/abs/2407.19216
机构:CSIRO’s Data61
ThinkRepair: Self-Directed Automated Program Repair
本文提出了一种名为 ThinkRepair 的基于大语言模型的自导式程序修复方法,该方法通过两个阶段来解决程序修复问题:收集阶段和修复阶段。收集阶段通过提示工程自动收集各种思维链,形成修复前的知识库。修复阶段则通过选择少量样本进行小样本学习,并与大模型进行自动交互,并根据测试结果进行反馈,来完成程序修复。实验结果表明,ThinkRepair 在修复程序错误方面表现优异,在 Defects4J 和 QuixBugs 数据集上均取得了显著的性能提升,修复了更多的错误,并显著超越了现有的最先进的程序修复方法。
发布日期:2024-07-30
链接:https://arxiv.org/abs/2407.20898
机构:Zhejiang University
Automated Software Vulnerability Static Code Analysis Using Generative Pre-Trained Transformer Models
本文评估了开源 GPT 模型在识别 C 和 C++ 代码中脆弱代码语法方面的有效性,发现这些模型在完全自动化漏洞扫描方面效果不佳,因为假阳性和假阴性率太高。然而,这些模型在一些测试案例中表现出令人惊讶的自动化漏洞检测能力,尤其是在某些情况下超越了随机抽样,并能识别出脆弱代码的具体行,尽管成功率较低。最有效的 GPT 模型是 Llama-2-70b-chat,在特定测试案例中实现了完美的召回率和精确率,成功识别了脆弱代码行和对应的 CWE 号码。
发布日期:2024-07-31
链接:https://arxiv.org/abs/2408.00197
机构:Sandia National Laboratories
克隆检测
Assessing the Code Clone Detection Capability of Large Language Models
本文比较了 GPT-3.5 和 GPT-4 在代码克隆检测任务上的表现。结果表明,GPT-4 在所有克隆类型上都优于GPT-3.5,并且它们的准确率与代码相似度呈正相关。尽管 GPT 模型在识别 LLM 生成的代码克隆方面表现更好,但总体准确率仍需改进。研究强调了持续提升 LLM 能力,特别是识别代码克隆并降低其对自身生成代码克隆的敏感性的重要性,因为随着软件工程师越来越多地使用 LLM 支持的代码生成和重构工具,这一问题可能会变得更加突出。
发布日期:2024-07-02
链接:https://arxiv.org/abs/2407.02402
机构:University of Galway
代码表征
CodeCSE: A Simple Multilingual Model for Code and Comment Sentence Embeddings
本文提出了一种名为 CodeCSE 的对比学习模型,用于在同一空间中学习代码函数及其描述的嵌入表示,填补了现有文献中缺乏现成的函数嵌入模型的空白。研究人员通过代码搜索任务对 CodeCSE 进行了评估,结果表明 CodeCSE 的多语言零样本方法在效果上可以与针对特定语言微调的 GraphCodeBERT 模型相媲美。这一创新为代码搜索、代码克隆检测等代码相关任务提供了新的解决方案,有望推动相关领域的研究和应用发展。
发布日期:2024-07-08
链接:https://arxiv.org/abs/2407.06360
机构:Eastern Michigan University
软件测试
Large-scale, Independent and Comprehensive study of the power of LLMs for test case generation
本文文全面评估了大语言模型在单元测试生成方面的有效性,通过对四个 LLM 和五种提示工程技术进行研究,分析了 690 个 Java 类生成的 216,300 个测试用例。结果表明,LLM 在测试生成方面展现出潜力,但测试正确性仍需提升。该研究比较了 LLM 与传统方法的优缺点,为 LLM 在软件工程领域应用的进一步研究提供了方向。
发布日期:2024-06-28
链接:https://arxiv.org/abs/2407.00225
机构:University of Luxembourg
Augmenting LLMs to Repair Obsolete Test Cases with Static Collector and Neural Reranker
本文提出了一种名为 SynBCIATR 的新方法,用于自动修复由代码变更导致的过时测试用例。该方法设计了一种精确而简洁的测试修复导向上下文(TROCtx)构建方法,通过静态分析技术收集与变更相关的代码信息,并使用重排序查询来识别最相关的上下文。这种方法不仅提高了修复的准确性,还显著减少了大语言模型产生的幻觉。实验结果表明,SynBCIATR 在文本匹配和意图匹配指标上都优于基准方法,并将幻觉减少了57.1%。这项研究为解决软件演化过程中测试代码与生产代码不同步的问题提供了一个有效的解决方案。
发布日期:2024-07-04
链接:https://arxiv.org/abs/2407.03625
机构:Chinese Academy of Sciences
Harnessing the Power of LLMs: Automating Unit Test Generation for High-Performance Computing
本文提出了一种针对并行高性能计算软件(特别是科学应用)的自动化单元测试生成方法。该方法利用了大语言模型的代码生成能力,并针对这类软件的复杂逻辑和并行处理特点进行了优化。实验结果表明,大模型能够生成大部分正确且全面的单元测试,尽管仍然存在一些局限性,如重复断言和空测试用例。
发布日期:2024-07-06
链接:https://arxiv.org/abs/2407.05202
机构:University Of Houston
Beyond Code Generation: Assessing Code LLM Maturity with Postconditions
本文提出了一种基于后置条件生成问题的代码大模型成熟度模型,以更全面地评估代码大模型的能力。该模型通过让 LLM 理解代码语义和自然语言,并生成明确的后置条件来测试其能力。研究者还利用该模型扩展了 EvalPlus 数据集,构建了一个后置条件测试基准,并评估了多个开源模型,揭示了提高代码大模型性能所需的改进方向。
发布日期:2024-07-19
链接:https://arxiv.org/abs/2407.14118
机构:Nanjing University
SelfPiCo: Self-Guided Partial Code Execution with LLMs
本文提出了一个名为 SelfPiCo 的新框架,利用大型语言模型 Code Llama,通过交互式循环动态指导部分代码执行。该框架利用少量样本的上下文学习和思维链推理,结合对 Code Llama 模型的微调来提取人类知识和逻辑推理。SelfPiCo 能够从代码执行结果中持续学习并逐步优化预测结果,在开源代码和 Stack Overflow 片段中分别成功执行了72.7%和83.3%的代码行,并在实际应用中成功检测到18个和33个运行时类型错误,展现了其在软件调试和测试中的潜力和实际应用价值。
发布日期:2024-07-24
链接:https://arxiv.org/abs/2407.16974
机构:Zhejiang University
Evaluating Large Language Models in Detecting Test Smells
本文研究了大语言模型在自动检测测试代码异味方面的潜力,通过评估 ChatGPT-4、Mistral Large 和 Gemini Advanced 等模型,发现这些模型在识别多种类型的测试代码异味方面表现出一定的潜力,尤其 ChatGPT-4 的识别能力最为突出,这表明大模型有可能成为识别测试代码异味的有力工具。
发布日期:2024-07-27
链接:https://arxiv.org/abs/2407.19261
机构:Federal University of Campina Grande
An LLM-based Readability Measurement for Unit Tests' Context-aware Inputs
本文提出了一个名为 C3 的工具,用于衡量自动化测试的输入可读性。与现有方法不同,C3 利用大语言模型从源代码中提取原始类型参数的可读性上下文,并检查测试输入是否与这些上下文一致。论文还开发了 EvoSuiteC3,利用 C3 提取的上下文来帮助 EvoSuite 生成更可读的测试输入。实验结果表明,C3 在识别可读性上下文方面表现良好,并且 EvoSuiteC3 生成的字符串类型输入的可读性明显优于传统工具,表明 C3 可以有效提高自动化测试的可读性。
发布日期:2024-07-31
链接:https://arxiv.org/abs/2407.21369
机构:ShanghaiTech University
Chat-like Asserts Prediction with the Support of Large Language Model
本文提出了一种名为 Chat-like execution-based Asserts Prediction(CLAP)的新方法,利用大语言模型来生成 Python 项目的有意义的断言语句。CLAP 通过精心设计的提示,结合角色扮演、思维链和单次学习技术,并与语言模型和 Python 解释器进行多次交互,从而生成有效的断言语句。论文还构建了一个从 GitHub 提取的 Python 断言语句数据集。实验结果表明,CLAP 在单断言语句生成方面达到了64.7%的准确率,在整体断言语句生成方面达到了62%的准确率,优于现有方法。此外,论文还分析了生成错误的断言语句,并探讨了 CLAP 在自动化 Python 单元测试生成方面的潜在帮助。研究结果表明,CLAP 有潜力通过更实用的应用场景为软件工程社区提供帮助。
发布日期:2024-07-31
链接:https://arxiv.org/abs/2407.21429
机构:Monash University
代码总结
ESALE: Enhancing Code-Summary Alignment Learning for Source Code Summarization
本文文提出了一种基于摘要导向任务的新方法来改进代码摘要。它利用多任务学习范式,在三个摘要导向任务上训练编码器,以增强其学习代码-摘要对齐的能力,包括单向语言建模、掩码语言建模和动作词预测。与主要在代码片段中预测掩码标记的预训练模型不同,该方法设计了单向语言建模和掩码语言建模来预测摘要中的掩码词,并引入领域特定的动作词预测任务来增强编码器学习动作词和代码片段之间对齐的能力。实验表明,该方法表现显著优于基线方法。
发布日期:2024-07-01
链接:https://arxiv.org/abs/2407.01646
机构:Nanjing University, Nanjing
Source Code Summarization in the Era of Large Language Models
本文对大语言模型在代码摘要任务中的应用进行了系统性研究,涵盖了 LLM 代码摘要流程的多个方面。研究发现,GPT-4 的评价方法与人工评价结果最一致,并分析了五种提示技术的有效性,发现复杂提示并不一定优于简单提示。论文还研究了模型参数对代码摘要质量的影响,发现影响因模型和编程语言而异,但总体影响相似。此外,研究还分析了 LLM 在不同编程语言中的表现,发现 LLM 在逻辑编程语言方面表现不如其他语言类型。最后,论文意外发现,参数为 7B 的 CodeLlama-Instruct 在生成描述代码实现细节和断言代码属性的摘要方面,甚至能超越先进的 GPT-4。
发布日期:2024-07-09
链接:https://arxiv.org/abs/2407.07959
机构:Nanjing University
代码审核
A GPT-based Code Review System for Programming Language Learning
本文提出了一个基于 GPT-4 的系统,旨在为编程教育提供学习者友好的代码审查和最小化 AI 辅助作弊的风险。研究者通过收集在线评判系统的数据集来优化系统提示,并设计了特定的系统流程和功能来防止作弊。经过软件教育专家的可用性测试和改进后,该系统在代码正确性检查、响应时间、API 调用成本和代码审查质量等方面表现出色。专家反馈认为该工具适合用于中小学编程教学,预计将成为编程语言学习中的有效工具。这项研究为解决编程教育中大班级规模下及时个性化反馈的需求提供了一种创新方法。
发布日期:2024-06-21
链接:https://arxiv.org/abs/2407.04722
机构:University of Hanyang
LLM Critics Help Catch LLM Bugs
本文提出了一种通过训练“评论家”模型来提高人类对模型输出评估能力的方法,以此克服人类反馈强化学习(RLHF)的局限性。这些评论家模型是使用 RLHF 训练的语言模型,能够撰写自然语言反馈,突出代码中存在的问题。实验表明,在包含真实世界代码中常见的 LLM 错误的代码上,模型生成的评论在63%的情况下优于人工评论,并且人类评估发现模型比付费代码审核人员发现的错误更多。此外,研究还证实了经过微调的 LLM 评论家可以成功识别 ChatGPT 训练数据中被评为“完美”的数百个错误,尽管大多数这些任务是非代码任务,因此对于评论家模型来说是分布外数据。虽然评论家本身也存在局限性,例如可能出现幻觉错误,导致人类做出原本可以避免的错误,但人机合作的评论家和审核人员团队发现的错误数量与 LLM 评论家相似,同时幻觉错误数量也比单独使用 LLM 更少。
发布日期:2024-06-28
链接:https://arxiv.org/abs/2407.00215
机构:OpenAI
Exploring the Capabilities of LLMs for Code Change Related Tasks
本文研究了大语言模型在代码变更相关任务中的表现,通过实验证明了大语言模型在代码审查、提交消息生成和实时注释更新等任务上取得了一定进展,但其性能受样本数量和模型大小的影响较大。论文发现,在代码变更仅涉及注释修改时,大型语言模型的表现优于小型预训练模型,但在其他代码变更上则表现相当。论文建议未来的研究应该更关注指导大语言模型学习代码变更相关知识,而非仅仅关注注释方面的学习。
发布日期:2024-07-03
链接:https://arxiv.org/abs/2407.02824
机构:Zhejiang University
Evaluating Language Models for Generating and Judging Programming Feedback
本文评估了开源大模型在编程教育领域的应用效果,特别是在生成编程作业反馈和评判反馈质量方面。研究发现,最先进的开源模型(如 Llama3)在这些任务上的表现几乎可以与专有模型(如 GPT-4)相媲美。此外,研究还证明了较小规模的语言模型在这些任务中也能表现出较高的效率。这项研究为教育工作者和实践者提供了宝贵的信息,表明有多种可免费获取的语言模型可用于编程教育,从而扩大了大语言模型在计算机教育研究中的应用范围和可访问性。
发布日期:2024-07-05
链接:https://arxiv.org/abs/2407.04873
机构:Aalto University
用户界面设计
Vision-driven Automated Mobile GUI Testing via Multimodal Large Language Model
本文提出了一种基于多模态大模型的视觉驱动自动 GUI 测试方法 VisionDroid,用于检测移动应用中的非崩溃功能性错误。VisionDroid 通过提取 GUI 文本信息并与截图对齐,形成视觉提示,使模型能够理解 GUI 上下文。随后,它利用模型进行功能导向的页面探索,并通过对探索历史进行逻辑分割,使用模型识别潜在的错误。实验表明,VisionDroid 在检测非崩溃错误方面表现出色,并成功识别了 Google Play 上29个新的错误,其中19个已被确认并修复。
发布日期:2024-07-03
链接:https://arxiv.org/abs/2407.03037
机构:Chinese Academy of Sciences
AUITestAgent: Automatic Requirements Oriented GUI Function Testing
本文提出了一个全新的自然语言驱动的移动应用 GUI 测试工具 AUITestAgent,它能够自动完成 GUI 交互和功能验证的全过程。通过动态组织代理,AUITestAgent 可以从自然语言的测试需求中提取 GUI 交互命令,并利用多维数据提取策略从交互轨迹中获取验证所需的数据。实验结果表明,AUITestAgent 在生成 GUI 交互质量和验证准确率方面优于现有工具,并在美团的实际应用中成功检测出4个新的功能性错误,证明了其实用性和可靠性。
发布日期:2024-07-12
链接:https://arxiv.org/abs/2407.09018
机构:Fudan University
ICML 2024 专辑
AST-T5: Structure-Aware Pretraining for Code Generation and Understanding
本文提出了 AST-T5,一种新的预训练范式,利用抽象语法树(AST)来增强代码生成、转译和理解。AST-T5 通过动态规划保留代码结构,并使用 AST-Aware Span Corruption 目标来训练模型重建各种代码结构,从而在各种代码相关任务中,尤其是代码到代码的任务中,显著优于其他同等规模的语言模型。
链接:https://arxiv.org/abs/2401.03003
机构:University of California at Berkeley
Chain of Code: Reasoning with a Language Model-Augmented Code Emulator
本文提出了一种名为“代码链”(Chain of Code)的新方法,通过将语义推理任务分解成代码的形式并鼓励语言模型模拟代码解释器,显著提升了语言模型在逻辑、算术和语义等多个推理任务上的表现。该方法不仅有效地克服了语言模型在代码编写和执行方面的局限性,还将语言模型的推理能力扩展到更广泛的领域,使它们能够更有效地“用代码思考”并解决复杂问题。
链接:https://arxiv.org/abs/2312.04474
机构:Stanford University
NExT: Teaching Large Language Models to Reason about Code Execution
本文提出了 NExT,通过让大语言模型学习检查程序执行轨迹(变量状态)并利用思维链推理来理解程序运行时行为,提升模型对程序执行的理解能力。NExT 使用自训练的方式,无需大量人工标注就能够生成合成训练集,让模型学习到能解决程序修复等任务的执行感知推理。实验表明,NExT 显著提升了 PaLM 2 在程序修复任务上的修复率,并且生成的推理质量得到了自动化指标和人工评估的验证。此外,该模型还能在测试时没有程序轨迹的情况下进行泛化。
链接:https://arxiv.org/abs/2404.14662
机构:Google DeepMind
Repoformer: Selective Retrieval for Repository-Level Code Completion
本文提出了一种选择性 RAG 框架,旨在提升代码补全任务的效率与鲁棒性,尤其在仓库级别的代码补全上。针对现有方法中普遍存在的检索问题,如效率低下和检索结果对代码大模型帮助有限甚至有害的情况,该研究设计了一种自监督学习策略,使代码大模型能够精确评估检索是否能提升其输出质量,并稳健地利用潜在的噪声检索结果。通过将大模型同时作为选择性 RAG 策略和生成模型,该框架在多个基准测试上(包括 RepoEval、CrossCodeEval 以及新引入的长形式代码补全基准 CrossCodeLongEval)均实现了最先进的性能。此外,选择性检索在实际应用中带来了高达70%的推理速度提升,且不影响性能表现。实验进一步证明了该框架的灵活性,可兼容不同的生成模型、检索器及编程语言,标志着向更准确、高效的仓库级代码补全迈出了重要一步。
链接:https://arxiv.org/abs/2403.10059
机构:AWS AI Labs
CRUXEval: A Benchmark for Code Reasoning, Understanding and Execution
本文提出了 CRUXEval,一个包含800个 Python 函数的基准测试,每个函数都有输入输出对,用于评估代码模型的推理和执行能力。研究结果表明,许多在 HumanEval 上取得高分的模型在 CRUXEval 上表现不佳,而简单的 CoT 和微调方案可以提高性能,但仍远远不足以解决问题。同时,论文也揭示了开源和闭源模型之间的性能差距,指出了代码大模型需要改进的方向。
链接:https://arxiv.org/abs/2401.03065
机构:Meta AI
Executable Code Actions Elicit Better LLM Agents
本文提出了一种名为 CodeAct 的框架,利用可执行的 Python 代码来统一大语言模型代理的动作空间,从而克服了现有方法中动作空间受限和灵活性不足的缺陷。CodeAct 通过与 Python 解释器集成,能够执行代码动作、根据新观察动态修改先前动作或生成新动作,并在多轮交互中实现灵活的行动策略。论文通过在 API-Bank 和新数据集上的广泛分析表明,CodeAct 在17种 LLM 上均取得了优于现有方法的性能(成功率提升高达20%)。为了促进 LLM 代理的发展,研究人员还构建了一个基于 Llama2 和 Mistral 模型专门针对复杂任务(如模型训练)进行微调的开源 LLM 代理 CodeActAgent,它能够利用现有库自主地执行任务并进行自我调试。
链接:https://arxiv.org/abs/2402.01030
机构:University of Illinois Urbana-Champaign
Do Large Code Models Understand Programming Concepts? A Black-box Approach
本文研究了大语言模型在代码生成方面的理解能力,通过设计一个名为“反事实分析编程概念谓词”(CACP)的测试框架,对十个流行的大型代码模型进行评估。研究发现,现有的模型对于数据流和控制流等编程概念的理解仍然不足,表明大语言模型在代码生成方面的成功并不意味着它们真正理解了程序的逻辑结构。
链接:https://arxiv.org/abs/2402.05980
机构:University of Wisconsin-Madison
Magicoder: Empowering Code Generation with OSS-Instruct
本文提出了一种名为 Magicoder 的开源代码大模型,通过使用 OSS-Instruct 技术,利用开源代码片段生成多样化的指令数据,显著缩小了与其他顶尖代码模型的差距。OSS-Instruct 方法能够生成更逼真、可控的合成数据,并与其他数据生成方法相辅相成,最终打造出更强大的 MagicoderS 模型。在各种代码基准测试中,Magicoder 和 MagicoderS 均显著优于同等规模或更大规模的现有代码模型,甚至在 HumanEval+ 测试中超越了 ChatGPT。
链接:https://arxiv.org/abs/2312.02120
机构:University of Illinois at Urbana-Champaign
Self-Infilling Code Generation
本文提出了一个名为“自填充代码生成”的通用框架,将填充操作融入自回归解码。该框架利用了最近的填充能力代码语言模型可以自我填充的特性:填充操作通常需要预先定义的前缀和后缀来填充中间部分,而自填充则能够顺序地生成前后文和填充内容。利用这一特性,论文引入了中断和循环机制,将传统的单调解码过程转变为非单调过程。中断机制允许推迟特定代码的生成,直到确定最终的后缀,增强了对输出的控制。循环机制则利用自填充和从左到右解码的互补性,循环迭代地更新和同步每一部分的生成。实验表明,这种解码过程在多个代码生成基准测试中有效地提高了代码的规范性和质量。
链接:https://arxiv.org/abs/2311.17972
机构:ByteDance
Instruction Tuning for Secure Code Generation
文提出了一种名为 SafeCoder 的安全代码生成方法,旨在解决当前指令微调模型在代码生成方面存在安全漏洞的问题。SafeCoder 通过使用自动化的管道收集高质量的安全相关数据进行安全中心化的微调,并将安全微调与标准的指令微调相结合,以实现安全性与效用协同优化。研究表明,SafeCoder 能显著提升代码安全性(约30%),同时保持代码生成能力。
链接:https://arxiv.org/abs/2402.09497
机构:ETH Zurich
Unsupervised Evaluation of Code LLMs with Round-Trip Correctness
本文提出了一个名为“往返正确性(RTC)”的评估方法,用于评估代码大模型。与传统的依赖于人工标注的小型基准数据集不同,RTC 允许在更广泛的真实世界软件领域中评估模型,而无需昂贵的人工标注。RTC 通过将模型生成的代码描述转换为代码,然后比较生成的代码与原始代码的语义等效性来评估模型性能。该研究证明了 RTC 在代码合成和编辑任务中的有效性,并发现 RTC 与现有狭窄领域代码合成基准上的模型性能高度相关,同时能够扩展到更广泛的领域和任务,突破了先前受限于人工标注的局限性。
链接:https://arxiv.org/abs/2402.08699
机构:Google DeepMind
ReGAL: Refactoring Programs to Discover Generalizable Abstractions
本文提出了一个名为“ReGAL”的无梯度方法,通过代码重构学习可复用的函数库,提升大语言模型在程序合成任务中的泛化能力。ReGAL 从少量现有程序中学习,通过执行验证和优化抽象函数,最终生成能够在多个领域预测程序的共享函数库。实验表明,在不同程序合成任务中,使用 ReGAL 学习到的函数库可以显著提高大模型的准确性,例如在 LOGO 图形生成、日期推理和 TextCraft 等任务中都取得了明显提升。
链接:https://arxiv.org/abs/2401.16467
机构:UNC Chapel Hill
联系我们
我们团队的多项工作,包括综述、模型、数据集,都在陆续开源中。如果您喜欢我们的工作,欢迎试用、指正错误和贡献代码,也可以给我们的项目增加 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
如果您想更快地获取到最新信息,欢迎加入我们的微信群