开发人员编写的代码通常存在效率问题和各种性能缺陷。这些低效率问题需要研究自动重构方法进行代码优化。早期的代码优化研究采用基于规则的方法,重点关注特定的低效问题,这些方法需要大量劳动力,并且存在覆盖率低的问题。最近的研究将此任务视为序列生成问题,并采用深度学习(DL)技术,如大型语言模型(LLMs)。这些方法通常提示LLMs直接生成优化代码。虽然这些方法显示出最先进的性能,但这种一步生成范式很难实现最优解。首先,复杂的优化方法,如组合优化方法,很难被LLMs捕捉。其次,一步生成范式在精确注入LLMs所需的有效代码优化知识方面存在挑战,导致代码优化不足。为了解决这些问题,我们提出了从搜索角度对这个任务进行建模,并提出了一个名为SBLLM的基于搜索的LLMs框架,它可以迭代地改进和发现改进的优化方法。SBLLM将LLMs与进化搜索相融合,由三个关键组成部分组成:1)基于执行的代表性样本选择部分,评估每个现有优化代码的适应性,并优先考虑有前途的样本来引导改进代码的生成;2)自适应优化模式检索部分,将有针对性的优化模式注入模型,以指导LLMs纠正和逐步增强其优化方法;3)基因运算符启发的思维链提示部分,帮助LLMs组合不同的优化方法并生成改进的优化方法。
提问交流