分治与共识的结合:释放代码生成中函数的威力
该研究介绍了一种技术,它允许大型语言模型在解决编程任务时利用用户提供的代码,并且提出了一种逐步生成模块化子函数的方法,以帮助模型在初始生成的代码不足时进行未来的代码生成尝试。
Nov, 2023
使用大型语言模型(LLMs)进行代码生成的研究,引入了一个新的强化学习框架 StepCoder,通过将代码生成任务拆分为完成代码片段的课程,以及屏蔽未执行代码段进行模型优化,成功解决了复杂人类需求下 RL 探索和模型优化的挑战,并通过构建 APPs + 数据集进行了实验验证。
Feb, 2024
使用多智能体提示的新方法进行代码生成任务,利用四个特定设计的语言模型代理模拟人类开发者在程序综合的全部周期中观察到的阶段,展示出优秀的代码生成能力并取得新的最先进结果。
May, 2024
PanGu-Coder 是一种预训练的仅解码器语言模型,在文本到代码生成方面采用 PanGu-Alpha 架构,使用因果语言建模和屏蔽语言建模的训练方法,以实现在自然语言问题描述的情况下对编程语言解决方案进行综合的代码生成和优化。
Jul, 2022
通过提出 ChainCoder 程序合成语言模型,从粗到细地分多步生成 Python 代码,以此缓解编程思考的困难,该模型能与自然语言描述和语法对齐的 I /O 数据样本同时编码,这一方法已超越现有技术,并生成更高质量的解决方案。
Apr, 2023
该论文提出了一种新的策略,通过连接静态代码文本和动态执行状态,训练具有全面语义的 Code LLMs,从而填补 Code LLMs 在诸如调试和程序修复等复杂任务中对深层语义的依赖的差距。该方法通过收集 PyX,一个具有可执行样本、功能描述和执行跟踪的干净代码语料库,训练 Code LLMs 使用自然语言编写代码、表示和推理执行行为,从而开发出了仅有 67 亿参数的 SemCoder,该模型在代码生成和执行推理任务上与 GPT-3.5-turbo 表现相当。
Jun, 2024
我们提出了一种方法,通过对开源语言模型进行微调,使其能够使用代码进行建模,并推导出数学方程,从而增强其数学推理能力。我们介绍了一种生成包含数学问题和基于代码的解决方案的新颖高质量数据集的方法,称为 MathCodeInstruct。我们还引入了一种定制的有监督微调和推理方法。这种方法产生了 MathCoder 模型,一组能够生成基于代码的解决方案来解决具有挑战性的数学问题的模型。令人印象深刻的是,MathCoder 模型在 MATH(45.2%)和 GSM8K(83.9%)数据集上取得了开源语言模型的最新得分,远远超过其他开源方案。值得注意的是,MathCoder 模型不仅在 GSM8K 和 MATH 上超过了 ChatGPT-3.5 和 PaLM-2,还超过了 GPT-4 在竞争级别的 MATH 数据集上。数据集和模型将在此 URL 发布。
Oct, 2023
基于大型语言模型 (LLMs) 的自动化软件工程在最近的进展中得到了极大的增强。尽管当前的基准测试表明 LLMs 可以完成各种软件工程任务,如人类开发人员一样,但它们的大多数评估仅限于简短的、自包含的算法任务。解决具有挑战性和实际意义的编程任务需要利用多种函数调用作为工具,以有效地实现数据分析和 Web 开发等功能。此外,使用多个工具来解决一个任务需要通过准确理解复杂的指令来进行组合推理。同时实现这两个特征对于 LLMs 来说是一个巨大的挑战。为了评估 LLMs 解决具有挑战性和实际意义的编程任务的能力,我们引入了一个基准测试集 Bench,其中挑战 LLMs 以从 139 个库和 7 个领域中选择 1,140 个细粒度的编程任务中调用多个函数调用作为工具。为了对 LLMs 进行严格评估,每个编程任务包括 5.6 个测试用例,平均分支覆盖率达到 99%。此外,我们提出了 Bench 的自然语言导向变体 Benchi,它将原始的文档字符串自动转换为仅具有基本信息的简短指令。我们对 60 个 LLMs 进行了广泛评估,结果显示 LLMs 还不能准确地遵循复杂指令来使用函数调用,得分最高仅为 60%,明显低于人类的 97%。这些结果强调了在这个领域进一步改进的需要。
Jun, 2024
本文提出了一种名为 COMPCODER 的三阶段编译反馈机制,采用编译器反馈来生成可编译的代码,实验结果显示该方法的成功编译率从 44.18%提升至 89.18%。
Mar, 2022