Repository: kserve/kserve

Issue:
explanations no longer working with 0.3.0
Am following the steps in with 0.3.0 of kfserving: https://github.com/kubeflow/kfserving/tree/master/docs/samples/explanation/alibi/income

When I execute the curl for the explain I get a 500 error and the container logs show the below. I'm guessing the [update to master](https://github.com/kubeflow/kfserving/pull/803) means that the explainer models have also been updated and so they no longer work with 0.3.0 (the latest release version)

```
[E 200605 17:15:14 web:1792] Uncaught exception POST /v1/models/income:explain (127.0.0.1)
    HTTPServerRequest(protocol='http', host='income-explainer-default.default.svc.cluster.local', method='POST', uri='/v1/models/income:explain', version='HTTP/1.1', remote_ip='127.0.0.1')
    Traceback (most recent call last):
      File "/usr/local/lib/python3.7/site-packages/tornado/web.py", line 1701, in _execute
        result = method(*self.path_args, **self.path_kwargs)
      File "/kfserving/kfserving/handlers/http.py", line 61, in post
        response = model.explain(request)
      File "/alibiexplainer/alibiexplainer/explainer.py", line 74, in explain
        explanation = self.wrapper.explain(request["instances"])
      File "/alibiexplainer/alibiexplainer/anchor_tabular.py", line 89, in explain
        anchor_exp = self.anchors_tabular.explain(arr[0], **self.kwargs)
      File "/usr/local/lib/python3.7/site-packages/alibi/explainers/anchor_tabular.py", line 803, in explain
        for sampler in self.samplers:
    AttributeError: 'AnchorTabular' object has no attribute 'samplers'
[E 200605 17:15:14 web:2250] 500 POST /v1/models/income:explain (127.0.0.1) 58.80ms
[I 200605 17:18:22 anchor_tabular:83] Arr shape ((1, 12),) 
[E 200605 17:18:22 web:1792] Uncaught exception POST /v1/models/income:explain (127.0.0.1)
    HTTPServerRequest(protocol='http', host='income-explainer-default.default.svc.cluster.local', method='POST', uri='/v1/models/income:explain', version='HTTP/1.1', remote_ip='127.0.0.1')
    Traceback (most recent call last):
      File "/usr/local/lib/python3.7/site-packages/tornado/web.py", line 1701, in _execute
        result = method(*self.path_args, **self.path_kwargs)
      File "/kfserving/kfserving/handlers/http.py", line 61, in post
        response = model.explain(request)
      File "/alibiexplainer/alibiexplainer/explainer.py", line 74, in explain
        explanation = self.wrapper.explain(request["instances"])
      File "/alibiexplainer/alibiexplainer/anchor_tabular.py", line 89, in explain
        anchor_exp = self.anchors_tabular.explain(arr[0], **self.kwargs)
      File "/usr/local/lib/python3.7/site-packages/alibi/explainers/anchor_tabular.py", line 803, in explain
        for sampler in self.samplers:
    AttributeError: 'AnchorTabular' object has no attribute 'samplers'
[E 200605 17:18:22 web:2250] 500 POST /v1/models/income:explain (127.0.0.1) 31.17ms

```

Presumably it would work on master. Does that sound right @cliveseldon ? If so maybe we should just close this.


Discussion:
Issue-Label Bot is automatically applying the labels:

| Label  | Probability |
| ------------- | ------------- |
| kind/bug | 0.86 |

Please mark this comment with :thumbsup: or :thumbsdown: to give our bot feedback! 
Links: [app homepage](https://github.com/marketplace/issue-label-bot), [dashboard](https://github.com/marketplace/issue-label-botdata/kubeflow/kfserving) and [code](https://github.com/hamelsmu/MLapp) for this bot.

Resolving patch:
diff --git a/python/alibiexplainer/setup.py b/python/alibiexplainer/setup.py
--- a/python/alibiexplainer/setup.py
+++ b/python/alibiexplainer/setup.py
@@ -33,7 +33,7 @@
     packages=find_packages("alibiexplainer"),
     install_requires=[
         "kfserving>=0.3.0",
-        "alibi>=0.3",
+        "alibi==0.3.2",
         "scikit-learn>=0.20.3",
         "argparse>=1.4.0",
         "requests>=2.22.0",


Test patch: