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

Consider splitting up agent and environment in separate containers #86

Open
david-woelfle opened this issue Jul 7, 2022 · 2 comments
Open
Labels
concerns: main API enhancement New feature or request
Milestone

Comments

@david-woelfle
Copy link

Problem

Currently the agent and the environment are executed in the same container. This makes installing dependencies for new research algorithms (for agents) potentially complicated, especially as some of the environments seem to be quite old and it is likely only a matter of time before dependencies of the agent and the environment collide.

Potential Solution

IMHO it would be much better to split up the agent and environment into two containers. The benefits are:

  • Dependencies of agent and environment can't collide.
  • It would open a clean way how users can install packages required by their agent scripts.
  • The size of the environment containers would shrink by likely ~80% as those containers do not need tensorflow etc.
  • It would open the possibility for users to interact with the environments interactively like from inside a jupyter notebook.
  • As the agent side of beobench would rather be really simple and without much dependencies (apart from the agent itself) it might even allow users to run the agent on their local system, which might be favorable for all those how are not too firm in docker.

I would be willing to support this development and could provide a minimal example for such a setup with celery if it would help you get started.

@rdnfn
Copy link
Owner

rdnfn commented Oct 11, 2022

@david-woelfle thanks a lot for this great suggestion! Sorry for the late reply here, but I think completely isolating the environment in its own docker container has the potential to really improve Beobench's usability! That's especially true because of the last point you mention - the user could run their agent wherever and however they like. This would be much better than the somewhat prescriptive/constrained current way of running agent scripts.

Would be brilliant if you would be able to set up a minimal working example, which I could then integrate into the Beobench package. We'll discuss this offline in more detail but let's keep track of any relevant updates and the status of this improvement in this issue.

@david-woelfle
Copy link
Author

@rdnfn I have added a PR for a minimal but working example that uses Celery to split environment and agent into two containers.

@rdnfn rdnfn mentioned this issue Oct 24, 2022
10 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
concerns: main API enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants