mlcommons / mlcube

MLCube® is a project that reduces friction for machine learning by ensuring that models are easily portable and reproducible.
https://docs.mlcommons.org/mlcube/
Apache License 2.0
154 stars 32 forks source link

Hello World example does not work #233

Open Ravenwater opened 2 years ago

Ravenwater commented 2 years ago

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

sergey-serebryakov commented 2 years ago

Thanks, working on it.

Ravenwater commented 2 years ago

Much appreciated