Page MenuHomePhabricator

FeatureNotFound exception in revertrisk multi-lingual
Closed, ResolvedPublic

Description

From: https://github.com/SWViewer/swviewer-service/issues/1

Repro:

curl https://api.wikimedia.org/service/lw/inference/v1/models/revertrisk-multilingual:predict -X POST -d '{"lang": "ja", "rev_id": 95818540}'

Kserve logs:

Traceback (most recent call last):
  File "/opt/lib/python/site-packages/knowledge_integrity/featureset.py", line 320, in get_features
    all_features.update(transformer(all_features))
  File "/opt/lib/python/site-packages/knowledge_integrity/models/revertrisk_multilingual/model.py", line 343, in _transformed_revertrisk_features
    edit_info = get_edit_info(
  File "/opt/lib/python/site-packages/knowledge_integrity/models/revertrisk_multilingual/model.py", line 297, in get_edit_info
    actions = et.get_diff()
  File "/opt/lib/python/site-packages/mwedittypes/mwedittypes.py", line 18, in get_diff
    self.tree_diff = get_diff(self.prev_wikitext, self.curr_wikitext, lang=self.lang,
  File "/opt/lib/python/site-packages/mwedittypes/tree_differ.py", line 19, in get_diff
    result = diff.post_process(prev_tree.secname_to_text, curr_tree.secname_to_text, lang=lang)
  File "/opt/lib/python/site-packages/mwedittypes/tree_differ.py", line 527, in post_process
    self._build_result(sections_prev, sections_curr)
  File "/opt/lib/python/site-packages/mwedittypes/tree_differ.py", line 550, in _build_result
    csec_id = self.sections_c_to_p[csec_name] or csec_name
KeyError: '10: == 外部リンク =='

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/opt/lib/python/site-packages/uvicorn/protocols/http/h11_impl.py", line 373, in run_asgi
    result = await app(self.scope, self.receive, self.send)
  File "/opt/lib/python/site-packages/uvicorn/middleware/proxy_headers.py", line 75, in __call__
    return await self.app(scope, receive, send)
  File "/opt/lib/python/site-packages/fastapi/applications.py", line 270, in __call__
    await super().__call__(scope, receive, send)
  File "/opt/lib/python/site-packages/starlette/applications.py", line 124, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/opt/lib/python/site-packages/starlette/middleware/errors.py", line 184, in __call__
    raise exc
  File "/opt/lib/python/site-packages/starlette/middleware/errors.py", line 162, in __call__
    await self.app(scope, receive, _send)
  File "/opt/lib/python/site-packages/timing_asgi/middleware.py", line 68, in __call__
    await self.app(scope, receive, send_wrapper)
  File "/opt/lib/python/site-packages/starlette/middleware/exceptions.py", line 79, in __call__
    raise exc
  File "/opt/lib/python/site-packages/starlette/middleware/exceptions.py", line 68, in __call__
    await self.app(scope, receive, sender)
  File "/opt/lib/python/site-packages/fastapi/middleware/asyncexitstack.py", line 21, in __call__
    raise e
  File "/opt/lib/python/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in __call__
    await self.app(scope, receive, send)
  File "/opt/lib/python/site-packages/starlette/routing.py", line 706, in __call__
    await route.handle(scope, receive, send)
  File "/opt/lib/python/site-packages/starlette/routing.py", line 276, in handle
    await self.app(scope, receive, send)
  File "/opt/lib/python/site-packages/starlette/routing.py", line 66, in app
    response = await func(request)
  File "/opt/lib/python/site-packages/fastapi/routing.py", line 235, in app
    raw_response = await run_endpoint_function(
  File "/opt/lib/python/site-packages/fastapi/routing.py", line 161, in run_endpoint_function
    return await dependant.call(**values)
  File "/opt/lib/python/site-packages/kserve/protocol/rest/v1_endpoints.py", line 69, in predict
    response, response_headers = await self.dataplane.infer(model_name=model_name, body=body, headers=headers)
  File "/opt/lib/python/site-packages/kserve/protocol/dataplane.py", line 276, in infer
    response = await model(body, headers=headers)
  File "/opt/lib/python/site-packages/kserve/model.py", line 117, in __call__
    else self.predict(payload, headers)
  File "/srv/revert-risk-model/model-server/model.py", line 102, in predict
    result = KI_module.classify(self.model, request["revision"])
  File "/opt/lib/python/site-packages/knowledge_integrity/models/revertrisk_multilingual/model.py", line 407, in classify
    intermediate_features = extract_features(revision, CLASSIFIER_INTERMEDIATE_FEATURES)
  File "/opt/lib/python/site-packages/knowledge_integrity/models/revertrisk_multilingual/model.py", line 381, in extract_features
    return get_features(feature_sources, features, _transformed_revertrisk_features)
  File "/opt/lib/python/site-packages/knowledge_integrity/featureset.py", line 324, in get_features
    raise FeatureNotFoundException(feature_name=e.args[0]) from e
knowledge_integrity.featureset.FeatureNotFoundException: Feature 10: == 外部リンク == not found in given sources

Event Timeline

elukey updated the task description. (Show Details)

Change 947875 had a related patch set uploaded (by AikoChou; author: AikoChou):

[machinelearning/liftwing/inference-services@main] revert-risk: upgrade knowledge_integrity to v0.3.0

https://gerrit.wikimedia.org/r/947875

Change 947875 merged by jenkins-bot:

[machinelearning/liftwing/inference-services@main] revert-risk: upgrade knowledge_integrity to v0.3.0

https://gerrit.wikimedia.org/r/947875

Change 948103 had a related patch set uploaded (by AikoChou; author: AikoChou):

[operations/deployment-charts@master] ml-services: update revert-risk images and model binary

https://gerrit.wikimedia.org/r/948103

Change 948103 merged by jenkins-bot:

[operations/deployment-charts@master] ml-services: update revert-risk images and model binary

https://gerrit.wikimedia.org/r/948103

achou claimed this task.