Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 5 additions & 2 deletions llm_post_training/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -396,6 +396,7 @@ The target-0.69 RCP configurations are:
| 256 | 16 x 16 | `1.0e-6` | `0.125` | 18 | 30 |
| 512 | 32 x 16 | `1.4142135624e-6` | `0.08838834765` | 10 | 20 |
| 1024 | 64 x 16 | `2.0e-6` | `0.0625` | 7 | 10 |
| 1152 | 72 x 16 | `2.1213203436e-6` | `0.05892556510` | 6 | 10 |

The learning-rate and clipping schedules represented by this table are:

Expand All @@ -415,7 +416,7 @@ controls as named command-line arguments with type checks:

| Control | Command-line argument | Qualified value or rule |
|---|---|---|
| Global batch size | `--gbs` | One of 256, 512, or 1024 for the checked-in RCPs |
| Global batch size | `--gbs` | One of 256, 512, 1024, or 1152 for the checked-in RCPs |
| Learning rate and minimum LR | `--lr` | Exact GBS-dependent value in the table above |
| Maximum gradient norm | `--clip` | Exact GBS-dependent value in the table above |
| First validation step | `--val-start` | Exact GBS-dependent value in the table above |
Expand Down Expand Up @@ -748,8 +749,9 @@ The checked-in RCP logs provide six independent seeds at each qualified GBS:
| 256 | `rcp_logs/256/seed_*.out` | 6 / 6 | Step 18 | 0.703125 - 0.75390625 |
| 512 | `rcp_logs/512/seed_*.out` | 6 / 6 | Step 10 | 0.6953125 - 0.73046875 |
| 1024 | `rcp_logs/1024/seed_*.out` | 6 / 6 | Step 7 | 0.70703125 - 0.75000000 |
| 1152 | `rcp_logs/1152/seed_*.out` | 6 / 6 | Step 6 | 0.72908366 - 0.78087652 |

All 18 runs reach the target at the first scheduled validation. This is stable
All 24 runs reach the target at the first scheduled validation. This is stable
observed convergence at the configured evaluation schedule; it does not imply
zero latent crossing-step variance before the first observation.

Expand All @@ -765,6 +767,7 @@ qualified time-to-target run.
| 256 | No | 18 | Every step | No | 30 |
| 512 | No | 10 | Every step | No | 20 |
| 1024 | No | 7 | Every step | No | 10 |
| 1152 | No | 6 | Every step | No | 10 |

