Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Refactor] Hard to find the model update loop #1035

Open
eddiebergman opened this issue Jun 9, 2023 · 0 comments
Open

[Refactor] Hard to find the model update loop #1035

eddiebergman opened this issue Jun 9, 2023 · 0 comments

Comments

@eddiebergman
Copy link
Contributor

Given I have a set of (performance, config) pairs, I would like to use this to warm-start SMAC. There is no user friendly way to do this, the only way possible is to restart from the same directory from which it was started before which is not a possibility here. To do so would require having a valid file structure set up, a lot of overhead of figuring out and definitely not the intended way to warm-start from past runs that exist elsewhere.

While trying to find the model update part in smbo.py, I could not find anywhere that remotely tells me where the model update happens. It's rather obscure and happens here:

# For each intensification of the incumbent, we also want to intensify the next configuration
# We simply add it to the queue and intensify it in the next iteration
try:
config = next(self.config_generator)
config_hash = get_config_hash(config)
self._queue.append((config, 1))
logger.debug(f"--- Added a new config {config_hash} to the queue.")

Yup it's rather hard to spot but it happens on the call to config = next(self.config_generator). Essentially the update to the model happens in a rather obscure file called config_selector.py, which is not at all where one one expects the model to be updated.

I don't have any concrete proposals of how to fix this without trying it out, but essentially the proposal would be to lift up this logic to smbo.py somehow as this has a neat little comment that it describes the BO loop. This would make hacking around in SMAC a lot more manageable.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: No status
Development

No branches or pull requests

2 participants