通过自我优化提升生成代码的效率
本研究提出了一种评估大型语言模型在生成高效代码方面能力的高标准基准 ENAMEL,通过新的效率度量标准 eff@k 和人工专家设计的参考解决方案对 30 个常用的大型语言模型进行广泛研究,发现当前的大型语言模型在设计先进算法和实现优化方面仍有不足。
Jun, 2024
最近大型语言模型 (LLM) 代理实现的自动代码生成取得了重要进展,但现有的单代理方法面对生成和改进大规模复杂代码库的限制,该论文提出了自组织多代理框架 (SoA),这是一种新的多代理框架,能够实现大规模代码的可扩展和高效生成优化。在 SoA 中,自组织代理独立操作以生成和修改代码组件,并无缝协作构建整体代码库,其关键特点是根据问题复杂度自动增加代理数量,从而实现动态可扩展性,使得代码量可以无限增加,而每个代理管理的代码量保持恒定。该论文在 HumanEval 基准上评估了 SoA,并证明与单一代理系统相比,SoA 中的每个代理处理的代码显著减少,但生成的整体代码量大幅增加。此外,SoA 在 Pass@1 准确率方面超过了强大的单代理基准 5%。
Apr, 2024
大语言模型在代码优化方面展示出强大的能力,通过将优化对构建成面向问题的方法,结合不同程序员对同一问题的巧妙思路,实验证明了适应面向问题的优化对能显著提升大语言模型的优化能力,进一步通过模型合并解决性能瓶颈,达到了新的高水平。
Jun, 2024
我们提出了一种无外部干扰的非定向迭代自我批判和自我完善的方法,以及一种新颖的评分指标,用于在考虑到性能和成本的情况下为给定任务找到最佳模型。我们的实验表明,规模不同的 SoTA 开源模型在性能方面平均提高 8.2%。这对希望在不牺牲性能和隐私的情况下利用 LLMs 的资源有限和信息敏感环境具有重要意义。
Oct, 2023
利用执行结果修正生成的代码,我们提出了一种基于人类编程阶段的生成和编辑方法来提高大型语言模型(LLM)在竞争性编程任务方面的代码质量,对使用不同参数大小的 9 种常见代码生成 LLM 在两个竞争性编程数据集上进行了广泛评估,相比于直接从 LLMs 生成的代码,我们的方法在 APP-dev 上的 pass@1 平均值提高了 89%,在 APPS-test 上提高了 31%,在 HumanEval 上提高了 48%,比其他后处理方法表现更优。
May, 2023
Code-Optimise 是一个框架,通过自动生成的偏好数据将正确性(通过,失败)和运行时间(快,慢)作为学习信号引入,实现了显著提高 in-domain 数据的 pass@k 的同时将竞争性基准运行时间额外降低 6%,并且对 out-of-domain 数据降低了 3%,提供了更快更便宜的推理,并在 MBPP 和 HumanEval 上将生成解决方案的平均长度分别减少了 48%和 23%。
Jun, 2024
通过引入强化学习的方法,将代码 LMM 的输出与性能对齐,提高生成代码的期望加速比,并在一组基准任务中展示了 0.9 至 1.6 倍的串行代码速度提升和 1.9 至 4.5 倍的 OpenMP 代码速度提升。
Apr, 2024
该论文通过比较分析两种先进的大型语言模型(GPT-4.0 和 CodeLlama-70B)与传统优化编译器在代码优化方面的能力和局限性,以及引入了一套挑战性的优化模式基准和用于评估生成代码性能和正确性的自动机制,发现虽然大型语言模型有超越当前优化编译器的潜力,但在大型代码上常常生成不正确的代码,需要自动化验证方法,其中 CodeLlama-70B 在两种大型语言模型中表现最佳,最大加速能达到 2.1 倍,而 CETUS 在优化编译器中表现最佳,最大加速能达到 1.9 倍。同时,两种提示方法(思考链和指令提示)没有显著差异。
Jun, 2024
推动自动化编程需要强大和全面的代码生成基准,然而当前的评估框架在功能编程 (FP) 方面相对而言忽视了面向对象编程 (OOP),本研究引入了一个面向对象编程的开创性基准,包含了 431 个涵盖关键的 OOP 概念和特性的 Python 程序,并提出了一个新的针对 OOP 的评估指标 pass@o,改进了传统的 pass@k 度量,研究结果表明 pass@o 为 OOP 代码生成提供了更相关和全面的评估,专注于代码的语言模型在功能编程方面表现出色,但在 OOP 方面则不及 ChatGPT 等模型,对所有高级代码语言模型在面向对象编程基准上的不良表现突显了这一领域需要的改进。
Jan, 2024