Search-Based LLMs for Code Optimization

2024年08月22日
  • 简介
    开发人员编写的代码通常存在效率问题和各种性能缺陷。这些低效率问题需要研究自动重构方法进行代码优化。早期的代码优化研究采用基于规则的方法,重点关注特定的低效问题,这些方法需要大量劳动力,并且存在覆盖率低的问题。最近的研究将此任务视为序列生成问题,并采用深度学习(DL)技术,如大型语言模型(LLMs)。这些方法通常提示LLMs直接生成优化代码。虽然这些方法显示出最先进的性能,但这种一步生成范式很难实现最优解。首先,复杂的优化方法,如组合优化方法,很难被LLMs捕捉。其次,一步生成范式在精确注入LLMs所需的有效代码优化知识方面存在挑战,导致代码优化不足。为了解决这些问题,我们提出了从搜索角度对这个任务进行建模,并提出了一个名为SBLLM的基于搜索的LLMs框架,它可以迭代地改进和发现改进的优化方法。SBLLM将LLMs与进化搜索相融合,由三个关键组成部分组成:1)基于执行的代表性样本选择部分,评估每个现有优化代码的适应性,并优先考虑有前途的样本来引导改进代码的生成;2)自适应优化模式检索部分,将有针对性的优化模式注入模型,以指导LLMs纠正和逐步增强其优化方法;3)基因运算符启发的思维链提示部分,帮助LLMs组合不同的优化方法并生成改进的优化方法。
  • 图表
  • 解决问题
    论文旨在解决代码优化中的效率问题和性能错误,提出了一种基于搜索的深度学习框架SBLLM来实现迭代优化代码的发现和改进。
  • 关键思路
    SBLLM框架将进化搜索与深度学习相结合,通过执行评估、自适应优化模式检索和启发式搜索等三个关键组件来实现代码优化的迭代发现和改进。
  • 其它亮点
    论文使用了大量的实验来验证SBLLM框架的有效性,并与其他代码优化方法进行了比较。实验结果表明,SBLLM框架能够显著提高代码的优化效果,并且能够自适应地发现和改进优化模式。此外,论文还提供了一个开源的代码库,以便其他研究人员能够使用和改进。
  • 相关研究
    在代码优化领域,之前的研究主要采用基于规则的方法,而近期的研究则将其视为序列生成问题,并采用深度学习技术来直接生成优化代码。然而,这种一步生成范式很难实现最优解,因此SBLLM框架提出了一种基于搜索的方法来解决这个问题。
许愿开讲
PDF
原文
点赞 收藏
向作者提问
NEW
分享到Link

提问交流

提交问题,平台邀请作者,轻松获得权威解答~

向作者提问