mlcommons / mlcommons/mlcube

Hello World example does not work

Open
#233 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
160
Forks
31
PR merge metrics
No merged PRs in 30d

Description

Following the documentation fails to build the first example:

(mlcube) C:\Users\tomtz\Documents\dev\clones\mlcube_examples>type mlcube.yaml
runners:
  docker:
    pkg: mlcube_docker
  k8s:
    pkg: mlcube_k8s
  kubeflow:
    pkg: mlcube_kubeflow
  ssh:
    pkg: mlcube_ssh
platforms:
  docker:
    runner: docker
    image: ${docker.image}
    docker: docker
    env_args: {}
    gpu_args: ''
    cpu_args: ''
    build_args: {}
    build_context: .
    build_file: Dockerfile
    build_strategy: auto
  k8s:
    runner: k8s
    pvc: ${name}
    image: ${docker.image}
    namespace: default
  kubeflow:
    runner: kubeflow
    image: ${docker.image}
    pvc: ???
    namespace: default
    pipeline_host: ''
  ssh:
    runner: ssh
    host: ''
    platform: ''
    remote_root: ''
    interpreter: {}
    authentication: {}
storage: {}

(mlcube) C:\Users\tomtz\Documents\dev\clones\mlcube_examples>mlcube run --mlcube=. --task=hello --platform=docker
Traceback (most recent call last):
  File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\runpy.py", line 194, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "C:\Users\tomtz\anaconda3\envs\mlcube\Scripts\mlcube.exe\__main__.py", line 7, in <module>
  File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\click\core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\click\core.py", line 782, in main
    rv = self.invoke(ctx)
  File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\click\core.py", line 1259, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\click\core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\click\core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\click\decorators.py", line 21, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\mlcube\__main__.py", line 172, in run
    runner_cls, mlcube_config = _parse_cli_args(ctx, mlcube, platform, workspace, resolve=True)
  File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\mlcube\__main__.py", line 76, in _parse_cli_args
    mlcube_config = MLCubeConfig.create_mlcube_config(
  File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\mlcube\config.py", line 100, in create_mlcube_config
    runner_cls.CONFIG.validate(mlcube_config)
  File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\mlcube_docker\docker_run.py", line 67, in validate
    _ = validator.check_unknown_keys(Config.DEFAULT.keys())\
  File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\mlcube\validate.py", line 55, in check_values
    self._validate_string_values(keys, **kwargs)
  File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\mlcube\validate.py", line 27, in _validate_string_values
    value = self.config.get(key, None)
  File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\omegaconf\dictconfig.py", line 432, in get
    return self._get_impl(key=key, default_value=default_value)
  File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\omegaconf\dictconfig.py", line 445, in _get_impl
    return self._resolve_with_default(
  File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\omegaconf\basecontainer.py", line 63, in _resolve_with_default
    resolved_node = self._maybe_resolve_interpolation(
  File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\omegaconf\base.py", line 616, in _maybe_resolve_interpolation
    return self._resolve_interpolation_from_parse_tree(
  File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\omegaconf\base.py", line 482, in _resolve_interpolation_from_parse_tree
    resolved = self.resolve_parse_tree(
  File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\omegaconf\base.py", line 662, in resolve_parse_tree
    return visitor.visit(parse_tree)
  File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\antlr4\tree\Tree.py", line 34, in visit
    return tree.accept(self)
  File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\omegaconf\grammar\gen\OmegaConfGrammarParser.py", line 205, in accept
    return visitor.visitConfigValue(self)
  File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\omegaconf\grammar_visitor.py", line 101, in visitConfigValue
    return self.visit(ctx.getChild(0))
  File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\antlr4\tree\Tree.py", line 34, in visit
    return tree.accept(self)
  File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\omegaconf\grammar\gen\OmegaConfGrammarParser.py", line 339, in accept
    return visitor.visitText(self)
  File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\omegaconf\grammar_visitor.py", line 298, in visitText
    return self.visitInterpolation(c)
  File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\omegaconf\grammar_visitor.py", line 125, in visitInterpolation
    return self.visit(ctx.getChild(0))
  File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\antlr4\tree\Tree.py", line 34, in visit
    return tree.accept(self)
  File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\omegaconf\grammar\gen\OmegaConfGrammarParser.py", line 911, in accept
    return visitor.visitInterpolationNode(self)
  File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\omegaconf\grammar_visitor.py", line 158, in visitInterpolationNode
    return self.node_interpolation_callback(inter_key, self.memo)
  File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\omegaconf\base.py", line 643, in node_interpolation_callback
    return self._resolve_node_interpolation(inter_key=inter_key, memo=memo)
  File "C:\Users\tomtz\anaconda3\envs\mlcube\lib\site-packages\omegaconf\base.py", line 573, in _resolve_node_interpolation
    raise InterpolationKeyError(f"Interpolation key '{inter_key}' not found")
omegaconf.errors.InterpolationKeyError: Interpolation key 'docker.image' not found

platform.docker.build_strategy.pull fails in the same way

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the documented hello command, then trace the failure through mlcube/main.py, config.py, mlcube_docker/docker_run.py, and validate.py as shown in the traceback. The example should run on the docker platform without the missing docker.image interpolation error, and platform.docker.build_strategy.pull should be checked for the same failure.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, python
Domain
devops
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.