Training Report Schema#
training_report.json is the unified training output for NeMoRun, MegatronRun, and Megatron-Bridge.
Versioning#
The top-level schema_version field uses MAJOR.MINOR versioning:
Increment MAJOR when removing, renaming, or incompatibly changing a field.
Increment MINOR when adding an optional field or otherwise making a backward-compatible schema change.
Do not change the schema version for implementation fixes that leave the JSON contract unchanged.
Consumers should reject unsupported major versions and tolerate unknown fields within a supported major version.
Version History#
1.0 — 2026-07-14#
Added to root:
schema_version:str
Added to root.config:
test_id:strtest_name:strdescription:strtest_scenario_name:strsystem_path:strtests_dir_path:strtest_scenario_path:strcontainer_image:strcloudai_execution_node:strenv_vars:dict[str, Any]gpus_per_node:Optional[int]nodes:list[str]clique_size:Optional[int]fp8:Optional[str]fp8_recipe:Optional[str]expert_tensor_parallel_size:int
Training Report Models#
- class cloudai.report_generator.training.models.TrainingResults(
- *,
- schema_version: str = '1.0',
- config: TrainingConfig,
- steps: List[TrainingStep],
- aggregation: StepAggregation | None = None,
Container for parsed training output.
- class cloudai.report_generator.training.models.TrainingConfig(
- *,
- test_id: str,
- test_name: str,
- description: str,
- test_scenario_name: str,
- test_template_name: str,
- system_path: str,
- tests_dir_path: str,
- test_scenario_path: str,
- container_image: str = '',
- cloudai_execution_node: str,
- env_vars: dict[str, Any],
- world_size: int | None = None,
- num_nodes: int,
- gpus_per_node: int | None = None,
- nodes: list[str],
- clique_size: int | None = None,
- fp8: str | None = None,
- fp8_recipe: str | None = None,
- micro_batch_size: int,
- global_batch_size: int,
- seq_length: int,
- tensor_parallel_size: int,
- pipeline_parallel_size: int,
- context_parallel_size: int | None,
- virtual_pipeline_parallel_size: int | None,
- sequence_parallel: bool,
- expert_parallel_size: int,
- expert_tensor_parallel_size: int,
- data_parallel_size: int | None = None,
- num_layers: int,
- hidden_size: int,
- num_attention_heads: int,
- num_query_groups: int,
- ffn_hidden_size: int,
- kv_channels: int,
- normalization: str,
- position_embedding_type: str,
- model_name: str = '',
- num_experts: int | None,
- moe_router_topk: int | None,
- moe_ffn_hidden_size: int | None,
- moe_grouped_gemm: bool | None,
- profiling_enabled: bool = False,
- profiling_start_step: int | None = None,
- profiling_stop_step: int | None = None,
- exclude_start_steps: int = 5,
- exclude_post_profiling_steps: int = 2,
Resolved training configuration from the framework artifact + CloudAI.
CloudAI-computed fields are supplied by the parser during construction.
- class cloudai.report_generator.training.models.TrainingStep(
- *,
- iteration: int,
- step_time_sec: float,
- loss: float,
- memory_reserved_bytes: float,
- memory_allocated_bytes: float,
- tflops_per_gpu: float | None = None,
Results for a single training iteration.
- class cloudai.report_generator.training.models.StepAggregation(
- *,
- step_time_sec: MetricStats,
- loss: MetricStats,
- memory_reserved_bytes: MetricStats,
- memory_allocated_bytes: MetricStats,
- tflops_per_gpu: MetricStats | None = None,
Per-metric aggregated statistics over the filtered steps.