The validation dataloader uses the entire 251-task validation JSONL at every
evaluation. The four trajectories for each task use validation temperature
Expand Down
64 changes: 64 additions & 0 deletions llm_post_training/rcp_logs/GBS1152/seed_1.out
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
:::MLLOG {"namespace": "", "time_ms": 1792395580842, "event_type": "POINT_IN_TIME", "key": "cache_clear", "value": true, "metadata": {"file": "<string>", "lineno": 3}}
:::MLLOG {"namespace": "", "time_ms": 1792395596065, "event_type": "INTERVAL_START", "key": "init_start", "value": null, "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 125}}
:::MLLOG {"namespace": "", "time_ms": 1792395597621, "event_type": "POINT_IN_TIME", "key": "submission_benchmark", "value": "qwen35_397b_grpo", "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 193}}
:::MLLOG {"namespace": "", "time_ms": 1792395597621, "event_type": "POINT_IN_TIME", "key": "submission_org", "value": "Google", "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 193}}
:::MLLOG {"namespace": "", "time_ms": 1792395597621, "event_type": "POINT_IN_TIME", "key": "submission_division", "value": "closed", "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 193}}
:::MLLOG {"namespace": "", "time_ms": 1792395597622, "event_type": "POINT_IN_TIME", "key": "submission_status", "value": "onprem", "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 193}}
:::MLLOG {"namespace": "", "time_ms": 1792395597622, "event_type": "POINT_IN_TIME", "key": "submission_platform", "value": "64xa4x", "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 193}}
:::MLLOG {"namespace": "", "time_ms": 1792395597622, "event_type": "POINT_IN_TIME", "key": "seed", "value": 1885626193, "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 125}}
:::MLLOG {"namespace": "", "time_ms": 1792395597623, "event_type": "POINT_IN_TIME", "key": "max_steps", "value": 10, "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 125}}
:::MLLOG {"namespace": "", "time_ms": 1792395597623, "event_type": "POINT_IN_TIME", "key": "global_batch_size", "value": 1152, "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 125}}
:::MLLOG {"namespace": "", "time_ms": 1792395597623, "event_type": "POINT_IN_TIME", "key": "micro_batch_size", "value": 1, "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 125}}
:::MLLOG {"namespace": "", "time_ms": 1792395597623, "event_type": "POINT_IN_TIME", "key": "max_sequence_length", "value": 65536, "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 125}}
:::MLLOG {"namespace": "", "time_ms": 1792395597623, "event_type": "POINT_IN_TIME", "key": "train_samples", "value": 11200, "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 125}}
:::MLLOG {"namespace": "", "time_ms": 1792395597623, "event_type": "POINT_IN_TIME", "key": "eval_samples", "value": 251, "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 125}}
:::MLLOG {"namespace": "", "time_ms": 1792395597623, "event_type": "POINT_IN_TIME", "key": "init_checkpoint_step", "value": 0, "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 125}}
:::MLLOG {"namespace": "", "time_ms": 1792395597624, "event_type": "POINT_IN_TIME", "key": "opt_name", "value": "adamw", "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 125}}
:::MLLOG {"namespace": "", "time_ms": 1792395597624, "event_type": "POINT_IN_TIME", "key": "opt_base_learning_rate", "value": 2.121320343559642e-06, "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 125}}
:::MLLOG {"namespace": "", "time_ms": 1792395597624, "event_type": "POINT_IN_TIME", "key": "opt_end_learning_rate", "value": 2.121320343559642e-06, "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 125}}
:::MLLOG {"namespace": "", "time_ms": 1792395597624, "event_type": "POINT_IN_TIME", "key": "opt_adamw_beta_1", "value": 0.9, "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 125}}
:::MLLOG {"namespace": "", "time_ms": 1792395597624, "event_type": "POINT_IN_TIME", "key": "opt_adamw_beta_2", "value": 0.999, "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 125}}
:::MLLOG {"namespace": "", "time_ms": 1792395597624, "event_type": "POINT_IN_TIME", "key": "opt_adamw_epsilon", "value": 1e-08, "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 125}}
:::MLLOG {"namespace": "", "time_ms": 1792395597624, "event_type": "POINT_IN_TIME", "key": "opt_adamw_weight_decay", "value": 0.0, "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 125}}
:::MLLOG {"namespace": "", "time_ms": 1792395597625, "event_type": "POINT_IN_TIME", "key": "opt_gradient_clip_norm", "value": 0.05892556509887896, "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 125}}
:::MLLOG {"namespace": "", "time_ms": 1792395597625, "event_type": "POINT_IN_TIME", "key": "opt_learning_rate_warmup_steps", "value": 0, "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 125}}
:::MLLOG {"namespace": "", "time_ms": 1792395597625, "event_type": "POINT_IN_TIME", "key": "opt_learning_rate_decay_steps", "value": 100000, "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 125}}
:::MLLOG {"namespace": "", "time_ms": 1792395597625, "event_type": "POINT_IN_TIME", "key": "opt_learning_rate_decay_schedule", "value": "constant", "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 125}}
:::MLLOG {"namespace": "", "time_ms": 1792395597625, "event_type": "POINT_IN_TIME", "key": "tensor_parallelism", "value": 4, "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 125}}
:::MLLOG {"namespace": "", "time_ms": 1792395597625, "event_type": "POINT_IN_TIME", "key": "pipeline_parallelism", "value": 2, "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 125}}
:::MLLOG {"namespace": "", "time_ms": 1792395597625, "event_type": "POINT_IN_TIME", "key": "context_parallelism", "value": 1, "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 125}}
:::MLLOG {"namespace": "", "time_ms": 1792395597625, "event_type": "POINT_IN_TIME", "key": "expert_parallelism", "value": 32, "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 125}}
:::MLLOG {"namespace": "", "time_ms": 1792395597626, "event_type": "POINT_IN_TIME", "key": "generation_backend", "value": "vllm", "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 125}}
:::MLLOG {"namespace": "", "time_ms": 1792395597626, "event_type": "POINT_IN_TIME", "key": "generation_tensor_parallelism", "value": 8, "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 125}}
:::MLLOG {"namespace": "", "time_ms": 1792395597626, "event_type": "POINT_IN_TIME", "key": "generation_pipeline_parallelism", "value": 1, "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 125}}
:::MLLOG {"namespace": "", "time_ms": 1792395597626, "event_type": "POINT_IN_TIME", "key": "generation_expert_parallelism", "value": 8, "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 125}}
:::MLLOG {"namespace": "", "time_ms": 1792395597626, "event_type": "POINT_IN_TIME", "key": "generation_training_rollout_temperature", "value": 1.0, "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 125}}
:::MLLOG {"namespace": "", "time_ms": 1792395597626, "event_type": "POINT_IN_TIME", "key": "generation_training_rollout_top_p", "value": 1.0, "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 125}}
:::MLLOG {"namespace": "", "time_ms": 1792395597626, "event_type": "POINT_IN_TIME", "key": "generation_validation_rollout_temperature", "value": 0.1, "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 125}}
:::MLLOG {"namespace": "", "time_ms": 1792395597626, "event_type": "POINT_IN_TIME", "key": "generation_validation_rollout_top_p", "value": 0.95, "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 125}}
:::MLLOG {"namespace": "", "time_ms": 1792395597627, "event_type": "POINT_IN_TIME", "key": "num_prompts_per_step", "value": 72, "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 125}}
:::MLLOG {"namespace": "", "time_ms": 1792395597627, "event_type": "POINT_IN_TIME", "key": "num_generations_per_prompt", "value": 16, "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 125}}
:::MLLOG {"namespace": "", "time_ms": 1792395597627, "event_type": "POINT_IN_TIME", "key": "truncated_importance_sampling_ratio_min", "value": 0.999, "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 125}}
:::MLLOG {"namespace": "", "time_ms": 1792395597627, "event_type": "POINT_IN_TIME", "key": "truncated_importance_sampling_ratio", "value": 1.002, "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 125}}
:::MLLOG {"namespace": "", "time_ms": 1792395597627, "event_type": "POINT_IN_TIME", "key": "truncated_importance_sampling_type", "value": "seq-mask-tis", "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 125}}
:::MLLOG {"namespace": "", "time_ms": 1792395597627, "event_type": "POINT_IN_TIME", "key": "target_accuracy", "value": 0.69, "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 125}}
:::MLLOG {"namespace": "", "time_ms": 1792395939770, "event_type": "POINT_IN_TIME", "key": "gradient_accumulation_steps", "value": 144, "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 125}}
:::MLLOG {"namespace": "", "time_ms": 1792395939842, "event_type": "INTERVAL_END", "key": "init_stop", "value": null, "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 291}}
:::MLLOG {"namespace": "", "time_ms": 1792395939842, "event_type": "INTERVAL_START", "key": "run_start", "value": null, "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 291}}
:::MLLOG {"namespace": "", "time_ms": 1792395939842, "event_type": "INTERVAL_START", "key": "block_start", "value": null, "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 125, "samples_count": 6912, "step": 0}}
:::MLLOG {"namespace": "", "time_ms": 1792398265750, "event_type": "POINT_IN_TIME", "key": "tracked_stats", "value": {"reduced_train_loss": -0.08669434789044317, "reward": 0.3255208432674408, "grad_norm": 0.04490421712398529, "global_valid_toks": 6374981.0, "global_valid_seqs": 1135.0}, "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 125, "samples_count": 1152, "step": 1}}
:::MLLOG {"namespace": "", "time_ms": 1792398265761, "event_type": "POINT_IN_TIME", "key": "tracked_stats", "value": {"train_step_time": 1046.0511003360007, "policy_training_time": 441.2504875110026, "exposed_generation_time": 359.42124389399396, "weight_sync_time": 15.67865129099664, "valid_tokens_per_sec_per_gpu": 23.805978047584077}, "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 125, "samples_count": 1152, "step": 1}}
:::MLLOG {"namespace": "", "time_ms": 1792399300324, "event_type": "POINT_IN_TIME", "key": "tracked_stats", "value": {"reduced_train_loss": -0.07544504791439977, "reward": 0.2795138955116272, "grad_norm": 0.06886813789606094, "global_valid_toks": 6226554.0, "global_valid_seqs": 1133.0}, "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 125, "samples_count": 2304, "step": 2}}
:::MLLOG {"namespace": "", "time_ms": 1792399300335, "event_type": "POINT_IN_TIME", "key": "tracked_stats", "value": {"train_step_time": 934.6668656110487, "policy_training_time": 283.87288653299765, "exposed_generation_time": 549.8984528569927, "weight_sync_time": 15.811214244000439, "valid_tokens_per_sec_per_gpu": 26.022615604971634}, "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 125, "samples_count": 2304, "step": 2}}
:::MLLOG {"namespace": "", "time_ms": 1792400389497, "event_type": "POINT_IN_TIME", "key": "tracked_stats", "value": {"reduced_train_loss": -0.08843275631807046, "reward": 0.3272569477558136, "grad_norm": 0.03901178017258644, "global_valid_toks": 6115870.0, "global_valid_seqs": 1109.0}, "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 125, "samples_count": 3456, "step": 3}}
:::MLLOG {"namespace": "", "time_ms": 1792400389507, "event_type": "POINT_IN_TIME", "key": "tracked_stats", "value": {"train_step_time": 986.5537100890506, "policy_training_time": 286.8524610050008, "exposed_generation_time": 601.8947445570084, "weight_sync_time": 16.254230523998558, "valid_tokens_per_sec_per_gpu": 24.21572889867656}, "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 125, "samples_count": 3456, "step": 3}}
:::MLLOG {"namespace": "", "time_ms": 1792401489217, "event_type": "POINT_IN_TIME", "key": "tracked_stats", "value": {"reduced_train_loss": -0.05171314728067955, "reward": 0.3671875, "grad_norm": 0.032063666731119156, "global_valid_toks": 6746553.0, "global_valid_seqs": 1117.0}, "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 125, "samples_count": 4608, "step": 4}}
:::MLLOG {"namespace": "", "time_ms": 1792401489228, "event_type": "POINT_IN_TIME", "key": "tracked_stats", "value": {"train_step_time": 998.8582938328836, "policy_training_time": 287.20581423099793, "exposed_generation_time": 614.0916588618857, "weight_sync_time": 15.83781676000217, "valid_tokens_per_sec_per_gpu": 26.38384525508998}, "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 125, "samples_count": 4608, "step": 4}}
:::MLLOG {"namespace": "", "time_ms": 1792402672077, "event_type": "POINT_IN_TIME", "key": "tracked_stats", "value": {"reduced_train_loss": -0.043433990846097004, "reward": 0.3880208432674408, "grad_norm": 0.022654572501778603, "global_valid_toks": 6909070.0, "global_valid_seqs": 1139.0}, "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 125, "samples_count": 5760, "step": 5}}
:::MLLOG {"namespace": "", "time_ms": 1792402672087, "event_type": "POINT_IN_TIME", "key": "tracked_stats", "value": {"train_step_time": 1080.1048807139523, "policy_training_time": 291.4241938240011, "exposed_generation_time": 688.9525599839835, "weight_sync_time": 16.256288522999967, "valid_tokens_per_sec_per_gpu": 24.986975958909184}, "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 125, "samples_count": 5760, "step": 5}}
:::MLLOG {"namespace": "", "time_ms": 1792403752361, "event_type": "INTERVAL_END", "key": "block_stop", "value": null, "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 125, "samples_count": 6912, "step": 6}}
:::MLLOG {"namespace": "", "time_ms": 1792403752366, "event_type": "INTERVAL_START", "key": "eval_start", "value": null, "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 125, "samples_count": 6912, "step": 6}}
:::MLLOG {"namespace": "", "time_ms": 1792404963418, "event_type": "POINT_IN_TIME", "key": "tracked_stats", "value": {"validation_time": 1208.7332950900018}, "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 125, "step": 6}}
:::MLLOG {"namespace": "", "time_ms": 1792404963427, "event_type": "POINT_IN_TIME", "key": "eval_accuracy", "value": 0.7529880404472351, "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 125, "samples_count": 6912}}
:::MLLOG {"namespace": "", "time_ms": 1792404963447, "event_type": "INTERVAL_END", "key": "eval_stop", "value": null, "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 125, "samples_count": 6912, "step": 6}}
:::MLLOG {"namespace": "", "time_ms": 1792404963462, "event_type": "INTERVAL_END", "key": "run_stop", "value": null, "metadata": {"file": "/opt/nemo-rl/nemo_rl/algorithms/mlperf_grpo_logging.py", "lineno": 125, "samples_count": 6912, "status": "success"}}
Loading
Loading