大型语言模型对代码语义理解的能力的实证研究
该研究探讨了大型语言模型在编程问题中的应用,发现最新技术如InstructGPT和ChatGPT在处理指令时表现优异,而早期使用变量名如Codex的模型的性能受描述问题时表浅的指标较大影响。
Jun, 2023
本文提出了一种名为SeCoT的语义“思维链”方法,通过引入代码的语义信息,指导大型语言模型考虑和整合语义信息,以提高代码生成的准确性。实验结果表明,SeCoT在大型模型和代码生成方面取得了最先进的性能提升。
Oct, 2023
这篇论文通过使用先进的基于变压器的语言模型深入研究了代码摘要。通过实证研究,我们改变函数和变量名称来评估代码摘要的效果,以探索模型是否真正理解代码语义或仅依赖于文本线索。我们还引入了死代码和注释代码等对抗性实验,覆盖了Python、Javascript和Java三种编程语言,进一步审查模型的理解能力。最终,我们的研究旨在提供有关基于变压器的语言模型内部工作方式的有价值见解,增强其理解代码的能力,并为更高效的软件开发实践和维护工作流做出贡献。
Oct, 2023
本文提出了一个名为REval的框架,用于评估代码LLM的代码推理能力和一致性,通过对现有的代码基准进行改进,在大规模的实证研究中发现大多数LLMs在运行时行为推理和增量一致性评估方面表现不尽人意,强调了提高代码LLM的代码推理能力的迫切需求。
Mar, 2024
通过实证研究PEFT方法(LoRA和Compacter)在CodeT5和CodeLlama上的表现,评估它们相较于完全微调模型的性能、是否可用于从自然语言模型到代码的知识转移,以及它们适应学习知识到一种未见语言的能力。我们的研究目标是研究R语言,其具有广泛的社区,而LLMs的适应性和较低的计算成本使其能够在缺乏大量计算资源的情况下使用,此外,研究R语言为使用LLMs于其他语言提供了新机会,我们期望得出PEFT方法在R语言的代码LLMs上的能力以及改进领域。
Mar, 2024
基于大规模语言模型的代码生成领域的综述,介绍了对LLMs在代码生成领域的最新进展、数据处理、性能评估、实际应用,对学术与实践之间的差距进行了分析,提出了关键挑战和机遇,并提供了一个资源网站以记录和传播该领域的最新进展。
Jun, 2024
该论文提出了一种新的策略,通过连接静态代码文本和动态执行状态,训练具有全面语义的Code LLMs,从而填补Code LLMs在诸如调试和程序修复等复杂任务中对深层语义的依赖的差距。该方法通过收集PyX,一个具有可执行样本、功能描述和执行跟踪的干净代码语料库,训练Code LLMs使用自然语言编写代码、表示和推理执行行为,从而开发出了仅有67亿参数的SemCoder,该模型在代码生成和执行推理任务上与GPT-3.5-turbo表现相当。
Jun, 2024
基于大型语言模型(LLMs)的自动化软件工程在最近的进展中得到了极大的增强。尽管当前的基准测试表明LLMs可以完成各种软件工程任务,如人类开发人员一样,但它们的大多数评估仅限于简短的、自包含的算法任务。解决具有挑战性和实际意义的编程任务需要利用多种函数调用作为工具,以有效地实现数据分析和Web开发等功能。此外,使用多个工具来解决一个任务需要通过准确理解复杂的指令来进行组合推理。同时实现这两个特征对于LLMs来说是一个巨大的挑战。为了评估LLMs解决具有挑战性和实际意义的编程任务的能力,我们引入了一个基准测试集Bench,其中挑战LLMs以从139个库和7个领域中选择1,140个细粒度的编程任务中调用多个函数调用作为工具。为了对LLMs进行严格评估,每个编程任务包括5.6个测试用例,平均分支覆盖率达到99%。此外,我们提出了Bench的自然语言导向变体Benchi,它将原始的文档字符串自动转换为仅具有基本信息的简短指令。我们对60个LLMs进行了广泛评估,结果显示LLMs还不能准确地遵循复杂指令来使用函数调用,得分最高仅为60%,明显低于人类的97%。这些结果强调了在这个领域进一步改进的需要。
Jun, 2024
本研究解决了代码语言模型(Code-LLMs)在理解代码语义方面的不足,提出SeqCoBench基准来系统评估其对代码功能等价性的捕捉能力。通过对多种代码转换的评测,结果显示,尽管Code-LLMs在语法结构方面表现良好,但其对代码语义的理解仍显不足,且与传统匹配检索方法的表现差异微小。
Aug, 2024