You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<
8000
p class="mt-4 color-fg-muted text-center">By clicking “Sign up for GitHub”, you agree to our terms of service and
privacy statement. We’ll occasionally send you account related emails.
In #435 we removed a feature that automatically tracked down Python package dependencies and installed them in model containers at runtime. The reason to remove the dependency handling was twofold.
The dependency handling relied on Anaconda, and conda was causing a ton of issues in our Docker builds. I decided to remove conda from our Docker containers and just build minimal docker images.
The dependency-crawling part of Clipper admin didn't work very well. It used a semi-private conda interface which was very sensitive to the specific conda version people were running on and therefore kept breaking. Furthermore, when we installed these dependencies at runtime it caused container start times to be really high.
@santi81 suggested that instead of removing the dependency management entirely, we could just use pip freeze instead. This is an excellent idea, and allows us to offer some choice over the behavior to users. Specifically, when users deploy a model, we can let them choose between the following behaviors:
Tracking dependencies but only installing them at runtime if there was an import error in the container (and thus keeping image sizes small). This was the default behavior before.
Tracking dependencies and installing them in the container at build time which will increase the image size but should make container start times fast.
The text was updated successfully, but these errors were encountered:
pip freeze outputs whatever user pip install before. It can be a huge list if the user is not in a virtualenv/conda env and involves a lot of unrelated packages. Option 3 needs a clever solution that track the exact packages needed by the user's model.
@simon-mo Yeah that's what the module dependency analyzer attempts to do. But part of the problem with the just-removed existing implementation was that it captured a bunch of spurious packages that weren't needed.
In #435 we removed a feature that automatically tracked down Python package dependencies and installed them in model containers at runtime. The reason to remove the dependency handling was twofold.
@santi81 suggested that instead of removing the dependency management entirely, we could just use pip freeze instead. This is an excellent idea, and allows us to offer some choice over the behavior to users. Specifically, when users deploy a model, we can let them choose between the following behaviors:
The text was updated successfully, but these errors were encountered: