-
Notifications
You must be signed in to change notification settings - Fork 28
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit fd0c895
Showing
7 changed files
with
381 additions
and
0 deletions.
There are no files selected for viewing
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
<!DOCTYPE html><html> <head><meta charset=utf-8><meta name=viewport content="width=device-width, initial-scale=1"><title>ReEvo: Large Language Models as Hyper-Heuristics with Reflective Evolution</title><link rel=icon type=image/svg href=static/images/icon.svg><link rel=preconnect href=https://cdn.jsdelivr.net crossorigin><link rel=preconnect href=https://fonts.googleapis.com crossorigin><link rel=preconnect href=https://cdnjs.cloudflare.com crossorigin><link rel=stylesheet href=static/index.css><link rel=stylesheet href=https://cdn.jsdelivr.net/npm/[email protected]/css/bulma.min.css integrity="sha256-WLKGWSIJYerRN8tbNGtXWVYnUM5wMJTXD8eG4NtGcDM=" crossorigin=anonymous><script src=https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bulma-carousel.min.js integrity="sha256-qKR77yzVBkDYKuoSg2BpAIbMtmF8aFjuTHFVnIjkpzI=" crossorigin=anonymous></script><script src=https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bulma-slider.min.js integrity="sha256-22jr4VSiVZeRPFY18xUA/noy5aIF+5qYyWQtDC3kfZ4=" crossorigin=anonymous></script><link rel=stylesheet href=https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bulma-slider.min.css integrity="sha256-+dlSYn04i4uiZ+E4jWkjJ0z55i51jUWcWgRfOTPp3Io=" crossorigin=anonymous><link rel=stylesheet href=https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bulma-carousel.min.css integrity="sha256-nVhrDZU/ne3I/z6LXWEbyUOEmv79sPGKEbsP7SWLkHI=" crossorigin=anonymous><script src=https://cdn.jsdelivr.net/npm/[email protected]/dist/clipboard.min.js integrity="sha256-4XodgW4TwIJuDtf+v6vDJ39FVxI0veC/kSCCmnFp7ck=" crossorigin=anonymous></script><script src=https://cdn.jsdelivr.net/npm/@fortawesome/[email protected]/js/all.min.js integrity="sha256-gSqw5G+Gss6YqyQlqyIkuQ0IRZUqGsDVq9c0tiF+mL8=" crossorigin=anonymous></script><link rel=stylesheet href=https://cdn.jsdelivr.net/npm/@fortawesome/[email protected]/css/fontawesome.min.css integrity="sha256-BYjRZhSY2ARUPcFTf5eEh3qWK58O88TM7nZet/JUNhE=" crossorigin=anonymous><link rel=stylesheet href=https://cdn.jsdelivr.net/gh/jpswalsh/academicons@1/css/academicons.min.css><link href="https://fonts.googleapis.com/css?family=Google+Sans|Noto+Sans|Castoro" rel=stylesheet><link rel=stylesheet href=https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/default.min.css><script src=https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js></script><script src=https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/bash.min.js></script></head> <body> <section class=hero> <div class=hero-body> <div class="container is-max-desktop" style=max-width:1200px> <div class="columns is-centered"> <div class="column has-text-centered"> <h1 class="title is-1 publication-title">ReEvo: Large Language Models as Hyper-Heuristics with Reflective Evolution</h1> <div class="is-size-5 publication-authors"> <span class=author-block><a href=https://henry-yeh.github.io/ target=_blank>Haoran Ye</a><sup>1</sup>,</span> <span class=author-block><a href=https://github.com/Furffico target=_blank>Jiarui Wang</a><sup>2</sup>,</span> <span class=author-block><a href=https://zhiguangcaosg.github.io/ target=_blank>Zhiguang Cao</a><sup>3</sup>,</span> <span class=author-block><a href=https://fedebotu.github.io/ target=_blank>Federico Berto</a><sup>4</sup>,</span> <span class=author-block><a href=https://cbhua.github.io/ target=_blank>Chuanbo Hua</a><sup>4</sup>,</span> <span class=author-block><a href=https://sites.google.com/view/haeyeon-rachel-kim target=_blank>Haeyeon Kim</a><sup>4</sup>,</span> <span class=author-block>Jinkyoo Park<sup>4</sup>,</span> <span class=author-block>Guojie Song<sup>1,5</sup></span> </div> <div class="is-size-6 publication-authors"> <span class=author-block style=margin-right:.5em> <sup>1 </sup>National Key Laboratory of General Artificial Intelligence, School of Intelligence Science and Technology, Peking University</span><br> <span class=author-block style=margin-right:.5em> <sup>2 </sup>Southeast University</span> <span class=author-block style=margin-right:.5em> <sup>3 </sup>Singapore Management University</span> <span class=author-block style=margin-right:.5em> <sup>4 </sup>KAIST</span> <span class=author-block style=margin-right:.5em> <sup>5 </sup>PKU-Wuhan Institute for Artificial Intelligence</span> <span class=author-block style=margin-right:.5em> <sup>† </sup><a href=https://github.com/ai4co target=_blank>AI4CO</a></span> <br> <b class="author-block is-size-5" style="padding:1ex 0">NeurIPS 2024</b> <span class=eql-cntrb><br><sup>†</sup>Work made with contributions from the AI4CO open research community.</span> </div> <div class="column has-text-centered"> <div class=publication-links> <span class=link-block> <a href=https://arxiv.org/pdf/2402.01145 target=_blank class="external-link button is-normal is-rounded is-dark"> <span class=icon><i class="fas fa-file-pdf"></i></span> <span>Paper</span> </a> </span> <span class=link-block> <a href=https://arxiv.org/abs/2402.01145 target=_blank class="external-link button is-normal is-rounded is-dark"> <span class=icon><i class="ai ai-arxiv"></i></span> <span>arXiv</span> </a> </span> <span class=link-block> <a href=https://github.com/ai4co/reevo target=_blank class="external-link button is-normal is-rounded is-dark"> <span class=icon><i class="fab fa-github"></i></span> <span>Code</span> </a> </span> </div> </div> </div> </div> </div> </div> </section> <section class="section hero is-light red-link" id=abstract> <div class="container is-max-desktop"> <div class="columns is-centered has-text-centered"> <div class="column is-four-fifths"> <h2 class="title is-3">Abstract</h2> <div class="content has-text-justified"> <p> The omnipresence of NP-hard combinatorial optimization problems (COPs) compels domain experts to engage in trial-and-error heuristic design. The long-standing endeavor of design automation has gained new momentum with the rise of large language models (LLMs). This paper introduces Language Hyper-Heuristics (LHHs), an emerging variant of Hyper-Heuristics that leverages LLMs for heuristic generation, featuring minimal manual intervention and open-ended heuristic spaces. To empower LHHs, we present <b>Reflective Evolution</b> (<span style=font-family:monospace>ReEvo</span>), a novel integration of evolutionary search for efficiently exploring the heuristic space, and LLM reflections to provide verbal gradients within the space. Across five heterogeneous algorithmic types, six different COPs, and both white-box and black-box views of COPs, <span style=font-family:monospace>ReEvo</span> yields state-of-the-art and competitive meta-heuristics, evolutionary algorithms, heuristics, and neural solvers, while being more sample-efficient than prior LHHs. Our code is available: <a href=https://github.com/ai4co/reevo target=_blank>https://github.com/ai4co/reevo</a>. </p> </div> </div> </div> </div> </section> <section class="hero is-small"> <div class=hero-body> <div class=container> <div id=results-carousel class="carousel results-carousel"> <div class=item> <img src=static/images/reevo.jpg alt="<span style=" font-family:monospace">ReEvo</span> pipeline." /> <h2 class="subtitle has-text-centered" style=margin-top:1ex> <span style=font-family:monospace>ReEvo</span> pipeline. </h2> </div> <div class=item> <img src=static/images/show_reflec.png alt="Examples of reflections for black-box TSP."> <h2 class="subtitle has-text-centered" style=margin-top:1ex> Examples of reflections for black-box TSP. </h2> </div> </div> </div> </div> </section> <section class="section hero is-light red-link" id=code> <div class="container is-max-desktop content" style=width:100%> <h2 class=title>Usage</h2> <h3>Get Started</h3> <div class=code-container style=background-color:white> <pre><code class="code-content language-bash" style=background-color:white id=code-content-1>$ git clone [email protected]:ai4co/reevo.git # download reevo code | ||
$ cd reevo | ||
$ python3 -m venv ./venv # [optional] create virtual environment | ||
$ source ./venv/bin/activate # [optional] activate virtual environment | ||
$ pip install -r requirements.txt # install dependencies | ||
$ pip install numba==0.58 # dependency specifically required by `tsp_gls` | ||
$ export OPENAI_API_KEY=xxxxxxxxxx # set openAI API key, other service providers are also available | ||
$ python3 main.py problem=tsp_gls | ||
|
||
</code></pre> </div> <p class=content><h5>Available problems</h5> <ul dir=auto> <li>Traveling Salesman Problem (TSP): <code>tsp_aco</code>, <code>tsp_aco_black_box</code>, <code>tsp_constructive</code>, <code>tsp_gls</code>, <code>tsp_pomo</code>, <code>tsp_lehd</code></li> <li>Capacitated Vehicle Routing Problem (CVRP): <code>cvrp_aco</code>, <code>cvrp_aco_black_box</code>, <code>cvrp_pomo</code>, <code>cvrp_lehd</code></li> <li>Bin Packing Problem (BPP): <code>bpp_offline_aco</code>, <code>bpp_offline_aco_black_box</code>, <code>bpp_online</code></li> <li>Multiple Knapsack Problems (MKP): <code>mkp_aco</code>, <code>mkp_aco_black_box</code></li> <li>Orienteering Problem (OP): <code>op_aco</code>, <code>op_aco_black_box</code></li> <li>Decap Placement Problem (DPP): <code>dpp_ga</code></li> </ul> </p> <h3>Use Alternative LLMs</h3> <div class=code-container style=background-color:white> <pre><code class="code-content language-bash" style=background-color:white id=code-content-2>$ export LLAMA_API_KEY=xxxxxxxxxxxxxxxxxxxx | ||
$ python3 main.py llm_client=llama_api llm_client.model=gemma2-9b | ||
|
||
</code></pre> </div> <p class=content><h5>Available LLM service providers</h5> <ul dir=auto> <li><a href=https://openai.com/api/ rel=nofollow target=_blank><b>OpenAI</b></a>: gpt-3.5-turbo (default), gpt-4o, gpt-4o-mini, gpt-4-turbo, etc.</li> <li><a href=https://open.bigmodel.cn/ rel=nofollow target=_blank><b>Zhipu AI</b></a>: GLM-3-Turbo, GLM-4-Air, GLM-4-0520, etc. (<a href=https://open.bigmodel.cn/dev/howuse/model rel=nofollow target=_blank>full list</a>)</li> <li><a href=https://www.deepseek.com/ rel=nofollow target=_blank><b>DeepSeek</b></a>: deepseek-chat</li> <li><a href=https://www.llama-api.com/ rel=nofollow target=_blank><b>Llama API</b></a>: llama3.1-8b/70b/405b, gemma2-9b/27b, Qwen2-72B, etc. (<a href=https://docs.llama-api.com/quickstart#available-models rel=nofollow target=_blank>full list</a>)</li> <li>And <a href=https://docs.litellm.ai/docs/providers rel=nofollow target=_blank>more providers</a> supported via <a href=https://docs.litellm.ai/docs/ rel=nofollow target=_blank><b>LiteLLM</b></a>.</li> </ul> </p> </div> </section> <section class=section id=citation> <div class="container is-max-desktop content"> <h2 class=title>BibTeX</h2> <div class=code-container> <pre><code class="code-content language-text" id=code-content-bibtex>@inproceedings{ye2024reevo, | ||
title={ReEvo: Large Language Models as Hyper-Heuristics with Reflective Evolution}, | ||
author={Haoran Ye and Jiarui Wang and Zhiguang Cao and Federico Berto and Chuanbo Hua and Haeyeon Kim and Jinkyoo Park and Guojie Song}, | ||
booktitle={Advances in Neural Information Processing Systems}, | ||
year={2024}, | ||
note={\url{https://github.com/ai4co/reevo}} | ||
}</code></pre> <button class=copy-button alt="Copy to clipboard" data-clipboard-target=#code-content-bibtex> <span class="copy-icon before-copy"><i class="fa fa-copy"></i></span> <span class="copy-icon after-copy"><i class="fas fa-check"></i></span> </button> </div> </div> </section> <footer class=footer> <div class=container> <div class="columns is-centered"> <div class="column is-8"> <div class=content> <p> This page was built using the <a href=https://github.com/ai4co/research-project-page-template target=_blank>Research Project Page Template</a> which is based on the <a href=https://github.com/eliahuhorwitz/Academic-project-page-template target=_blank>Academic Project Page Template</a> and the <a href=https://nerfies.github.io target=_blank>Nerfies project page</a>. You are free to borrow the of this website, we just ask that you link back to this page in the footer. This website is licensed under a <a rel=license href=http://creativecommons.org/licenses/by-sa/4.0/ target=_blank>Creative Commons Attribution-ShareAlike 4.0 International License</a>. </p> </div> </div> </div> </div> </footer> <script> | ||
window.HELP_IMPROVE_VIDEOJS = false; | ||
document.addEventListener('DOMContentLoaded', function () { | ||
if(hljs){hljs.highlightAll();} | ||
let options = { | ||
slidesToScroll: 1, | ||
slidesToShow: 1, | ||
loop: true, | ||
infinite: true, | ||
autoplay: true, | ||
autoplaySpeed: 5000, | ||
} | ||
// Initialize all div with carousel class | ||
if(bulmaCarousel){ | ||
let carousels = bulmaCarousel.attach('.carousel', options); | ||
if(bulmaSlider){bulmaSlider.attach();} | ||
} | ||
if(ClipboardJS){ | ||
let clipboard = new ClipboardJS('.copy-button'); | ||
|
||
clipboard.on('success', function (e) { | ||
const element = e.trigger; | ||
element.classList.add('copied'); | ||
setTimeout(() => element.classList.remove('copied'), 2000); | ||
e.clearSelection(); | ||
}); | ||
} | ||
}); | ||
</script> </body> </html> |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Oops, something went wrong.