-
Notifications
You must be signed in to change notification settings - Fork 655
Closed
Labels
bugSomething isn't workingSomething isn't working
Description
Hi, thanks for the great project. I was looking at setting up simple monitoring of progress by checking the best_program_info.json file for the latest checkpoint with:
watch -n 10 'jq ".metrics.combined_score, .iteration" "$(ls -d checkpoint_* | sort -V | tail -n1)/best_program_info.json"'
which would inform me how many iterations (and hence time) it took to get to a certain metric.
This file contains the current iteration though, not the iteration when the best program was achieved: https://github.com/codelion/openevolve/blob/main/openevolve/controller.py#L383
Would it make sense for this iteration value to be changed?
More generally, could you confirm a couple of things regarding iterations and generations:
- Is a generation simply "how many ancestors do I have"? So a program might be found at iteration 100 with 4 ancestors and is hence generation 5, and a program might be found at generation 150 with 2 ancestors (as it was from a later new novel idea). Thus it's not like the algorithm is 'run for 10 generations, run 100 iterations per generation'. If this is indeed the case hopefully the ask above makes more sense given knowing the generation of the best program while interesting doesn't quite give details on how long it took to get there.
- In the circle example README, when generations are mentioned (e.g. after 10 or 100 generations when showing the results) is this actually generations or is it iterations?
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working