nemo-evaluator-launcher 0.1.0rc3__tar.gz → 0.1.0rc5__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of nemo-evaluator-launcher might be problematic. Click here for more details.

Files changed (63) hide show
  1. {nemo_evaluator_launcher-0.1.0rc3/src/nemo_evaluator_launcher.egg-info → nemo_evaluator_launcher-0.1.0rc5}/PKG-INFO +2 -2
  2. nemo_evaluator_launcher-0.1.0rc5/README.md +3 -0
  3. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/src/nemo_evaluator_launcher/common/helpers.py +47 -10
  4. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/src/nemo_evaluator_launcher/executors/slurm/executor.py +2 -1
  5. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/src/nemo_evaluator_launcher/package_info.py +1 -1
  6. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5/src/nemo_evaluator_launcher.egg-info}/PKG-INFO +2 -2
  7. nemo_evaluator_launcher-0.1.0rc3/README.md +0 -3
  8. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/LICENSE +0 -0
  9. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/pyproject.toml +0 -0
  10. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/setup.cfg +0 -0
  11. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/src/nemo_evaluator_launcher/__init__.py +0 -0
  12. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/src/nemo_evaluator_launcher/api/__init__.py +0 -0
  13. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/src/nemo_evaluator_launcher/api/functional.py +0 -0
  14. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/src/nemo_evaluator_launcher/api/types.py +0 -0
  15. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/src/nemo_evaluator_launcher/api/utils.py +0 -0
  16. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/src/nemo_evaluator_launcher/cli/__init__.py +0 -0
  17. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/src/nemo_evaluator_launcher/cli/export.py +0 -0
  18. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/src/nemo_evaluator_launcher/cli/info.py +0 -0
  19. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/src/nemo_evaluator_launcher/cli/kill.py +0 -0
  20. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/src/nemo_evaluator_launcher/cli/ls_runs.py +0 -0
  21. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/src/nemo_evaluator_launcher/cli/ls_tasks.py +0 -0
  22. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/src/nemo_evaluator_launcher/cli/main.py +0 -0
  23. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/src/nemo_evaluator_launcher/cli/run.py +0 -0
  24. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/src/nemo_evaluator_launcher/cli/status.py +0 -0
  25. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/src/nemo_evaluator_launcher/cli/version.py +0 -0
  26. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/src/nemo_evaluator_launcher/common/__init__.py +0 -0
  27. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/src/nemo_evaluator_launcher/common/execdb.py +0 -0
  28. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/src/nemo_evaluator_launcher/common/logging_utils.py +0 -0
  29. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/src/nemo_evaluator_launcher/common/mapping.py +0 -0
  30. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/src/nemo_evaluator_launcher/configs/__init__.py +0 -0
  31. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/src/nemo_evaluator_launcher/configs/default.yaml +0 -0
  32. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/src/nemo_evaluator_launcher/configs/deployment/nim.yaml +0 -0
  33. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/src/nemo_evaluator_launcher/configs/deployment/none.yaml +0 -0
  34. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/src/nemo_evaluator_launcher/configs/deployment/sglang.yaml +0 -0
  35. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/src/nemo_evaluator_launcher/configs/deployment/vllm.yaml +0 -0
  36. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/src/nemo_evaluator_launcher/configs/execution/lepton/default.yaml +0 -0
  37. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/src/nemo_evaluator_launcher/configs/execution/local.yaml +0 -0
  38. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/src/nemo_evaluator_launcher/configs/execution/slurm/default.yaml +0 -0
  39. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/src/nemo_evaluator_launcher/executors/__init__.py +0 -0
  40. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/src/nemo_evaluator_launcher/executors/base.py +0 -0
  41. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/src/nemo_evaluator_launcher/executors/lepton/__init__.py +0 -0
  42. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/src/nemo_evaluator_launcher/executors/lepton/deployment_helpers.py +0 -0
  43. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/src/nemo_evaluator_launcher/executors/lepton/executor.py +0 -0
  44. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/src/nemo_evaluator_launcher/executors/lepton/job_helpers.py +0 -0
  45. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/src/nemo_evaluator_launcher/executors/local/__init__.py +0 -0
  46. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/src/nemo_evaluator_launcher/executors/local/executor.py +0 -0
  47. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/src/nemo_evaluator_launcher/executors/local/run.template.sh +0 -0
  48. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/src/nemo_evaluator_launcher/executors/registry.py +0 -0
  49. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/src/nemo_evaluator_launcher/executors/slurm/__init__.py +0 -0
  50. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/src/nemo_evaluator_launcher/exporters/__init__.py +0 -0
  51. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/src/nemo_evaluator_launcher/exporters/base.py +0 -0
  52. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/src/nemo_evaluator_launcher/exporters/gsheets.py +0 -0
  53. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/src/nemo_evaluator_launcher/exporters/local.py +0 -0
  54. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/src/nemo_evaluator_launcher/exporters/mlflow.py +0 -0
  55. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/src/nemo_evaluator_launcher/exporters/registry.py +0 -0
  56. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/src/nemo_evaluator_launcher/exporters/utils.py +0 -0
  57. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/src/nemo_evaluator_launcher/exporters/wandb.py +0 -0
  58. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/src/nemo_evaluator_launcher/resources/mapping.toml +0 -0
  59. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/src/nemo_evaluator_launcher.egg-info/SOURCES.txt +0 -0
  60. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/src/nemo_evaluator_launcher.egg-info/dependency_links.txt +0 -0
  61. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/src/nemo_evaluator_launcher.egg-info/entry_points.txt +0 -0
  62. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/src/nemo_evaluator_launcher.egg-info/requires.txt +0 -0
  63. {nemo_evaluator_launcher-0.1.0rc3 → nemo_evaluator_launcher-0.1.0rc5}/src/nemo_evaluator_launcher.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nemo-evaluator-launcher
3
- Version: 0.1.0rc3
3
+ Version: 0.1.0rc5
4
4
  Summary: NeMo Evaluator Launcher - Public API
5
5
  Requires-Python: <3.14,>=3.10
6
6
  Description-Content-Type: text/markdown
@@ -32,4 +32,4 @@ Dynamic: license-file
32
32
 
33
33
  # NeMo Evaluator Launcher
34
34
 
35
- For complete documentation, please see: [docs/nemo-evaluator-launcher/index.md](../../docs/nemo-evaluator-launcher/index.md)
35
+ For complete documentation, please see: [docs/nemo-evaluator-launcher/index.md](https://github.com/NVIDIA-NeMo/Eval/tree/main/docs/nemo-evaluator-launcher/index.md)
@@ -0,0 +1,3 @@
1
+ # NeMo Evaluator Launcher
2
+
3
+ For complete documentation, please see: [docs/nemo-evaluator-launcher/index.md](https://github.com/NVIDIA-NeMo/Eval/tree/main/docs/nemo-evaluator-launcher/index.md)
@@ -13,18 +13,51 @@
13
13
  # See the License for the specific language governing permissions and
14
14
  # limitations under the License.
15
15
  #
16
+ import base64
16
17
  import copy
17
18
  import datetime
18
19
  from typing import Optional
19
20
 
21
+ import yaml
20
22
  from omegaconf import DictConfig, OmegaConf
21
23
 
22
24
  from nemo_evaluator_launcher.common.logging_utils import logger
23
25
 
24
26
 
27
+ def _yaml_to_echo_command(yaml_str: str, filename: str = "config_ef.yaml") -> str:
28
+ yaml_str_b64 = base64.b64encode(yaml_str.encode("utf-8")).decode("utf-8")
29
+ return f'echo "{yaml_str_b64}" | base64 -d > {filename}'
30
+
31
+
32
+ def get_eval_factory_config(
33
+ cfg: DictConfig, user_task_config: DictConfig, task_definition: dict
34
+ ) -> dict:
35
+ """Extract config fields for eval factory.
36
+
37
+ This function extracts the config field similar to how overrides are handled.
38
+ """
39
+ # Extract config fields similar to overrides - convert to basic Python types first
40
+ cfg_config = cfg.evaluation.get("config", {})
41
+ user_config = user_task_config.get("config", {})
42
+
43
+ # Convert OmegaConf objects to basic Python types
44
+ if cfg_config:
45
+ cfg_config = OmegaConf.to_container(cfg_config, resolve=True)
46
+ if user_config:
47
+ user_config = OmegaConf.to_container(user_config, resolve=True)
48
+
49
+ # Merge the configs
50
+ config_fields = copy.deepcopy(cfg_config or {})
51
+ config_fields.update(user_config or {})
52
+
53
+ return config_fields
54
+
55
+
25
56
  def get_eval_factory_command(
26
57
  cfg: DictConfig, user_task_config: DictConfig, task_definition: dict
27
58
  ) -> str:
59
+ config_fields = get_eval_factory_config(cfg, user_task_config, task_definition)
60
+
28
61
  overrides = copy.deepcopy(dict(cfg.evaluation.get("overrides", {})))
29
62
  overrides.update(dict(user_task_config.get("overrides", {})))
30
63
  # NOTE(dfridman): Temporary fix to make sure that the overrides arg is not split into multiple lines.
@@ -34,16 +67,20 @@ def get_eval_factory_command(
34
67
  }
35
68
  overrides_str = ",".join([f"{k}={v}" for k, v in overrides.items()])
36
69
  model_url = get_endpoint_url(cfg, user_task_config, task_definition)
37
- command = f"""nv_eval run_eval \
38
- --model_id {get_served_model_name(cfg)} \
39
- --model_type {task_definition["endpoint_type"]} \
40
- --eval_type {task_definition["task"]} \
41
- --model_url {model_url} \
42
- --api_key_name API_KEY \
43
- --output_dir /results"""
44
- if overrides_str:
45
- command = f"{command} --overrides {overrides_str}"
46
- return command
70
+
71
+ model_id = get_served_model_name(cfg)
72
+ model_type = task_definition["endpoint_type"]
73
+ eval_type = task_definition["task"]
74
+
75
+ create_file_cmd = _yaml_to_echo_command(
76
+ yaml.safe_dump(config_fields), "config_ef.yaml"
77
+ )
78
+ nv_eval_command = f"""nv_eval run_eval --model_id {model_id} --model_type {model_type} --eval_type {eval_type} --model_url {model_url} --api_key_name API_KEY --output_dir /results --run_config config_ef.yaml"""
79
+
80
+ if overrides:
81
+ nv_eval_command = f"{nv_eval_command} --overrides {overrides_str}"
82
+
83
+ return create_file_cmd + " && " + "cat config_ef.yaml && " + nv_eval_command
47
84
 
48
85
 
49
86
  def get_endpoint_url(
@@ -594,8 +594,9 @@ def _create_slurm_sbatch_script(
594
594
  s += "--no-container-mount-home "
595
595
  s += "--container-mounts {} ".format(",".join(evaluation_mounts_list))
596
596
  s += "--output {} ".format(remote_task_subdir / "logs" / "client-%A.out")
597
+ s += "bash -c '"
597
598
  s += get_eval_factory_command(cfg, task, task_definition)
598
- s += "\n\n"
599
+ s += "'\n\n"
599
600
 
600
601
  # terminate the server after all evaluation clients finish
601
602
  if cfg.deployment.type != "none":
@@ -16,7 +16,7 @@
16
16
  MAJOR = 0
17
17
  MINOR = 1
18
18
  PATCH = 0
19
- PRE_RELEASE = "rc3"
19
+ PRE_RELEASE = "rc5"
20
20
 
21
21
  # Use the following formatting: (major, minor, patch, pre-release)
22
22
  VERSION = (MAJOR, MINOR, PATCH, PRE_RELEASE)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nemo-evaluator-launcher
3
- Version: 0.1.0rc3
3
+ Version: 0.1.0rc5
4
4
  Summary: NeMo Evaluator Launcher - Public API
5
5
  Requires-Python: <3.14,>=3.10
6
6
  Description-Content-Type: text/markdown
@@ -32,4 +32,4 @@ Dynamic: license-file
32
32
 
33
33
  # NeMo Evaluator Launcher
34
34
 
35
- For complete documentation, please see: [docs/nemo-evaluator-launcher/index.md](../../docs/nemo-evaluator-launcher/index.md)
35
+ For complete documentation, please see: [docs/nemo-evaluator-launcher/index.md](https://github.com/NVIDIA-NeMo/Eval/tree/main/docs/nemo-evaluator-launcher/index.md)
@@ -1,3 +0,0 @@
1
- # NeMo Evaluator Launcher
2
-
3
- For complete documentation, please see: [docs/nemo-evaluator-launcher/index.md](../../docs/nemo-evaluator-launcher/index.md)