nemo_gym.exporters.base

View as Markdown

Module Contents

Classes

NameDescription
BaseExporterSink for the run metadata a NeMo Gym eval produces: config, metrics, rollouts.

Data

logger

API

class nemo_gym.exporters.base.BaseExporter(
global_config_dict: omegaconf.DictConfig
)
Abstract

Sink for the run metadata a NeMo Gym eval produces: config, metrics, rollouts.

A backend (W&B, MLflow, …) subclasses this and wraps its own run handle. Lifecycle is setup -> any number of log_* calls -> teardown. Whether a backend runs at all is decided by its ExporterConfig in the registry, not here.

Exporters are best-effort telemetry: a failing tracking server must not fail the eval. Call sites go through the export_* wrappers, which swallow and log backend exceptions. Subclasses implement the unwrapped _* hooks and may raise freely.

name
str
nemo_gym.exporters.base.BaseExporter.__exit__(
exc_type,
exc_value,
traceback
) -> None
nemo_gym.exporters.base.BaseExporter._guard(
what: str,
fn,
args = ()
) -> None
nemo_gym.exporters.base.BaseExporter._log_config(
config_dict: omegaconf.DictConfig
) -> None
abstract

Record the resolved run config. Secrets are already masked by export_config.

nemo_gym.exporters.base.BaseExporter._log_metrics(
metrics: dict[str, typing.Any],
step: typing.Optional[int] = None
) -> None
abstract

Record scalar metrics. step is the training step, or None for a one-shot eval.

nemo_gym.exporters.base.BaseExporter._log_rollouts(
rollouts: list[dict[str, typing.Any]]
) -> None
abstract

Record rollout results as a table. Rollouts are sanitized dicts, one per rollout.

nemo_gym.exporters.base.BaseExporter.export_config() -> None
nemo_gym.exporters.base.BaseExporter.export_metrics(
metrics: dict[str, typing.Any],
step: typing.Optional[int] = None
) -> None
nemo_gym.exporters.base.BaseExporter.export_rollouts(
rollouts: list[dict[str, typing.Any]]
) -> None
nemo_gym.exporters.base.BaseExporter.setup() -> None
abstract

Open the backing run. Called once, after config resolution.

nemo_gym.exporters.base.BaseExporter.teardown() -> None
abstract

Close the backing run. Must be safe to call when setup failed or never ran.

nemo_gym.exporters.base.logger = logging.getLogger(__name__)