- ยินดีต้อนรับ! นี่คือ codebase ที่มาพร้อมกับ Paper Reevo: โมเดลภาษาขนาดใหญ่เป็นไฮเปอร์ไฮเดอร์ที่มีวิวัฒนาการสะท้อนแสง
ให้ Reevo 5 นาทีและรับอัลกอริทึมที่ล้ำสมัย!
เราแนะนำ ภาษาไฮเปอร์ไฮโรริสติก (LHHS) ซึ่งเป็นตัวแปรที่เกิดขึ้นใหม่ของ Hyper-heuristics (HHS) ที่ใช้ประโยชน์จาก LLMs สำหรับรุ่นฮิวริสติกซึ่งมี การแทรกแซงด้วยตนเองน้อยที่สุดและพื้นที่ฮิวริสติกปลายเปิด
เพื่อเพิ่มขีดความสามารถของ LHHS เรานำเสนอ วิวัฒนาการไตร่ตรอง (Reevo) ซึ่งเป็นกรอบการค้นหาทั่วไปที่เลียนแบบวิธีการออกแบบไตร่ตรองของผู้เชี่ยวชาญของมนุษย์ในขณะที่เกินขีดความสามารถของมนุษย์ด้วยการอนุมาน LLM ที่ปรับขนาดได้
เราสามารถปรับปรุงอัลกอริทึมประเภทต่อไปนี้:
ปัญหาต่อไปนี้:
ด้วยการตั้งค่าทั้งกล่องดำและกล่องสีขาว
./outputs/main/
MAIN/ โดยค่าเริ่มต้น./problems/*/test.ipynb
คุณสามารถติดตั้งการพึ่งพาด้านบนผ่าน pip install -r requirements.txt
การพึ่งพาเฉพาะปัญหา:
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
ตรวจสอบ ./cfg/
สำหรับตัวเลือกเพิ่มเติม
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/
problem/./problems/
/./prompts/
/โดยค่าเริ่มต้น:
f"./problems/YOUR_PROBLEM/gpt.py"
และจะถูกนำเข้าสู่ ./problems/YOUR_PROBLEM/eval.py
(เช่น TSP_ACO) ซึ่งเรียกโดย reevo._run_code
../problems/YOUR_PROBLEM/eval.py
(เช่น TSP_ACO) ควรพิมพ์ค่า meta-bjective เป็นบรรทัดสุดท้ายของ stdout ซึ่งถูกแยกวิเคราะห์โดย reevo.evaluate_population
สำหรับการประเมินฮิวริสติก ใช้พารามิเตอร์ CLI llm_client
เพื่อกำหนดผู้ให้บริการ LLM API และ llm_client.model
เพื่อกำหนดรูปแบบที่จะใช้ ตัวอย่างเช่น,
$ export LLAMA_API_KEY=xxxxxxxxxxxxxxxxxxxx
$ python main.py llm_client=llama_api llm_client.model=gemma2-9b
ผู้ให้บริการและรุ่น LLM API ที่รองรับรวมถึง (โปรดทราบว่ามีเพียงการสนับสนุนแบบจำลองการแชทเท่านั้น):
หากคุณประสบปัญหาใด ๆ ในการใช้รหัสของเราโปรดอย่าลังเลที่จะส่งปัญหาหรือติดต่อเราโดยตรง!
เรายังอยู่ใน Slack หากคุณมีคำถามใด ๆ หรือต้องการหารือเกี่ยวกับ Reevo กับเรา เราเปิดรับความร่วมมือและชอบที่จะได้ยินจากคุณ
หากคุณพบว่างานของเรามีประโยชน์ (หรือถ้าคุณใจดีเพื่อให้กำลังใจเรา) โปรดพิจารณาให้เราเป็นดาราและอ้างถึงบทความของเรา
@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} }
}
เราขอขอบคุณหยวนเจียง, Yining MA, Yifan Yang และชุมชน AI4CO สำหรับการอภิปรายและข้อเสนอแนะที่มีค่า
นอกจากนี้งานของเราถูกสร้างขึ้นในโครงการต่อไปนี้และอื่น ๆ :