-
Notifications
You must be signed in to change notification settings - Fork 186
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
Lose /invocations path when using envrironment tarball from model-settings.json #1956
Comments
Thanks @ylambrus for raising this issue. We will have to look more into why this happens when an environment tarball is passed. This issue exists when parallel workers are used though. Alternatively, the following should disable parallel workers and expose
We also welcome contributions if you want to fix it in the case of parallel workers. |
Thx @sakoush for the infos. Though I need to point out that if you disable parallel works by doing :
For some reasons it's actually cancelling the custom tarball extraction and indeed let the /invocations path work again |
@ylambruschi you are correct (sorry for the confusion). For a custom environment defined at the model level, mlserver spins off a new set of processes (based on the number of parallel workers) with this custom environment and therefore by definition it requires parallel workers to be enabled. I suspect that in the case of a new environment that is different from the parent process the custom handlers (eg /invocations) are not registered properly, but we will have to look more into it to confirm exactly what's happening. |
I think I understand the issue MLServer/mlserver/parallel/registry.py Line 198 in c5cc74a
For some reason, when instantiating the ParallelModel and trigger the custom handlers, it still keep the instance of this abstract model. I'll try to do a PR in the coming weeks to contribute and try to help on this =) |
Hi,
Is it expected that we lose the /invocations path ( mlflow backward compatible inference path) when using a tarball environment per model, eg when using model-settings.json ?
Note that when using global custom env tarball, it's working fine and invocations path is still present.
To reproduce :
Build a dummy iris model as follows ( or any model that can rely on mlflow ) :
Then build a conda tarball to match dependencies for this model :
Then put your tarball inside your model artefact folder as usual and be sure to have your model-settings.json as follows :
Then run mlserver ( here we tried with 1.5.0 and 1.6.1 as well):
Now when querying /invocations you'll face a 404 :
==> mlserver logs
The text was updated successfully, but these errors were encountered: