DARPA-ASKEM / terarium

https://app.terarium.ai
Apache License 2.0
12 stars 2 forks source link

[BUG]: Validate Model Config graph does not draw #4045

Closed bigglesandginger closed 1 week ago

bigglesandginger commented 1 week ago

Describe the issue After clicking Run as per step 5.1 the graph axes appear with I in the dropdown but no data is drawn. In the console the following errors appear: Screenshot 2024-07-04 at 2 43 05 PM

mwdchang commented 1 week ago

May be related, in funman-taskrunner log

[WARN] [1b052e0a] stderr: [0.00000, 0.00000) has equal lower and upper bounds, so assuming the upper bound is closed.  (I.e., [lb, ub) is actually [lb, ub]) [software.uncharted.terarium.taskrunner.service.Task:400]
[WARN] [1b052e0a] stderr: 2024-07-05 19:55:09,234 - funman.search.box_search - ERROR - Traceback (most recent call last): [software.uncharted.terarium.taskrunner.service.Task:400]
[WARN] [1b052e0a] stderr:   File "/funman_venv/lib/python3.8/site-packages/funman/search/box_search.py", line 1110, in _expand [software.uncharted.terarium.taskrunner.service.Task:400]
[WARN] [1b052e0a] stderr:     self._initialize_model_for_box( [software.uncharted.terarium.taskrunner.service.Task:400]
[WARN] [1b052e0a] stderr:   File "/funman_venv/lib/python3.8/site-packages/funman/search/box_search.py", line 557, in _initialize_model_for_box [software.uncharted.terarium.taskrunner.service.Task:400]
[WARN] [1b052e0a] stderr:     self._initialize_model_encoding(solver, episode, options, box) [software.uncharted.terarium.taskrunner.service.Task:400]
[WARN] [1b052e0a] stderr:   File "/funman_venv/lib/python3.8/site-packages/funman/search/box_search.py", line 510, in _initialize_model_encoding [software.uncharted.terarium.taskrunner.service.Task:400]
[WARN] [1b052e0a] stderr:     encoding.construct_encoding( [software.uncharted.terarium.taskrunner.service.Task:400]
[WARN] [1b052e0a] stderr:   File "/funman_venv/lib/python3.8/site-packages/funman/translate/translate.py", line 116, in construct_encoding [software.uncharted.terarium.taskrunner.service.Task:400]
[WARN] [1b052e0a] stderr:     [ [software.uncharted.terarium.taskrunner.service.Task:400]
[WARN] [1b052e0a] stderr:   File "/funman_venv/lib/python3.8/site-packages/funman/translate/translate.py", line 117, in <listcomp> [software.uncharted.terarium.taskrunner.service.Task:400]
[WARN] [1b052e0a] stderr:     self._get_or_create_layer( [software.uncharted.terarium.taskrunner.service.Task:400]
[WARN] [1b052e0a] stderr:   File "/funman_venv/lib/python3.8/site-packages/funman/translate/translate.py", line 139, in _get_or_create_layer [software.uncharted.terarium.taskrunner.service.Task:400]
[WARN] [1b052e0a] stderr:     layer = self._encoder.encode_constraint( [software.uncharted.terarium.taskrunner.service.Task:400]
[WARN] [1b052e0a] stderr:   File "/funman_venv/lib/python3.8/site-packages/funman/translate/translate.py", line 294, in encode_constraint [software.uncharted.terarium.taskrunner.service.Task:400]
[WARN] [1b052e0a] stderr:     raise e [software.uncharted.terarium.taskrunner.service.Task:400]
[WARN] [1b052e0a] stderr:   File "/funman_venv/lib/python3.8/site-packages/funman/translate/translate.py", line 280, in encode_constraint [software.uncharted.terarium.taskrunner.service.Task:400]
[WARN] [1b052e0a] stderr:     encoded_constraint_layer = handler( [software.uncharted.terarium.taskrunner.service.Task:400]
[WARN] [1b052e0a] stderr:   File "/funman_venv/lib/python3.8/site-packages/funman/translate/translate.py", line 1020, in encode_query_layer [software.uncharted.terarium.taskrunner.service.Task:400]
[WARN] [1b052e0a] stderr:     layer = query_handlers[type(query)]( [software.uncharted.terarium.taskrunner.service.Task:400]
[WARN] [1b052e0a] stderr:   File "/funman_venv/lib/python3.8/site-packages/funman/translate/translate.py", line 1109, in _encode_state_variable_constraint [software.uncharted.terarium.taskrunner.service.Task:400]
[WARN] [1b052e0a] stderr:     math_utils.div(query.interval.ub, norm) [software.uncharted.terarium.taskrunner.service.Task:400]
[WARN] [1b052e0a] stderr:   File "/funman_venv/lib/python3.8/site-packages/funman/utils/math_utils.py", line 135, in div [software.uncharted.terarium.taskrunner.service.Task:400]
[WARN] [1b052e0a] stderr:     return numer / denom [software.uncharted.terarium.taskrunner.service.Task:400]
[WARN] [1b052e0a] stderr: TypeError: unsupported operand type(s) for /: 'str' and 'float' [software.uncharted.terarium.taskrunner.service.Task:400]
[WARN] [1b052e0a] stderr:  [software.uncharted.terarium.taskrunner.service.Task:400]

[INFO] Reading from progress pipe: /tmp/progress-1b052e0a-4b80-4fa4-a188-11215a2c7518 for task: 1b052e0a-4b80-4fa4-a188-11215a2c7518 [software.uncharted.terarium.taskrunner.service.Task:249]
mwdchang commented 1 week ago

For some reason in the request sent to funman, the constraint Infected cap has mixed type interval where interval.lb is a number and interval.ub is a string, so funman couldn't parse it correctly and ended up with a [0, 0] interval, which I guess, in turn, it cannot partition a range of length 0. So the process finishes but there is no result ==> we cannot render.

Not sure why the types are mixed in the first place, maybe something to do with the input component, will check with @blanchco on this.

  "request": {
    "constraints": [
      {
        "name": "Infected cap",
        "variable": "I",
        "interval": {
          "lb": 0,
          "ub": "750.0"
        },
        "timepoints": {
          "lb": 0,
          "ub": 100,
          "closed_upper_bound": true
        }
      }
    ],
blanchco commented 1 week ago

@mwdchang In regards to the string vs number. The linked PR should fix this:

BEFORE:

Screenshot 2024-07-08 at 9 28 29 AM

AFTER:

Screenshot 2024-07-08 at 9 32 25 AM