Repository: bentoml/BentoML

Issue:
load_runner fails after loading a bentoml service
**Describe the bug**
Calling `bentoml.xgboost.load_runner()` after previously loading a bentoml service with `bentoml.load()` fails with:
```
TypeError: get() takes 1 positional argument but 2 were given
```

**To Reproduce**
```
In [1]: import bentoml
   ...: 
   ...: bento_service = bentoml.load("galapagos:latest")
   ...: print(bento_service)
   ...: # the service is loaded, good.
   ...: # but now loading an individual runner raises a TypeError, bad.
   ...: ginkgo_model_runner = bentoml.xgboost.load_runner("ginkgo_model:latest")
```
(Traceback included below)

Note that just loading the runner, without loading a bentoml service beforehand, works just fine:
```
In [1]: import bentoml
   ...: 
   ...: ginkgo_model_runner = bentoml.xgboost.load_runner("ginkgo_model:latest")
   ...: print(ginkgo_model_runner)
   ...: # loaded the runner without issues, good.
<bentoml._internal.frameworks.xgboost._XgBoostRunner object at 0x105434850>
```

**Expected behavior**
I expect to be able to load a runner after having loaded a bento service.

**Screenshots/Logs**
Traceback of the error:
```
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Input In [1], in <module>
      5 print(bento_service)
      6 # but now loading an individual runner raises a TypeError, bad
----> 7 ginkgo_model_runner = bentoml.xgboost.load_runner("ginkgo_model:latest")

File ~/.virtualenvs/galapagos-1.0/lib/python3.8/site-packages/simple_di/__init__.py:124, in _inject.<locals>._(*args, **kwargs)
    121 bind = sig.bind_partial(*filtered_args, **filtered_kwargs)
    122 bind.apply_defaults()
--> 124 return func(*_inject_args(bind.args), **_inject_kwargs(bind.kwargs))

File ~/.virtualenvs/galapagos-1.0/lib/python3.8/site-packages/bentoml/_internal/frameworks/xgboost.py:307, in load_runner(tag, predict_fn_name, booster_params, name, resource_quota, batch_options, model_store)
    305 if name is None:
    306     name = tag.name
--> 307 return _XgBoostRunner(
    308     tag=tag,
    309     predict_fn_name=predict_fn_name,
    310     booster_params=booster_params,
    311     name=name,
    312     resource_quota=resource_quota,
    313     batch_options=batch_options,
    314     model_store=model_store,
    315 )

File ~/.virtualenvs/galapagos-1.0/lib/python3.8/site-packages/simple_di/__init__.py:124, in _inject.<locals>._(*args, **kwargs)
    121 bind = sig.bind_partial(*filtered_args, **filtered_kwargs)
    122 bind.apply_defaults()
--> 124 return func(*_inject_args(bind.args), **_inject_kwargs(bind.kwargs))

File ~/.virtualenvs/galapagos-1.0/lib/python3.8/site-packages/bentoml/_internal/frameworks/xgboost.py:194, in _XgBoostRunner.__init__(self, tag, predict_fn_name, booster_params, name, resource_quota, batch_options, model_store)
    182 @inject
    183 def __init__(
    184     self,
   (...)
    191     model_store: "ModelStore" = Provide[BentoMLContainer.model_store],
    192 ):
    193     super().__init__(name, resource_quota, batch_options)
--> 194     model_info, model_file, booster_params = _get_model_info(
    195         tag, booster_params, model_store
    196     )
    198     self._model_store = model_store
    199     self._model_info = model_info

File ~/.virtualenvs/galapagos-1.0/lib/python3.8/site-packages/bentoml/_internal/frameworks/xgboost.py:62, in _get_model_info(tag, booster_params, model_store)
     57 def _get_model_info(
     58     tag: Tag,
     59     booster_params: t.Optional[t.Dict[str, t.Union[str, int]]],
     60     model_store: "ModelStore",
     61 ) -> t.Tuple["Model", str, t.Dict[str, t.Any]]:
---> 62     model = model_store.get(tag)
     63     if model.info.module not in (MODULE_NAME, __name__):
     64         raise BentoMLException(
     65             f"Model {tag} was saved with module {model.info.module}, failed loading with {MODULE_NAME}."
     66         )

TypeError: get() takes 1 positional argument but 2 were given
```

**Environment:**
 - OS: [e.g. MacOS 10.14.3] 11.6.1
 - Python Version [e.g. Python 3.7.1] 3.8.8
 - BentoML Version [e.g. BentoML-0.8.6] 1.0.0a3



Discussion:

Resolving patch:
diff --git a/bentoml/_internal/service/loader.py b/bentoml/_internal/service/loader.py
--- a/bentoml/_internal/service/loader.py
+++ b/bentoml/_internal/service/loader.py
@@ -118,7 +118,6 @@ def import_service(
             # Importing by module name:
             module_name = import_path
 
-        default_model_store = BentoMLContainer.model_store
         # Import the service using the Bento's own model store
         BentoMLContainer.model_store.set(model_store)
         try:
@@ -131,7 +130,7 @@ def import_service(
             )
         finally:
             # Reset to default local model store
-            BentoMLContainer.model_store.set(default_model_store)
+            BentoMLContainer.model_store.reset()
 
         if attrs_str:
             instance = module


Test patch: