题目
启发式算法的演变:使用大型语言模型实现高效的自动算法设计
论文地址:https://arxiv.org/html/2401.02051v3
项目地址:https://github . com/feiliu 36/EoH
摘要
启发式算法广泛用于处理复杂的搜索和优化问题。然而,启发式算法的手动设计通常非常耗费人力,需要丰富的工作经验和知识。本文提出了启发式算法的进化 (EoH),这是一种新颖的进化范式,它利用大型语言模型 (LLM) 和进化计算 (EC) 方法进行自动启发式设计 (AHD)。EoH 代表自然语言中的启发式概念,称为思想。然后由 LLM 将它们转换为可执行代码。进化搜索框架中思想和代码的演变使其在生成高性能启发式算法方面非常有效和高效。对三个广泛研究的组合优化基准问题的实验表明,EoH 优于常用的手工启发式算法和包括 FunSearch 在内的其他最近的 AHD 方法。特别是,EoH 生成的启发式算法具有较低的计算预算(就对 LLM 的查询数量而言),其性能明显优于广泛使用的人工手工制作的基线算法,用于在线装箱问题。
图 1:启发式设计通常 (a) 依赖于人类专业知识,推理胜于思想;最近在 (b) 搜索代码空间方面取得了进展;而 (c) 我们的方法使用大型语言模型发展思想和代码。
简介
启发式通常用于解决复杂的搜索和优化问题。在过去的几十年里,人们投入了大量精力来设计有效的启发式方法,从而产生了模拟退火(Van Laarhoven 等人,1987)、禁忌搜索(格洛弗和拉古纳,1998)和迭代本地搜索(Lourenço 等人,2003)以及许多其他方法(Mart 等人,2018)。这些手工制作的方法已成功用于广泛的实际应用。但是,不同的应用程序可能需要不同的算法和/或算法配置。为给定问题手动设计、修改和配置启发式方法可能非常耗费人力,并且需要丰富的专家经验。这是许多应用领域的瓶颈。为了解决这个问题,自动启发式设计 (AHD) 已被提出并成为一个活跃的研究领域(Burke 等人,2013;Stützle & López-Ibáñez,2019)。AHD 会自动为给定的问题类选择、调整或构建有效的启发式方法。遗传编程 (GP) 已用于 AHD(兰登和波利,2013;Zhang 等人,2023)。GP 需要一组允许的原语或突变操作来定义和生成启发式方法。在实践中构建一个合适的集合可能非常困难(O’Neill 等人,2010).
据信,大型语言模型 (LLM)(Chen 等人,2021;Austin 等人,2021;Li 等人,2023b)可以成为产生新想法和启发式方法的强大工具。然而,具有快速工程的独立 LLM 可能不足以产生超出现有知识的新颖和有用的想法(Mahowald 等人,2023)。已经尝试将 LLM 与进化计算 (EC) 方法耦合,以自动方式生成启发式方法(Yang 等人,2023;Meyerson 等人,2023;Chen 等人,2023)。其中代表作是 FunSearch(Romera-Paredes 等人,2024)。它将 AHD 建模为函数空间中的搜索问题,其中每个函数都是由程序表示的启发式方法,并在进化框架中使用 LLM 来迭代提高生成函数的质量。FunSearch 已经应用于几个问题并取得了巨大成功。但是,它的机制不是很有效,需要大量的计算资源来生成高质量的启发式方法。
在本文中,我们提出了一种新的进化范式,称为启发式进化 (EoH) 1,以利用 LLM 和 EC 进行 AHD。具体来说,我们利用语言描述(称为思想)来表示启发式的高级思想(即关键逻辑)。然后,通过 LLM 生成相应的代码表示,即启发式的可执行实现。我们提出了一个进化框架,以合作的方式同时进化启发式的思想和代码。我们证明,LLM 辅助的思想和代码的进化以及精心策划的提示导致了最先进的 AHD 性能。我们预计 EoH 是迈向高效和自动化算法设计的一步。
总而言之,我们的贡献如下:
- 我们提出了 EoH,这是一种新颖的范式,它使用 LLM 来进化思想和代码,以最少的手工设计和无领域模型训练实现启发式的自动设计。
- 我们开发了几种简单而有效的提示策略来指导 LLM 生成更多样化和更有效的启发式方法。这些提示策略通常适用于其他 LLM 辅助搜索方法。
- 我们全面评估了 EoH 在三个广泛研究的组合优化基准问题上的表现。我们证明 EoH 优于许多现有的 AHD 方法。特别是,EoH 识别出比 FunSearch 设计的启发式方法性能更好。EoH 对在线 bin 打包问题使用的查询比 FunSearch 少得多。
背景及相关工作
自动启发式设计
自动启发式算法设计通常被称为超启发式算法(Burke 等人,2013,2019;Stützle & López-Ibáñez,2019)。使用各种有效的方法(Blot 等人,2016;López-Ibáñez 等人,2016;Akiba 等人,2019)和框架(Burke 等人,2019),可以自动调整启发式算法或组合不同的算法组件。在自动算法设计中使用机器学习技术已经付出了很多努力(Bengio 等人,2021;Chen 等人,2022;他等人,2021;Li 等人,2023 年一)。其中,遗传编程(Mei 等人,2022;Jia 等人,2022)提供了一种可解释的算法设计方法。但是,它需要手工制作的算法组件和领域知识。
启发式设计的 LLM
在过去几年中,大型语言模型的能力显著提高(Naveed 等人,2023)。最近,人们做出了一些努力,将 LLM 用作基本算法组件,以提高算法的性能(Yang 等人,2023;Guo 等人,2023 年一)。这些作品大多采用 LLM 作为优化器(Yang 等人,2023)通过上下文学习直接生成新的试验解决方案。这种方法在应用于具有较大搜索空间的复杂问题时面临挑战(Yang 等人,2023;Nasir 等人,2023;Zhao 等人,2023;Liu 等人,2023 年一)。其他 Alpha 集成 LLM 以协助算法设计,以提取深度算法特征以进行启发式选择(Wu 等人,2023)中,提供启发式指南(Shah 等人,2023),并设计一个 Algorithmic 组件(Xiao & Wang,2023)。但是,对于具有快速工程的独立 LLM 来说,设计有竞争力的启发式方法仍然是一个挑战。
LLM + EC
进化计算是受自然进化启发的通用优化原则(Bäck 等人,1997;艾本和史密斯,2015)。将 EC 集成到 LLM 的及时工程中,在提高各个领域的性能方面非常有前途(Guo et al.,2023b;雷曼等人,2023;Wu 等人,2024)。在两种代码生成中都采用了进化方法(Liventsev 等人,2023;马等人,2023;雷曼等人,2024;Hemberg 等人,2024)和文本生成(Guo et al.,2023b;Fernando 等人,2023;Xu 等人,2023 年一)。与我们的工作最相关的工作是 FunSearch(Romera-Paredes 等人,2024),一个带有 LLM 的进化框架,用于自动搜索函数。FunSearch 生成的算法在某些优化问题上优于精心设计的算法。然而,FunSearch 的计算成本很高,通常需要生成数百万个程序(即对 LLM 的查询)来识别有效的启发式函数,这对许多用户来说不是很实用。
启发式 (EoH) 的演变
主要思想
EoH 旨在发展思想和代码,以模仿人类专家进行的启发式开发,以实现高效的自动启发式设计。为了实现这一目标,EoH
- 为每个启发式方法维护自然语言描述及其相应的代码实现。在每次试用中,它允许 LLM 首先根据自然语言生成启发式方法,然后生成相应的代码。自然语言描述总结了主要思想并提供了高级理