Automated Prompt Engineering for Cost-Effective Code Generation Using Evolutionary Algorithm
作者: Hamed Taherkhani, Melika Sepindband, Hung Viet Pham, Song Wang, Hadi Hemmati
分类: cs.SE, cs.AI, cs.NE
发布日期: 2024-08-20 (更新: 2025-07-29)
💡 一句话要点
提出EPiC:利用进化算法进行低成本代码生成提示工程
🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)
关键词: 代码生成 大型语言模型 提示工程 进化算法 成本优化
📋 核心要点
- 现有基于LLM的代码生成方法依赖大量迭代和token消耗,导致成本高昂,限制了其应用。
- EPiC利用进化算法优化初始提示,减少与LLM的交互次数,从而降低代码生成的总体成本。
- 实验表明,EPiC在代码生成质量上提升了6%(pass@k),同时成本降低了2-10倍。
📝 摘要(中文)
大型语言模型(LLM)在各种软件开发任务中,尤其是在代码生成方面,得到了越来越广泛的应用。目前最先进的方法试图将代码执行的反馈融入到提示中,以指导LLM在一个迭代过程中生成正确的代码。虽然这些方法有效,但由于与LLM的大量交互和大量的token使用,成本可能很高。为了解决这个问题,我们提出了一种名为Evolutionary Prompt Engineering for Code (EPiC) 的替代方法,该方法利用轻量级的进化算法将原始提示改进为更高质量的代码版本,并最大限度地减少与LLM的交互。我们针对最先进的基于LLM的代码生成代理的评估表明,EPiC 不仅在 pass@k 上实现了高达 6% 的改进,而且比基线方法的成本效益高 2-10 倍。
🔬 方法详解
问题定义:论文旨在解决基于大型语言模型(LLM)的代码生成过程中,由于需要大量迭代和token消耗而导致的高成本问题。现有的方法通过将代码执行反馈融入提示来指导LLM生成正确的代码,但这种方式需要与LLM进行多次交互,消耗大量计算资源和时间,使得成本居高不下。
核心思路:论文的核心思路是利用进化算法(Evolutionary Algorithm)来优化代码生成的提示(Prompt)。通过进化算法,可以在与LLM少量交互的情况下,找到能够生成高质量代码的优化提示,从而降低总体成本。这种方法避免了频繁地与LLM交互,减少了token的使用量。
技术框架:EPiC (Evolutionary Prompt Engineering for Code) 的整体框架包含以下几个主要阶段:1) 初始化:生成初始的提示种群。2) 评估:使用LLM对种群中的每个提示生成代码,并根据代码的质量(例如,是否通过测试用例)评估提示的适应度。3) 选择:根据适应度选择优秀的提示作为父代。4) 交叉和变异:对父代提示进行交叉和变异操作,生成新的提示个体。5) 迭代:重复评估、选择、交叉和变异过程,直到达到预定的迭代次数或找到满足要求的提示。
关键创新:EPiC 的关键创新在于将进化算法应用于代码生成的提示工程。与传统的提示工程方法相比,EPiC 能够自动地搜索和优化提示,而无需人工干预。此外,EPiC 通过减少与LLM的交互次数,显著降低了代码生成的成本。
关键设计:在进化算法的设计上,论文可能涉及以下关键细节:1) 提示的表示方式:如何将提示编码为进化算法可以操作的形式。2) 适应度函数:如何定义代码质量的评估指标,例如,通过测试用例的数量、代码的执行效率等。3) 交叉和变异算子:如何设计交叉和变异操作,以保证生成的新提示具有多样性和有效性。4) 种群大小和迭代次数:如何设置种群大小和迭代次数,以在搜索效率和搜索空间之间取得平衡。
🖼️ 关键图片
📊 实验亮点
EPiC在代码生成任务中表现出色,相较于现有最先进的基于LLM的代码生成方法,EPiC在pass@k指标上提升了高达6%,同时代码生成的成本降低了2到10倍。这些结果表明,EPiC是一种高效且经济的代码生成方法,具有很强的实用价值。
🎯 应用场景
EPiC具有广泛的应用前景,可用于各种软件开发场景,例如自动化代码生成、代码修复、代码翻译等。通过降低代码生成的成本,EPiC可以促进LLM在软件开发领域的普及和应用,提高软件开发的效率和质量。此外,该方法还可以应用于其他需要提示工程的任务,例如文本生成、图像生成等。
📄 摘要(原文)
Large Language Models have seen increasing use in various software development tasks, especially in code generation. The most advanced recent methods attempt to incorporate feedback from code execution into prompts to help guide LLMs in generating correct code in an iterative process. While effective, these methods could be costly due to numerous interactions with the LLM and extensive token usage. To address this issue, we propose an alternative approach named Evolutionary Prompt Engineering for Code (EPiC), which leverages a lightweight evolutionary algorithm to refine the original prompts into improved versions that generate high quality code, with minimal interactions with the LLM. Our evaluation against state-of-the-art (SOTA) LLM based code generation agents shows that EPiC not only achieves up to 6% improvement in pass@k but is also 2-10 times more cost-effective than the baselines.