Skip to content

Commit cac0002

Browse files
committed
refactor(recipe): remove legacy Qwen VL pretrain name
Signed-off-by: Chen Cui <chcui@nvidia.com>
1 parent a1ed073 commit cac0002

4 files changed

Lines changed: 16 additions & 44 deletions

File tree

‎examples/model_verification_cards/qwen3.6-35b-a3b/card.yaml‎

Lines changed: 10 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ items:
175175
moe_dispatcher: hybridep
176176
command: >
177177
./scripts/training/train.sh --nodes 2 --gpus-per-node 8
178-
--recipe qwen35_vl_35b_a3b_pretrain_16gpu_h100_bf16_functional_config
178+
--recipe qwen35_vl_35b_a3b_pretrain_config
179179
--dataset energon
180180
--pretrained_checkpoint
181181
work/model-verification/qwen3.6-35b-a3b/imported-megatron/iter_0000000
@@ -199,33 +199,15 @@ items:
199199
last_10_steps_model_tflops_per_gpu_avg: 135.610
200200
last_10_steps_tokens_per_second_per_gpu_avg: 5885.264
201201
expected_result: >
202-
The historical compatibility recipe name and logical output path
203-
preserve the identity of the 16-H100 workload that completed all 50
204-
DataComp Energon steps at
205-
TP1/PP2/CP1/EP8/ETP1, a 16/24 language-layer pipeline split, and
206-
MBS1/GBS512. The reusable recipe left the pretrained checkpoint unset;
207-
the command warm-started all trainable weights from the immutable
208-
imported Qwen3.6 checkpoint for representative natural router traffic.
209-
The persisted config confirmed the 248,320-token model vocabulary,
210-
HybridEP, selective core-attention, GDN output-norm, and MoE-activation
211-
recompute, scoped Transformer Engine CUDA graphs for language
212-
attention/router/preprocessing, a graph-free variable-shape vision
213-
encoder, and Transformer Engine fused cross entropy. Loss remained
214-
finite from 3.604611 to 3.458849 with zero skipped or NaN iterations.
215-
Steps 41-50 averaged 22,271.220 ms and 135.610 model TFLOP/s/GPU,
216-
approximately 136, and the process exited successfully without
217-
checkpoint output. The public command omits the historical invocation's
218-
redundant `checkpoint.save=null`; the persisted recipe configuration
219-
already left checkpoint saving unset. This verifies bounded full-model
220-
DataComp training, not canonical DataComp/CLIP convergence or checkpoint
221-
resume. The data
222-
was prepared from the official DataComp downloader at commit
223-
4a8df1992566, DataComp-1B metadata revision 086ebeee20d4, and
224-
img2dataset 1.40.0. The converter selected the first 525,000 valid,
225-
UID-deduplicated samples from sorted shards and produced a deterministic
226-
519,827/5,173 train/validation split with preparation manifest
227-
6e273a96a756; this 50-step run consumed 25,600 training samples without
228-
wrapping.
202+
The 16-H100 command completed all 50 full-model DataComp Energon steps
203+
at TP1/PP2/CP1/EP8/ETP1 and MBS1/GBS512 after warm-starting the
204+
immutable imported checkpoint for natural routing. Loss remained finite
205+
from 3.604611 to 3.458849 with zero skipped or NaN iterations. The
206+
519,827/5,173 train/validation split was prepared with the official
207+
DataComp downloader at commit 4a8df1992566, DataComp-1B metadata
208+
revision 086ebeee20d4, img2dataset 1.40.0, and preparation manifest
209+
6e273a96a756. This verifies bounded full-model training, not canonical
210+
DataComp/CLIP convergence or checkpoint resume.
229211
230212
sft:
231213
H100:

‎src/megatron/bridge/recipes/qwen_vl/h100/__init__.py‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@
3636
"qwen35_vl_2b_sft_1gpu_h100_bf16_config",
3737
"qwen35_vl_35b_a3b_peft_16gpu_h100_bf16_config",
3838
"qwen35_vl_35b_a3b_peft_4gpu_h100_bf16_config",
39-
"qwen35_vl_35b_a3b_pretrain_16gpu_h100_bf16_functional_config",
4039
"qwen35_vl_35b_a3b_pretrain_config",
4140
"qwen35_vl_35b_a3b_pretrain_8gpu_h100_bf16_mock_config",
4241
"qwen35_vl_35b_a3b_sft_2gpu_h100_bf16_fsdp_config",

‎src/megatron/bridge/recipes/qwen_vl/h100/qwen35_vl.py‎

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -329,11 +329,6 @@ def qwen35_vl_35b_a3b_pretrain_config() -> ConfigContainer:
329329
return cfg
330330

331331

332-
def qwen35_vl_35b_a3b_pretrain_16gpu_h100_bf16_functional_config() -> ConfigContainer:
333-
"""Return the Qwen3.5/Qwen3.6-VL 35B-A3B pretrain config under its legacy name."""
334-
return qwen35_vl_35b_a3b_pretrain_config()
335-
336-
337332
def qwen35_vl_122b_a10b_pretrain_128gpu_h100_bf16_mock_config() -> ConfigContainer:
338333
"""Return a pre-training config for Qwen3.5-VL 122B-A10B (MoE)."""
339334
cfg = _pretrain_common()
@@ -2399,7 +2394,6 @@ def qwen35_vl_397b_a17b_peft_32gpu_h100_bf16_config(
23992394
"qwen35_vl_35b_a3b_sft_2gpu_h100_bf16_fsdp_config",
24002395
"qwen35_vl_35b_a3b_peft_16gpu_h100_bf16_config",
24012396
"qwen35_vl_35b_a3b_peft_4gpu_h100_bf16_config",
2402-
"qwen35_vl_35b_a3b_pretrain_16gpu_h100_bf16_functional_config",
24032397
"qwen35_vl_35b_a3b_pretrain_config",
24042398
"qwen35_vl_35b_a3b_pretrain_8gpu_h100_bf16_mock_config",
24052399
"qwen35_vl_35b_a3b_sft_16gpu_h100_bf16_config",

‎tests/unit_tests/recipes/qwen_vl/test_qwen35_vl_recipes.py‎

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -464,16 +464,13 @@ def test_qwen35_vl_35b_a3b_pretrain_16gpu_h100_defaults(monkeypatch: pytest.Monk
464464
assert cfg.mixed_precision.grad_reduce_in_fp32 is False
465465

466466

467-
def test_qwen35_vl_35b_a3b_legacy_pretrain_name_remains_compatible(monkeypatch: pytest.MonkeyPatch):
468-
"""The historical full-pretrain name should delegate to the maintained library recipe."""
469-
sentinel = object()
470-
monkeypatch.setattr(_qwen35_vl_h100_module, "qwen35_vl_35b_a3b_pretrain_config", lambda: sentinel)
471-
472-
legacy_name = "qwen35_vl_35b_a3b_pretrain_16gpu_h100_bf16_functional_config"
467+
def test_qwen35_vl_35b_a3b_pretrain_name_is_exported():
468+
"""The canonical full-pretrain recipe should be available from the public recipes package."""
469+
recipe_name = "qwen35_vl_35b_a3b_pretrain_config"
473470
recipes_package = importlib.import_module("megatron.bridge.recipes")
474-
assert legacy_name in _qwen35_vl_h100_module.__all__
475-
assert getattr(recipes_package, legacy_name) is getattr(_qwen35_vl_h100_module, legacy_name)
476-
assert getattr(_qwen35_vl_h100_module, legacy_name)() is sentinel
471+
472+
assert recipe_name in _qwen35_vl_h100_module.__all__
473+
assert getattr(recipes_package, recipe_name) is getattr(_qwen35_vl_h100_module, recipe_name)
477474

478475

479476
def test_qwen35_vl_35b_a3b_sft_defaults(monkeypatch: pytest.MonkeyPatch):

0 commit comments

Comments
 (0)