|
6164 | 6164 | "expert_parallel": "8", |
6165 | 6165 | "expert_tensor_parallel": "1", |
6166 | 6166 | "gpus_per_node": "8", |
6167 | | - "nodes": "2", |
| 6167 | + "nodes": "4", |
6168 | 6168 | "recipe": "nemotron_3_5_lightning_sft_config", |
6169 | 6169 | "sequence_length": "32768", |
6170 | 6170 | "tensor_parallel": "2", |
6171 | | - "total_gpus": 16 |
| 6171 | + "total_gpus": 32 |
6172 | 6172 | } |
6173 | 6173 | ], |
6174 | 6174 | "commands": [ |
6175 | | - "./scripts/training/train.sh --nodes 2 --gpus-per-node 8 --recipe nemotron_3_5_lightning_sft_config --mode sft --dataset openmathinstruct2 --max_steps 100 --seq_length 32768 --lr 5e-6 --min_lr 0 --warmup_iters 10 --tensor_model_parallel_size 2 --context_parallel_size 2 --expert_tensor_parallel_size 1 --expert_model_parallel_size 8 --pretrained_checkpoint work/model-verification/nemotron-3.5-lightning/imported-megatron/iter_0000000 'dataset.hf_dataset.load_kwargs={revision:\"469216e3f46f4dacf476b382e192485ea51a143e\"}' dataset.enable_offline_packing=true 'dataset.offline_packing_specs={packed_sequence_size:32768,pad_seq_to_mult:4}' model.sequence_parallel=true model.cp_comm_type=p2p model.cross_entropy_loss_fusion=true model.calculate_per_token_loss=true model.recompute_granularity=full model.recompute_modules=null model.recompute_method=uniform model.recompute_num_layers=1 model.moe_router_force_load_balancing=false ddp.average_in_collective=false ddp.overlap_param_gather=false optimizer.overlap_param_gather=false scheduler.lr_decay_iters=100 validation.eval_iters=0 validation.eval_interval=0 checkpoint.load=null checkpoint.save_optim=false checkpoint.save_rng=false checkpoint.async_save=false --save_dir work/model-verification/nemotron-3.5-lightning-h100/long-sft-checkpoints --save_interval 50 logger.log_interval=1 logger.log_throughput=true logger.tensorboard_dir=null" |
| 6175 | + "./scripts/training/train.sh --nodes 4 --gpus-per-node 8 --recipe nemotron_3_5_lightning_sft_config --mode sft --dataset openmathinstruct2 --max_steps 100 --seq_length 32768 --lr 5e-6 --min_lr 0 --warmup_iters 10 --tensor_model_parallel_size 2 --context_parallel_size 2 --expert_tensor_parallel_size 1 --expert_model_parallel_size 8 --pretrained_checkpoint work/model-verification/nemotron-3.5-lightning/imported-megatron/iter_0000000 'dataset.hf_dataset.load_kwargs={revision:\"469216e3f46f4dacf476b382e192485ea51a143e\"}' dataset.enable_offline_packing=true 'dataset.offline_packing_specs={packed_sequence_size:32768,pad_seq_to_mult:4}' model.sequence_parallel=true model.cp_comm_type=p2p model.cross_entropy_loss_fusion=true model.calculate_per_token_loss=true model.recompute_granularity=full model.recompute_modules=null model.recompute_method=uniform model.recompute_num_layers=1 model.moe_router_force_load_balancing=false ddp.average_in_collective=false ddp.overlap_param_gather=false optimizer.overlap_param_gather=false scheduler.lr_decay_iters=100 validation.eval_iters=0 validation.eval_interval=0 checkpoint.load=null checkpoint.save_optim=false checkpoint.save_rng=false checkpoint.async_save=false --save_dir work/model-verification/nemotron-3.5-lightning-h100/long-sft-checkpoints --save_interval 50 logger.log_interval=1 logger.log_throughput=true logger.tensorboard_dir=null" |
6176 | 6176 | ], |
6177 | 6177 | "dimensions": {}, |
6178 | 6178 | "enabled_features": { |
|
6181 | 6181 | "sequence_packing": "offline" |
6182 | 6182 | }, |
6183 | 6183 | "entry_id": "nemotron-3-5-lightning-sft-long-context-h100", |
6184 | | - "expected_result": "Packed OpenMathInstruct-2 CP2 SFT completes exactly 100 finite-loss 32K steps with LM loss 0.4268321 -> 0.2650192 and MTP-1 loss 0.7322379 -> 0.4439273. All 100 steps have finite LM/MTP losses and no skipped or NaN iterations. Steps 91-100 average 40,863.010 ms / 188.950 TFLOP/s/GPU. Complete step-50 and step-100 checkpoints each contain 20 files, distributed metadata, saved run configuration and training state, with latest marker 100.\n", |
| 6184 | + "expected_result": "On four complete eight-H100 80GB nodes, packed OpenMathInstruct-2 CP2 SFT completes exactly 100 finite-loss 32K steps with LM loss 0.4268879 -> 0.2653436 and MTP-1 loss 0.7321755 -> 0.4469606. All 100 steps have finite LM/MTP losses and no skipped or NaN iterations. Steps 91-100 average 20,822.740 ms / 207.600 TFLOP/s/GPU. Complete step-50 and step-100 checkpoints each contain 36 files, distributed metadata, saved run configuration and training state, with latest marker 100. The two-node layout runs out of memory in iteration 2 on H100 80GB.\n", |
6185 | 6185 | "hardware": "H100", |
6186 | | - "last_verified": "2026-08-03", |
| 6186 | + "last_verified": "2026-10-12", |
6187 | 6187 | "metrics": { |
6188 | | - "final_loss": 0.2650192, |
6189 | | - "initial_loss": 0.4268321, |
6190 | | - "last_10_steps_model_tflops_per_gpu_avg": 188.95, |
6191 | | - "last_10_steps_step_time_ms_avg": 40863.01, |
6192 | | - "last_10_steps_tokens_per_second_per_gpu_avg": 6415.191 |
| 6188 | + "final_loss": 0.2653436, |
| 6189 | + "initial_loss": 0.4268879, |
| 6190 | + "last_10_steps_model_tflops_per_gpu_avg": 207.6, |
| 6191 | + "last_10_steps_step_time_ms_avg": 20822.74, |
| 6192 | + "last_10_steps_tokens_per_second_per_gpu_avg": 6294.657 |
6193 | 6193 | }, |
6194 | 6194 | "precision": "bf16", |
6195 | 6195 | "source_pointer": "items.sft_long_context.H100", |
|
6455 | 6455 | "min_transformers_version": "5.8.1", |
6456 | 6456 | "slug": "nemotron-3.5-lightning", |
6457 | 6457 | "source_card": "examples/model_verification_cards/nemotron-3.5-lightning/card.yaml", |
6458 | | - "summary": "Performance scope: pretrain_performance.H100 and pretrain_performance.GB200 use tuned canonical performance recipes; timing and throughput metrics from functional training items remain sanity checks rather than optimized performance results. The convergence pretraining recipes retain real tokenization, real data, natural routing, safety checks, and checkpointing while adopting the corresponding hardware performance recipe's execution stack. The H100 performance leaf uses BF16 Adam moments in a benchmark-only workload and is not convergence-comparable with FP32 optimizer-state runs. Nemotron 3.5 Lightning support verification covers conversion, inference, and training on H100 and GB200. Recipe names, work paths, and this verification-card path use the public Lightning name. The conversion and inference evidence used the 26.08 release-candidate software stack; the training evidence was measured in the public 26.08 base container at the recorded bridge_commit.\n", |
| 6458 | + "summary": "Performance scope: pretrain_performance.H100 and pretrain_performance.GB200 use tuned canonical performance recipes; timing and throughput metrics from functional training items remain sanity checks rather than optimized performance results. The convergence pretraining recipes retain real tokenization, real data, natural routing, safety checks, and checkpointing while adopting the corresponding hardware performance recipe's execution stack. The H100 performance leaf uses BF16 Adam moments in a benchmark-only workload and is not convergence-comparable with FP32 optimizer-state runs. Nemotron 3.5 Lightning support verification covers conversion, inference, and training on H100 and GB200. Recipe names, work paths, and this verification-card path use the public Lightning name. The conversion and inference evidence used the 26.08 release-candidate software stack; every verified training leaf was measured in the public 26.08 base container at the card's default bridge_commit, with the H100 long-context SFT leaf on four eight-GPU nodes.\n", |
6459 | 6459 | "title": "nemotron_3_5_lightning" |
6460 | 6460 | }, |
6461 | 6461 | { |
|
0 commit comments