? Selamat datang! Ini adalah basis kode yang menyertai makalah Reevo: model bahasa besar sebagai hiper-heuristik dengan evolusi reflektif .
Berikan reevo 5 menit, dan dapatkan algoritma canggih sebagai imbalan!
Kami memperkenalkan bahasa Hyperistics (LHHS) , varian yang muncul dari hiper-heuristik (HHS) yang memanfaatkan LLM untuk generasi heuristik, menampilkan intervensi manual minimal dan ruang heuristik terbuka .
Untuk memberdayakan LHHS, kami menyajikan evolusi reflektif (Reevo) , kerangka pencarian generik yang meniru pendekatan desain reflektif para ahli manusia sementara banyak melampaui kemampuan manusia dengan inferensi LLM yang dapat diskalakan, pengetahuan domain skala internet, dan pencarian evolusi yang kuat.
Kami dapat meningkatkan jenis algoritma berikut:
tentang masalah berikut:
dengan pengaturan kotak hitam dan kotak putih.
./outputs/main/
secara default../problems/*/test.ipynb
. Anda dapat menginstal dependensi di atas melalui pip install -r requirements.txt
.
Ketergantungan khusus masalah:
tsp_aco(_black_box)
: pytorch, scikit-learncvrp_aco(_black_box)
/ mkp_aco(_black_box)
/ op_aco(_black_box)
/ NCO
: pytorchtsp_gls
: numba == 0.58 # e.g., for tsp_aco
python main.py
problem=tsp_aco # problem name
init_pop_size=4 # initial population size
pop_size=4 # population size
max_fe=20 # maximum number of heuristic evaluations
timeout=20 # allowed evaluation time for one generation
Lihat ./cfg/
untuk opsi lebih lanjut.
tsp_aco
, tsp_aco_black_box
, tsp_constructive
, tsp_gls
, tsp_pomo
, tsp_lehd
cvrp_aco
, cvrp_aco_black_box
, cvrp_pomo
, cvrp_lehd
bpp_offline_aco
, bpp_offline_aco_black_box
, bpp_online
mkp_aco
, mkp_aco_black_box
op_aco
, op_aco_black_box
dpp_ga
./cfg/problem/
../problems/
../prompts/
.Secara default:
f"./problems/YOUR_PROBLEM/gpt.py"
, dan akan diimpor ke ./problems/YOUR_PROBLEM/eval.py
(misalnya untuk TSP_ACO), yang disebut reevo._run_code
selama Reevo ../problems/YOUR_PROBLEM/eval.py
(misalnya untuk TSP_ACO) harus mencetak nilai meta-objektif sebagai garis terakhir stdout, yang diuraikan oleh reevo.evaluate_population
untuk evaluasi heuristik. Gunakan parameter CLI llm_client
untuk menunjuk penyedia LLM API, dan llm_client.model
untuk menentukan model yang akan digunakan. Misalnya,
$ export LLAMA_API_KEY=xxxxxxxxxxxxxxxxxxxx
$ python main.py llm_client=llama_api llm_client.model=gemma2-9b
Penyedia dan model API LLM yang didukung termasuk (perhatikan bahwa hanya model obrolan yang didukung):
Jika Anda mengalami kesulitan menggunakan kode kami, jangan ragu untuk mengirimkan masalah atau langsung menghubungi kami!
Kami juga berada di Slack jika Anda memiliki pertanyaan atau ingin mendiskusikan Reevo dengan kami. Kami terbuka untuk kolaborasi dan ingin mendengar dari Anda
Jika Anda menganggap pekerjaan kami bermanfaat (atau jika Anda sangat baik untuk menawarkan kepada kami dorongan), silakan pertimbangkan untuk memberi kami bintang, dan mengutip kertas kami.
@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} }
}
Kami sangat berterima kasih kepada Yuan Jiang, Yining MA, Yifan Yang, dan komunitas AI4CO untuk diskusi dan umpan balik yang berharga.
Juga, pekerjaan kami dibangun di atas proyek -proyek berikut, antara lain: