From cd510e0b327c0dd9241fb12fcb14eda755fd7d16 Mon Sep 17 00:00:00 2001 From: h-guo18 <67671475+h-guo18@users.noreply.github.com> Date: Wed, 12 Aug 2026 11:37:01 +0000 Subject: [PATCH 01/10] examples: add Qwen3-8B streaming DSpark launcher example + walkthrough Adds the missing Qwen3-8B streaming DSpark pipeline. DSpark examples so far covered only large MoE targets (Kimi-K2.6, MiniMax-M3, both multi-node); this is the small-scale entry point that runs on 2 nodes x 1 GPU, so the pipeline can be exercised end-to-end before scaling up. - tools/launcher/examples/Qwen/Qwen3-8B/hf_streaming_dspark.yaml Combines the MiniMax-M3 DSpark streaming settings with the Qwen3-8B DFlash streaming topology. Keeps batch size and LR at the dspark.yaml defaults rather than the M3 warm-start values, which assume 8 GPUs/node. - examples/speculative_decoding/QWEN3_8B_DSPARK_WALKTHROUGH.md End-to-end handoff doc: data synthesis (hf_synth.yaml) -> streaming training -> evaluation, plus the failure modes that are silent (capture-id off-by-one, non-inherited draft dims, synthesis yield loss). Pre-commit hooks applicable to these two files were run and pass (yamlfmt, check-launcher-yaml, markdownlint-cli2, insert-license). Signed-off-by: h-guo18 <67671475+h-guo18@users.noreply.github.com> --- .../QWEN3_8B_DSPARK_WALKTHROUGH.md | 265 ++++++++++++++++++ .../Qwen/Qwen3-8B/hf_streaming_dspark.yaml | 159 +++++++++++ 2 files changed, 424 insertions(+) create mode 100644 examples/speculative_decoding/QWEN3_8B_DSPARK_WALKTHROUGH.md create mode 100644 tools/launcher/examples/Qwen/Qwen3-8B/hf_streaming_dspark.yaml diff --git a/examples/speculative_decoding/QWEN3_8B_DSPARK_WALKTHROUGH.md b/examples/speculative_decoding/QWEN3_8B_DSPARK_WALKTHROUGH.md new file mode 100644 index 00000000000..6dcf656e396 --- /dev/null +++ b/examples/speculative_decoding/QWEN3_8B_DSPARK_WALKTHROUGH.md @@ -0,0 +1,265 @@ +# End-to-End Walkthrough: Qwen3-8B DSpark (Data Synthesis → Streaming Training) + +A complete worked example of training a speculative-decoding drafter, from raw +prompts to an evaluated checkpoint. It uses **Qwen3-8B** as the target and +**DSpark** as the draft algorithm, driven end-to-end by the +[launcher](../../tools/launcher/). + +Qwen3-8B is small enough to run the whole flow on a handful of GPUs, so this +doubles as the recommended first run before scaling to a large MoE target — the +pipeline shape is identical, only node counts and a few model-specific fields +change. + +## Why these two steps + +**Data synthesis.** A drafter is trained to predict what the *target model* +would say. Off-the-shelf SFT corpora contain some other model's answers, so +training on them teaches the drafter the wrong distribution and acceptance +length suffers. Step 1 therefore keeps the prompts but regenerates every +assistant turn with the target model itself. + +**Streaming training.** DSpark trains against the target's hidden states. The +classic route dumps them to disk first, which is slow and enormous. Streaming +mode instead runs a live `vllm serve` and ships hidden states to the trainer +over NIXL RDMA — no dump, no round-trip. + +## What DSpark is + +DSpark = the DFlash backbone + a lightweight sequential (**Markov**) head + a +**confidence** head. The Markov head adds a prefix-dependent transition bias to +the backbone's base logits, which induces a causal block distribution and lets +the draft generate a block semi-autoregressively. The confidence head predicts +per-position acceptance. It trains with a three-term loss: + +```text +dflash_ce_loss_alpha * CE + dflash_l1_loss_alpha * TVD + dflash_confidence_head_alpha * BCE +``` + +Head architecture and loss weights live in +[`dspark.yaml`](../../modelopt_recipes/general/speculative_decoding/dspark.yaml); +the launcher YAMLs below only override data and schedule fields. + +## Prerequisites + +- A Slurm cluster with the launcher configured (see + [launcher docs](../../tools/launcher/docs/configuration.md)). +- `Qwen/Qwen3-8B` present under the launcher's `/hf-local/` mount. +- Two container images: a vLLM image (serve + training) and a TensorRT-LLM image + (dataset build). Both are pinned in the YAMLs. + +Set your cluster environment once: + +```bash +export SLURM_HOST=localhost # run on the login node +export SLURM_ACCOUNT= +export SLURM_PARTITION= +export SLURM_HF_LOCAL= +export SLURM_JOB_DIR= +export NEMORUN_HOME=$PWD +``` + +--- + +## Step 1 — Data synthesis + +Regenerate assistant turns with Qwen3-8B over a prompt corpus. + +```bash +cd tools/launcher +uv run launch.py --yaml examples/Qwen/Qwen3-8B/hf_synth.yaml --yes +``` + +[`hf_synth.yaml`](../../tools/launcher/examples/Qwen/Qwen3-8B/hf_synth.yaml) +runs a Slurm **array job**. Each task starts its own `vllm serve` on one node and +calls [`common/query.py`](../../tools/launcher/common/query.py) on its own shard +of the dataset. `query.py` replays each sample's user turns, generates a fresh +assistant reply, **discards the original assistant turns**, and writes +`train-{shard}-{total}.jsonl`. + +The knobs worth knowing: + +| Field | Meaning | +|---|---| +| `--data` | Input prompt corpus (HF id or local path). Ships pointing at `nvidia/Speculative-Decoding-Multilingual-Prompt-v2`. | +| `--save` | Output dir. Set `output_dir` in `global_vars`. | +| `--num-shards` / `array` | Shard count and the array range. Keep them consistent. | +| `--num-proc` | Per-worker request concurrency. | +| `--tensor-parallel-size` | Must match `gpus_per_node`. | + +Practical notes, mostly learned the hard way: + +- **Resumable by construction.** A shard whose output file already exists is + skipped, so a requeued or re-dispatched job picks up where it stopped. Write + `--save` to a persistent mount, not to scratch. +- **Concurrency vs. yield.** Pushing `--num-proc` very high can *lower* total + yield: requests start timing out under the stampede and those samples come out + user-only. If you see a yield dip, lower it before raising it. +- **Reasoning models need context headroom.** With `--max-model-len` too tight, + any prompt longer than the generation cap gets a 400 back and is dropped. This + loss is *systematic* — it removes the longest, hardest prompts and quietly + biases the corpus short. Keep `max-model-len >= max_prompt + max_output`. +- **Check yield before training.** Count records that actually have an assistant + turn. A corpus that is silently 60% prompt-only will train, and the result will + just be mysteriously bad. + +Prefer to skip synthesis on a first pass? `task_0` of the training YAML builds a +conversation set from public SFT data, and the pipeline runs standalone. Expect a +lower acceptance length — that gap is exactly what this step buys. + +--- + +## Step 2 — Streaming DSpark training + +```bash +cd tools/launcher +uv run launch.py --yaml examples/Qwen/Qwen3-8B/hf_streaming_dspark.yaml --yes +``` + +[`hf_streaming_dspark.yaml`](../../tools/launcher/examples/Qwen/Qwen3-8B/hf_streaming_dspark.yaml) +is a three-task pipeline: + +| Task | Nodes | What it does | +|---|---|---| +| `task_0` | 1 | Build input conversations → `/scratchspace/data/train.jsonl` | +| `task_1` | 2 | Node 0 `vllm serve`, node 1 trainer; exports to `/scratchspace/export` | +| `task_2` | 1 | vLLM smoke test — acceptance length | + +**To train on your synthesized corpus** (the point of Step 1), edit the YAML: set +`skip: true` on `task_0`, and point `data.data_path` in `task_1` at the synthesis +`output_dir`: + +```yaml + task_0: + skip: true + ... + + task_1: + args: + ... + - data.data_path=/hf-local/modelopt/qwen3-8b-synth-v1 +``` + +CLI overrides use dotted paths for scalar fields, e.g.: + +```bash +uv run launch.py --yaml examples/Qwen/Qwen3-8B/hf_streaming_dspark.yaml \ + pipeline.task_1.slurm_config.nodes=4 --yes +``` + +Always preview the resolved config before submitting: + +```bash +uv run launch.py --yaml examples/Qwen/Qwen3-8B/hf_streaming_dspark.yaml --dryrun --yes -v +``` + +### The fields that actually matter + +**Capture ids.** `EAGLE_CAPTURE_IDS` selects which target layers the serve +captures. The draft consumes 5 evenly-spaced layers plus the final hidden state. +For Qwen3-8B (36 layers), `build_target_layer_ids(36,5) = [1,9,17,25,33]`; vLLM's +ids are those **+1**, plus the final layer: + +```text +EAGLE_CAPTURE_IDS: "[2,10,18,26,34,36]" +``` + +Getting the final id wrong is the classic silent failure: capturing the +second-to-last layer instead of the true final one trains fine, shows a healthy +loss curve, and caps acceptance length. If loss looks good but acceptance +plateaus, check this first. + +No spaces in the value — nemo_run emits `export FOO=value` unquoted, so a space +splits the variable. + +**Draft dims are not inherited.** The draft is an independent Qwen3 model; it +does *not* pick up the base model's GQA/FFN dims. `dspark.yaml` sets them +explicitly for Qwen3-8B. Retargeting to a different base means updating +`num_attention_heads`, `num_key_value_heads`, `head_dim` and `intermediate_size` +to match — otherwise you silently train a wrong-shaped draft. + +**`answer_only_loss=false`.** The streaming corpus is prompt-only (the serve +generates the response and we capture *its* hidden states), so there is no +assistant span to mask. Train over the full sequence. + +**`dflash_block_size`** is the semi-AR generation block and must divide +`training_seq_len`. + +**`report_to=none`.** `dspark.yaml` defaults to tensorboard, which hard-fails if +tensorboard isn't installed in the serve container. + +**Batch size and LR stay at the recipe defaults.** `dspark.yaml` ships +`per_device_train_batch_size=1`, `learning_rate=6e-4`, `warmup_ratio=0.04` — +tuned for a from-scratch draft on a single GPU. The Kimi-K2.6 and MiniMax-M3 +examples override these to a larger batch and a gentle `1e-4` because they run 8 +GPUs per node and warm-start a large backbone. Don't copy those numbers to +Qwen3-8B: at `training_seq_len=4096` on one GPU, a batch of 4 will OOM. + +### Scaling up to a large target + +The same pipeline drives large MoE targets — compare this YAML against +[`MiniMaxAI/MiniMax-M3`](../../tools/launcher/examples/MiniMaxAI/MiniMax-M3/hf_streaming_dspark_multi_node.yaml) +and +[`moonshotai/Kimi-K2.6`](../../tools/launcher/examples/moonshotai/Kimi-K2.6/hf_streaming_dspark_multi_node.yaml). +What changes: + +| Concern | Qwen3-8B | Large MoE target | +|---|---|---| +| Topology | 2 nodes × 1 GPU | `SERVE_NODES` serve replicas + DDP trainers, 8 GPU/node | +| Draft dims | recipe defaults already match | must be set explicitly to match the base | +| `rope_theta` | default `1e6` matches base | pin the base's value onto the draft | +| Mask token | `151669` | a free id in that model's vocab | +| `trust_remote_code` | not needed | needed at serve *and* export | +| Chat template | not needed (`answer_only_loss=false`) | a `{% generation %}`-tagged copy if masking | + +`SERVE_NODES` splits the allocation: nodes `0..SERVE_NODES-1` each run an +independent whole-node serve replica, the rest are DDP trainers, and each trainer +rank fetches its shard round-robin across replicas. See the header of +[`train_eagle_streaming.sh`](../../tools/launcher/common/eagle3/train_eagle_streaming.sh) +for the full knob list. + +On clusters using EFA rather than InfiniBand, NIXL needs +`NIXL_BACKENDS=LIBFABRIC`. Note that UCX segfaults at agent init on EFA nodes, so +LIBFABRIC is required there even for single-node runs (see the commented block in +the YAML). + +--- + +## Step 3 — Evaluate + +`task_2` serves the exported drafter and reports acceptance length. + +**Do not use the training-time AR eval.** `dspark.yaml` sets +`estimate_ar: false` deliberately: that eval runs the DFlash backbone *only*, +without applying the Markov head, so its number describes the backbone rather +than the model you trained. Acceptance length comes from the vLLM smoke test or +the offline [specdec_bench](../specdec_bench/) harness. + +`task_2` needs a vLLM build with DSpark support. If your image predates it, +startup fails on the `--speculative-config` method name; pin a newer nightly, or +set `skip: true` and use specdec_bench on `/scratchspace/export`. + +Reading the numbers: training accuracy, acceptance length, and accepted-fraction +are three different things and are easy to confuse. Acceptance length is the +deployment-facing one. + +--- + +## Troubleshooting + +| Symptom | Likely cause | +|---|---| +| Training hangs before step 1, no error | Corpus schema issue — a prompt-only `messages` field can stall the streaming dataset silently. Inspect one record. | +| Loss curve healthy, acceptance length plateaus | Wrong final capture id (see above). | +| Trainer OOM on the serve node | Lower `SERVE_GPU_MEM_UTIL`, `SERVE_MAX_MODEL_LEN`, `SERVE_MAX_NUM_SEQS`. | +| Serve never becomes ready | Raise `SERVE_READY_TIMEOUT`; large models load slowly on cold cache. | +| `export FOO=value` splitting | A space in an env value. Remove it. | +| Synthesis yield well under 100% | Lower `--num-proc`, or raise `--max-model-len`. | + +## Reference + +- [`dspark.yaml`](../../modelopt_recipes/general/speculative_decoding/dspark.yaml) — head arch and loss weights +- [`hf_synth.yaml`](../../tools/launcher/examples/Qwen/Qwen3-8B/hf_synth.yaml) — synthesis +- [`hf_streaming_dspark.yaml`](../../tools/launcher/examples/Qwen/Qwen3-8B/hf_streaming_dspark.yaml) — streaming training +- [`hf_streaming_dflash.yaml`](../../tools/launcher/examples/Qwen/Qwen3-8B/hf_streaming_dflash.yaml) — DFlash, same transport +- [README](README.md) — speculative decoding overview, other algorithms +- [SLURM_prepare_data.md](SLURM_prepare_data.md) — the alternative `server_generate.py` synthesis path diff --git a/tools/launcher/examples/Qwen/Qwen3-8B/hf_streaming_dspark.yaml b/tools/launcher/examples/Qwen/Qwen3-8B/hf_streaming_dspark.yaml new file mode 100644 index 00000000000..d9590341963 --- /dev/null +++ b/tools/launcher/examples/Qwen/Qwen3-8B/hf_streaming_dspark.yaml @@ -0,0 +1,159 @@ +# DSpark streaming speculative-decoding training for Qwen3-8B. +# +# DSpark = the DFlash backbone + a lightweight sequential (Markov) head + a +# confidence head, generating a causal block semi-autoregressively; see +# dspark.yaml for the head architecture and the three-term loss +# (ce_alpha*CE + l1_alpha*TVD + conf_alpha*confidence_BCE). +# +# Runs the shared streaming pipeline (common/eagle3/train_eagle_streaming.sh): +# a live `vllm serve` runs the target model and ships its hidden states to the +# trainer over NIXL RDMA — no offline hidden-state dump, no disk round-trip. +# Same transport as hf_streaming_dflash.yaml; the recipe changes +# (dflash.yaml -> dspark.yaml), which is what adds the Markov + confidence heads. +# +# Qwen3-8B is the small end of this pipeline — it fits on 2 nodes / 1 GPU each, +# which makes it the recommended first run before scaling to a large MoE target +# (see the Kimi-K2.6 and MiniMax-M3 multi-node examples, same pipeline). +# +# 3-step pipeline: +# task_0: Build input conversations (jsonl) +# task_1: Streaming train — node 0 vllm serve, node 1 trainer +# task_2: vLLM smoke test with DSpark speculative decoding +# +# Tasks share /scratchspace to pass artifacts; the export lands in +# /scratchspace/export. +# +# NOTE ON AR EVAL: dspark.yaml keeps estimate_ar=false and this yaml disables the +# periodic AR validation. The training-time eval runs the DFlash backbone only +# (the Markov head is not applied), so an AR number would describe the backbone, +# not the trained DSpark model. Measure acceptance with task_2 or specdec_bench. +# +# Usage: +# uv run launch.py --yaml examples/Qwen/Qwen3-8B/hf_streaming_dspark.yaml --yes + +job_name: Qwen3-8B_DSpark_streaming +pipeline: + allow_to_fail: false + skip: false + note: + + global_vars: + hf_model: /hf-local/Qwen/Qwen3-8B + + # Step 1: Build /scratchspace/data/train.jsonl. + # + # To train on a target-synthesized corpus instead (recommended — matching the + # target's own output distribution raises acceptance length), run hf_synth.yaml + # first, set `skip: true` here, and point data.data_path at its output_dir. + # eagle_utils also accepts a directory of *.jsonl shards directly. + task_0: + script: common/eagle3/make_dataset.sh + args: + - -f modules/Model-Optimizer/examples/dataset/example_data_config.yaml + - --full-conversations + slurm_config: + _factory_: "slurm_factory" + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: 1 + container: nvcr.io/nvidia/tensorrt-llm/release:1.3.0rc20 + + # Step 2: Streaming DSpark training — node 0 vllm serve, node 1 trainer. + # + # The draft dims, Markov/confidence head config and loss weights come from + # dspark.yaml, whose defaults are already Qwen3-tuned (num_attention_heads=32, + # num_key_value_heads=8, head_dim=128, intermediate_size=12288). Unlike the + # Kimi/M3 examples there is no dims override block here for exactly that + # reason — retargeting to another base means setting them explicitly, since + # the draft does NOT inherit the base's GQA/FFN dims. + # + # Qwen3-8B also needs no rope_theta pin (the draft default 1e6 matches the + # base) and no trust_remote_code (stock architecture, no custom modeling file). + task_1: + script: common/eagle3/train_eagle_streaming.sh + args: + - --config modules/Model-Optimizer/modelopt_recipes/general/speculative_decoding/dspark.yaml + - model.model_name_or_path=<> + - data.mode=streaming + - data.data_path=/scratchspace/data/train.jsonl + - training.output_dir=/scratchspace/dspark + - training.training_seq_len=4096 + - training.disable_tqdm=true + # Backbone-only AR eval is misleading for DSpark (see header) — disable it. + - training.ar_validate_steps=500000 + - training.num_train_epochs=1 + - training.save_steps=1000 + - training.logging_steps=20 + # Batch size and LR are left at the dspark.yaml defaults + # (per_device_train_batch_size=1, learning_rate=6e-4, warmup_ratio=0.04), + # which target a from-scratch draft on a single GPU. The Kimi/M3 examples + # override these to a large batch and a gentle 1e-4 because they run 8 + # GPUs per node and warm-start a big backbone — do not copy those values + # here; at training_seq_len=4096 on 1 GPU a batch of 4 will OOM. + # The streaming corpus is prompt-only (the serve generates the response and + # we capture ITS hidden states), so there is no assistant span to mask -> + # train over the full sequence. This also means no {% generation %}-tagged + # chat template is needed here, unlike the online/offline examples. + - training.answer_only_loss=false + # The vLLM serve container has no tensorboard -> trainer init crash. + - training.report_to=none + # Semi-AR generation block; must divide training_seq_len. dspark.yaml ships + # 16 (the Kimi/M3 runs use 8); loss_decay_factor is the matching gamma. + - dflash.dflash_block_size=16 + - dflash.dflash_num_anchors=512 + - dflash.dflash_loss_decay_factor=7 + # Qwen3 has no native mask token; 151669 is an unused id. + - dflash.dflash_mask_token_id=151669 + - dflash.dflash_architecture_config.num_hidden_layers=5 + environment: + - HF_MODEL_CKPT: <> + # 5 aux capture ids = the draft's target_layer_ids+1, plus the true final + # hidden (36). build_target_layer_ids(36,5)=[1,9,17,25,33] -> +1. + # Capturing the second-to-last layer instead of the true final one trains + # fine and silently caps acceptance length, so keep the final id honest. + # No spaces: nemo_run emits `export FOO=value` unquoted, so a space splits. + - EAGLE_CAPTURE_IDS: "[2,10,18,26,34,36]" + - SERVE_TP: "1" + - STREAMING_NUM_WORKERS: "4" + # DSpark exports a custom modeling file; export must trust remote code. + - EXPORT_EXTRA_ARGS: "--trust_remote_code" + - SERVE_MAX_MODEL_LEN: "4160" + - SERVE_MAX_NUM_SEQS: "32" + - SERVE_READY_TIMEOUT: "1800" + # RDMA transport is UCX (InfiniBand) by default. On AWS EFA, uncomment — + # and note UCX SEGFAULTS at agent init on EFA nodes (it detects the EFA + # devices), so LIBFABRIC is required there even for single-node runs: + # - NIXL_BACKENDS: "LIBFABRIC" + # - FI_PROVIDER: "efa" + # - NCCL_IB_DISABLE: "1" + slurm_config: + _factory_: "slurm_factory" + nodes: 2 + ntasks_per_node: 1 + gpus_per_node: 1 + # Needs the aux-capture fix (vllm#46788), in-tree in recent nightlies; + # without it the final capture id is off by one and caps acceptance length. + container: vllm/vllm-openai:latest + + # Step 3: vLLM smoke test (DSpark, uses the exported checkpoint from training). + # This is the acceptance-length number that reflects the trained Markov head — + # the training-time eval cannot produce it (see the AR-eval note in the header). + # + # REQUIRES a vLLM build with DSpark speculative-decoding support. If your image + # predates it, `--speculative-config '{"method": "dspark", ...}'` is rejected at + # startup; pin a newer nightly, or set `skip: true` here and evaluate the + # exported drafter with the offline specdec_bench harness instead. + task_2: + script: common/specdec/vllm_smoke_test.sh + environment: + - HF_MODEL_CKPT: <> + - DRAFT_MODEL: /scratchspace/export + - SPEC_METHOD: "dspark" + - NUM_SPEC_TOKENS: "7" + - MIN_ACCEPTANCE_LENGTH: "1.2" + slurm_config: + _factory_: "slurm_factory" + container: vllm/vllm-openai:nightly + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: 1 From 6e52baf3798ee75deceacf4bec34fef714c068fd Mon Sep 17 00:00:00 2001 From: h-guo18 <67671475+h-guo18@users.noreply.github.com> Date: Wed, 12 Aug 2026 13:20:58 +0000 Subject: [PATCH 02/10] examples: correct Qwen3-8B DSpark walkthrough against a real run Validated the walkthrough end-to-end on a Slurm cluster (build -> streaming train -> export). Training and export work as described; the corrections below are things that only surface when you actually follow the doc. Blocking setup gaps: - HF_TOKEN was unlisted, but the prompt corpus is gated; without it Step 1 dies as DatasetNotFoundError, which reads like a wrong dataset name. - SLURM_HOST=localhost does not work: the launcher stages artifacts over SSH even when submitting locally, so sbatch reads from a path nothing populated. - SLURM_JOB_DIR must pre-exist, and launch.py needs 'uv pip install -e .' first; both fail with errors that name neither cause. - Note the identity= argument, and the nvcr.io pull failure mode. Content corrections: - Synthesis writes shard_{id}.jsonl + a .done sentinel; resume needs both and is whole-shard only, so an interrupted shard restarts from zero. - Added a runtime estimate (hours per shard) - the most useful thing to know before launching Step 1. - The shipped --max-model-len leaves no headroom for this corpus, the exact failure the doc warns about; say so and give the grep to size it. - Capture ids are tied to dflash_architecture_config.num_hidden_layers, not a fixed count of 5. - Dropped dflash_loss_decay_factor: dflash_loss_objective defaults to 'dpace', which ignores it outright (the trainer logs a warning saying so). - data.mode= is inert; streaming is selected by data.streaming_server_url, injected at runtime by the launcher script. - On an older vLLM, task_2 fails as AttributeError on 'hc_mult' from the DeepSeek-V4 DSpark loader, not as a clean method-name rejection. - Corrected the stale prompt-only-messages hang entry: hf_streaming_dataset now prefers 'conversations' and skips bad entries rather than stalling. - Point at /scratchspace/vllm_serve..log, where serve errors actually land. Co-Authored-By: Claude Opus 5 (1M context) Signed-off-by: h-guo18 <67671475+h-guo18@users.noreply.github.com> --- .../QWEN3_8B_DSPARK_WALKTHROUGH.md | 60 ++++++++++++++----- .../Qwen/Qwen3-8B/hf_streaming_dspark.yaml | 8 ++- 2 files changed, 49 insertions(+), 19 deletions(-) diff --git a/examples/speculative_decoding/QWEN3_8B_DSPARK_WALKTHROUGH.md b/examples/speculative_decoding/QWEN3_8B_DSPARK_WALKTHROUGH.md index 6dcf656e396..9f1b859933b 100644 --- a/examples/speculative_decoding/QWEN3_8B_DSPARK_WALKTHROUGH.md +++ b/examples/speculative_decoding/QWEN3_8B_DSPARK_WALKTHROUGH.md @@ -45,19 +45,32 @@ the launcher YAMLs below only override data and schedule fields. [launcher docs](../../tools/launcher/docs/configuration.md)). - `Qwen/Qwen3-8B` present under the launcher's `/hf-local/` mount. - Two container images: a vLLM image (serve + training) and a TensorRT-LLM image - (dataset build). Both are pinned in the YAMLs. + (dataset build). Both are pinned in the YAMLs. If your cluster's enroot cannot + pull `nvcr.io` (it resolves against Docker Hub and 401s, surfacing only as + `spank_pyxis.so: task_init() failed`), point `container:` at a local `.sqsh`. +- An `HF_TOKEN` with access to the prompt corpus — the dataset Step 1 ships with + is gated, and without a token it fails as `DatasetNotFoundError`, which reads + like a wrong name rather than a missing credential. Set your cluster environment once: ```bash -export SLURM_HOST=localhost # run on the login node +export SLURM_HOST=$(hostname) # NOT localhost: the launcher stages files + # over SSH even when it submits locally export SLURM_ACCOUNT= export SLURM_PARTITION= export SLURM_HF_LOCAL= -export SLURM_JOB_DIR= +export SLURM_JOB_DIR= # must already exist export NEMORUN_HOME=$PWD +export HF_TOKEN= + +mkdir -p $SLURM_JOB_DIR +cd tools/launcher && uv pip install -e . # launch.py imports modelopt_launcher ``` +Pass `identity=` on every `launch.py` call (the key the staging SSH +uses). All commands below omit it for brevity. + --- ## Step 1 — Data synthesis @@ -74,7 +87,10 @@ runs a Slurm **array job**. Each task starts its own `vllm serve` on one node an calls [`common/query.py`](../../tools/launcher/common/query.py) on its own shard of the dataset. `query.py` replays each sample's user turns, generates a fresh assistant reply, **discards the original assistant turns**, and writes -`train-{shard}-{total}.jsonl`. +`shard_{id}.jsonl` plus a `shard_{id}.done` sentinel. + +Budget for this: a shard is tens of thousands of samples at 1-2 samples/s, so +**hours per shard**. Size the array and the job time limit accordingly. The knobs worth knowing: @@ -83,21 +99,26 @@ The knobs worth knowing: | `--data` | Input prompt corpus (HF id or local path). Ships pointing at `nvidia/Speculative-Decoding-Multilingual-Prompt-v2`. | | `--save` | Output dir. Set `output_dir` in `global_vars`. | | `--num-shards` / `array` | Shard count and the array range. Keep them consistent. | -| `--num-proc` | Per-worker request concurrency. | +| `--num-proc` | Per-worker request concurrency. Defaults to 32; not set in the YAML. | | `--tensor-parallel-size` | Must match `gpus_per_node`. | Practical notes, mostly learned the hard way: -- **Resumable by construction.** A shard whose output file already exists is - skipped, so a requeued or re-dispatched job picks up where it stopped. Write - `--save` to a persistent mount, not to scratch. +- **Resume is per whole shard.** A shard is skipped only when *both* its + `.jsonl` and its `.done` sentinel exist; output is written once at the end. An + interrupted shard leaves nothing behind and restarts from zero. Write `--save` + to a persistent mount, not to scratch. - **Concurrency vs. yield.** Pushing `--num-proc` very high can *lower* total yield: requests start timing out under the stampede and those samples come out user-only. If you see a yield dip, lower it before raising it. - **Reasoning models need context headroom.** With `--max-model-len` too tight, any prompt longer than the generation cap gets a 400 back and is dropped. This loss is *systematic* — it removes the longest, hardest prompts and quietly - biases the corpus short. Keep `max-model-len >= max_prompt + max_output`. + biases the corpus short. Keep `max-model-len >= max_prompt + max_output`. The + shipped 4096 is *not* enough headroom for this corpus at a 1024-token cap; + raise it, or accept the drop. Grep the job log for `Error code: 400` to size + it — those 400s are also mangled by an unrelated `APIStatusError` unpickling + bug that kills a result-handler thread without stopping the run. - **Check yield before training.** Count records that actually have an assistant turn. A corpus that is silently 60% prompt-only will train, and the result will just be mysteriously bad. @@ -155,9 +176,12 @@ uv run launch.py --yaml examples/Qwen/Qwen3-8B/hf_streaming_dspark.yaml --dryrun ### The fields that actually matter **Capture ids.** `EAGLE_CAPTURE_IDS` selects which target layers the serve -captures. The draft consumes 5 evenly-spaced layers plus the final hidden state. -For Qwen3-8B (36 layers), `build_target_layer_ids(36,5) = [1,9,17,25,33]`; vLLM's -ids are those **+1**, plus the final layer: +captures. The draft consumes one evenly-spaced layer per draft layer, plus the +final hidden state — so this list is tied to +`dflash_architecture_config.num_hidden_layers` and must be recomputed if you +change draft depth. For Qwen3-8B (36 layers) with 5 draft layers, +`build_target_layer_ids(36,5) = [1,9,17,25,33]`; vLLM's ids are those **+1**, +plus the final layer: ```text EAGLE_CAPTURE_IDS: "[2,10,18,26,34,36]" @@ -234,9 +258,12 @@ without applying the Markov head, so its number describes the backbone rather than the model you trained. Acceptance length comes from the vLLM smoke test or the offline [specdec_bench](../specdec_bench/) harness. -`task_2` needs a vLLM build with DSpark support. If your image predates it, -startup fails on the `--speculative-config` method name; pin a newer nightly, or -set `skip: true` and use specdec_bench on `/scratchspace/export`. +`task_2` needs a vLLM build whose DSpark path supports a non-DeepSeek backbone. +On an older image the failure is not a clean rejection of the method name: the +loader routes into the DeepSeek-V4 DSpark model and dies mid-load on a config +field the Qwen3 drafter has no reason to carry (`AttributeError: 'Qwen3Config' +object has no attribute 'hc_mult'`). Pin a newer nightly, or set `skip: true` +and use specdec_bench on `/scratchspace/export`. Reading the numbers: training accuracy, acceptance length, and accepted-fraction are three different things and are easy to confuse. Acceptance length is the @@ -248,9 +275,10 @@ deployment-facing one. | Symptom | Likely cause | |---|---| -| Training hangs before step 1, no error | Corpus schema issue — a prompt-only `messages` field can stall the streaming dataset silently. Inspect one record. | +| Training starts but every batch is dropped | Corpus schema — entries without a usable `conversations`/`messages` list are skipped silently. Inspect one record. | | Loss curve healthy, acceptance length plateaus | Wrong final capture id (see above). | | Trainer OOM on the serve node | Lower `SERVE_GPU_MEM_UTIL`, `SERVE_MAX_MODEL_LEN`, `SERVE_MAX_NUM_SEQS`. | +| Trainer stuck at "waiting for serve address" | The serve died. Its log is `/scratchspace/vllm_serve..log`, not the task log — read that for the real error. | | Serve never becomes ready | Raise `SERVE_READY_TIMEOUT`; large models load slowly on cold cache. | | `export FOO=value` splitting | A space in an env value. Remove it. | | Synthesis yield well under 100% | Lower `--num-proc`, or raise `--max-model-len`. | diff --git a/tools/launcher/examples/Qwen/Qwen3-8B/hf_streaming_dspark.yaml b/tools/launcher/examples/Qwen/Qwen3-8B/hf_streaming_dspark.yaml index d9590341963..9fb723008cb 100644 --- a/tools/launcher/examples/Qwen/Qwen3-8B/hf_streaming_dspark.yaml +++ b/tools/launcher/examples/Qwen/Qwen3-8B/hf_streaming_dspark.yaml @@ -74,7 +74,8 @@ pipeline: args: - --config modules/Model-Optimizer/modelopt_recipes/general/speculative_decoding/dspark.yaml - model.model_name_or_path=<> - - data.mode=streaming + # Streaming is selected by data.streaming_server_url, which the launcher + # script injects once the serve is up — not by a data.mode= key. - data.data_path=/scratchspace/data/train.jsonl - training.output_dir=/scratchspace/dspark - training.training_seq_len=4096 @@ -98,10 +99,11 @@ pipeline: # The vLLM serve container has no tensorboard -> trainer init crash. - training.report_to=none # Semi-AR generation block; must divide training_seq_len. dspark.yaml ships - # 16 (the Kimi/M3 runs use 8); loss_decay_factor is the matching gamma. + # 16 (the Kimi/M3 runs use 8). No dflash_loss_decay_factor override here: + # dflash_loss_objective defaults to 'dpace', which derives per-position + # weights from draft confidence and ignores the decay gamma outright. - dflash.dflash_block_size=16 - dflash.dflash_num_anchors=512 - - dflash.dflash_loss_decay_factor=7 # Qwen3 has no native mask token; 151669 is an unused id. - dflash.dflash_mask_token_id=151669 - dflash.dflash_architecture_config.num_hidden_layers=5 From 2c0e0fdba15bada7c127c05dc52926a994729f09 Mon Sep 17 00:00:00 2001 From: Jinze Xue Date: Thu, 13 Aug 2026 15:16:31 -0700 Subject: [PATCH 03/10] Fix Qwen3 DSpark export and serving Signed-off-by: Jinze Xue --- examples/specdec_bench/run.py | 2 +- .../specdec_bench/models/vllm.py | 6 +++ .../torch/export/plugins/hf_spec_export.py | 40 +++++++++++++++---- .../speculative/plugins/test_hf_dspark.py | 30 ++++++++------ .../common/eagle3/train_eagle_streaming.sh | 2 +- 5 files changed, 58 insertions(+), 22 deletions(-) diff --git a/examples/specdec_bench/run.py b/examples/specdec_bench/run.py index ca2f9908966..9ed7ec44272 100644 --- a/examples/specdec_bench/run.py +++ b/examples/specdec_bench/run.py @@ -305,7 +305,7 @@ def run_simple(args): type=str, required=False, default="EAGLE3", - choices=["EAGLE3", "EAGLE", "DRAFT_TARGET", "NGRAM", "MTP", "DFLASH", "NONE"], + choices=["EAGLE3", "EAGLE", "DRAFT_TARGET", "NGRAM", "MTP", "DFLASH", "DSPARK", "NONE"], help="Speculative algorithm to use", ) parser.add_argument("--model_dir", type=str, required=True, help="Path to the model directory") diff --git a/examples/specdec_bench/specdec_bench/models/vllm.py b/examples/specdec_bench/specdec_bench/models/vllm.py index 24062399cb8..5bc0cdabb56 100644 --- a/examples/specdec_bench/specdec_bench/models/vllm.py +++ b/examples/specdec_bench/specdec_bench/models/vllm.py @@ -114,6 +114,12 @@ def __init__(self, model_dir, max_concurrent_requests, sampling_kwargs, **kwargs "model": kwargs.get("draft_model_dir"), "num_speculative_tokens": kwargs.get("speculative_num_draft_tokens", 8), } + elif kwargs.get("speculative_algorithm") == "DSPARK": + specdec = { + "method": "dspark", + "model": kwargs.get("draft_model_dir"), + "num_speculative_tokens": kwargs.get("speculative_num_steps", 7), + } elif kwargs.get("speculative_algorithm") == "NONE": specdec = None diff --git a/modelopt/torch/export/plugins/hf_spec_export.py b/modelopt/torch/export/plugins/hf_spec_export.py index 255b1d9ab04..c0b9825ba53 100644 --- a/modelopt/torch/export/plugins/hf_spec_export.py +++ b/modelopt/torch/export/plugins/hf_spec_export.py @@ -510,18 +510,30 @@ def _export_config(self): class DSparkExporter(DFlashExporter): """Draft model exporter for DSpark (DFlash backbone + sequential Markov head). - Same z-lab-compatible format as DFlash, plus the DSpark head weights - (``markov_w1.*`` / ``markov_w2.*`` / ``gate_proj.*`` / ``joint_proj.*`` / - ``confidence_proj.*``, already captured by the inherited ``dflash_module.`` - stripping) and the extra config fields the loader needs to rebuild the head - (``projector_type``, ``markov_rank``, ``markov_head_type``, - ``use_confidence_head``, ``shift_label``). + ModelOpt currently uses a Qwen3 draft backbone regardless of target architecture. + Head tensors and top-level config fields follow the DeepSpec/vLLM layout. """ + def _extract_state_dict(self, full_state_dict: dict): + """Map ModelOpt head names to the DeepSpec/vLLM DSpark layout.""" + export_sd = super()._extract_state_dict(full_state_dict) + prefixes = { + "markov_w1.": "markov_head.markov_w1.", + "markov_w2.": "markov_head.markov_w2.", + "gate_proj.": "markov_head.gate_proj.", + "joint_proj.": "markov_head.joint_proj.", + "confidence_proj.": "confidence_head.proj.", + } + for old_prefix, new_prefix in prefixes.items(): + for key in [key for key in export_sd if key.startswith(old_prefix)]: + export_sd[new_prefix + key[len(old_prefix) :]] = export_sd.pop(key) + return export_sd + def _export_config(self): - """Extend the DFlash config with the DSpark head fields.""" + """Add the fields consumed by the Qwen3 DSpark runtime.""" config = super()._export_config() draft_config = self.model.dflash_config + use_confidence_head = bool(getattr(draft_config, "use_confidence_head", False)) config["dflash_config"].update( { @@ -529,7 +541,19 @@ def _export_config(self): "shift_label": getattr(draft_config, "shift_label", True), "markov_rank": draft_config.markov_rank, "markov_head_type": getattr(draft_config, "markov_head_type", "vanilla"), - "use_confidence_head": bool(getattr(draft_config, "use_confidence_head", False)), + "use_confidence_head": use_confidence_head, + } + ) + config["architectures"] = ["Qwen3DSparkModel"] + config.update( + { + "mask_token_id": config["dflash_config"]["mask_token_id"], + "target_layer_ids": config["dflash_config"]["target_layer_ids"], + "num_anchors": self.model.dflash_num_anchors, + "markov_rank": draft_config.markov_rank, + "markov_head_type": getattr(draft_config, "markov_head_type", "vanilla"), + "enable_confidence_head": use_confidence_head, + "confidence_head_with_markov": use_confidence_head, } ) return config diff --git a/tests/unit/torch/speculative/plugins/test_hf_dspark.py b/tests/unit/torch/speculative/plugins/test_hf_dspark.py index 6a0f884d33f..265d510c962 100644 --- a/tests/unit/torch/speculative/plugins/test_hf_dspark.py +++ b/tests/unit/torch/speculative/plugins/test_hf_dspark.py @@ -260,7 +260,7 @@ def spy(*args, **kwargs): class TestDSparkExporter: - """Test the DSpark checkpoint export format (z-lab-compatible layout).""" + """Test the DeepSpec/vLLM Qwen3 DSpark checkpoint layout.""" def _export(self, tmp_path, head_type="vanilla", use_confidence_head=False): model = get_tiny_llama(num_hidden_layers=4) @@ -281,33 +281,39 @@ def _export(self, tmp_path, head_type="vanilla", use_confidence_head=False): @pytest.mark.parametrize("head_type", HEAD_TYPES) def test_export_weight_keys_match_reference(self, tmp_path, head_type): - """Exported weights carry the head tensors under reference names, no prefix.""" + """Exported head tensors use the Qwen3DSparkModel module names.""" sd = load_file(str(self._export(tmp_path, head_type=head_type) / "model.safetensors")) for key in sd: assert "dflash_module." not in key assert "rotary_emb" not in key - assert "markov_w1.weight" in sd - assert "markov_w2.weight" in sd - assert ("gate_proj.weight" in sd) == (head_type == "gated") - assert ("joint_proj.weight" in sd) == (head_type == "rnn") + assert "markov_head.markov_w1.weight" in sd + assert "markov_head.markov_w2.weight" in sd + assert ("markov_head.gate_proj.weight" in sd) == (head_type == "gated") + assert ("markov_head.joint_proj.weight" in sd) == (head_type == "rnn") def test_export_includes_confidence_weights(self, tmp_path): """The confidence head weights are exported when enabled.""" sd = load_file(str(self._export(tmp_path, use_confidence_head=True) / "model.safetensors")) - assert "confidence_proj.weight" in sd + assert "confidence_head.proj.weight" in sd + assert "confidence_head.proj.bias" in sd def test_export_config_has_dspark_fields(self, tmp_path): - """config.json carries the dflash_config DSpark head fields.""" + """config.json matches the Qwen3DSparkModel runtime contract.""" export_dir = self._export(tmp_path, head_type="gated") with open(export_dir / "config.json") as f: cfg = json.load(f) - assert cfg["architectures"] == ["DFlashDraftModel"] + assert cfg["architectures"] == ["Qwen3DSparkModel"] dc = cfg["dflash_config"] assert dc["projector_type"] == "dspark" + assert dc["shift_label"] is True assert dc["markov_rank"] == MARKOV_RANK assert dc["markov_head_type"] == "gated" assert dc["use_confidence_head"] is False - assert dc["shift_label"] is True - assert "mask_token_id" in dc - assert "target_layer_ids" in dc + assert cfg["markov_rank"] == MARKOV_RANK + assert cfg["markov_head_type"] == "gated" + assert cfg["enable_confidence_head"] is False + assert cfg["confidence_head_with_markov"] is False + assert cfg["num_anchors"] == 512 + assert cfg["mask_token_id"] == cfg["dflash_config"]["mask_token_id"] + assert cfg["target_layer_ids"] == cfg["dflash_config"]["target_layer_ids"] diff --git a/tools/launcher/common/eagle3/train_eagle_streaming.sh b/tools/launcher/common/eagle3/train_eagle_streaming.sh index 72b7388c3b1..4316f550c25 100755 --- a/tools/launcher/common/eagle3/train_eagle_streaming.sh +++ b/tools/launcher/common/eagle3/train_eagle_streaming.sh @@ -137,7 +137,7 @@ gpus_on_node() { nvidia-smi --query-gpu=count --format=csv,noheader,nounits | he # $1 = optional override (SERVE_ADVERTISE_IP / TRAINER_ADVERTISE_IP) resolve_routable_ip() { local ip="$1" - [ -z "$ip" ] && ip=$(getent hosts "${SLURMD_NODENAME:-$(hostname)}" 2>/dev/null | awk '{print $1}' | head -1) + [ -z "$ip" ] && ip=$(getent ahostsv4 "${SLURMD_NODENAME:-$(hostname)}" 2>/dev/null | awk '{print $1}' | head -1) [ -z "$ip" ] && ip=$(hostname -I | tr ' ' '\n' | grep -vE '^(127\.|169\.254\.|fe80:|::1)' | head -1) [ -z "$ip" ] && ip=$(hostname -I | awk '{print $1}') echo "$ip" From 673ffdc43d43428fb877f900bfabdc921b4cc078 Mon Sep 17 00:00:00 2001 From: Jinze Xue Date: Thu, 13 Aug 2026 17:23:34 -0700 Subject: [PATCH 04/10] Fix specdec benchmark shutdown Signed-off-by: Jinze Xue --- examples/specdec_bench/run.py | 1 + 1 file changed, 1 insertion(+) diff --git a/examples/specdec_bench/run.py b/examples/specdec_bench/run.py index 9ed7ec44272..b75422f7b03 100644 --- a/examples/specdec_bench/run.py +++ b/examples/specdec_bench/run.py @@ -242,6 +242,7 @@ def run_simple(args): ) runner.clear_metrics() + model.stop() if __name__ == "__main__": From 9c86bd8eda4c7cda5d6ecd11965f531fff4fbb63 Mon Sep 17 00:00:00 2001 From: Jinze Xue Date: Sat, 15 Aug 2026 16:32:29 -0700 Subject: [PATCH 05/10] feat(dspark): support Qwen3.5 training and evaluation Signed-off-by: Jinze Xue --- examples/specdec_bench/run.py | 17 +- .../specdec_bench/models/vllm.py | 1 + examples/speculative_decoding/eagle_utils.py | 73 ++++++-- .../torch/speculative/plugins/hf_dspark.py | 37 +++- .../speculative/plugins/modeling_fakebase.py | 6 +- .../plugins/modeling_final_norm.py | 1 + .../speculative/plugins/test_fakebase.py | 6 + .../speculative/plugins/test_hf_dspark.py | 20 ++- .../plugins/test_modeling_final_norm.py | 14 ++ tools/launcher/common/query.py | 108 ++++++++++-- .../export_latest_and_vllm_smoke_test.sh | 37 ++++ .../common/specdec/vllm_smoke_test.sh | 17 +- tools/launcher/common/vllm/query.sh | 3 +- tools/launcher/core.py | 8 +- .../Qwen/Qwen3.5-9B/chat_template_train.jinja | 161 ++++++++++++++++++ tools/launcher/launch.py | 2 + tools/launcher/slurm_config.py | 3 + tools/launcher/tests/test_slurm_config.py | 3 + 18 files changed, 463 insertions(+), 54 deletions(-) create mode 100644 tools/launcher/common/specdec/export_latest_and_vllm_smoke_test.sh create mode 100644 tools/launcher/examples/Qwen/Qwen3.5-9B/chat_template_train.jinja diff --git a/examples/specdec_bench/run.py b/examples/specdec_bench/run.py index b75422f7b03..1c155ad0ef2 100644 --- a/examples/specdec_bench/run.py +++ b/examples/specdec_bench/run.py @@ -15,6 +15,7 @@ import argparse import asyncio +import json import yaml from specdec_bench import datasets, metrics, models, runners @@ -58,6 +59,13 @@ } +def parse_runtime_params(value): + if value.lstrip().startswith("{"): + return json.loads(value) + with open(value) as f: + return yaml.safe_load(f) + + async def tqdm_gather(*fs, return_exceptions=False, **kwargs): if not return_exceptions: return await tqdm.gather(*fs, **kwargs) @@ -319,10 +327,10 @@ def run_simple(args): ) parser.add_argument( "--runtime_params", - type=str, + type=parse_runtime_params, required=False, default=None, - help="Path to the runtime params yaml file", + help="Path to a runtime params YAML file or an inline JSON object", ) parser.add_argument( "--temperature", @@ -405,10 +413,7 @@ def run_simple(args): ) args = parser.parse_args() - if args.runtime_params is not None: - with open(args.runtime_params) as f: - args.runtime_params = yaml.safe_load(f) - else: + if args.runtime_params is None: args.runtime_params = {} if args.dataset is None: assert ( diff --git a/examples/specdec_bench/specdec_bench/models/vllm.py b/examples/specdec_bench/specdec_bench/models/vllm.py index 5bc0cdabb56..1e470b98022 100644 --- a/examples/specdec_bench/specdec_bench/models/vllm.py +++ b/examples/specdec_bench/specdec_bench/models/vllm.py @@ -151,6 +151,7 @@ def __init__(self, model_dir, max_concurrent_requests, sampling_kwargs, **kwargs temperature=sampling_kwargs.get("temperature", 1.0), top_p=sampling_kwargs.get("top_p", 1.0), top_k=sampling_kwargs.get("top_k", 0), + presence_penalty=sampling_kwargs.get("presence_penalty", 0.0), ) self.loop = asyncio.new_event_loop() asyncio.set_event_loop(self.loop) diff --git a/examples/speculative_decoding/eagle_utils.py b/examples/speculative_decoding/eagle_utils.py index 2ba2635fbca..1bb8b212009 100644 --- a/examples/speculative_decoding/eagle_utils.py +++ b/examples/speculative_decoding/eagle_utils.py @@ -53,6 +53,17 @@ __all__ = ["EagleOfflineDataCollator", "OfflineSupervisedDataset"] +def _aggregate_accuracy_counts(counts): + """Compute per-position and total accuracy across microbatches and distributed ranks.""" + counts = torch.stack(counts).sum(dim=0) + if torch.distributed.is_available() and torch.distributed.is_initialized(): + torch.distributed.all_reduce(counts, op=torch.distributed.ReduceOp.SUM) + correct, valid = counts + per_position_acc = correct / valid.clamp_min(1.0) + total_acc = correct.sum() / valid.sum().clamp_min(1.0) + return per_position_acc.unsqueeze(0).cpu().numpy(), total_acc.item() + + def make_speculative_data_module( tokenizer: transformers.PreTrainedTokenizer, data_args, @@ -211,11 +222,16 @@ def compute_loss(self, *args, **kwargs): """Override compute_loss to save train accs and per-component losses in trainer state.""" if not hasattr(self.state, "training_accs"): self.state.training_accs = [] + if not hasattr(self.state, "training_acc_counts"): + self.state.training_acc_counts = [] if not hasattr(self.state, "component_losses"): self.state.component_losses = {"eagle": [], "preservation": []} kwargs.pop("num_items_in_batch", None) loss, outputs = super().compute_loss(return_outputs=True, *args, **kwargs) - if hasattr(outputs, "train_acc") and any(outputs.train_acc): + if hasattr(outputs, "train_acc_correct"): + counts = torch.stack((outputs.train_acc_correct, outputs.train_acc_valid)).detach() + self.state.training_acc_counts.append(counts) + elif hasattr(outputs, "train_acc") and any(outputs.train_acc): self.state.training_accs.append(outputs.train_acc) # Track per-component losses for key, attr in [ @@ -366,37 +382,57 @@ def __init__(self, ar_validate_steps: int = 1000, estimate_ar: bool = False): self.estimate_ar = estimate_ar def on_log(self, args, state, control, **kwargs): - """Log training acc and estimate AR during log step.""" - if not hasattr(state, "training_accs") or len(state.training_accs) == 0: + """Log training accuracy and optionally estimate acceptance length.""" + # Normalize current raw-count metrics and legacy accuracy metrics to + # [parallel branch, draft position]. + accuracy_counts = getattr(state, "training_acc_counts", []) + legacy_accs = getattr(state, "training_accs", []) + if accuracy_counts: + per_position_acc, total_acc = _aggregate_accuracy_counts(accuracy_counts) + elif legacy_accs: + per_position_acc = np.mean(legacy_accs, axis=0) + total_acc = None + else: return control - average_acc = np.mean(state.training_accs, axis=0) - # Always print accuracy to console + + # Print one accuracy summary for the completed logging window. try: - acc_str = ", ".join(f"{a:.4f}" for a in np.array(average_acc).flatten()) - print_rank_0(f"Step {state.global_step} Training Acc: [{acc_str}]") + acc_str = ", ".join(f"{a:.4f}" for a in np.array(per_position_acc).flatten()) + if total_acc is not None: + print_rank_0( + f"Step {state.global_step} Training Acc: " + f"total={total_acc:.4f}, per-position=[{acc_str}]" + ) + else: + print_rank_0(f"Step {state.global_step} Training Acc: [{acc_str}]") except Exception: - print_rank_0(f"Step {state.global_step} Training Acc: {average_acc}") - # Log accuracy to HF Trainer's logs dict (picked up by TensorBoard) - logs = kwargs.get("logs") or {} - for i, draft_acc in enumerate(average_acc): + print_rank_0(f"Step {state.global_step} Training Acc: {per_position_acc}") + + # Publish total and per-position metrics through the Trainer log dict. + logs = kwargs.get("logs") + if logs is None: + logs = {} + if total_acc is not None: + logs["train_acc/total"] = total_acc + for i, draft_acc in enumerate(per_position_acc): for j, step_acc in enumerate(draft_acc): logs[f"train_acc/parallel_{i}_step_{j}"] = float(step_acc) + if self.estimate_ar: - # Calculate mean training AR since last log - # NOTE: This is only an estimate of the real AR. + # Estimate acceptance length from conditional per-position accuracies. est_ar = 1 acc_cumprod = 1 - for step_acc in average_acc[0]: + for step_acc in per_position_acc[0]: acc_cumprod *= step_acc est_ar += acc_cumprod - # Parallel draft tokens only used after all eagle tokens - for draft_acc in average_acc[1:]: + # Parallel branches contribute only after all sequential EAGLE tokens are accepted. + for draft_acc in per_position_acc[1:]: acc_cumprod *= draft_acc[-1] est_ar += acc_cumprod print_rank_0(f"Step {state.global_step} Estimated Training AR: {est_ar:.4f}") logs["estimated_training_ar"] = est_ar - # log to wandb + # Forward the same logging window to W&B when enabled. if wandb is not None and wandb.run is not None and is_master(): if logs: wandb.log({k: v for k, v in logs.items() if v is not None}, step=state.global_step) @@ -407,8 +443,9 @@ def on_log(self, args, state, control, **kwargs): if vals: wandb.log({f"{key}_loss": np.mean(vals)}, step=state.global_step) - # reset training_accs and component_losses + # Start a fresh accumulation window after logging. state.training_accs = [] + state.training_acc_counts = [] if hasattr(state, "component_losses"): state.component_losses = {"eagle": [], "preservation": []} return control diff --git a/modelopt/torch/speculative/plugins/hf_dspark.py b/modelopt/torch/speculative/plugins/hf_dspark.py index 4183a63f1d1..2fe7c679667 100644 --- a/modelopt/torch/speculative/plugins/hf_dspark.py +++ b/modelopt/torch/speculative/plugins/hf_dspark.py @@ -103,6 +103,17 @@ def _chunk(a, b): return torch.cat(outs, dim=0) +@torch.no_grad() +def _accuracy_counts(logits, target_ids, eval_mask): + """Return correct/valid token counts for each draft position.""" + keep = eval_mask > 0.5 + correct = ((logits.argmax(dim=-1) == target_ids) & keep).sum( + dim=(0, 1), dtype=torch.float32 + ) + valid = keep.sum(dim=(0, 1), dtype=torch.float32) + return correct, valid + + @DSparkDMRegistry.register({PreTrainedModel: "hf.PreTrainedModel"}) class HFDSparkModel(HFDFlashModel): """DFlash model with the DSpark sequential (Markov) + confidence head. @@ -208,6 +219,7 @@ def _compute_dspark_loss( ) weight_mask = weight_mask * orig_loss_mask + accuracy_correct, accuracy_valid = _accuracy_counts(final_logits, target_ids, weight_mask) binary_eval_mask = weight_mask.view(-1) # Exponential position decay (exp(-k/gamma); position 0 gets weight 1). @@ -235,7 +247,7 @@ def _compute_dspark_loss( if valid_count <= 1.0: loss = flat_final.sum() * 0.0 metrics = {"ce_loss": 0.0, "l1_loss": 0.0, "confidence_loss": 0.0, "base_accuracy": 0.0} - return loss, 0.0, metrics + return loss, accuracy_correct, accuracy_valid, metrics # Term 1: cross-entropy on the corrected (final) logits. ce_per_token = F.cross_entropy(flat_final, flat_targets, reduction="none") @@ -264,9 +276,6 @@ def _compute_dspark_loss( with torch.no_grad(): eval_count = binary_eval_mask.sum() + 1e-6 keep = binary_eval_mask > 0.5 - accuracy = ( - ((flat_final.argmax(dim=-1) == flat_targets) & keep).sum().float() / eval_count - ).item() base_accuracy = ( ((flat_base.argmax(dim=-1) == flat_targets) & keep).sum().float() / eval_count ).item() @@ -276,7 +285,7 @@ def _compute_dspark_loss( "confidence_loss": float(confidence_loss.detach().item()), "base_accuracy": base_accuracy, } - return loss, accuracy, metrics + return loss, accuracy_correct, accuracy_valid, metrics def forward( self, @@ -373,7 +382,13 @@ def forward( if n_blocks == 0 or not block_keep_mask.any(): # Zero loss that still flows through all draft params for DDP sync. dummy = sum(p.sum() for p in self.dflash_module.parameters()) * 0.0 - return ModelOutput(loss=dummy, logits=None, train_acc=[[0.0]]) + zeros = torch.zeros(block_size, device=device) + return ModelOutput( + loss=dummy, + logits=None, + train_acc_correct=zeros, + train_acc_valid=zeros, + ) # 4. Build draft inputs (inherited helpers). noise_embedding = self._build_noise_embedding( @@ -403,7 +418,7 @@ def forward( final_logits, confidence_logits = self._apply_markov_head( hidden, backbone_logits, input_ids, anchor_positions, n_blocks ) - loss, accuracy, metrics = self._compute_dspark_loss( + loss, accuracy_correct, accuracy_valid, metrics = self._compute_dspark_loss( backbone_logits, final_logits, confidence_logits, @@ -414,7 +429,13 @@ def forward( target_model_logits, ) - return ModelOutput(loss=loss, logits=None, train_acc=[[accuracy]], dspark_metrics=metrics) + return ModelOutput( + loss=loss, + logits=None, + train_acc_correct=accuracy_correct, + train_acc_valid=accuracy_valid, + dspark_metrics=metrics, + ) @torch.no_grad() def pseudo_speculative_generate(self, input_ids, steps=1): diff --git a/modelopt/torch/speculative/plugins/modeling_fakebase.py b/modelopt/torch/speculative/plugins/modeling_fakebase.py index 2b5fe989c03..92b08d635f2 100644 --- a/modelopt/torch/speculative/plugins/modeling_fakebase.py +++ b/modelopt/torch/speculative/plugins/modeling_fakebase.py @@ -191,6 +191,10 @@ def from_source(cls, source: str, trust_remote_code: bool = False) -> "FakeBaseM ), orig_config, ) + rope_theta = getattr(base_cfg, "rope_theta", None) + rope_parameters = getattr(base_cfg, "rope_parameters", {}) + if rope_theta is None and isinstance(rope_parameters, dict): + rope_theta = rope_parameters.get("rope_theta") # Extract necessary info for spec training from base config config = FakeBaseConfig( num_hidden_layers=getattr(base_cfg, "num_hidden_layers", None), @@ -203,7 +207,7 @@ def from_source(cls, source: str, trust_remote_code: bool = False) -> "FakeBaseM num_key_value_heads=getattr(base_cfg, "num_key_value_heads", None), intermediate_size=getattr(base_cfg, "intermediate_size", None), rms_norm_eps=getattr(base_cfg, "rms_norm_eps", 1e-6), - rope_theta=getattr(base_cfg, "rope_theta", None), + rope_theta=rope_theta, final_norm_type=_select_final_norm_type( getattr(base_cfg, "model_type", None), base_cfg ), diff --git a/modelopt/torch/speculative/plugins/modeling_final_norm.py b/modelopt/torch/speculative/plugins/modeling_final_norm.py index 718d591b662..23f6634b6b7 100644 --- a/modelopt/torch/speculative/plugins/modeling_final_norm.py +++ b/modelopt/torch/speculative/plugins/modeling_final_norm.py @@ -87,6 +87,7 @@ def extra_repr(self): "qwen2": "rmsnorm", "qwen3": "rmsnorm", "qwen3_moe": "rmsnorm", + "qwen3_5_text": "gemma_rmsnorm", # Qwen3.5 scales by (1 + weight). "deepseek_v3": "rmsnorm", "kimi_k2": "rmsnorm", # Kimi-K2 / K2-Thinking (DeepSeek-V3 arch) report model_type "kimi_k2" "kimi_k25": "rmsnorm", # Kimi-K2.5 / K2.6 / K2.7 all report model_type "kimi_k25" diff --git a/tests/unit/torch/speculative/plugins/test_fakebase.py b/tests/unit/torch/speculative/plugins/test_fakebase.py index cf6dfe1a6bc..2b0db5766b6 100644 --- a/tests/unit/torch/speculative/plugins/test_fakebase.py +++ b/tests/unit/torch/speculative/plugins/test_fakebase.py @@ -67,6 +67,12 @@ def test_fakebase_local_happy_path(fake_checkpoint): assert model.embed_tokens.weight.shape == torch.Size([_VOCAB_SIZE, _HIDDEN_SIZE]) +def test_fakebase_reads_transformers5_rope_theta(fake_checkpoint, fake_config): + fake_config.rope_parameters = {"rope_theta": 10_000_000} + model = FakeBaseModel.from_source(str(fake_checkpoint)) + assert model.config.rope_theta == 10_000_000 + + def test_fakebase_missing_index_raises(tmp_path, fake_config): with pytest.raises(FileNotFoundError, match="safetensors"): FakeBaseModel.from_source(str(tmp_path)) diff --git a/tests/unit/torch/speculative/plugins/test_hf_dspark.py b/tests/unit/torch/speculative/plugins/test_hf_dspark.py index 265d510c962..c159ba4f53c 100644 --- a/tests/unit/torch/speculative/plugins/test_hf_dspark.py +++ b/tests/unit/torch/speculative/plugins/test_hf_dspark.py @@ -34,7 +34,7 @@ import modelopt.torch.speculative as mtsp from modelopt.torch.speculative.config import DFLASH_DEFAULT_CFG from modelopt.torch.speculative.plugins.hf_dflash import HFDFlashModel -from modelopt.torch.speculative.plugins.hf_dspark import HFDSparkModel +from modelopt.torch.speculative.plugins.hf_dspark import HFDSparkModel, _accuracy_counts from modelopt.torch.speculative.plugins.modeling_dflash import DFlashModule from modelopt.torch.speculative.plugins.modeling_dspark import DSparkModule @@ -72,6 +72,21 @@ def _get_dspark_config( return config +def test_accuracy_counts_per_position(): + """Accuracy is represented as raw correct/valid counts for each block position.""" + pred_ids = torch.tensor([[[0, 1, 2, 0], [1, 1, 0, 2]]]) + target_ids = torch.tensor([[[0, 2, 2, 1], [1, 0, 0, 2]]]) + eval_mask = torch.tensor([[[1, 1, 1, 0], [1, 0, 1, 1]]]) + logits = torch.nn.functional.one_hot(pred_ids, num_classes=3).float() + + correct, valid = _accuracy_counts(logits, target_ids, eval_mask) + + torch.testing.assert_close(correct, torch.tensor([2.0, 0.0, 2.0, 1.0])) + torch.testing.assert_close(valid, torch.tensor([2.0, 1.0, 2.0, 1.0])) + assert correct.sum() == 5 + assert valid.sum() == 6 + + class TestDSparkConvert: """Test DSpark model conversion routing and head construction.""" @@ -163,6 +178,9 @@ def test_forward_loss_metrics_and_grads(self, head_type): assert out.loss.requires_grad assert out.loss.dim() == 0 + assert out.train_acc_correct.shape == (BLOCK_SIZE,) + assert out.train_acc_valid.shape == (BLOCK_SIZE,) + assert torch.all(out.train_acc_correct <= out.train_acc_valid) # three-term loss bookkeeping for key in ("ce_loss", "l1_loss", "confidence_loss", "base_accuracy"): assert key in out.dspark_metrics diff --git a/tests/unit/torch/speculative/plugins/test_modeling_final_norm.py b/tests/unit/torch/speculative/plugins/test_modeling_final_norm.py index 882e1c85416..6bd9189bef6 100644 --- a/tests/unit/torch/speculative/plugins/test_modeling_final_norm.py +++ b/tests/unit/torch/speculative/plugins/test_modeling_final_norm.py @@ -21,6 +21,7 @@ pytest.importorskip("transformers") from modelopt.torch.speculative.plugins.modeling_final_norm import ( + _FinalGemmaRMSNorm, _FinalRMSNorm, _maybe_apply_base_final_norm, _select_final_norm_type, @@ -34,6 +35,7 @@ [ ("llama", "rmsnorm"), ("qwen3", "rmsnorm"), + ("qwen3_5_text", "gemma_rmsnorm"), ("deepseek_v3", "rmsnorm"), ("kimi_k2", "rmsnorm"), ("kimi_k25", "rmsnorm"), @@ -60,6 +62,18 @@ def test_final_rmsnorm_dtype_and_shape(): assert out.shape == x.shape +def test_qwen35_final_norm_matches_transformers(): + qwen35 = pytest.importorskip("transformers.models.qwen3_5.modeling_qwen3_5") + reference = qwen35.Qwen3_5RMSNorm(_HIDDEN_SIZE, eps=1e-6).to(torch.bfloat16) + actual = _FinalGemmaRMSNorm(_HIDDEN_SIZE, eps=1e-6, dtype=torch.bfloat16) + weight = torch.randn(_HIDDEN_SIZE, dtype=torch.bfloat16) + with torch.no_grad(): + reference.weight.copy_(weight) + actual.weight.copy_(weight) + hidden = torch.randn(2, 4, _HIDDEN_SIZE, dtype=torch.bfloat16) + torch.testing.assert_close(actual(hidden), reference(hidden), rtol=0, atol=0) + + def test_maybe_apply_norm_postnorm_is_noop(): """base_hidden_prenorm falsy or absent -> hidden returned unchanged, norm never touched.""" hidden = torch.randn(2, 4, _HIDDEN_SIZE) diff --git a/tools/launcher/common/query.py b/tools/launcher/common/query.py index 27c41953d8a..698a5dfe78a 100644 --- a/tools/launcher/common/query.py +++ b/tools/launcher/common/query.py @@ -22,11 +22,12 @@ # ruff: noqa: D101, D102, D103, D107, PLR1722 import argparse +import json import os import re from datasets import load_dataset -from openai import OpenAI +from openai import BadRequestError, OpenAI early_termination = False @@ -46,7 +47,17 @@ def __init__(self, args): self.args = args self._pid = os.getpid() self.client = OpenAI(base_url=args.base_url) - self.generate(messages=[{"role": "user", "content": "Hello! /no_think"}], verbose=True) + # Exercise the selected no-thinking control path during server warmup. + if args.thinking_control == "chat-template-kwargs": + self.generate( + messages=[{"role": "user", "content": "Hello!"}], + verbose=True, + enable_thinking=False, + ) + else: + self.generate( + messages=[{"role": "user", "content": "Hello! /no_think"}], verbose=True + ) def _ensure_client(self): """Reinitialize the HTTP client if we've been forked into a new process. @@ -59,15 +70,39 @@ def _ensure_client(self): self._pid = os.getpid() self.client = OpenAI(base_url=self.args.base_url) - def generate(self, messages, verbose=False, **chat_template_kwargs): + def generate( + self, + messages, + verbose=False, + sample_id="", + sampling_params=None, + **chat_template_kwargs, + ): global early_termination self._ensure_client() try: + sampling_params = sampling_params or {} + arg_temperature = self.args.temperature if self.args.temperature is not None else 0.0 + chat_template_kwargs = { + key: value for key, value in chat_template_kwargs.items() if value is not None + } + # vLLM exposes top_k and chat-template controls as OpenAI API extensions. + request_kwargs = {} + extra_body = {} + if chat_template_kwargs: + extra_body["chat_template_kwargs"] = chat_template_kwargs + if "top_k" in sampling_params: + extra_body["top_k"] = sampling_params["top_k"] + if extra_body: + request_kwargs["extra_body"] = extra_body completion = self.client.chat.completions.create( model=self.args.model, messages=messages, - temperature=self.args.temperature, + temperature=sampling_params.get("temperature", arg_temperature), + top_p=sampling_params.get("top_p", 1.0), + presence_penalty=sampling_params.get("presence_penalty", 0.0), max_tokens=self.args.max_tokens, + **request_kwargs, ) new_message = completion.choices[0].message.content if verbose: @@ -76,11 +111,18 @@ def generate(self, messages, verbose=False, **chat_template_kwargs): print("[NEW] {:10}: {:64}\n\n".format("assistant", new_message)) new_message = {"role": "assistant", "content": new_message} + except BadRequestError as e: + # Skip overlength rows; all other request errors must fail the shard. + if e.param == "input_tokens": + print(f"[SKIP] {sample_id}: {e}") + return None + print(e) + raise RuntimeError(str(e)) from None except Exception as e: print(e) if "Connection error" in str(e): early_termination = True - raise # always propagate so datasets.map() halts the shard + raise RuntimeError(str(e)) from None return new_message @@ -103,7 +145,9 @@ def generate(self, messages, verbose=False, **chat_template_kwargs): "--num-samples", "--num_samples", type=int, default=None, help="maximum samples to process." ) parser.add_argument("--num-proc", type=int, default=32, help="number of processes (concurrency).") -parser.add_argument("--temperature", type=float, default=0.0, help="temperature.") +parser.add_argument("--temperature", type=float, default=None, help="temperature (default: 0).") +parser.add_argument("--sampling-params", type=json.loads, default=None) +parser.add_argument("--non-thinking-sampling-params", type=json.loads, default=None) parser.add_argument( "--max-tokens", type=int, default=None, help="maximum tokens to generate per response." ) @@ -114,8 +158,20 @@ def generate(self, messages, verbose=False, **chat_template_kwargs): help="maximum total length (prompt + output). Stops synthesizing remaining turns " "when context exceeds this limit.", ) +parser.add_argument( + "--thinking-control", + choices=["soft-switch", "chat-template-kwargs"], + default="soft-switch", + help="Disable thinking with /no_think or the server's chat_template_kwargs API.", +) args = parser.parse_args() +if args.temperature is not None and any( + params is not None and "temperature" in params + for params in (args.sampling_params, args.non_thinking_sampling_params) +): + parser.error("--temperature cannot be combined with temperature in a sampling profile") + llm = LLM(args) if args.data is None: @@ -133,6 +189,7 @@ def synthesize(data): raise ValueError( "No conversations or messages in the data. Only OAI chat data is supported." ) + sample_id = data.get("uuid") or data.get("conversation_id") or "" # Handle generation specific kwargs. enable_thinking = data.get("enable_thinking", True) @@ -146,7 +203,7 @@ def synthesize(data): if role == "system": current_messages.append(msg) elif role == "user": - if not enable_thinking: + if not enable_thinking and args.thinking_control == "soft-switch": # Copy to avoid mutating the original dataset row. msg = dict(msg) msg["content"] = msg["content"] + " /no_think" @@ -159,13 +216,30 @@ def synthesize(data): est_tokens = ctx_chars // 3 # rough char-to-token estimate if est_tokens + args.max_tokens > max_total: # Drop this user turn — context too long for another generation + print(f"[SKIP] {sample_id}: estimated context exceeds {max_total} tokens") current_messages.pop() break - new_message = llm.generate(current_messages, verbose=False) + # Thinking and non-thinking rows use their own sampling profiles. + new_message = llm.generate( + current_messages, + verbose=False, + sample_id=sample_id, + sampling_params=( + args.non_thinking_sampling_params + if not enable_thinking and args.non_thinking_sampling_params is not None + else args.sampling_params + ), + enable_thinking=( + enable_thinking if args.thinking_control == "chat-template-kwargs" else None + ), + ) if new_message is None: + current_messages.pop() break + # Preserve the mode so the training template can handle unfinished thinking. + new_message["enable_thinking"] = enable_thinking last_full_message = new_message if enable_thinking: @@ -200,7 +274,12 @@ def synthesize(data): current_messages[i] = last_full_message break - return {"messages": current_messages} + # Preserve the dataset schema for failed rows, then filter them after mapping. + synthesis_ok = last_full_message is not None + output_messages = [dict(msg) for msg in (current_messages if synthesis_ok else messages)] + for msg in output_messages: + msg.setdefault("enable_thinking", enable_thinking) + return {"messages": output_messages, "_synthesis_ok": synthesis_ok} # Support both HF Hub repo IDs and local file paths (.jsonl, .json, .parquet, etc.) @@ -252,7 +331,16 @@ def synthesize(data): num_proc = min(args.num_proc, len(shard)) if shard_id % 2 == 0: shard = shard.map(disable_thinking_column, num_proc=num_proc) - updated_shard = shard.map(synthesize, num_proc=num_proc) + # Reuse completed map-worker caches and omit rows without a generated response. + cache_dir = os.path.join(args.save, ".cache") + os.makedirs(cache_dir, exist_ok=True) + updated_shard = shard.map( + synthesize, + num_proc=num_proc, + cache_file_name=os.path.join(cache_dir, f"shard_{shard_id}.arrow"), + ) + updated_shard = updated_shard.filter(lambda row: row["_synthesis_ok"]) + updated_shard = updated_shard.remove_columns("_synthesis_ok") updated_shard.to_json(file_path) with open(done_path, "w") as done_file: done_file.write("done\n") diff --git a/tools/launcher/common/specdec/export_latest_and_vllm_smoke_test.sh b/tools/launcher/common/specdec/export_latest_and_vllm_smoke_test.sh new file mode 100644 index 00000000000..fd5b39d40fd --- /dev/null +++ b/tools/launcher/common/specdec/export_latest_and_vllm_smoke_test.sh @@ -0,0 +1,37 @@ +#!/bin/bash +# SPDX-FileCopyrightText: Copyright (c) 2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +set -e + +SCRIPT_DIR="$(dirname "$(readlink -f "$0")")" +TRAINING_DIR=${DRAFT_TRAINING_DIR:?DRAFT_TRAINING_DIR must be set} +EXPORT_DIR=${DRAFT_MODEL:?DRAFT_MODEL must be set} + +LATEST_CHECKPOINT="" +while IFS= read -r checkpoint; do + if [ -s "$checkpoint/config.json" ] && [ -s "$checkpoint/model.safetensors" ] && \ + [ -s "$checkpoint/modelopt_state.pth" ] && [ -s "$checkpoint/trainer_state.json" ]; then + LATEST_CHECKPOINT=$checkpoint + break + fi +done < <(find "$TRAINING_DIR" -maxdepth 1 -type d -name 'checkpoint-*' -print | sort -Vr) + +if [ -z "$LATEST_CHECKPOINT" ]; then + echo "ERROR: No complete checkpoint found in $TRAINING_DIR" >&2 + exit 1 +fi + +echo "Exporting latest checkpoint: $LATEST_CHECKPOINT -> $EXPORT_DIR" +EXPORT_ARGS=(--model_path "$LATEST_CHECKPOINT" --export_path "$EXPORT_DIR") +[ "${EXPORT_TRUST_REMOTE_CODE:-0}" = "1" ] && EXPORT_ARGS+=(--trust_remote_code) +python3 -m pip install --no-cache-dir 'omegaconf>=2.3.0' 'pulp<4.0' scipy +python3 -m pip install --no-cache-dir --no-deps -e modules/Model-Optimizer +python3 \ + modules/Model-Optimizer/examples/speculative_decoding/scripts/export_hf_checkpoint.py \ + "${EXPORT_ARGS[@]}" + +SMOKE_PROFILE=greedy SMOKE_SAMPLING_FIELDS='"temperature": 0' \ + bash "$SCRIPT_DIR/vllm_smoke_test.sh" +SMOKE_PROFILE=sampled SMOKE_SAMPLING_FIELDS='"temperature": 1.0, "top_p": 0.95, "top_k": 20, "presence_penalty": 1.5' \ + bash "$SCRIPT_DIR/vllm_smoke_test.sh" diff --git a/tools/launcher/common/specdec/vllm_smoke_test.sh b/tools/launcher/common/specdec/vllm_smoke_test.sh index 8028a570a8e..2c95c7f21ec 100644 --- a/tools/launcher/common/specdec/vllm_smoke_test.sh +++ b/tools/launcher/common/specdec/vllm_smoke_test.sh @@ -28,6 +28,8 @@ # VLLM_PORT — server port (default: 8000) # REASONING_PARSER — reasoning parser (e.g., "qwen3" for Qwen3.5) # DISABLE_PREFIX_CACHING — set to "1" to disable prefix caching +# SMOKE_PROFILE — profile label printed in results (default: "greedy") +# SMOKE_SAMPLING_FIELDS — JSON sampling fields appended to each request SCRIPT_DIR="$(dirname "$(readlink -f "$0")")" source ${SCRIPT_DIR}/../service_utils.sh 2>/dev/null || true @@ -122,8 +124,11 @@ fi # Run quick test prompts using chat completions API MAX_TOKENS=${MAX_OUTPUT_TOKENS:-1024} +SMOKE_PROFILE=${SMOKE_PROFILE:-greedy} +SMOKE_SAMPLING_FIELDS=${SMOKE_SAMPLING_FIELDS:-'"temperature": 0'} echo "" -echo "=== Test Prompts (max_tokens=${MAX_TOKENS}) ===" +echo "=== Test Prompts (${SMOKE_PROFILE}, max_tokens=${MAX_TOKENS}) ===" +echo "Sampling: {${SMOKE_SAMPLING_FIELDS}}" PASS=0 FAIL=0 TOTAL_TOKENS=0 @@ -142,17 +147,17 @@ for PROMPT in \ START=$(date +%s%N) RESULT=$(curl -s http://localhost:${PORT}/v1/chat/completions \ -H "Content-Type: application/json" \ - -d "{\"model\": \"${MODEL}\", \"messages\": [{\"role\": \"user\", \"content\": \"${PROMPT}\"}], \"max_tokens\": ${MAX_TOKENS}, \"temperature\": 0}" \ + -d "{\"model\": \"${MODEL}\", \"messages\": [{\"role\": \"user\", \"content\": \"${PROMPT}\"}], \"max_tokens\": ${MAX_TOKENS}, ${SMOKE_SAMPLING_FIELDS}}" \ 2>/dev/null) END=$(date +%s%N) - ELAPSED=$(echo "scale=2; ($END - $START) / 1000000000" | bc 2>/dev/null || echo "0") + ELAPSED=$(awk "BEGIN {printf \"%.2f\", ($END - $START) / 1000000000}") TOKENS=$(echo "$RESULT" | python3 -c "import json,sys; r=json.load(sys.stdin); print(r.get('usage',{}).get('completion_tokens',0))" 2>/dev/null) if [ -n "$TOKENS" ] && [ "$TOKENS" -gt 0 ] 2>/dev/null; then - TPS=$(echo "scale=1; $TOKENS / $ELAPSED" | bc 2>/dev/null || echo "?") + TPS=$(awk "BEGIN {printf \"%.1f\", $TOKENS / $ELAPSED}") echo " PASS: ${TOKENS} tokens in ${ELAPSED}s (${TPS} tok/s) — \"${PROMPT:0:50}...\"" PASS=$((PASS + 1)) TOTAL_TOKENS=$((TOTAL_TOKENS + TOKENS)) - TOTAL_TIME=$(echo "$TOTAL_TIME + $ELAPSED" | bc 2>/dev/null || echo "0") + TOTAL_TIME=$(awk "BEGIN {printf \"%.2f\", $TOTAL_TIME + $ELAPSED}") else echo " FAIL: \"${PROMPT}\"" echo " Response: $(echo "$RESULT" | head -c 200)" @@ -163,7 +168,7 @@ done echo "" echo "Results: ${PASS} passed, ${FAIL} failed" if [ "$TOTAL_TOKENS" -gt 0 ] 2>/dev/null; then - AVG_TPS=$(echo "scale=1; $TOTAL_TOKENS / $TOTAL_TIME" | bc 2>/dev/null || echo "?") + AVG_TPS=$(awk "BEGIN {printf \"%.1f\", $TOTAL_TOKENS / $TOTAL_TIME}") echo "Total: ${TOTAL_TOKENS} tokens in ${TOTAL_TIME}s (${AVG_TPS} tok/s avg)" fi diff --git a/tools/launcher/common/vllm/query.sh b/tools/launcher/common/vllm/query.sh index c3a2a784bb0..3145aa4dfbc 100755 --- a/tools/launcher/common/vllm/query.sh +++ b/tools/launcher/common/vllm/query.sh @@ -137,9 +137,10 @@ done pip3 install -q datasets openai 2>/dev/null || true echo "Running: python3 common/query.py http://localhost:8000/v1 ${MODEL} ${QUERY_ARGS[*]}" python3 common/query.py http://localhost:8000/v1 "${MODEL}" "${QUERY_ARGS[@]}" +QUERY_EXIT=$? echo "Main process exit" kill $SERVER_PID wait $SERVER_PID 2>/dev/null || true -exit 0 +exit $QUERY_EXIT diff --git a/tools/launcher/core.py b/tools/launcher/core.py index 44f3efab86d..a07d7b044df 100644 --- a/tools/launcher/core.py +++ b/tools/launcher/core.py @@ -573,9 +573,11 @@ def build_slurm_executor( retries=0, packager=packager, srun_args=slurm_config.srun_args, - # Copy into a fresh dict so the requeue mutation below doesn't leak back into - # the shared slurm_config.additional_parameters. - additional_parameters=dict(getattr(slurm_config, "additional_parameters", None) or {}), + additional_parameters=( + {"dependency": slurm_config.dependency} + if getattr(slurm_config, "dependency", None) + else {} + ), **optional_kwargs, ) if getattr(slurm_config, "requeue", False): diff --git a/tools/launcher/examples/Qwen/Qwen3.5-9B/chat_template_train.jinja b/tools/launcher/examples/Qwen/Qwen3.5-9B/chat_template_train.jinja new file mode 100644 index 00000000000..2dde46e080e --- /dev/null +++ b/tools/launcher/examples/Qwen/Qwen3.5-9B/chat_template_train.jinja @@ -0,0 +1,161 @@ +{# Official Qwen3.5-9B template with assistant output wrapped in generation tags. #} +{%- set image_count = namespace(value=0) %} +{%- set video_count = namespace(value=0) %} +{%- macro render_content(content, do_vision_count, is_system_content=false) %} + {%- if content is string %} + {{- content }} + {%- elif content is iterable and content is not mapping %} + {%- for item in content %} + {%- if 'image' in item or 'image_url' in item or item.type == 'image' %} + {%- if is_system_content %} + {{- raise_exception('System message cannot contain images.') }} + {%- endif %} + {%- if do_vision_count %} + {%- set image_count.value = image_count.value + 1 %} + {%- endif %} + {%- if add_vision_id %} + {{- 'Picture ' ~ image_count.value ~ ': ' }} + {%- endif %} + {{- '<|vision_start|><|image_pad|><|vision_end|>' }} + {%- elif 'video' in item or item.type == 'video' %} + {%- if is_system_content %} + {{- raise_exception('System message cannot contain videos.') }} + {%- endif %} + {%- if do_vision_count %} + {%- set video_count.value = video_count.value + 1 %} + {%- endif %} + {%- if add_vision_id %} + {{- 'Video ' ~ video_count.value ~ ': ' }} + {%- endif %} + {{- '<|vision_start|><|video_pad|><|vision_end|>' }} + {%- elif 'text' in item %} + {{- item.text }} + {%- else %} + {{- raise_exception('Unexpected item type in content.') }} + {%- endif %} + {%- endfor %} + {%- elif content is none or content is undefined %} + {{- '' }} + {%- else %} + {{- raise_exception('Unexpected content type.') }} + {%- endif %} +{%- endmacro %} +{%- if not messages %} + {{- raise_exception('No messages provided.') }} +{%- endif %} +{%- if tools and tools is iterable and tools is not mapping %} + {{- '<|im_start|>system\n' }} + {{- "# Tools\n\nYou have access to the following functions:\n\n" }} + {%- for tool in tools %} + {{- "\n" }} + {{- tool | tojson }} + {%- endfor %} + {{- "\n" }} + {{- '\n\nIf you choose to call a function ONLY reply in the following format with NO suffix:\n\n\n\n\nvalue_1\n\n\nThis is the value for the second parameter\nthat can span\nmultiple lines\n\n\n\n\n\nReminder:\n- Function calls MUST follow the specified format: an inner block must be nested within XML tags\n- Required parameters MUST be specified\n- You may provide optional reasoning for your function call in natural language BEFORE the function call, but NOT after\n- If there is no function call available, answer the question like normal with your current knowledge and do not tell the user about function calls\n' }} + {%- if messages[0].role == 'system' %} + {%- set content = render_content(messages[0].content, false, true)|trim %} + {%- if content %} + {{- '\n\n' + content }} + {%- endif %} + {%- endif %} + {{- '<|im_end|>\n' }} +{%- else %} + {%- if messages[0].role == 'system' %} + {%- set content = render_content(messages[0].content, false, true)|trim %} + {{- '<|im_start|>system\n' + content + '<|im_end|>\n' }} + {%- endif %} +{%- endif %} +{%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %} +{%- for message in messages[::-1] %} + {%- set index = (messages|length - 1) - loop.index0 %} + {%- if ns.multi_step_tool and message.role == "user" %} + {%- set content = render_content(message.content, false)|trim %} + {%- if not(content.startswith('') and content.endswith('')) %} + {%- set ns.multi_step_tool = false %} + {%- set ns.last_query_index = index %} + {%- endif %} + {%- endif %} +{%- endfor %} +{%- if ns.multi_step_tool %} + {{- raise_exception('No user query found in messages.') }} +{%- endif %} +{%- for message in messages %} + {%- set content = render_content(message.content, true)|trim %} + {%- if message.role == "system" %} + {%- if not loop.first %} + {{- raise_exception('System message must be at the beginning.') }} + {%- endif %} + {%- elif message.role == "user" %} + {{- '<|im_start|>' + message.role + '\n' + content + '<|im_end|>' + '\n' }} + {%- elif message.role == "assistant" %} + {%- set reasoning_content = '' %} + {%- set unfinished_thinking = message.enable_thinking is defined and message.enable_thinking and '' not in content %} + {%- if message.reasoning_content is string %} + {%- set reasoning_content = message.reasoning_content %} + {%- else %} + {%- if '' in content %} + {%- set reasoning_content = content.split('')[0].rstrip('\n').split('')[-1].lstrip('\n') %} + {%- set content = content.split('')[-1].lstrip('\n') %} + {%- endif %} + {%- endif %} + {%- set reasoning_content = reasoning_content|trim %} + {{- '<|im_start|>' + message.role + '\n' }} + {%- generation %} + {%- if loop.index0 > ns.last_query_index and unfinished_thinking %} + {{- '\n' + content }} + {%- elif loop.index0 > ns.last_query_index %} + {{- '\n' + reasoning_content + '\n\n\n' + content }} + {%- else %} + {{- content }} + {%- endif %} + {%- if message.tool_calls and message.tool_calls is iterable and message.tool_calls is not mapping %} + {%- for tool_call in message.tool_calls %} + {%- if tool_call.function is defined %} + {%- set tool_call = tool_call.function %} + {%- endif %} + {%- if loop.first %} + {%- if content|trim %} + {{- '\n\n\n\n' }} + {%- else %} + {{- '\n\n' }} + {%- endif %} + {%- else %} + {{- '\n\n\n' }} + {%- endif %} + {%- if tool_call.arguments is defined %} + {%- for args_name, args_value in tool_call.arguments|items %} + {{- '\n' }} + {%- set args_value = args_value | tojson | safe if args_value is mapping or (args_value is sequence and args_value is not string) else args_value | string %} + {{- args_value }} + {{- '\n\n' }} + {%- endfor %} + {%- endif %} + {{- '\n' }} + {%- endfor %} + {%- endif %} + {{- '<|im_end|>\n' }} + {%- endgeneration %} + {%- elif message.role == "tool" %} + {%- if loop.previtem and loop.previtem.role != "tool" %} + {{- '<|im_start|>user' }} + {%- endif %} + {{- '\n\n' }} + {{- content }} + {{- '\n' }} + {%- if not loop.last and loop.nextitem.role != "tool" %} + {{- '<|im_end|>\n' }} + {%- elif loop.last %} + {{- '<|im_end|>\n' }} + {%- endif %} + {%- else %} + {{- raise_exception('Unexpected message role.') }} + {%- endif %} +{%- endfor %} +{%- if add_generation_prompt %} + {{- '<|im_start|>assistant\n' }} + {%- if enable_thinking is defined and enable_thinking is false %} + {{- '\n\n\n\n' }} + {%- else %} + {{- '\n' }} + {%- endif %} +{%- endif %} diff --git a/tools/launcher/launch.py b/tools/launcher/launch.py index 0f3313aaf4a..4979b6da446 100644 --- a/tools/launcher/launch.py +++ b/tools/launcher/launch.py @@ -107,6 +107,8 @@ def _add_package_glob(pattern: str) -> None: _add_package_path(os.path.join(LAUNCHER_DIR, "modules/Model-Optimizer/modelopt")) _add_package_path(os.path.join(LAUNCHER_DIR, "modules/Model-Optimizer/modelopt_recipes")) _add_package_path(os.path.join(LAUNCHER_DIR, "modules/Model-Optimizer/examples")) + _add_package_path(os.path.join(LAUNCHER_DIR, "modules/Model-Optimizer/pyproject.toml")) + _add_package_path(os.path.join(LAUNCHER_DIR, "modules/Model-Optimizer/LICENSE_HEADER")) packager = run.PatternPackager( include_pattern=_include_pattern, diff --git a/tools/launcher/slurm_config.py b/tools/launcher/slurm_config.py index 2647a7ba5ea..0ced06a7c94 100644 --- a/tools/launcher/slurm_config.py +++ b/tools/launcher/slurm_config.py @@ -44,6 +44,7 @@ class SlurmConfig: modelopt_install_path: str = "/usr/local/lib/python3.12/dist-packages/modelopt" container_mounts: Optional[list[str]] = None srun_args: Optional[list[str]] = None + dependency: Optional[str] = None array: Optional[str] = None requeue: bool = False nodes: int = 1 @@ -81,6 +82,7 @@ def slurm_factory( "{}:/hf-local".format(os.environ.get("SLURM_HF_LOCAL", "/hf-local")), ], srun_args: list[str] = ["--no-container-mount-home"], + dependency: Optional[str] = None, array: Optional[str] = None, requeue: bool = False, time: str = "04:00:00", @@ -101,6 +103,7 @@ def slurm_factory( modelopt_install_path=modelopt_install_path, container_mounts=container_mounts, srun_args=srun_args, + dependency=dependency, array=array, requeue=requeue, time=time, diff --git a/tools/launcher/tests/test_slurm_config.py b/tools/launcher/tests/test_slurm_config.py index 96cfc689dbd..c4391fd532e 100644 --- a/tools/launcher/tests/test_slurm_config.py +++ b/tools/launcher/tests/test_slurm_config.py @@ -45,6 +45,7 @@ def test_defaults(self): assert cfg.local is False assert cfg.container_mounts is None assert cfg.srun_args is None + assert cfg.dependency is None assert cfg.array is None def test_custom_values(self): @@ -57,6 +58,7 @@ def test_custom_values(self): container="nvcr.io/nvidia/pytorch:24.01-py3", container_mounts=["/data:/data"], srun_args=["--no-container-mount-home"], + dependency="singleton", ) assert cfg.host == "login.example.com" assert cfg.account == "my_account" @@ -64,6 +66,7 @@ def test_custom_values(self): assert cfg.gpus_per_node == 8 assert cfg.mem == "128G" assert cfg.container_mounts == ["/data:/data"] + assert cfg.dependency == "singleton" def test_nullable_gpus_per_node(self): cfg = SlurmConfig(gpus_per_node=None) From 6dac83da77ea1d8d229ca30685ff77bb19de32ea Mon Sep 17 00:00:00 2001 From: Jinze Xue Date: Fri, 21 Aug 2026 19:41:57 -0700 Subject: [PATCH 06/10] Add Qwen3.5 DSpark training and benchmark support Signed-off-by: Jinze Xue --- .../specdec_bench/models/vllm.py | 6 +- .../torch/speculative/plugins/hf_dflash.py | 24 +- .../speculative/plugins/test_hf_dspark.py | 29 +- tools/launcher/core.py | 46 ++- .../Qwen/Qwen3.5-9B/benchmark.eos.yaml | 151 +++++++++ .../Qwen/Qwen3.5-9B/benchmark.v2.eos.yaml | 306 +++++++++++++++++ .../Qwen/Qwen3.5-9B/benchmark.v3.eos.yaml | 306 +++++++++++++++++ .../Qwen/Qwen3.5-9B/benchmark.v4.eos.yaml | 316 ++++++++++++++++++ .../Qwen/Qwen3.5-9B/synthesize.eos.yaml | 52 +++ .../examples/Qwen/Qwen3.5-9B/train.eos.yaml | 98 ++++++ tools/launcher/tests/test_core.py | 16 +- tools/launcher/tests/test_core_extended.py | 4 +- 12 files changed, 1339 insertions(+), 15 deletions(-) create mode 100644 tools/launcher/examples/Qwen/Qwen3.5-9B/benchmark.eos.yaml create mode 100644 tools/launcher/examples/Qwen/Qwen3.5-9B/benchmark.v2.eos.yaml create mode 100644 tools/launcher/examples/Qwen/Qwen3.5-9B/benchmark.v3.eos.yaml create mode 100644 tools/launcher/examples/Qwen/Qwen3.5-9B/benchmark.v4.eos.yaml create mode 100644 tools/launcher/examples/Qwen/Qwen3.5-9B/synthesize.eos.yaml create mode 100644 tools/launcher/examples/Qwen/Qwen3.5-9B/train.eos.yaml diff --git a/examples/specdec_bench/specdec_bench/models/vllm.py b/examples/specdec_bench/specdec_bench/models/vllm.py index 1e470b98022..7ec9a8760ac 100644 --- a/examples/specdec_bench/specdec_bench/models/vllm.py +++ b/examples/specdec_bench/specdec_bench/models/vllm.py @@ -109,10 +109,11 @@ def __init__(self, model_dir, max_concurrent_requests, sampling_kwargs, **kwargs # (handled in speculative.py:562-573). specdec["model"] = draft_model_dir elif kwargs.get("speculative_algorithm") == "DFLASH": + # DFlash block size includes one anchor, so block 8 maps to 7 speculative tokens in vLLM. specdec = { "method": "dflash", "model": kwargs.get("draft_model_dir"), - "num_speculative_tokens": kwargs.get("speculative_num_draft_tokens", 8), + "num_speculative_tokens": (kwargs.get("speculative_num_draft_tokens") or 8) - 1, } elif kwargs.get("speculative_algorithm") == "DSPARK": specdec = { @@ -123,6 +124,9 @@ def __init__(self, model_dir, max_concurrent_requests, sampling_kwargs, **kwargs elif kwargs.get("speculative_algorithm") == "NONE": specdec = None + if specdec is not None and kwargs.get("draft_sample_method") is not None: + specdec["draft_sample_method"] = kwargs["draft_sample_method"] + if specdec is None: num_speculative_tokens = 1 else: diff --git a/modelopt/torch/speculative/plugins/hf_dflash.py b/modelopt/torch/speculative/plugins/hf_dflash.py index e0d63bde136..f02a87f0035 100644 --- a/modelopt/torch/speculative/plugins/hf_dflash.py +++ b/modelopt/torch/speculative/plugins/hf_dflash.py @@ -407,9 +407,8 @@ def modify(self, config): "rms_norm_eps", ] for attr in _setdefault_attrs: - if not hasattr(self.dflash_config, attr) or getattr(self.dflash_config, attr) is None: - if hasattr(base_config, attr): - setattr(self.dflash_config, attr, getattr(base_config, attr)) + if attr not in config.dflash_architecture_config and hasattr(base_config, attr): + setattr(self.dflash_config, attr, getattr(base_config, attr)) # RoPE base settings are ENFORCED to match the base model (not setdefault): the # DFlash draft injects the target's KV into every layer, so its RoPE base must @@ -420,10 +419,18 @@ def modify(self, config): # DFlash uses standard Qwen3 RotaryEmbedding; the long-context YaRN scaling is # added only at export via dflash_export_rope_scaling.) for attr in ("rope_theta", "rope_type", "rope_interleaved"): - if not hasattr(base_config, attr): + base_val = getattr(base_config, attr, None) + if base_val is None and attr == "rope_theta": + rope_parameters = getattr(base_config, "rope_parameters", None) + if isinstance(rope_parameters, dict): + base_val = rope_parameters.get(attr) + if base_val is None: continue - base_val = getattr(base_config, attr) - user_val = getattr(self.dflash_config, attr, None) + draft_rope_parameters = getattr(self.dflash_config, "rope_parameters", None) + if attr == "rope_theta" and isinstance(draft_rope_parameters, dict): + user_val = draft_rope_parameters.get(attr) + else: + user_val = getattr(self.dflash_config, attr, None) if user_val is not None and user_val != base_val: logger.warning( "DFlash: ignoring dflash_architecture_config.%s=%r and enforcing the " @@ -433,7 +440,10 @@ def modify(self, config): user_val, base_val, ) - setattr(self.dflash_config, attr, base_val) + if attr == "rope_theta" and isinstance(draft_rope_parameters, dict): + draft_rope_parameters[attr] = base_val + else: + setattr(self.dflash_config, attr, base_val) self.dflash_config.head_dim = getattr( self.dflash_config, diff --git a/tests/unit/torch/speculative/plugins/test_hf_dspark.py b/tests/unit/torch/speculative/plugins/test_hf_dspark.py index c159ba4f53c..a41709db1ad 100644 --- a/tests/unit/torch/speculative/plugins/test_hf_dspark.py +++ b/tests/unit/torch/speculative/plugins/test_hf_dspark.py @@ -30,6 +30,7 @@ import torch from _test_utils.torch.transformers_models import get_tiny_llama from safetensors.torch import load_file +from transformers.models.qwen3.configuration_qwen3 import Qwen3Config import modelopt.torch.speculative as mtsp from modelopt.torch.speculative.config import DFLASH_DEFAULT_CFG @@ -66,7 +67,6 @@ def _get_dspark_config( "markov_rank": MARKOV_RANK, "markov_head_type": head_type, "use_confidence_head": use_confidence_head, - "pure_draft_prefix_len": 1, "shift_label": True, } return config @@ -335,3 +335,30 @@ def test_export_config_has_dspark_fields(self, tmp_path): assert cfg["num_anchors"] == 512 assert cfg["mask_token_id"] == cfg["dflash_config"]["mask_token_id"] assert cfg["target_layer_ids"] == cfg["dflash_config"]["target_layer_ids"] + + def test_export_config_matches_training_config(self): + """Export preserves every training draft config field after canonicalization.""" + model = get_tiny_llama(num_hidden_layers=4) + model.config.rope_theta = None + model.config.rope_parameters = { + "rope_type": "default", + "rope_theta": 10_000_000, + } + mtsp.convert(model, [("dflash", _get_dspark_config())]) + + training_config = model.dflash_config.to_dict() + exported_config = model.get_exporter()._export_config() + runtime_config = Qwen3Config( + **{**exported_config, **exported_config["dflash_config"]} + ).to_dict() + metadata = {"architectures", "dtype", "transformers_version"} + + mismatches = { + field: ( + training_config[field], + runtime_config[field] if field in runtime_config else "", + ) + for field in training_config.keys() - metadata + if field not in runtime_config or training_config[field] != runtime_config[field] + } + assert not mismatches, json.dumps(mismatches, indent=2) diff --git a/tools/launcher/core.py b/tools/launcher/core.py index a07d7b044df..00a598f3a25 100644 --- a/tools/launcher/core.py +++ b/tools/launcher/core.py @@ -91,6 +91,12 @@ def set_slurm_config_type(cls): SandboxTask2, SandboxTask3, SandboxTask4, + SandboxTask5, + SandboxTask6, + SandboxTask7, + SandboxTask8, + SandboxTask9, + SandboxTask10, ): task_cls.__dataclass_fields__["slurm_config"].type = cls task_cls.__annotations__["slurm_config"] = cls @@ -156,6 +162,36 @@ class SandboxTask4(SandboxTask): """Task slot 4 in a pipeline.""" +@dataclass +class SandboxTask5(SandboxTask): + """Task slot 5 in a pipeline.""" + + +@dataclass +class SandboxTask6(SandboxTask): + """Task slot 6 in a pipeline.""" + + +@dataclass +class SandboxTask7(SandboxTask): + """Task slot 7 in a pipeline.""" + + +@dataclass +class SandboxTask8(SandboxTask): + """Task slot 8 in a pipeline.""" + + +@dataclass +class SandboxTask9(SandboxTask): + """Task slot 9 in a pipeline.""" + + +@dataclass +class SandboxTask10(SandboxTask): + """Task slot 10 in a pipeline.""" + + def create_task_from_yaml(yaml_file, factory_lookup): """Create a SandboxTask from a YAML config file. @@ -241,6 +277,12 @@ class SandboxPipeline: task_2: SandboxTask2 = None task_3: SandboxTask3 = None task_4: SandboxTask4 = None + task_5: SandboxTask5 = None + task_6: SandboxTask6 = None + task_7: SandboxTask7 = None + task_8: SandboxTask8 = None + task_9: SandboxTask9 = None + task_10: SandboxTask10 = None tasks: list[SandboxTask] = None assets: list[str] = None # HF repo paths (relative to hf_local) to verify before submission @@ -259,7 +301,7 @@ def __post_init__(self): """Collect tasks from slots/configs and resolve <> references.""" if self.tasks is None: self.tasks = [] - for i in range(5): + for i in range(11): task = getattr(self, f"task_{i}", None) if task is not None: self.tasks += [task] @@ -842,7 +884,7 @@ def run_jobs( if task.reqs or task.reqs_file: pkgs = ["-r", shlex.quote(task.reqs_file)] if task.reqs_file else [] pkgs += [shlex.quote(tok) for tok in shlex.split(task.reqs or "")] - install = "python -m pip install " + " ".join(pkgs) + install = "python3 -m pip install " + " ".join(pkgs) # On Slurm, srun runs this inline on every rank (ntasks_per_node), so install # once per node on local rank 0 behind a filesystem barrier — concurrent pip on # one node corrupts the env. The marker lives in the working dir (/nemo_run/code, diff --git a/tools/launcher/examples/Qwen/Qwen3.5-9B/benchmark.eos.yaml b/tools/launcher/examples/Qwen/Qwen3.5-9B/benchmark.eos.yaml new file mode 100644 index 00000000000..0b4832d2dba --- /dev/null +++ b/tools/launcher/examples/Qwen/Qwen3.5-9B/benchmark.eos.yaml @@ -0,0 +1,151 @@ +job_name: dspark.qwen3.5-9b-speed-bench + +pipeline: + global_vars: + hf_model: /hf-local/Qwen/Qwen3.5-9B + + task_0: + inline: >- + python3 -m pip install -r modules/Model-Optimizer/examples/specdec_bench/requirements.txt && (test -f /hf-local/nvidia/SPEED-Bench/speed/qualitative/test.parquet || python3 modules/Model-Optimizer/examples/specdec_bench/prepare_data.py --dataset speed --config qualitative --output_dir /hf-local/nvidia/SPEED-Bench) && (test -f /hf-local/nvidia/SPEED-Bench/speed/throughput_8k/test.parquet || python3 modules/Model-Optimizer/examples/specdec_bench/prepare_data.py --dataset speed --config throughput_8k --output_dir /hf-local/nvidia/SPEED-Bench) + slurm_config: + _factory_: slurm_factory + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: null + time: 02:00:00 + container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + + task_1: + script: common/specdec_bench/run.sh + args: + - --dataset speed + - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative + - --engine VLLM + - --speculative_algorithm NONE + - --tp_size 2 + - --ep_size 1 + - --concurrency 32 + - --output_length 4096 + - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":1.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" + - --aa_timing + - --show_progress + - --save_dir /cicd/benchmark/results/base/qualitative-t1 + environment: + - HF_MODEL_CKPT: <> + slurm_config: + _factory_: slurm_factory + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: null + time: 04:00:00 + container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + + task_2: + script: common/specdec_bench/run.sh + args: + - --dataset speed + - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative + - --engine VLLM + - --speculative_algorithm DSPARK + - --draft_model_dir /cicd/export-v3 + - --draft_length 7 + - --tp_size 2 + - --ep_size 1 + - --concurrency 32 + - --output_length 4096 + - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":1.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5},\"engine_args\":{\"draft_sample_method\":\"probabilistic\"}}'" + - --aa_timing + - --show_progress + - --save_dir /cicd/benchmark/results/dspark/qualitative-t1-prob + environment: + - HF_MODEL_CKPT: <> + slurm_config: + _factory_: slurm_factory + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: null + time: 04:00:00 + container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + + task_3: + script: common/specdec_bench/run.sh + args: + - --dataset speed + - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/throughput_8k + - --engine VLLM + - --speculative_algorithm NONE + - --tp_size 2 + - --ep_size 1 + - --concurrency 8 + - --num_requests 80 + - --output_length 4096 + - --max_seq_len 16384 + - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":1.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" + - --aa_timing + - --show_progress + - --save_dir /cicd/benchmark/results/base/throughput_8k-t1 + environment: + - HF_MODEL_CKPT: <> + slurm_config: + _factory_: slurm_factory + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: null + time: 04:00:00 + container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + + task_4: + script: common/specdec_bench/run.sh + args: + - --dataset speed + - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/throughput_8k + - --engine VLLM + - --speculative_algorithm DSPARK + - --draft_model_dir /cicd/export-v3 + - --draft_length 7 + - --tp_size 2 + - --ep_size 1 + - --concurrency 8 + - --num_requests 80 + - --output_length 4096 + - --max_seq_len 16384 + - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":1.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5},\"engine_args\":{\"draft_sample_method\":\"probabilistic\"}}'" + - --aa_timing + - --show_progress + - --save_dir /cicd/benchmark/results/dspark/throughput_8k-t1-prob + environment: + - HF_MODEL_CKPT: <> + slurm_config: + _factory_: slurm_factory + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: null + time: 04:00:00 + container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + + task_5: + script: common/specdec_bench/run.sh + args: + - --dataset speed + - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative + - --engine VLLM + - --speculative_algorithm DSPARK + - --draft_model_dir /cicd/export-v3 + - --draft_length 7 + - --tp_size 2 + - --ep_size 1 + - --concurrency 32 + - --output_length 4096 + - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":0.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" + - --aa_timing + - --show_progress + - --save_dir /cicd/benchmark/results/dspark/qualitative-t0-greedy + environment: + - HF_MODEL_CKPT: <> + slurm_config: + _factory_: slurm_factory + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: null + time: 04:00:00 + container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh diff --git a/tools/launcher/examples/Qwen/Qwen3.5-9B/benchmark.v2.eos.yaml b/tools/launcher/examples/Qwen/Qwen3.5-9B/benchmark.v2.eos.yaml new file mode 100644 index 00000000000..faa83da906e --- /dev/null +++ b/tools/launcher/examples/Qwen/Qwen3.5-9B/benchmark.v2.eos.yaml @@ -0,0 +1,306 @@ +job_name: dspark.qwen3.5-9b-speed-bench-v2 + +pipeline: + global_vars: + hf_model: /hf-local/Qwen/Qwen3.5-9B + + # Draft semantics: DSpark7 drafts 7 speculative tokens; DFlash8 drafts 7 speculative tokens (includes 1 anchor). + + # Prepare SPEED-Bench data + task_0: + inline: >- + python3 -m pip install -r modules/Model-Optimizer/examples/specdec_bench/requirements.txt && (test -f /hf-local/nvidia/SPEED-Bench/speed/qualitative/test.parquet || python3 modules/Model-Optimizer/examples/specdec_bench/prepare_data.py --dataset speed --config qualitative --output_dir /hf-local/nvidia/SPEED-Bench) + slurm_config: + _factory_: slurm_factory + partition: batch + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: null + time: 02:00:00 + container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + + # Base T1 C32 + task_1: + script: common/specdec_bench/run.sh + args: + - --dataset speed + - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative + - --engine VLLM + - --speculative_algorithm NONE + - --tp_size 2 + - --ep_size 1 + - --concurrency 32 + - --output_length 4096 + - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":1.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" + - --aa_timing + - --show_progress + - --save_dir /cicd/benchmark/results/base/qualitative-t1 + environment: + - HF_MODEL_CKPT: <> + slurm_config: + _factory_: slurm_factory + partition: batch + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: null + time: 02:00:00 + container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + + # Base T0 C32 + task_2: + script: common/specdec_bench/run.sh + args: + - --dataset speed + - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative + - --engine VLLM + - --speculative_algorithm NONE + - --tp_size 2 + - --ep_size 1 + - --concurrency 32 + - --output_length 4096 + - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":0.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" + - --aa_timing + - --show_progress + - --save_dir /cicd/benchmark/results/base/qualitative-t0-greedy + environment: + - HF_MODEL_CKPT: <> + slurm_config: + _factory_: slurm_factory + partition: batch + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: null + time: 02:00:00 + container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + + # DSpark T1 C32 + task_3: + script: common/specdec_bench/run.sh + args: + - --dataset speed + - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative + - --engine VLLM + - --speculative_algorithm DSPARK + - --draft_model_dir /cicd/export-v3 + - --draft_length 7 + - --tp_size 2 + - --ep_size 1 + - --concurrency 32 + - --output_length 4096 + - --max_seq_len 16384 + - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":1.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5},\"engine_args\":{\"draft_sample_method\":\"probabilistic\"}}'" + - --aa_timing + - --show_progress + - --save_dir /cicd/benchmark/results/dspark/qualitative-t1-prob + environment: + - HF_MODEL_CKPT: <> + slurm_config: + _factory_: slurm_factory + partition: batch + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: null + time: 02:00:00 + container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + + # DSpark T0 C32 + task_4: + script: common/specdec_bench/run.sh + args: + - --dataset speed + - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative + - --engine VLLM + - --speculative_algorithm DSPARK + - --draft_model_dir /cicd/export-v3 + - --draft_length 7 + - --tp_size 2 + - --ep_size 1 + - --concurrency 32 + - --output_length 4096 + - --max_seq_len 16384 + - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":0.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" + - --aa_timing + - --show_progress + - --save_dir /cicd/benchmark/results/dspark/qualitative-t0-greedy + environment: + - HF_MODEL_CKPT: <> + slurm_config: + _factory_: slurm_factory + partition: batch + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: null + time: 02:00:00 + container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + + # MTP3 T1 C32 + task_5: + script: common/specdec_bench/run.sh + args: + - --dataset speed + - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative + - --engine VLLM + - --speculative_algorithm MTP + - --draft_length 3 + - --tp_size 2 + - --ep_size 1 + - --concurrency 32 + - --output_length 4096 + - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":1.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" + - --aa_timing + - --show_progress + - --save_dir /cicd/benchmark/results/mtp3/qualitative-t1 + environment: + - HF_MODEL_CKPT: <> + slurm_config: + _factory_: slurm_factory + partition: batch + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: null + time: 02:00:00 + container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + + # MTP3 T0 C32 + task_6: + script: common/specdec_bench/run.sh + args: + - --dataset speed + - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative + - --engine VLLM + - --speculative_algorithm MTP + - --draft_length 3 + - --tp_size 2 + - --ep_size 1 + - --concurrency 32 + - --output_length 4096 + - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":0.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" + - --aa_timing + - --show_progress + - --save_dir /cicd/benchmark/results/mtp3/qualitative-t0-greedy + environment: + - HF_MODEL_CKPT: <> + slurm_config: + _factory_: slurm_factory + partition: batch + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: null + time: 02:00:00 + container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + + # MTP7 T1 C32 + task_7: + script: common/specdec_bench/run.sh + args: + - --dataset speed + - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative + - --engine VLLM + - --speculative_algorithm MTP + - --draft_length 7 + - --tp_size 2 + - --ep_size 1 + - --concurrency 32 + - --output_length 4096 + - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":1.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" + - --aa_timing + - --show_progress + - --save_dir /cicd/benchmark/results/mtp7/qualitative-t1 + environment: + - HF_MODEL_CKPT: <> + slurm_config: + _factory_: slurm_factory + partition: batch + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: null + time: 02:00:00 + container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + + # MTP7 T0 C32 + task_8: + script: common/specdec_bench/run.sh + args: + - --dataset speed + - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative + - --engine VLLM + - --speculative_algorithm MTP + - --draft_length 7 + - --tp_size 2 + - --ep_size 1 + - --concurrency 32 + - --output_length 4096 + - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":0.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" + - --aa_timing + - --show_progress + - --save_dir /cicd/benchmark/results/mtp7/qualitative-t0-greedy + environment: + - HF_MODEL_CKPT: <> + slurm_config: + _factory_: slurm_factory + partition: batch + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: null + time: 02:00:00 + container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + + # DFlash8 T1 C32 + task_9: + script: common/specdec_bench/run.sh + args: + - --dataset speed + - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative + - --engine VLLM + - --speculative_algorithm DFLASH + - --draft_model_dir z-lab/Qwen3.5-9B-DFlash + - --block_size 8 + - --tp_size 2 + - --ep_size 1 + - --concurrency 32 + - --output_length 4096 + - --max_seq_len 16384 + - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":1.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5},\"engine_args\":{\"draft_sample_method\":\"probabilistic\"}}'" + - --aa_timing + - --show_progress + - --save_dir /cicd/benchmark/results/dflash8/qualitative-t1-prob + environment: + - HF_MODEL_CKPT: <> + slurm_config: + _factory_: slurm_factory + partition: batch + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: null + time: 02:00:00 + container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + + # DFlash8 T0 C32 + task_10: + script: common/specdec_bench/run.sh + args: + - --dataset speed + - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative + - --engine VLLM + - --speculative_algorithm DFLASH + - --draft_model_dir z-lab/Qwen3.5-9B-DFlash + - --block_size 8 + - --tp_size 2 + - --ep_size 1 + - --concurrency 32 + - --output_length 4096 + - --max_seq_len 16384 + - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":0.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" + - --aa_timing + - --show_progress + - --save_dir /cicd/benchmark/results/dflash8/qualitative-t0-greedy + environment: + - HF_MODEL_CKPT: <> + slurm_config: + _factory_: slurm_factory + partition: batch + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: null + time: 02:00:00 + container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh diff --git a/tools/launcher/examples/Qwen/Qwen3.5-9B/benchmark.v3.eos.yaml b/tools/launcher/examples/Qwen/Qwen3.5-9B/benchmark.v3.eos.yaml new file mode 100644 index 00000000000..df80dc4f0da --- /dev/null +++ b/tools/launcher/examples/Qwen/Qwen3.5-9B/benchmark.v3.eos.yaml @@ -0,0 +1,306 @@ +job_name: dspark.qwen3.5-9b-speed-bench-v3 + +pipeline: + global_vars: + hf_model: /hf-local/Qwen/Qwen3.5-9B + + # Draft semantics: DSpark7 drafts 7 speculative tokens; DFlash8 drafts 7 speculative tokens (includes 1 anchor). + + # Prepare SPEED-Bench data + task_0: + inline: >- + python3 -m pip install -r modules/Model-Optimizer/examples/specdec_bench/requirements.txt && (test -f /hf-local/nvidia/SPEED-Bench/speed/qualitative/test.parquet || python3 modules/Model-Optimizer/examples/specdec_bench/prepare_data.py --dataset speed --config qualitative --output_dir /hf-local/nvidia/SPEED-Bench) + slurm_config: + _factory_: slurm_factory + partition: batch + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: null + time: 02:00:00 + container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + + # Base T1 C32 + task_1: + script: common/specdec_bench/run.sh + args: + - --dataset speed + - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative + - --engine VLLM + - --speculative_algorithm NONE + - --tp_size 1 + - --ep_size 1 + - --concurrency 32 + - --output_length 4096 + - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":1.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" + - --aa_timing + - --show_progress + - --save_dir /cicd/benchmark-v3/results/base/qualitative-t1 + environment: + - HF_MODEL_CKPT: <> + slurm_config: + _factory_: slurm_factory + partition: batch + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: null + time: 02:00:00 + container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + + # Base T0 C32 + task_2: + script: common/specdec_bench/run.sh + args: + - --dataset speed + - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative + - --engine VLLM + - --speculative_algorithm NONE + - --tp_size 1 + - --ep_size 1 + - --concurrency 32 + - --output_length 4096 + - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":0.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" + - --aa_timing + - --show_progress + - --save_dir /cicd/benchmark-v3/results/base/qualitative-t0-greedy + environment: + - HF_MODEL_CKPT: <> + slurm_config: + _factory_: slurm_factory + partition: batch + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: null + time: 02:00:00 + container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + + # DSpark T1 C32 + task_3: + script: common/specdec_bench/run.sh + args: + - --dataset speed + - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative + - --engine VLLM + - --speculative_algorithm DSPARK + - --draft_model_dir /cicd/export-v3 + - --draft_length 7 + - --tp_size 1 + - --ep_size 1 + - --concurrency 32 + - --output_length 4096 + - --max_seq_len 16384 + - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":1.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5},\"engine_args\":{\"draft_sample_method\":\"probabilistic\"}}'" + - --aa_timing + - --show_progress + - --save_dir /cicd/benchmark-v3/results/dspark/qualitative-t1-prob + environment: + - HF_MODEL_CKPT: <> + slurm_config: + _factory_: slurm_factory + partition: batch + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: null + time: 02:00:00 + container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + + # DSpark T0 C32 + task_4: + script: common/specdec_bench/run.sh + args: + - --dataset speed + - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative + - --engine VLLM + - --speculative_algorithm DSPARK + - --draft_model_dir /cicd/export-v3 + - --draft_length 7 + - --tp_size 1 + - --ep_size 1 + - --concurrency 32 + - --output_length 4096 + - --max_seq_len 16384 + - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":0.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" + - --aa_timing + - --show_progress + - --save_dir /cicd/benchmark-v3/results/dspark/qualitative-t0-greedy + environment: + - HF_MODEL_CKPT: <> + slurm_config: + _factory_: slurm_factory + partition: batch + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: null + time: 02:00:00 + container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + + # MTP3 T1 C32 + task_5: + script: common/specdec_bench/run.sh + args: + - --dataset speed + - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative + - --engine VLLM + - --speculative_algorithm MTP + - --draft_length 3 + - --tp_size 1 + - --ep_size 1 + - --concurrency 32 + - --output_length 4096 + - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":1.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" + - --aa_timing + - --show_progress + - --save_dir /cicd/benchmark-v3/results/mtp3/qualitative-t1 + environment: + - HF_MODEL_CKPT: <> + slurm_config: + _factory_: slurm_factory + partition: batch + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: null + time: 02:00:00 + container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + + # MTP3 T0 C32 + task_6: + script: common/specdec_bench/run.sh + args: + - --dataset speed + - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative + - --engine VLLM + - --speculative_algorithm MTP + - --draft_length 3 + - --tp_size 1 + - --ep_size 1 + - --concurrency 32 + - --output_length 4096 + - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":0.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" + - --aa_timing + - --show_progress + - --save_dir /cicd/benchmark-v3/results/mtp3/qualitative-t0-greedy + environment: + - HF_MODEL_CKPT: <> + slurm_config: + _factory_: slurm_factory + partition: batch + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: null + time: 02:00:00 + container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + + # MTP7 T1 C32 + task_7: + script: common/specdec_bench/run.sh + args: + - --dataset speed + - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative + - --engine VLLM + - --speculative_algorithm MTP + - --draft_length 7 + - --tp_size 1 + - --ep_size 1 + - --concurrency 32 + - --output_length 4096 + - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":1.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" + - --aa_timing + - --show_progress + - --save_dir /cicd/benchmark-v3/results/mtp7/qualitative-t1 + environment: + - HF_MODEL_CKPT: <> + slurm_config: + _factory_: slurm_factory + partition: batch + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: null + time: 02:00:00 + container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + + # MTP7 T0 C32 + task_8: + script: common/specdec_bench/run.sh + args: + - --dataset speed + - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative + - --engine VLLM + - --speculative_algorithm MTP + - --draft_length 7 + - --tp_size 1 + - --ep_size 1 + - --concurrency 32 + - --output_length 4096 + - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":0.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" + - --aa_timing + - --show_progress + - --save_dir /cicd/benchmark-v3/results/mtp7/qualitative-t0-greedy + environment: + - HF_MODEL_CKPT: <> + slurm_config: + _factory_: slurm_factory + partition: batch + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: null + time: 02:00:00 + container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + + # DFlash8 T1 C32 + task_9: + script: common/specdec_bench/run.sh + args: + - --dataset speed + - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative + - --engine VLLM + - --speculative_algorithm DFLASH + - --draft_model_dir z-lab/Qwen3.5-9B-DFlash + - --block_size 8 + - --tp_size 1 + - --ep_size 1 + - --concurrency 32 + - --output_length 4096 + - --max_seq_len 16384 + - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":1.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5},\"engine_args\":{\"draft_sample_method\":\"probabilistic\"}}'" + - --aa_timing + - --show_progress + - --save_dir /cicd/benchmark-v3/results/dflash8/qualitative-t1-prob + environment: + - HF_MODEL_CKPT: <> + slurm_config: + _factory_: slurm_factory + partition: batch + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: null + time: 02:00:00 + container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + + # DFlash8 T0 C32 + task_10: + script: common/specdec_bench/run.sh + args: + - --dataset speed + - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative + - --engine VLLM + - --speculative_algorithm DFLASH + - --draft_model_dir z-lab/Qwen3.5-9B-DFlash + - --block_size 8 + - --tp_size 1 + - --ep_size 1 + - --concurrency 32 + - --output_length 4096 + - --max_seq_len 16384 + - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":0.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" + - --aa_timing + - --show_progress + - --save_dir /cicd/benchmark-v3/results/dflash8/qualitative-t0-greedy + environment: + - HF_MODEL_CKPT: <> + slurm_config: + _factory_: slurm_factory + partition: batch + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: null + time: 02:00:00 + container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh diff --git a/tools/launcher/examples/Qwen/Qwen3.5-9B/benchmark.v4.eos.yaml b/tools/launcher/examples/Qwen/Qwen3.5-9B/benchmark.v4.eos.yaml new file mode 100644 index 00000000000..690bb2d9b9c --- /dev/null +++ b/tools/launcher/examples/Qwen/Qwen3.5-9B/benchmark.v4.eos.yaml @@ -0,0 +1,316 @@ +job_name: dspark.qwen3.5-9b-speed-bench-v4 + +pipeline: + global_vars: + hf_model: /hf-local/Qwen/Qwen3.5-9B + + # Draft semantics: DSpark7 drafts 7 speculative tokens; DFlash8 drafts 7 speculative tokens (includes 1 anchor). + + # Prepare SPEED-Bench data + task_0: + inline: >- + python3 -m pip install -r modules/Model-Optimizer/examples/specdec_bench/requirements.txt && (test -f /hf-local/nvidia/SPEED-Bench/speed/qualitative/test.parquet || python3 modules/Model-Optimizer/examples/specdec_bench/prepare_data.py --dataset speed --config qualitative --output_dir /hf-local/nvidia/SPEED-Bench) + slurm_config: + _factory_: slurm_factory + partition: batch + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: null + time: 02:00:00 + container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + + # Base T1 C1 + task_1: + script: common/specdec_bench/run.sh + args: + - --dataset speed + - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative + - --engine VLLM + - --speculative_algorithm NONE + - --tp_size 1 + - --ep_size 1 + - --concurrency 1 + - --num_requests 440 + - --output_length 4096 + - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":1.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" + - --aa_timing + - --show_progress + - --save_dir /cicd/benchmark-v4/results/base/qualitative-t1 + environment: + - HF_MODEL_CKPT: <> + slurm_config: + _factory_: slurm_factory + partition: batch + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: null + time: 04:00:00 + container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + + # Base T0 C1 + task_2: + script: common/specdec_bench/run.sh + args: + - --dataset speed + - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative + - --engine VLLM + - --speculative_algorithm NONE + - --tp_size 1 + - --ep_size 1 + - --concurrency 1 + - --num_requests 440 + - --output_length 4096 + - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":0.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" + - --aa_timing + - --show_progress + - --save_dir /cicd/benchmark-v4/results/base/qualitative-t0-greedy + environment: + - HF_MODEL_CKPT: <> + slurm_config: + _factory_: slurm_factory + partition: batch + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: null + time: 04:00:00 + container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + + # DSpark T1 C1 + task_3: + script: common/specdec_bench/run.sh + args: + - --dataset speed + - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative + - --engine VLLM + - --speculative_algorithm DSPARK + - --draft_model_dir /cicd/export-v3 + - --draft_length 7 + - --tp_size 1 + - --ep_size 1 + - --concurrency 1 + - --num_requests 440 + - --output_length 4096 + - --max_seq_len 16384 + - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":1.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5},\"engine_args\":{\"draft_sample_method\":\"probabilistic\"}}'" + - --aa_timing + - --show_progress + - --save_dir /cicd/benchmark-v4/results/dspark/qualitative-t1-prob + environment: + - HF_MODEL_CKPT: <> + slurm_config: + _factory_: slurm_factory + partition: batch + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: null + time: 04:00:00 + container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + + # DSpark T0 C1 + task_4: + script: common/specdec_bench/run.sh + args: + - --dataset speed + - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative + - --engine VLLM + - --speculative_algorithm DSPARK + - --draft_model_dir /cicd/export-v3 + - --draft_length 7 + - --tp_size 1 + - --ep_size 1 + - --concurrency 1 + - --num_requests 440 + - --output_length 4096 + - --max_seq_len 16384 + - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":0.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" + - --aa_timing + - --show_progress + - --save_dir /cicd/benchmark-v4/results/dspark/qualitative-t0-greedy + environment: + - HF_MODEL_CKPT: <> + slurm_config: + _factory_: slurm_factory + partition: batch + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: null + time: 04:00:00 + container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + + # MTP3 T1 C1 + task_5: + script: common/specdec_bench/run.sh + args: + - --dataset speed + - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative + - --engine VLLM + - --speculative_algorithm MTP + - --draft_length 3 + - --tp_size 1 + - --ep_size 1 + - --concurrency 1 + - --num_requests 440 + - --output_length 4096 + - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":1.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" + - --aa_timing + - --show_progress + - --save_dir /cicd/benchmark-v4/results/mtp3/qualitative-t1 + environment: + - HF_MODEL_CKPT: <> + slurm_config: + _factory_: slurm_factory + partition: batch + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: null + time: 04:00:00 + container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + + # MTP3 T0 C1 + task_6: + script: common/specdec_bench/run.sh + args: + - --dataset speed + - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative + - --engine VLLM + - --speculative_algorithm MTP + - --draft_length 3 + - --tp_size 1 + - --ep_size 1 + - --concurrency 1 + - --num_requests 440 + - --output_length 4096 + - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":0.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" + - --aa_timing + - --show_progress + - --save_dir /cicd/benchmark-v4/results/mtp3/qualitative-t0-greedy + environment: + - HF_MODEL_CKPT: <> + slurm_config: + _factory_: slurm_factory + partition: batch + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: null + time: 04:00:00 + container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + + # MTP7 T1 C1 + task_7: + script: common/specdec_bench/run.sh + args: + - --dataset speed + - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative + - --engine VLLM + - --speculative_algorithm MTP + - --draft_length 7 + - --tp_size 1 + - --ep_size 1 + - --concurrency 1 + - --num_requests 440 + - --output_length 4096 + - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":1.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" + - --aa_timing + - --show_progress + - --save_dir /cicd/benchmark-v4/results/mtp7/qualitative-t1 + environment: + - HF_MODEL_CKPT: <> + slurm_config: + _factory_: slurm_factory + partition: batch + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: null + time: 04:00:00 + container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + + # MTP7 T0 C1 + task_8: + script: common/specdec_bench/run.sh + args: + - --dataset speed + - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative + - --engine VLLM + - --speculative_algorithm MTP + - --draft_length 7 + - --tp_size 1 + - --ep_size 1 + - --concurrency 1 + - --num_requests 440 + - --output_length 4096 + - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":0.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" + - --aa_timing + - --show_progress + - --save_dir /cicd/benchmark-v4/results/mtp7/qualitative-t0-greedy + environment: + - HF_MODEL_CKPT: <> + slurm_config: + _factory_: slurm_factory + partition: batch + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: null + time: 04:00:00 + container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + + # DFlash8 T1 C1 + task_9: + script: common/specdec_bench/run.sh + args: + - --dataset speed + - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative + - --engine VLLM + - --speculative_algorithm DFLASH + - --draft_model_dir z-lab/Qwen3.5-9B-DFlash + - --block_size 8 + - --tp_size 1 + - --ep_size 1 + - --concurrency 1 + - --num_requests 440 + - --output_length 4096 + - --max_seq_len 16384 + - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":1.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5},\"engine_args\":{\"draft_sample_method\":\"probabilistic\"}}'" + - --aa_timing + - --show_progress + - --save_dir /cicd/benchmark-v4/results/dflash8/qualitative-t1-prob + environment: + - HF_MODEL_CKPT: <> + slurm_config: + _factory_: slurm_factory + partition: batch + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: null + time: 04:00:00 + container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + + # DFlash8 T0 C1 + task_10: + script: common/specdec_bench/run.sh + args: + - --dataset speed + - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative + - --engine VLLM + - --speculative_algorithm DFLASH + - --draft_model_dir z-lab/Qwen3.5-9B-DFlash + - --block_size 8 + - --tp_size 1 + - --ep_size 1 + - --concurrency 1 + - --num_requests 440 + - --output_length 4096 + - --max_seq_len 16384 + - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":0.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" + - --aa_timing + - --show_progress + - --save_dir /cicd/benchmark-v4/results/dflash8/qualitative-t0-greedy + environment: + - HF_MODEL_CKPT: <> + slurm_config: + _factory_: slurm_factory + partition: batch + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: null + time: 04:00:00 + container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh diff --git a/tools/launcher/examples/Qwen/Qwen3.5-9B/synthesize.eos.yaml b/tools/launcher/examples/Qwen/Qwen3.5-9B/synthesize.eos.yaml new file mode 100644 index 00000000000..c2478161911 --- /dev/null +++ b/tools/launcher/examples/Qwen/Qwen3.5-9B/synthesize.eos.yaml @@ -0,0 +1,52 @@ +job_name: dspark.qwen3.5-9b-synthesize + +pipeline: + global_vars: + hf_model: /hf-local/Qwen/Qwen3.5-9B + + task_0: + script: common/vllm/query.sh + args: + - --model + - <> + - --tensor-parallel-size + - "8" + - --trust-remote-code + - --language-model-only + - --enable-prefix-caching + - --mamba-cache-mode + - align + - --gpu-memory-utilization + - "0.95" + - --max-model-len + - "8192" + - -- + - --data + - /hf-local/nvidia/Nemotron-Post-Training-Dataset-v2/default.jsonl + - --save + - /hf-local/modelopt/qwen3.5-9b-synth-v2 + - --num-shards + - "192" + - --shard-id + - $SLURM_ARRAY_TASK_ID + - --thinking-control + - chat-template-kwargs + - "--sampling-params '{\"temperature\":1.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}'" + - "--non-thinking-sampling-params '{\"temperature\":0.7,\"top_p\":0.8,\"top_k\":20,\"presence_penalty\":1.5}'" + - --num-proc + - "64" + - --max-tokens + - "4096" + - --max-total-length + - "8192" + environment: + - VLLM_STARTUP_TIMEOUT: "1800" + slurm_config: + _factory_: slurm_factory + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: null + time: 04:00:00 + container: /dspark-training/.cache/containers/vllm-openai-latest.sqsh + array: "0-191%96" + requeue: true diff --git a/tools/launcher/examples/Qwen/Qwen3.5-9B/train.eos.yaml b/tools/launcher/examples/Qwen/Qwen3.5-9B/train.eos.yaml new file mode 100644 index 00000000000..1a77741ddf8 --- /dev/null +++ b/tools/launcher/examples/Qwen/Qwen3.5-9B/train.eos.yaml @@ -0,0 +1,98 @@ +job_name: dspark.qwen3.5-9b-train-v3 + +pipeline: + global_vars: + hf_model: /hf-local/Qwen/Qwen3.5-9B + + # The synthesis stage replaces the walkthrough's public-SFT dataset builder. + task_0: + skip: true + script: common/eagle3/make_dataset.sh + args: + - -f modules/Model-Optimizer/examples/dataset/example_data_config.yaml + - --full-conversations + slurm_config: + _factory_: slurm_factory + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: null + container: nvcr.io/nvidia/tensorrt-llm/release:1.3.0rc20 + + task_1: + script: common/eagle3/train_eagle_streaming.sh + reqs: wandb==0.22.3 + args: + - --config modules/Model-Optimizer/modelopt_recipes/general/speculative_decoding/dspark.yaml + - model.model_name_or_path=<> + - model.use_fake_base_for_offline=true + - data.data_path=/hf-local/modelopt/qwen3.5-9b-synth-v2 + - data.chat_template=examples/Qwen/Qwen3.5-9B/chat_template_train.jinja + - training.output_dir=/cicd/training-v3 + - training.training_seq_len=4096 + - training.disable_tqdm=true + - training.ar_validate_steps=500000 + - training.num_train_epochs=5 + - training.per_device_train_batch_size=1 + - training.gradient_accumulation_steps=8 + - training.learning_rate=6.0e-4 + - training.warmup_ratio=0.04 + - training.lr_scheduler_type=cosine_with_min_lr + - training.lr_scheduler_kwargs.min_lr=3.0e-5 + - training.save_steps=200 + - training.logging_steps=10 + - training.estimate_ar=true + - training.answer_only_loss=true + - training.report_to=wandb + - dflash.dflash_block_size=8 + - dflash.dflash_num_anchors=512 + - dflash.dflash_loss_decay_factor=4.0 + - dflash.dflash_mask_token_id=248077 + - dflash.dflash_swa_window_size=4096 + - dflash.dflash_architecture_config.num_hidden_layers=6 + - dflash.dflash_architecture_config.num_attention_heads=32 + - dflash.dflash_architecture_config.num_key_value_heads=8 + - dflash.dflash_architecture_config.head_dim=128 + - dflash.dflash_architecture_config.intermediate_size=12288 + environment: + - HF_MODEL_CKPT: <> + - EAGLE_CAPTURE_IDS: "[2,8,13,19,24,30,32]" + - SERVE_NODES: "8" + - SERVE_TP: "8" + - STREAMING_NUM_WORKERS: "4" + - HS_POOL_SLOTS: "32" + - WANDB_PROJECT: + - WANDB_NAME: qwen3.5-9b-dspark-v3 + - WANDB_RUN_ID: qwen35-9b-dspark-v3 + - WANDB_RESUME: allow + - WANDB_DIR: /cicd/training-v3/wandb + - EXPORT_PATH: /cicd/export-v3 + - EXPORT_EXTRA_ARGS: "--trust_remote_code" + - SERVE_MAX_MODEL_LEN: "4160" + - SERVE_MAX_NUM_SEQS: "32" + - SERVE_READY_TIMEOUT: "1800" + slurm_config: + _factory_: slurm_factory + nodes: 16 + ntasks_per_node: 1 + gpus_per_node: null + dependency: singleton + time: 04:00:00 + container: /dspark-training/.cache/containers/vllm-openai-latest.sqsh + + task_2: + script: common/specdec/export_latest_and_vllm_smoke_test.sh + environment: + - HF_MODEL_CKPT: <> + - DRAFT_TRAINING_DIR: /cicd/training-v3 + - DRAFT_MODEL: /cicd/export-v3 + - EXPORT_TRUST_REMOTE_CODE: "1" + - SPEC_METHOD: dspark + - NUM_SPEC_TOKENS: "7" + - MIN_ACCEPTANCE_LENGTH: "1.2" + slurm_config: + _factory_: slurm_factory + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: null + time: 02:00:00 + container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh diff --git a/tools/launcher/tests/test_core.py b/tools/launcher/tests/test_core.py index 463e41f412a..1fe942403dc 100644 --- a/tools/launcher/tests/test_core.py +++ b/tools/launcher/tests/test_core.py @@ -38,6 +38,12 @@ SandboxTask2, SandboxTask3, SandboxTask4, + SandboxTask5, + SandboxTask6, + SandboxTask7, + SandboxTask8, + SandboxTask9, + SandboxTask10, create_task_from_yaml, get_default_env, register_factory, @@ -75,8 +81,8 @@ class TestSandboxPipeline: def test_task_slots_collected(self): t0 = SandboxTask0(script="a.sh") - t1 = SandboxTask1(script="b.sh") - pipeline = SandboxPipeline(task_0=t0, task_1=t1) + t10 = SandboxTask10(script="b.sh") + pipeline = SandboxPipeline(task_0=t0, task_10=t10) assert len(pipeline.tasks) == 2 assert pipeline.tasks[0].script == "a.sh" assert pipeline.tasks[1].script == "b.sh" @@ -195,6 +201,12 @@ class MockSlurmConfig: SandboxTask2, SandboxTask3, SandboxTask4, + SandboxTask5, + SandboxTask6, + SandboxTask7, + SandboxTask8, + SandboxTask9, + SandboxTask10, ): assert task_cls.__annotations__["slurm_config"] is MockSlurmConfig assert task_cls.__dataclass_fields__["slurm_config"].type is MockSlurmConfig diff --git a/tools/launcher/tests/test_core_extended.py b/tools/launcher/tests/test_core_extended.py index 757debc01c4..ff329d4af4b 100644 --- a/tools/launcher/tests/test_core_extended.py +++ b/tools/launcher/tests/test_core_extended.py @@ -433,7 +433,7 @@ def test_reqs_inline_barrier(self, mock_docker, mock_exp, tmp_path): inline = mock_script.call_args[1]["inline"] # `<` and `>` are shlex-quoted so the shell treats them literally. - assert "python -m pip install 'transformers<5' fire" in inline + assert "python3 -m pip install 'transformers<5' fire" in inline # Local rank 0 installs; other ranks wait on a per-job/step/node marker. assert '[ "${SLURM_LOCALID:-0}" -eq 0 ]' in inline marker = ( @@ -481,7 +481,7 @@ def test_reqs_script_wrapped_inline(self, mock_docker, mock_exp, tmp_path): call_kwargs = mock_script.call_args[1] inline = call_kwargs["inline"] - assert "python -m pip install fire" in inline + assert "python3 -m pip install fire" in inline # "--flag value" keeps the shell-word-split convention (expands to two args). assert inline.rstrip().endswith("bash run.sh --flag value") # Wrapped inline: no separate script/args kwargs. From 3b0c1f62ca9015d8af6ec5fbc30fb6cc8ad5494b Mon Sep 17 00:00:00 2001 From: Jinze Xue Date: Sat, 22 Aug 2026 16:47:59 -0700 Subject: [PATCH 07/10] Add Qwen3.5 35B DSpark support Signed-off-by: Jinze Xue --- .../torch/export/plugins/hf_spec_export.py | 6 +- .../plugins/modeling_final_norm.py | 1 + .../speculative/plugins/test_hf_dflash.py | 3 +- .../plugins/test_modeling_final_norm.py | 1 + tools/launcher/common/query.py | 10 +- .../common/specdec/vllm_smoke_test.sh | 8 + tools/launcher/core.py | 3 + .../Qwen3.5-35B-A3B/chat_template_train.jinja | 161 ++++++++++++++++++ tools/launcher/tests/test_core.py | 10 ++ 9 files changed, 197 insertions(+), 6 deletions(-) create mode 100644 tools/launcher/examples/Qwen/Qwen3.5-35B-A3B/chat_template_train.jinja diff --git a/modelopt/torch/export/plugins/hf_spec_export.py b/modelopt/torch/export/plugins/hf_spec_export.py index c0b9825ba53..9359b679d57 100644 --- a/modelopt/torch/export/plugins/hf_spec_export.py +++ b/modelopt/torch/export/plugins/hf_spec_export.py @@ -413,11 +413,11 @@ def _export_config(self): config["layer_types"] = ["full_attention"] * draft_config.num_hidden_layers # Sliding-window attention: all draft layers use non-causal SWA (MiMo-style). vLLM's - # _resolve_layer_attention reads dflash_config.use_swa + swa_window_size; with - # layer_types left all "full_attention" it applies a non-causal sliding window to - # every draft layer (window from swa_window_size / top-level sliding_window). + # _resolve_layer_attention reads both layer_types and dflash_config.use_swa; retain + # the nested fields for compatibility while making layer_types explicit. swa_window = getattr(self.model, "dflash_swa_window_size", None) if swa_window is not None: + config["layer_types"] = ["sliding_attention"] * draft_config.num_hidden_layers config["sliding_window"] = swa_window config["dflash_config"].update( { diff --git a/modelopt/torch/speculative/plugins/modeling_final_norm.py b/modelopt/torch/speculative/plugins/modeling_final_norm.py index 23f6634b6b7..35f57bbc3c6 100644 --- a/modelopt/torch/speculative/plugins/modeling_final_norm.py +++ b/modelopt/torch/speculative/plugins/modeling_final_norm.py @@ -88,6 +88,7 @@ def extra_repr(self): "qwen3": "rmsnorm", "qwen3_moe": "rmsnorm", "qwen3_5_text": "gemma_rmsnorm", # Qwen3.5 scales by (1 + weight). + "qwen3_5_moe_text": "gemma_rmsnorm", "deepseek_v3": "rmsnorm", "kimi_k2": "rmsnorm", # Kimi-K2 / K2-Thinking (DeepSeek-V3 arch) report model_type "kimi_k2" "kimi_k25": "rmsnorm", # Kimi-K2.5 / K2.6 / K2.7 all report model_type "kimi_k25" diff --git a/tests/unit/torch/speculative/plugins/test_hf_dflash.py b/tests/unit/torch/speculative/plugins/test_hf_dflash.py index ab5c5a57d21..088dc53f36d 100644 --- a/tests/unit/torch/speculative/plugins/test_hf_dflash.py +++ b/tests/unit/torch/speculative/plugins/test_hf_dflash.py @@ -804,8 +804,7 @@ def test_export_swa_fields(self, tmp_path): with open(export_dir / "config.json") as f: cfg = json.load(f) - # vLLM _resolve_layer_attention reads these; all-full layer_types + use_swa=True - # → non-causal sliding window on every draft layer. + assert cfg["layer_types"] == ["sliding_attention"] * NUM_DRAFT_LAYERS assert cfg["sliding_window"] == 256 assert cfg["dflash_config"]["use_swa"] is True assert cfg["dflash_config"]["swa_window_size"] == 256 diff --git a/tests/unit/torch/speculative/plugins/test_modeling_final_norm.py b/tests/unit/torch/speculative/plugins/test_modeling_final_norm.py index 6bd9189bef6..8b685f3ad4c 100644 --- a/tests/unit/torch/speculative/plugins/test_modeling_final_norm.py +++ b/tests/unit/torch/speculative/plugins/test_modeling_final_norm.py @@ -36,6 +36,7 @@ ("llama", "rmsnorm"), ("qwen3", "rmsnorm"), ("qwen3_5_text", "gemma_rmsnorm"), + ("qwen3_5_moe_text", "gemma_rmsnorm"), ("deepseek_v3", "rmsnorm"), ("kimi_k2", "rmsnorm"), ("kimi_k25", "rmsnorm"), diff --git a/tools/launcher/common/query.py b/tools/launcher/common/query.py index 698a5dfe78a..fbc51072e69 100644 --- a/tools/launcher/common/query.py +++ b/tools/launcher/common/query.py @@ -164,6 +164,12 @@ def generate( default="soft-switch", help="Disable thinking with /no_think or the server's chat_template_kwargs API.", ) +parser.add_argument( + "--response-mode", + choices=["mixed", "thinking", "non-thinking"], + default="mixed", + help="Response mode for synthesized shards; mixed disables thinking on even shards.", +) args = parser.parse_args() if args.temperature is not None and any( @@ -329,7 +335,9 @@ def synthesize(data): print(len(shard), file_path) num_proc = min(args.num_proc, len(shard)) - if shard_id % 2 == 0: + if args.response_mode == "non-thinking" or ( + args.response_mode == "mixed" and shard_id % 2 == 0 + ): shard = shard.map(disable_thinking_column, num_proc=num_proc) # Reuse completed map-worker caches and omit rows without a generated response. cache_dir = os.path.join(args.save, ".cache") diff --git a/tools/launcher/common/specdec/vllm_smoke_test.sh b/tools/launcher/common/specdec/vllm_smoke_test.sh index 2c95c7f21ec..1a9a582a0cd 100644 --- a/tools/launcher/common/specdec/vllm_smoke_test.sh +++ b/tools/launcher/common/specdec/vllm_smoke_test.sh @@ -26,6 +26,8 @@ # NUM_SPEC_TOKENS — number of speculative tokens (default: 15) # TP_SIZE — tensor parallel size (default: 1) # VLLM_PORT — server port (default: 8000) +# MAX_MODEL_LEN — optional maximum context length +# ENFORCE_EAGER — set to "1" to disable compile and CUDA graphs # REASONING_PARSER — reasoning parser (e.g., "qwen3" for Qwen3.5) # DISABLE_PREFIX_CACHING — set to "1" to disable prefix caching # SMOKE_PROFILE — profile label printed in results (default: "greedy") @@ -84,6 +86,12 @@ fi if [ "${DISABLE_PREFIX_CACHING:-}" = "1" ]; then OPTIONAL_ARGS="${OPTIONAL_ARGS} --no-enable-prefix-caching" fi +if [ -n "${MAX_MODEL_LEN:-}" ]; then + OPTIONAL_ARGS="${OPTIONAL_ARGS} --max-model-len ${MAX_MODEL_LEN}" +fi +if [ "${ENFORCE_EAGER:-}" = "1" ]; then + OPTIONAL_ARGS="${OPTIONAL_ARGS} --enforce-eager" +fi # Start vLLM server (capture output for regression check parsing) VLLM_LOG=$(mktemp /tmp/vllm_server_XXXXXX.log) diff --git a/tools/launcher/core.py b/tools/launcher/core.py index 00a598f3a25..345c993fd05 100644 --- a/tools/launcher/core.py +++ b/tools/launcher/core.py @@ -62,6 +62,9 @@ def get_default_env(experiment_title=None): "LAUNCH_SCRIPT": "python", **specdec_s3, } + # Forward the launcher-shell topology override into the Slurm job. + if serve_nodes := os.getenv("SERVE_NODES"): + slurm_env["SERVE_NODES"] = serve_nodes local_env = { "TRITON_CACHE_DIR": os.getenv("TRITON_CACHE_DIR", f"/{title}/triton-cache"), "HF_HOME": os.getenv("HF_HOME", f"/{title}/hf-cache"), diff --git a/tools/launcher/examples/Qwen/Qwen3.5-35B-A3B/chat_template_train.jinja b/tools/launcher/examples/Qwen/Qwen3.5-35B-A3B/chat_template_train.jinja new file mode 100644 index 00000000000..5467436ea79 --- /dev/null +++ b/tools/launcher/examples/Qwen/Qwen3.5-35B-A3B/chat_template_train.jinja @@ -0,0 +1,161 @@ +{# Official Qwen3.5-35B-A3B template with assistant output wrapped in generation tags. #} +{%- set image_count = namespace(value=0) %} +{%- set video_count = namespace(value=0) %} +{%- macro render_content(content, do_vision_count, is_system_content=false) %} + {%- if content is string %} + {{- content }} + {%- elif content is iterable and content is not mapping %} + {%- for item in content %} + {%- if 'image' in item or 'image_url' in item or item.type == 'image' %} + {%- if is_system_content %} + {{- raise_exception('System message cannot contain images.') }} + {%- endif %} + {%- if do_vision_count %} + {%- set image_count.value = image_count.value + 1 %} + {%- endif %} + {%- if add_vision_id %} + {{- 'Picture ' ~ image_count.value ~ ': ' }} + {%- endif %} + {{- '<|vision_start|><|image_pad|><|vision_end|>' }} + {%- elif 'video' in item or item.type == 'video' %} + {%- if is_system_content %} + {{- raise_exception('System message cannot contain videos.') }} + {%- endif %} + {%- if do_vision_count %} + {%- set video_count.value = video_count.value + 1 %} + {%- endif %} + {%- if add_vision_id %} + {{- 'Video ' ~ video_count.value ~ ': ' }} + {%- endif %} + {{- '<|vision_start|><|video_pad|><|vision_end|>' }} + {%- elif 'text' in item %} + {{- item.text }} + {%- else %} + {{- raise_exception('Unexpected item type in content.') }} + {%- endif %} + {%- endfor %} + {%- elif content is none or content is undefined %} + {{- '' }} + {%- else %} + {{- raise_exception('Unexpected content type.') }} + {%- endif %} +{%- endmacro %} +{%- if not messages %} + {{- raise_exception('No messages provided.') }} +{%- endif %} +{%- if tools and tools is iterable and tools is not mapping %} + {{- '<|im_start|>system\n' }} + {{- "# Tools\n\nYou have access to the following functions:\n\n" }} + {%- for tool in tools %} + {{- "\n" }} + {{- tool | tojson }} + {%- endfor %} + {{- "\n" }} + {{- '\n\nIf you choose to call a function ONLY reply in the following format with NO suffix:\n\n\n\n\nvalue_1\n\n\nThis is the value for the second parameter\nthat can span\nmultiple lines\n\n\n\n\n\nReminder:\n- Function calls MUST follow the specified format: an inner block must be nested within XML tags\n- Required parameters MUST be specified\n- You may provide optional reasoning for your function call in natural language BEFORE the function call, but NOT after\n- If there is no function call available, answer the question like normal with your current knowledge and do not tell the user about function calls\n' }} + {%- if messages[0].role == 'system' %} + {%- set content = render_content(messages[0].content, false, true)|trim %} + {%- if content %} + {{- '\n\n' + content }} + {%- endif %} + {%- endif %} + {{- '<|im_end|>\n' }} +{%- else %} + {%- if messages[0].role == 'system' %} + {%- set content = render_content(messages[0].content, false, true)|trim %} + {{- '<|im_start|>system\n' + content + '<|im_end|>\n' }} + {%- endif %} +{%- endif %} +{%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %} +{%- for message in messages[::-1] %} + {%- set index = (messages|length - 1) - loop.index0 %} + {%- if ns.multi_step_tool and message.role == "user" %} + {%- set content = render_content(message.content, false)|trim %} + {%- if not(content.startswith('') and content.endswith('')) %} + {%- set ns.multi_step_tool = false %} + {%- set ns.last_query_index = index %} + {%- endif %} + {%- endif %} +{%- endfor %} +{%- if ns.multi_step_tool %} + {{- raise_exception('No user query found in messages.') }} +{%- endif %} +{%- for message in messages %} + {%- set content = render_content(message.content, true)|trim %} + {%- if message.role == "system" %} + {%- if not loop.first %} + {{- raise_exception('System message must be at the beginning.') }} + {%- endif %} + {%- elif message.role == "user" %} + {{- '<|im_start|>' + message.role + '\n' + content + '<|im_end|>' + '\n' }} + {%- elif message.role == "assistant" %} + {%- set reasoning_content = '' %} + {%- set unfinished_thinking = message.enable_thinking is defined and message.enable_thinking and '' not in content %} + {%- if message.reasoning_content is string %} + {%- set reasoning_content = message.reasoning_content %} + {%- else %} + {%- if '' in content %} + {%- set reasoning_content = content.split('')[0].rstrip('\n').split('')[-1].lstrip('\n') %} + {%- set content = content.split('')[-1].lstrip('\n') %} + {%- endif %} + {%- endif %} + {%- set reasoning_content = reasoning_content|trim %} + {{- '<|im_start|>' + message.role + '\n' }} + {%- generation %} + {%- if loop.index0 > ns.last_query_index and unfinished_thinking %} + {{- '\n' + content }} + {%- elif loop.index0 > ns.last_query_index %} + {{- '\n' + reasoning_content + '\n\n\n' + content }} + {%- else %} + {{- content }} + {%- endif %} + {%- if message.tool_calls and message.tool_calls is iterable and message.tool_calls is not mapping %} + {%- for tool_call in message.tool_calls %} + {%- if tool_call.function is defined %} + {%- set tool_call = tool_call.function %} + {%- endif %} + {%- if loop.first %} + {%- if content|trim %} + {{- '\n\n\n\n' }} + {%- else %} + {{- '\n\n' }} + {%- endif %} + {%- else %} + {{- '\n\n\n' }} + {%- endif %} + {%- if tool_call.arguments is defined %} + {%- for args_name, args_value in tool_call.arguments|items %} + {{- '\n' }} + {%- set args_value = args_value | tojson | safe if args_value is mapping or (args_value is sequence and args_value is not string) else args_value | string %} + {{- args_value }} + {{- '\n\n' }} + {%- endfor %} + {%- endif %} + {{- '\n' }} + {%- endfor %} + {%- endif %} + {{- '<|im_end|>\n' }} + {%- endgeneration %} + {%- elif message.role == "tool" %} + {%- if loop.previtem and loop.previtem.role != "tool" %} + {{- '<|im_start|>user' }} + {%- endif %} + {{- '\n\n' }} + {{- content }} + {{- '\n' }} + {%- if not loop.last and loop.nextitem.role != "tool" %} + {{- '<|im_end|>\n' }} + {%- elif loop.last %} + {{- '<|im_end|>\n' }} + {%- endif %} + {%- else %} + {{- raise_exception('Unexpected message role.') }} + {%- endif %} +{%- endfor %} +{%- if add_generation_prompt %} + {{- '<|im_start|>assistant\n' }} + {%- if enable_thinking is defined and enable_thinking is false %} + {{- '\n\n\n\n' }} + {%- else %} + {{- '\n' }} + {%- endif %} +{%- endif %} diff --git a/tools/launcher/tests/test_core.py b/tools/launcher/tests/test_core.py index 1fe942403dc..9d873ec4992 100644 --- a/tools/launcher/tests/test_core.py +++ b/tools/launcher/tests/test_core.py @@ -236,6 +236,16 @@ def test_custom_title(self, monkeypatch): assert slurm_env["HF_HOME"] == "/modelopt/hf-cache" assert local_env["HF_HOME"] == "/modelopt/hf-cache" + def test_serve_nodes_forwarded_to_slurm(self, monkeypatch): + monkeypatch.setenv("SERVE_NODES", "8") + slurm_env, _ = get_default_env() + assert slurm_env["SERVE_NODES"] == "8" + + def test_serve_nodes_omitted_when_unset(self, monkeypatch): + monkeypatch.delenv("SERVE_NODES", raising=False) + slurm_env, _ = get_default_env() + assert "SERVE_NODES" not in slurm_env + class TestReportVersions: """Tests for report_versions git info utility.""" From d1a7d43d5af08d54cc69388343a313fb4e0ce2b2 Mon Sep 17 00:00:00 2001 From: Jinze Xue Date: Fri, 28 Aug 2026 15:28:01 -0700 Subject: [PATCH 08/10] Add pretokenized DSpark continuation training Signed-off-by: Jinze Xue --- examples/speculative_decoding/main.py | 17 ++++++++-- .../plugins/hf_streaming_dataset.py | 25 +++++++++++--- .../speculative/plugins/hf_training_args.py | 1 + .../plugins/test_hf_streaming_dataset.py | 34 +++++++++++++++++++ 4 files changed, 71 insertions(+), 6 deletions(-) diff --git a/examples/speculative_decoding/main.py b/examples/speculative_decoding/main.py index ce9460637ac..0ef36e14dfd 100644 --- a/examples/speculative_decoding/main.py +++ b/examples/speculative_decoding/main.py @@ -204,7 +204,16 @@ def train(): if last_checkpoint: print_rank_0(f"Last checkpoint detected: {last_checkpoint}") - checkpoint = training_args.resume_from_checkpoint or last_checkpoint + if training_args.resume_model_only: + # With resume_model_only, initialize the first run from the configured checkpoint; + # fully resume the latest local checkpoint thereafter. + checkpoint = last_checkpoint or training_args.resume_from_checkpoint + model_only_init = last_checkpoint is None + else: + # Without resume_model_only, use the requested checkpoint when set; otherwise resume + # the latest local checkpoint. + checkpoint = training_args.resume_from_checkpoint or last_checkpoint + model_only_init = False use_offline_training = recipe.data.mode != "online" @@ -212,6 +221,8 @@ def train(): # weights load via from_pretrained; FSDP sharded checkpoints load the base model and # resume through the Trainer. checkpoint_is_hf = _is_hf_format_checkpoint(checkpoint) + if model_only_init and not checkpoint_is_hf: + raise ValueError("resume_model_only requires a consolidated Hugging Face checkpoint.") if checkpoint_is_hf: assert checkpoint is not None # guaranteed by checkpoint_is_hf @@ -354,7 +365,9 @@ def train(): fsdp2_buffer_patch.log_param_dtypes(trainer.model) print_rank_0("Start training...") - trainer.train(resume_from_checkpoint=checkpoint) + # With resume_model_only, initialize the first run from the configured checkpoint with fresh + # Trainer state (skipping optimizer state loading); otherwise resume full training state. + trainer.train(resume_from_checkpoint=None if model_only_init else checkpoint) trainer.save_state() trainer.save_model(training_args.output_dir) diff --git a/modelopt/torch/speculative/plugins/hf_streaming_dataset.py b/modelopt/torch/speculative/plugins/hf_streaming_dataset.py index 0f9713948fd..f70440de5b7 100644 --- a/modelopt/torch/speculative/plugins/hf_streaming_dataset.py +++ b/modelopt/torch/speculative/plugins/hf_streaming_dataset.py @@ -213,7 +213,7 @@ def __init__( (seeded by ``training_args.seed``), so no shuffle is needed here. Args: - entries: Untokenized per-sample dicts from the input jsonl. Schema is + entries: Per-sample dicts from the input jsonl. Schema is subclass-defined (see :meth:`_tokenize_entry`); passed to :meth:`_fetch`. tokenizer: HF tokenizer; used for client-side tokenization and the server/client loss-mask alignment in :meth:`_fetch`. @@ -283,11 +283,28 @@ def __getitem__(self, idx: int) -> dict[str, torch.Tensor]: def _tokenize_entry(self, entry: dict) -> dict | None: """Tokenize a single entry. - Returns ``None`` for entries missing ``cid`` / ``conversations``-or-``messages``, or when - right-truncation to ``max_seq_len`` drops the entire supervised span - (``answer_only_loss`` mode with the assistant turn at the tail). + Pretokenized entries may provide aligned ``token_ids`` / ``loss_mask`` lists. + Otherwise, tokenize ``conversations`` or ``messages``. Returns ``None`` when + required data is absent or right-truncation drops the supervised span. """ cid = entry.get("conversation_id") or entry.get("uuid") + token_ids = entry.get("token_ids") + loss_mask = entry.get("loss_mask") + if token_ids is not None or loss_mask is not None: + if not self.config.answer_only_loss: + raise ValueError("pretokenized loss_mask requires answer_only_loss=True") + if not isinstance(token_ids, list) or not isinstance(loss_mask, list): + raise ValueError("pretokenized entries require token_ids and loss_mask lists") + if len(token_ids) != len(loss_mask): + raise ValueError("pretokenized token_ids and loss_mask lengths must match") + if self.config.max_seq_len is not None: + token_ids = token_ids[: self.config.max_seq_len] + loss_mask = loss_mask[: self.config.max_seq_len] + loss_mask = torch.tensor(loss_mask, dtype=torch.long) + if cid is None or not token_ids or int(loss_mask.sum()) == 0: + return None + return {"cid": str(cid), "token_ids": token_ids, "loss_mask": loss_mask} + # Prefer ``conversations``, fall back to ``messages`` (the documented default format; # see examples README). The order matters: some corpora (e.g. Spec-Decoding-Dataset-v2) # carry a degenerate user-only ``messages`` stub (no assistant turn) alongside the real diff --git a/modelopt/torch/speculative/plugins/hf_training_args.py b/modelopt/torch/speculative/plugins/hf_training_args.py index f1c54ba3546..64a08350601 100644 --- a/modelopt/torch/speculative/plugins/hf_training_args.py +++ b/modelopt/torch/speculative/plugins/hf_training_args.py @@ -102,6 +102,7 @@ class TrainingArguments(BaseModel): model_config = ConfigDict(extra="allow") + resume_model_only: bool = False training_seq_len: int = 2048 estimate_ar: bool = False ar_validate_steps: int = 1000 diff --git a/tests/unit/torch/speculative/plugins/test_hf_streaming_dataset.py b/tests/unit/torch/speculative/plugins/test_hf_streaming_dataset.py index efd77267b3c..2d185499eda 100644 --- a/tests/unit/torch/speculative/plugins/test_hf_streaming_dataset.py +++ b/tests/unit/torch/speculative/plugins/test_hf_streaming_dataset.py @@ -506,6 +506,40 @@ def _fast_tokenizer_with_template(template: str, seq: int = 8) -> MagicMock: _CONV = [{"role": "user", "content": "hi"}, {"role": "assistant", "content": "hello"}] +def test_pretokenized_entry_preserves_mask_and_truncates_in_lockstep(): + ds = StreamingDataset( + [{"conversation_id": "trace", "token_ids": [1, 2, 3, 4], "loss_mask": [0, 1, 0, 1]}], + tokenizer=MagicMock(), + config=StreamingConfig(answer_only_loss=True, max_seq_len=3), + ) + + sample = ds._tokenize_entry(ds.entries[0]) + + assert sample["cid"] == "trace" + assert sample["token_ids"] == [1, 2, 3] + assert sample["loss_mask"].tolist() == [0, 1, 0] + ds.tokenizer.apply_chat_template.assert_not_called() + + +def test_pretokenized_entry_rejects_misaligned_mask(): + ds = StreamingDataset( + [{"conversation_id": "trace", "token_ids": [1, 2], "loss_mask": [1]}], + tokenizer=MagicMock(), + config=StreamingConfig(answer_only_loss=True), + ) + + with pytest.raises(ValueError, match="lengths must match"): + ds._tokenize_entry(ds.entries[0]) + + +def test_pretokenized_entry_requires_answer_only_loss(): + entry = {"conversation_id": "trace", "token_ids": [1], "loss_mask": [1]} + ds = StreamingDataset([entry], tokenizer=MagicMock()) + + with pytest.raises(ValueError, match="answer_only_loss=True"): + ds._tokenize_entry(entry) + + def test_answer_only_loss_rejects_template_without_generation_tags(): """A fast tokenizer whose template lacks {% generation %} tags fails loudly. From 84d9f27e964aaaf96ea77ef1f144ca3fba3a8e18 Mon Sep 17 00:00:00 2001 From: Jinze Xue Date: Fri, 4 Sep 2026 12:04:09 -0700 Subject: [PATCH 09/10] feat(dspark): add Qwen3.5 training examples Signed-off-by: Jinze Xue --- examples/speculative_decoding/README.md | 4 + ...a3b-dspark-swe-context-distribution-t0.png | Bin 0 -> 769442 bytes examples/speculative_decoding/doc/dspark.md | 260 ++++++++++++++ .../torch/speculative/plugins/hf_dspark.py | 4 +- .../general/speculative_decoding/dspark.yaml | 1 + .../speculative/plugins/test_hf_dspark.py | 2 +- tools/launcher/common/query.py | 4 +- .../common/specdec/vllm_smoke_test.sh | 4 +- tools/launcher/core.py | 11 +- ...treaming_dspark_finetuning_multi_node.yaml | 95 ++++++ .../hf_streaming_dspark_multi_node.yaml | 91 +++++ .../Qwen/Qwen3.5-35B-A3B/hf_synth.yaml | 57 ++++ .../Qwen/Qwen3.5-35B-A3B/prepare-swe-data.py | 123 +++++++ .../Qwen3.5-35B-A3B/specdec_bench_tp2_c1.yaml | 322 ++++++++++++++++++ .../specdec_bench_tp2_c32.yaml} | 128 ++++--- .../Qwen/Qwen3.5-9B/benchmark.eos.yaml | 151 -------- ...ml => hf_streaming_dspark_multi_node.yaml} | 51 ++- .../{synthesize.eos.yaml => hf_synth.yaml} | 14 +- ....v4.eos.yaml => specdec_bench_tp1_c1.yaml} | 116 ++++--- ...v3.eos.yaml => specdec_bench_tp1_c32.yaml} | 126 ++++--- tools/launcher/pyproject.toml | 3 + tools/launcher/tests/test_slurm_executor.py | 8 +- 22 files changed, 1210 insertions(+), 365 deletions(-) create mode 100644 examples/speculative_decoding/doc/assets/qwen3.5-35b-a3b-dspark-swe-context-distribution-t0.png create mode 100644 examples/speculative_decoding/doc/dspark.md create mode 100644 tools/launcher/examples/Qwen/Qwen3.5-35B-A3B/hf_streaming_dspark_finetuning_multi_node.yaml create mode 100644 tools/launcher/examples/Qwen/Qwen3.5-35B-A3B/hf_streaming_dspark_multi_node.yaml create mode 100644 tools/launcher/examples/Qwen/Qwen3.5-35B-A3B/hf_synth.yaml create mode 100644 tools/launcher/examples/Qwen/Qwen3.5-35B-A3B/prepare-swe-data.py create mode 100644 tools/launcher/examples/Qwen/Qwen3.5-35B-A3B/specdec_bench_tp2_c1.yaml rename tools/launcher/examples/Qwen/{Qwen3.5-9B/benchmark.v2.eos.yaml => Qwen3.5-35B-A3B/specdec_bench_tp2_c32.yaml} (72%) delete mode 100644 tools/launcher/examples/Qwen/Qwen3.5-9B/benchmark.eos.yaml rename tools/launcher/examples/Qwen/Qwen3.5-9B/{train.eos.yaml => hf_streaming_dspark_multi_node.yaml} (67%) rename tools/launcher/examples/Qwen/Qwen3.5-9B/{synthesize.eos.yaml => hf_synth.yaml} (75%) rename tools/launcher/examples/Qwen/Qwen3.5-9B/{benchmark.v4.eos.yaml => specdec_bench_tp1_c1.yaml} (73%) rename tools/launcher/examples/Qwen/Qwen3.5-9B/{benchmark.v3.eos.yaml => specdec_bench_tp1_c32.yaml} (73%) diff --git a/examples/speculative_decoding/README.md b/examples/speculative_decoding/README.md index 169b83fb9e5..cba6c7af669 100644 --- a/examples/speculative_decoding/README.md +++ b/examples/speculative_decoding/README.md @@ -396,3 +396,7 @@ python scripts/export_hf_checkpoint.py \ ### Results See [doc/dflash.md](doc/dflash.md) for design details, benchmark results, and open items. + +### DSpark + +For end-to-end Qwen3.5 DSpark synthesis, streaming training, export, and benchmark commands, see the [Qwen3.5 DSpark guide](doc/dspark.md). diff --git a/examples/speculative_decoding/doc/assets/qwen3.5-35b-a3b-dspark-swe-context-distribution-t0.png b/examples/speculative_decoding/doc/assets/qwen3.5-35b-a3b-dspark-swe-context-distribution-t0.png new file mode 100644 index 0000000000000000000000000000000000000000..7dfffada57fdfd171d182687e62cff1e5653c186 GIT binary patch literal 769442 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

Y~b>e11G8 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
;7~( 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

s^BQl#d6Zwe`2i{7%C8r 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ºNjjAnD~ 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 z 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 Tj>{6xb%~9Mn|E=}ntfjYN5o=4 literal 0 HcmV?d00001 diff --git a/examples/speculative_decoding/doc/dspark.md b/examples/speculative_decoding/doc/dspark.md new file mode 100644 index 00000000000..433f30cfe41 --- /dev/null +++ b/examples/speculative_decoding/doc/dspark.md @@ -0,0 +1,260 @@ +# Qwen3.5 DSpark + +This guide provides complete, reproducible steps to train DSpark drafters for Qwen3.5-9B and Qwen3.5-35B-A3B. See the [Qwen3-8B walkthrough](../QWEN3_8B_DSPARK_WALKTHROUGH.md) for the training mechanics. + +Hyperparameters used in this guide: + +| Parameter | Qwen3.5-9B | Qwen3.5-35B-A3B | 35B SWE fine-tuning | +|-----------------|-----------------------------------------:|-----------------------------:|---------------------------:| +| Input | Nemotron PT v2 prompts | Nemotron PT v2 prompts | Agent traces | +| Synthesis | 192 shards · mixed thinking/non-thinking | 384 shards · thinking only | none | +| Training Nodes | 8 target + 8 trainer nodes | 16 target + 16 trainer nodes | 8 target + 8 trainer nodes | +| Sequence length | 4K | 4K | 32K | +| Block size | 8 | 8 | 8 | +| Anchors | 512 | 512 | 4096 | +| Draft layers | 6 layers · FFN 12288 | 6 layers · FFN 6144 | same as 35B base | +| Captures | `[2,8,13,19,24,30,32]` | `[2,9,16,24,31,38,40]` | same as 35B base | +| Attention | SWA 4096 | SWA 4096 | same as 35B base | +| Learning rate | 6e-4 → 3e-5 · cosine | 6e-4 → 3e-5 · cosine | 1e-4 → 3e-5 · cosine | +| Global batch | 512 | 512 | 256 | +| Epochs | 5 | 5 | ~5 | + +## 1. Setup + +Requirements: a Slurm cluster and an `HF_TOKEN` with access to [Nemotron Post-Training Dataset v2](https://huggingface.co/datasets/nvidia/Nemotron-Post-Training-Dataset-v2). Dataset synthesis and training use the `vllm/vllm-openai:v0.27.1` container. Benchmarks use `vllm/vllm-openai:nightly` with Model Runner V2. + +The workflow uses one shared root for the Model-Optimizer checkout, caches, and job outputs: + +```text +dspark-training/ +├── Model-Optimizer/ +├── .cache/ +└── outputs/nemorun/experiments/cicd/ +``` + +```bash +# Set the DSpark training root +export DSPARK_TRAINING_ROOT="/path/to/dspark-training" +mkdir -p "$DSPARK_TRAINING_ROOT" +cd "$DSPARK_TRAINING_ROOT" + +# Set the Slurm account and partition +export SLURM_ACCOUNT="" +export SLURM_PARTITION="" + +# Set the Hugging Face and W&B credentials +export HF_TOKEN="" +export WANDB_API_KEY="" +: "${HF_TOKEN:?Export HF_TOKEN before continuing}" +: "${WANDB_API_KEY:?Export WANDB_API_KEY before continuing}" + +# Clone Model-Optimizer and check out a specific branch when needed +git clone --recurse-submodules https://github.com/NVIDIA/Model-Optimizer.git + +# Set the cache and output directories +export SLURM_HOST="localhost" +export SLURM_HF_LOCAL="$DSPARK_TRAINING_ROOT/.cache/hf" +export UV_CACHE_DIR="$DSPARK_TRAINING_ROOT/.cache/uv" +export NEMORUN_HOME="$DSPARK_TRAINING_ROOT/outputs/nemorun" +export SLURM_JOB_DIR="$NEMORUN_HOME/experiments" +mkdir -p "$SLURM_HF_LOCAL" "$SLURM_JOB_DIR" "$NEMORUN_HOME" "$UV_CACHE_DIR" + +# Enter the launcher directory, install uv, and sync dependencies +cd "$DSPARK_TRAINING_ROOT/Model-Optimizer/tools/launcher" +command -v uv >/dev/null || curl -LsSf https://astral.sh/uv/install.sh | sh +export PATH="$HOME/.local/bin:$PATH" +uv sync +``` + +Download HF models and dataset: + +```bash +# Download Qwen3.5-9B and DFlash drafters +uv run --with huggingface-hub hf download Qwen/Qwen3.5-9B --revision c202236235762e1c871ad0ccb60c8ee5ba337b9a --local-dir "$SLURM_HF_LOCAL/Qwen/Qwen3.5-9B" +uv run --with huggingface-hub hf download z-lab/Qwen3.5-9B-DFlash --revision 5fc3b3d474760f18c516db87d84c37edbfd3ede6 --local-dir "$SLURM_HF_LOCAL/z-lab/Qwen3.5-9B-DFlash" +# Download Qwen3.5-35B-A3B and DFlash drafters +uv run --with huggingface-hub hf download Qwen/Qwen3.5-35B-A3B --revision 59d61f3ce65a6d9863b86d2e96597125219dc754 --local-dir "$SLURM_HF_LOCAL/Qwen/Qwen3.5-35B-A3B" +uv run --with huggingface-hub hf download z-lab/Qwen3.5-35B-A3B-DFlash --revision 52cb554b4995dede3e2e1bdb129cdb1f3529332b --local-dir "$SLURM_HF_LOCAL/z-lab/Qwen3.5-35B-A3B-DFlash" + +# Prepare the synthesis prompts from Nemotron Post-Training Dataset v2 +HF_HOME="$SLURM_HF_LOCAL" uv run --with datasets python ../../examples/dataset/make_nemotron_ptv2_dataset.py --mode generate --output-dir "$SLURM_HF_LOCAL/nvidia/Nemotron-Post-Training-Dataset-v2" +``` + +## 2. Qwen3.5-9B + +### 2.a Dataset synthesis + +Synthesize the dataset with the target model using prompts from Nemotron Post-Training Dataset v2. + +```bash +# Run the two-shard synthesis pipeclean +uv run launch.py --yaml examples/Qwen/Qwen3.5-9B/hf_synth.yaml pipeline.global_vars.output_dir=/hf-local/modelopt/qwen3.5-9b-dspark-pipeclean pipeline.task_0.slurm_config.array=0-1 --yes + +# Synthesize the full dataset (192 shards, one Slurm job per shard) +uv run launch.py --yaml examples/Qwen/Qwen3.5-9B/hf_synth.yaml --yes +``` + +Each completed shard writes a non-empty `shard_.jsonl` in `$DSPARK_TRAINING_ROOT/.cache/hf/modelopt/qwen3.5-9b-dspark-synthesis/`. + +### 2.b Drafter training + +Run a two-node pipeclean on the synthesized dataset before full training. A repeated full-training submission resumes the latest checkpoint and `singleton` serializes submissions. + +```bash +# Run pipeclean training (2 nodes) +# Run two optimizer steps, then cancel it +WANDB_MODE=disabled SERVE_NODES=1 uv run launch.py --yaml examples/Qwen/Qwen3.5-9B/hf_streaming_dspark_multi_node.yaml pipeline.global_vars.output_dir=/cicd/qwen3.5-9b-dspark-pipeclean pipeline.task_1.slurm_config.nodes=2 pipeline.task_2.skip=true --yes + +# Run or resume production training (16 nodes) +uv run launch.py --yaml examples/Qwen/Qwen3.5-9B/hf_streaming_dspark_multi_node.yaml pipeline.task_2.skip=true --yes + +# Export and validate the trained drafter (T=0 and T=1 serving smoke tests) +uv run launch.py --yaml examples/Qwen/Qwen3.5-9B/hf_streaming_dspark_multi_node.yaml pipeline.task_1.skip=true --yes +``` + +Checkpoints and the serving export are written to `$DSPARK_TRAINING_ROOT/outputs/nemorun/experiments/cicd/qwen3.5-9b-dspark/{training,export}`. + +### 2.c Benchmark + +Each benchmark runs Base, DSpark7, MTP3, MTP7, and DFlash8 at T=0 and T=1 on vLLM Model Runner V2. + +```bash +# Benchmark concurrency 1 +uv run launch.py --yaml examples/Qwen/Qwen3.5-9B/specdec_bench_tp1_c1.yaml --yes + +# Benchmark concurrency 32 +uv run launch.py --yaml examples/Qwen/Qwen3.5-9B/specdec_bench_tp1_c32.yaml --yes +``` + +Results are written under `$DSPARK_TRAINING_ROOT/outputs/nemorun/experiments/cicd/` in the `qwen3.5-9b-dspark-benchmark-tp1-c1/` and `qwen3.5-9b-dspark-benchmark-tp1-c32/` directories. + +Qwen3.5-9B DSpark7 acceptance length on SPEED-Bench: + +| Category | DSpark7 (T1) | DSpark7 (T0) | +| :---- | :---- | :---- | +| Coding | 4.3773 | 4.8827 | +| Humanities | 3.1494 | 3.8773 | +| Math | 4.1374 | 4.6412 | +| Multilingual | 3.8842 | 4.3879 | +| QA | 3.2359 | 4.0704 | +| RAG | 4.1099 | 4.5759 | +| Reasoning | 3.7000 | 4.1205 | +| Roleplay | 2.6752 | 3.8322 | +| STEM | 3.3827 | 3.9522 | +| Summarization | 3.6285 | 4.2045 | +| Writing | 2.8436 | 3.1263 | +| Overall AL | 3.5567 | 4.1519 | + +## 3. Qwen3.5-35B-A3B + +### 3.a Dataset synthesis + +Synthesize the dataset with the target model using prompts from Nemotron Post-Training Dataset v2. + +```bash +# Run the one-shard synthesis pipeclean +uv run launch.py --yaml examples/Qwen/Qwen3.5-35B-A3B/hf_synth.yaml pipeline.global_vars.output_dir=/hf-local/modelopt/qwen3.5-35b-a3b-dspark-pipeclean pipeline.task_0.slurm_config.array=0-0 --yes + +# Synthesize the full dataset (384 shards, one Slurm job per shard) +uv run launch.py --yaml examples/Qwen/Qwen3.5-35B-A3B/hf_synth.yaml --yes +``` + +Each completed shard writes a non-empty `shard_.jsonl` in `$DSPARK_TRAINING_ROOT/.cache/hf/modelopt/qwen3.5-35b-a3b-dspark-synthesis/`. + +### 3.b Drafter training + +The 35B recipe uses 16 target-server nodes and 16 trainer nodes. + +```bash +# Run pipeclean training (2 nodes) +# Run two optimizer steps, then cancel it +WANDB_MODE=disabled SERVE_NODES=1 uv run launch.py --yaml examples/Qwen/Qwen3.5-35B-A3B/hf_streaming_dspark_multi_node.yaml pipeline.global_vars.output_dir=/cicd/qwen3.5-35b-a3b-dspark-pipeclean pipeline.task_1.slurm_config.nodes=2 pipeline.task_2.skip=true --yes + +# Run or resume production training (32 nodes) +uv run launch.py --yaml examples/Qwen/Qwen3.5-35B-A3B/hf_streaming_dspark_multi_node.yaml pipeline.task_2.skip=true --yes + +# Export and validate the trained drafter (T=0 and T=1 serving smoke tests) +uv run launch.py --yaml examples/Qwen/Qwen3.5-35B-A3B/hf_streaming_dspark_multi_node.yaml pipeline.task_1.skip=true --yes +``` + +Checkpoints and the serving export are written to `$DSPARK_TRAINING_ROOT/outputs/nemorun/experiments/cicd/qwen3.5-35b-a3b-dspark/{training,export}`. + +### 3.c Benchmark + +Each benchmark runs Base, DSpark7, MTP3, MTP7, and DFlash8 at T=0 and T=1 on vLLM Model Runner V2. + +```bash +# Benchmark concurrency 1 +uv run launch.py --yaml examples/Qwen/Qwen3.5-35B-A3B/specdec_bench_tp2_c1.yaml --yes + +# Benchmark concurrency 32 +uv run launch.py --yaml examples/Qwen/Qwen3.5-35B-A3B/specdec_bench_tp2_c32.yaml --yes +``` + +Results are written under `$DSPARK_TRAINING_ROOT/outputs/nemorun/experiments/cicd/` in the `qwen3.5-35b-a3b-dspark-benchmark-tp2-c1/` and `qwen3.5-35b-a3b-dspark-benchmark-tp2-c32/` directories. + +Qwen3.5-35B-A3B DSpark7 acceptance length on SPEED-Bench: + +| Category | DSpark7 (T1) | DSpark7 (T0) | +| :---- | :---- | :---- | +| Coding | 4.3720 | 4.8880 | +| Humanities | 3.0543 | 3.6332 | +| Math | 4.0852 | 4.5721 | +| Multilingual | 3.7786 | 4.1805 | +| QA | 3.2111 | 3.7132 | +| RAG | 4.0790 | 4.4432 | +| Reasoning | 3.6061 | 3.9967 | +| Roleplay | 2.5711 | 3.3469 | +| STEM | 3.3168 | 3.8496 | +| Summarization | 3.5660 | 4.0488 | +| Writing | 2.7125 | 2.9998 | +| Overall AL | 3.4866 | 3.9702 | + +### 3.d Optional SWE fine-tuning + +Use fine-tuning to improve acceptance length (AL) for specific domains, such as SWE and long-context workloads. + +Prepare fine-tuning data: + +1. Prepare rollout traces from the target domain. SWE traces can come from evaluation or RL rollouts. +2. Convert each conversation into one JSONL record using the following schema: + + ```json + {"conversation_id":"...","messages":[...],"token_ids":[...],"loss_mask":[0,1,...]} + ``` + + If the trace contains recorded target token IDs and an assistant loss mask, preserve them to skip additional tokenization and masking (RL traces may already contain these values, and `loss_mask=1` marks assistant tokens). Otherwise, provide `messages`, and the training loader will tokenize them and derive the loss mask. It is not necessary to truncate the sequence length during conversion because the loader automatically truncates tokens and masks together to the configured sequence length. + + See [prepare-swe-data.py](../../../tools/launcher/examples/Qwen/Qwen3.5-35B-A3B/prepare-swe-data.py) for a Prime-RL trace conversion example. + +3. Store the JSONL records under `$DSPARK_TRAINING_ROOT/.cache/hf/modelopt/qwen3.5-35b-a3b-dspark-finetuning/`. + +Run DSpark fine-tuning: + +Set `DRAFT_CHECKPOINT` to a completed checkpoint from 3.b. The first fine-tuning run loads its model weights without the optimizer state. Repeated submissions resume the latest fine-tuning checkpoint. + +```bash +export DRAFT_CHECKPOINT="/cicd/qwen3.5-35b-a3b-dspark/training/checkpoint-" +``` + +```bash +# Run pipeclean training (2 nodes) +# Run two optimizer steps, then cancel it +WANDB_MODE=disabled SERVE_NODES=1 uv run launch.py --yaml examples/Qwen/Qwen3.5-35B-A3B/hf_streaming_dspark_finetuning_multi_node.yaml pipeline.global_vars.draft_model="$DRAFT_CHECKPOINT" pipeline.global_vars.output_dir=/cicd/qwen3.5-35b-a3b-dspark-finetuning-pipeclean pipeline.task_1.slurm_config.nodes=2 pipeline.task_2.skip=true --yes + +# Run or resume production training (16 nodes) +uv run launch.py --yaml examples/Qwen/Qwen3.5-35B-A3B/hf_streaming_dspark_finetuning_multi_node.yaml pipeline.global_vars.draft_model="$DRAFT_CHECKPOINT" pipeline.task_2.skip=true --yes + +# Export and validate the trained drafter (T=0 and T=1 serving smoke tests) +uv run launch.py --yaml examples/Qwen/Qwen3.5-35B-A3B/hf_streaming_dspark_finetuning_multi_node.yaml pipeline.task_1.skip=true --yes +``` + +Checkpoints and the serving export are written to `$DSPARK_TRAINING_ROOT/outputs/nemorun/experiments/cicd/qwen3.5-35b-a3b-dspark-finetuning/{training,export}`. + +### 3.e Benchmark + +Benchmark the fine-tuned drafter on domain data, such as long-context SWE traces, by replaying each turn's model-call prompt. Plot AL against context length for the original and fine-tuned drafters under matched serving and sampling settings. (Long context benchmark requires the DSpark hybrid prefix-cache fix in [`jinzex/vllm:jinzex/dspark`](https://github.com/jinzex/vllm/tree/jinzex/dspark)). + +SWE fine-tuning improved DSpark7 acceptance length across all measured context lengths. + +![Qwen3.5-35B-A3B speculative acceptance distribution over 200 SWE traces](assets/qwen3.5-35b-a3b-dspark-swe-context-distribution-t0.png) diff --git a/modelopt/torch/speculative/plugins/hf_dspark.py b/modelopt/torch/speculative/plugins/hf_dspark.py index 2fe7c679667..483d45a78aa 100644 --- a/modelopt/torch/speculative/plugins/hf_dspark.py +++ b/modelopt/torch/speculative/plugins/hf_dspark.py @@ -107,9 +107,7 @@ def _chunk(a, b): def _accuracy_counts(logits, target_ids, eval_mask): """Return correct/valid token counts for each draft position.""" keep = eval_mask > 0.5 - correct = ((logits.argmax(dim=-1) == target_ids) & keep).sum( - dim=(0, 1), dtype=torch.float32 - ) + correct = ((logits.argmax(dim=-1) == target_ids) & keep).sum(dim=(0, 1), dtype=torch.float32) valid = keep.sum(dim=(0, 1), dtype=torch.float32) return correct, valid diff --git a/modelopt_recipes/general/speculative_decoding/dspark.yaml b/modelopt_recipes/general/speculative_decoding/dspark.yaml index cb7b09f40e9..6b5aef86f53 100644 --- a/modelopt_recipes/general/speculative_decoding/dspark.yaml +++ b/modelopt_recipes/general/speculative_decoding/dspark.yaml @@ -73,6 +73,7 @@ dflash: dflash_self_logit_distillation: false # gamma for exponential loss decay (block_size=16 -> 7). dflash_loss_decay_factor: 7.0 + dflash_loss_objective: decay # Qwen3 has no native mask token; 151669 is an unused id used by the reference. dflash_mask_token_id: 151669 # Three-term loss weights (DeepSpec defaults: L1/TVD-dominant). diff --git a/tests/unit/torch/speculative/plugins/test_hf_dspark.py b/tests/unit/torch/speculative/plugins/test_hf_dspark.py index a41709db1ad..2778c77ab8a 100644 --- a/tests/unit/torch/speculative/plugins/test_hf_dspark.py +++ b/tests/unit/torch/speculative/plugins/test_hf_dspark.py @@ -356,7 +356,7 @@ def test_export_config_matches_training_config(self): mismatches = { field: ( training_config[field], - runtime_config[field] if field in runtime_config else "", + runtime_config.get(field, ""), ) for field in training_config.keys() - metadata if field not in runtime_config or training_config[field] != runtime_config[field] diff --git a/tools/launcher/common/query.py b/tools/launcher/common/query.py index fbc51072e69..30ff101d964 100644 --- a/tools/launcher/common/query.py +++ b/tools/launcher/common/query.py @@ -55,9 +55,7 @@ def __init__(self, args): enable_thinking=False, ) else: - self.generate( - messages=[{"role": "user", "content": "Hello! /no_think"}], verbose=True - ) + self.generate(messages=[{"role": "user", "content": "Hello! /no_think"}], verbose=True) def _ensure_client(self): """Reinitialize the HTTP client if we've been forked into a new process. diff --git a/tools/launcher/common/specdec/vllm_smoke_test.sh b/tools/launcher/common/specdec/vllm_smoke_test.sh index 1a9a582a0cd..9d22bf01c2b 100644 --- a/tools/launcher/common/specdec/vllm_smoke_test.sh +++ b/tools/launcher/common/specdec/vllm_smoke_test.sh @@ -28,6 +28,7 @@ # VLLM_PORT — server port (default: 8000) # MAX_MODEL_LEN — optional maximum context length # ENFORCE_EAGER — set to "1" to disable compile and CUDA graphs +# SERVER_STARTUP_TIMEOUT — server startup timeout in seconds (default: 600) # REASONING_PARSER — reasoning parser (e.g., "qwen3" for Qwen3.5) # DISABLE_PREFIX_CACHING — set to "1" to disable prefix caching # SMOKE_PROFILE — profile label printed in results (default: "greedy") @@ -63,6 +64,7 @@ METHOD=${SPEC_METHOD:-eagle} NUM_SPEC=${NUM_SPEC_TOKENS:-15} PORT=${VLLM_PORT:-8000} TP=${TP_SIZE:-1} +SERVER_STARTUP_TIMEOUT=${SERVER_STARTUP_TIMEOUT:-600} echo "=== vLLM Speculative Decoding Smoke Test ===" echo "Method: ${METHOD}" @@ -115,7 +117,7 @@ SERVER_PID=$! # Wait for server echo "Waiting for vLLM server..." -for i in $(seq 1 180); do +for i in $(seq 1 "$SERVER_STARTUP_TIMEOUT"); do if curl -s http://localhost:${PORT}/health > /dev/null 2>&1; then echo "Server ready after ${i}s" break diff --git a/tools/launcher/core.py b/tools/launcher/core.py index 345c993fd05..02b37eaa22a 100644 --- a/tools/launcher/core.py +++ b/tools/launcher/core.py @@ -602,6 +602,11 @@ def build_slurm_executor( if segment is not None: optional_kwargs["segment"] = segment + additional_parameters = dict(getattr(slurm_config, "additional_parameters", None) or {}) + dependency = getattr(slurm_config, "dependency", None) + if dependency: + additional_parameters["dependency"] = dependency + executor = run.SlurmExecutor( account=slurm_config.account, partition=slurm_config.partition, @@ -618,11 +623,7 @@ def build_slurm_executor( retries=0, packager=packager, srun_args=slurm_config.srun_args, - additional_parameters=( - {"dependency": slurm_config.dependency} - if getattr(slurm_config, "dependency", None) - else {} - ), + additional_parameters=additional_parameters, **optional_kwargs, ) if getattr(slurm_config, "requeue", False): diff --git a/tools/launcher/examples/Qwen/Qwen3.5-35B-A3B/hf_streaming_dspark_finetuning_multi_node.yaml b/tools/launcher/examples/Qwen/Qwen3.5-35B-A3B/hf_streaming_dspark_finetuning_multi_node.yaml new file mode 100644 index 00000000000..f9b1402cde7 --- /dev/null +++ b/tools/launcher/examples/Qwen/Qwen3.5-35B-A3B/hf_streaming_dspark_finetuning_multi_node.yaml @@ -0,0 +1,95 @@ +# Qwen3.5-35B-A3B DSpark continuation training on pretokenized conversations. + +job_name: qwen3.5-35b-a3b-dspark-finetuning + +pipeline: + global_vars: + hf_model: /hf-local/Qwen/Qwen3.5-35B-A3B + hf_data: /hf-local/modelopt/qwen3.5-35b-a3b-dspark-finetuning + draft_model: /cicd/qwen3.5-35b-a3b-dspark/training/checkpoint- + output_dir: /cicd/qwen3.5-35b-a3b-dspark-finetuning + + task_1: + script: common/eagle3/train_eagle_streaming.sh + reqs: wandb==0.22.3 + args: + - --config modules/Model-Optimizer/modelopt_recipes/general/speculative_decoding/dspark.yaml + - model.model_name_or_path=<> + - model.use_fake_base_for_offline=true + - data.data_path=<> + - data.chat_template=examples/Qwen/Qwen3.5-35B-A3B/chat_template_train.jinja + - training.output_dir=<>/training + - training.resume_from_checkpoint=<> + - training.resume_model_only=true + - training.training_seq_len=32768 + - training.disable_tqdm=true + - training.ar_validate_steps=500000 + - training.num_train_epochs=5 + - training.per_device_train_batch_size=1 + - training.gradient_accumulation_steps=4 + - training.learning_rate=1.0e-4 + - training.warmup_ratio=0.04 + - training.lr_scheduler_type=cosine_with_min_lr + - training.lr_scheduler_kwargs.min_lr=3.0e-5 + - training.save_steps=200 + - training.logging_steps=10 + - training.estimate_ar=true + - training.answer_only_loss=true + - training.report_to=wandb + - dflash.dflash_block_size=8 + - dflash.dflash_num_anchors=4096 + - dflash.dflash_loss_decay_factor=4.0 + - dflash.dflash_mask_token_id=248077 + - dflash.dflash_swa_window_size=4096 + - dflash.dflash_architecture_config.num_hidden_layers=6 + - dflash.dflash_architecture_config.num_attention_heads=32 + - dflash.dflash_architecture_config.num_key_value_heads=8 + - dflash.dflash_architecture_config.head_dim=128 + - dflash.dflash_architecture_config.intermediate_size=6144 + environment: + - HF_MODEL_CKPT: <> + - EAGLE_CAPTURE_IDS: "[2,9,16,24,31,38,40]" + - SERVE_NODES: "8" + - SERVE_TP: "8" + - STREAMING_NUM_WORKERS: "4" + - HS_POOL_SLOTS: "32" + - HS_MAX_TOKENS: "32768" + - WANDB_PROJECT: modelopt-dspark-training + - WANDB_NAME: qwen3.5-35b-a3b-dspark-finetuning + - WANDB_RUN_ID: qwen35-35b-a3b-dspark-finetuning + - WANDB_RESUME: allow + - WANDB_DIR: <>/wandb + - EXPORT_PATH: <>/export + - EXPORT_EXTRA_ARGS: --trust_remote_code + - SERVE_MAX_MODEL_LEN: "32832" + - SERVE_MAX_NUM_SEQS: "32" + - SERVE_READY_TIMEOUT: "1800" + slurm_config: + _factory_: slurm_factory + nodes: 16 + ntasks_per_node: 1 + gpus_per_node: 8 + dependency: singleton + time: 04:00:00 + container: vllm/vllm-openai:v0.27.1 + + task_2: + script: common/specdec/export_latest_and_vllm_smoke_test.sh + environment: + - HF_MODEL_CKPT: <> + - DRAFT_TRAINING_DIR: <>/training + - DRAFT_MODEL: <>/export + - EXPORT_TRUST_REMOTE_CODE: "1" + - SPEC_METHOD: dspark + - NUM_SPEC_TOKENS: "7" + - TP_SIZE: "8" + - MAX_MODEL_LEN: "32832" + - MAX_OUTPUT_TOKENS: "128" + - MIN_ACCEPTANCE_LENGTH: "1.2" + slurm_config: + _factory_: slurm_factory + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: 8 + time: 02:00:00 + container: vllm/vllm-openai:v0.27.1 diff --git a/tools/launcher/examples/Qwen/Qwen3.5-35B-A3B/hf_streaming_dspark_multi_node.yaml b/tools/launcher/examples/Qwen/Qwen3.5-35B-A3B/hf_streaming_dspark_multi_node.yaml new file mode 100644 index 00000000000..49fd28ba7c1 --- /dev/null +++ b/tools/launcher/examples/Qwen/Qwen3.5-35B-A3B/hf_streaming_dspark_multi_node.yaml @@ -0,0 +1,91 @@ +# Qwen3.5-35B-A3B DSpark training: 16 target nodes + 16 trainer nodes. + +job_name: qwen3.5-35b-a3b-dspark-training + +pipeline: + global_vars: + hf_model: /hf-local/Qwen/Qwen3.5-35B-A3B + hf_data: /hf-local/modelopt/qwen3.5-35b-a3b-dspark-synthesis + output_dir: /cicd/qwen3.5-35b-a3b-dspark + + task_1: + script: common/eagle3/train_eagle_streaming.sh + reqs: wandb==0.22.3 + args: + - --config modules/Model-Optimizer/modelopt_recipes/general/speculative_decoding/dspark.yaml + - model.model_name_or_path=<> + - model.use_fake_base_for_offline=true + - data.data_path=<> + - data.chat_template=examples/Qwen/Qwen3.5-35B-A3B/chat_template_train.jinja + - training.output_dir=<>/training + - training.training_seq_len=4096 + - training.disable_tqdm=true + - training.ar_validate_steps=500000 + - training.num_train_epochs=5 + - training.per_device_train_batch_size=1 + - training.gradient_accumulation_steps=4 + - training.learning_rate=6.0e-4 + - training.warmup_ratio=0.04 + - training.lr_scheduler_type=cosine_with_min_lr + - training.lr_scheduler_kwargs.min_lr=3.0e-5 + - training.save_steps=200 + - training.logging_steps=10 + - training.estimate_ar=true + - training.answer_only_loss=true + - training.report_to=wandb + - dflash.dflash_block_size=8 + - dflash.dflash_num_anchors=512 + - dflash.dflash_loss_decay_factor=4.0 + - dflash.dflash_mask_token_id=248077 + - dflash.dflash_swa_window_size=4096 + - dflash.dflash_architecture_config.num_hidden_layers=6 + - dflash.dflash_architecture_config.num_attention_heads=32 + - dflash.dflash_architecture_config.num_key_value_heads=8 + - dflash.dflash_architecture_config.head_dim=128 + - dflash.dflash_architecture_config.intermediate_size=6144 + environment: + - HF_MODEL_CKPT: <> + - EAGLE_CAPTURE_IDS: "[2,9,16,24,31,38,40]" + - SERVE_NODES: "16" + - SERVE_TP: "8" + - STREAMING_NUM_WORKERS: "4" + - HS_POOL_SLOTS: "32" + - WANDB_PROJECT: modelopt-dspark-training + - WANDB_NAME: qwen3.5-35b-a3b-dspark + - WANDB_RUN_ID: qwen35-35b-a3b-dspark + - WANDB_RESUME: allow + - WANDB_DIR: <>/wandb + - EXPORT_PATH: <>/export + - EXPORT_EXTRA_ARGS: --trust_remote_code + - SERVE_MAX_MODEL_LEN: "4160" + - SERVE_MAX_NUM_SEQS: "32" + - SERVE_READY_TIMEOUT: "1800" + slurm_config: + _factory_: slurm_factory + nodes: 32 + ntasks_per_node: 1 + gpus_per_node: 8 + dependency: singleton + time: 04:00:00 + container: vllm/vllm-openai:v0.27.1 + + task_2: + script: common/specdec/export_latest_and_vllm_smoke_test.sh + environment: + - HF_MODEL_CKPT: <> + - DRAFT_TRAINING_DIR: <>/training + - DRAFT_MODEL: <>/export + - EXPORT_TRUST_REMOTE_CODE: "1" + - SPEC_METHOD: dspark + - NUM_SPEC_TOKENS: "7" + - TP_SIZE: "8" + - MAX_MODEL_LEN: "4160" + - MAX_OUTPUT_TOKENS: "128" + - MIN_ACCEPTANCE_LENGTH: "1.2" + slurm_config: + _factory_: slurm_factory + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: 8 + time: 02:00:00 + container: vllm/vllm-openai:v0.27.1 diff --git a/tools/launcher/examples/Qwen/Qwen3.5-35B-A3B/hf_synth.yaml b/tools/launcher/examples/Qwen/Qwen3.5-35B-A3B/hf_synth.yaml new file mode 100644 index 00000000000..0ca6cfc77c2 --- /dev/null +++ b/tools/launcher/examples/Qwen/Qwen3.5-35B-A3B/hf_synth.yaml @@ -0,0 +1,57 @@ +# Synthesize Qwen3.5-35B-A3B conversations dataset for DSpark training. + +job_name: qwen3.5-35b-a3b-dspark-synthesis + +pipeline: + global_vars: + hf_model: /hf-local/Qwen/Qwen3.5-35B-A3B + hf_data: /hf-local/nvidia/Nemotron-Post-Training-Dataset-v2/default.jsonl + output_dir: /hf-local/modelopt/qwen3.5-35b-a3b-dspark-synthesis + + task_0: + script: common/vllm/query.sh + args: + - --model + - <> + - --tensor-parallel-size + - "8" + - --trust-remote-code + - --language-model-only + - --enable-prefix-caching + - --mamba-cache-mode + - align + - --gpu-memory-utilization + - "0.95" + - --max-model-len + - "8192" + - -- + - --data + - <> + - --save + - <> + - --num-shards + - "384" + - --shard-id + - $SLURM_ARRAY_TASK_ID + - --thinking-control + - chat-template-kwargs + - --response-mode + - thinking + - "--sampling-params '{\"temperature\":1.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}'" + - --num-proc + - "64" + - --max-tokens + - "4096" + - --max-total-length + - "8192" + environment: + - VLLM_STARTUP_TIMEOUT: "1800" + slurm_config: + _factory_: slurm_factory + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: 8 + time: 04:00:00 + container: vllm/vllm-openai:v0.27.1 + array: "0-383%192" + requeue: true diff --git a/tools/launcher/examples/Qwen/Qwen3.5-35B-A3B/prepare-swe-data.py b/tools/launcher/examples/Qwen/Qwen3.5-35B-A3B/prepare-swe-data.py new file mode 100644 index 00000000000..e9be7a57e7a --- /dev/null +++ b/tools/launcher/examples/Qwen/Qwen3.5-35B-A3B/prepare-swe-data.py @@ -0,0 +1,123 @@ +#!/usr/bin/env python3 +"""Convert Prime-RL train traces into exact pretokenized DSpark conversations. + +Usage: + python prepare-swe-data.py +""" + +from __future__ import annotations + +import argparse +import json +import os +from collections import Counter +from pathlib import Path + + +def branch_nodes(nodes: list[dict]) -> list[dict]: + """Return the single root-to-leaf branch stored by these SWE rollouts.""" + parents = {node["parent"] for node in nodes if node["parent"] is not None} + leaves = [index for index in range(len(nodes)) if index not in parents] + if len(leaves) != 1: + raise ValueError(f"expected one branch, found {len(leaves)}") + path = [] + node_id = leaves[0] + while node_id is not None: + path.append(nodes[node_id]) + node_id = nodes[node_id]["parent"] + return path[::-1] + + +def parse_args() -> argparse.Namespace: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("rollout_root", type=Path) + parser.add_argument("output_dir", type=Path) + parser.add_argument("--first-step", type=int, default=1) + parser.add_argument("--last-step", type=int, default=300) + parser.add_argument("--records-per-shard", type=int, default=1024) + return parser.parse_args() + + +def main() -> None: + args = parse_args() + if args.output_dir.exists(): + raise FileExistsError(args.output_dir) + staging = args.output_dir.with_name(f".{args.output_dir.name}.tmp-{os.getpid()}") + staging.mkdir(parents=True) + + counts = Counter() + policy_versions = Counter() + tasks = Counter() + trace_ids: set[str] = set() + shard = None + shard_index = -1 + + try: + for step in range(args.first_step, args.last_step + 1): + path = args.rollout_root / f"step_{step}" / "train" / "all" / "traces.jsonl" + if not path.is_file(): + raise FileNotFoundError(path) + counts["input_bytes"] += path.stat().st_size + with path.open() as source: + for line in source: + counts["train_traces"] += 1 + trace = json.loads(line) + if not trace.get("ok", False): + counts["excluded"] += 1 + continue + trace_id = trace["id"] + if trace_id in trace_ids: + raise ValueError(f"duplicate trace id: {trace_id}") + trace_ids.add(trace_id) + + nodes = branch_nodes(trace["nodes"]) + token_ids = [token for node in nodes for token in node["token_ids"]] + loss_mask = [int(mask) for node in nodes for mask in node["mask"]] + if len(token_ids) != len(loss_mask) or not any(loss_mask): + raise ValueError(f"invalid token/mask data: {trace_id}") + + if counts["converted"] % args.records_per_shard == 0: + if shard is not None: + shard.close() + shard_index += 1 + shard = (staging / f"shard_{shard_index:05d}.jsonl").open("w") + record = { + "conversation_id": trace_id, + "token_ids": token_ids, + "loss_mask": loss_mask, + "step": step, + "task_id": trace["task"]["data"]["name"], + "policy_version": trace["info"]["policy_version"], + } + shard.write(json.dumps(record, separators=(",", ":")) + "\n") + counts["converted"] += 1 + counts["tokens"] += len(token_ids) + counts["supervised_tokens"] += sum(loss_mask) + policy_versions[str(record["policy_version"])] += 1 + tasks[record["task_id"]] += 1 + if step % 25 == 0 or step == args.last_step: + print(f"step {step}: {counts['converted']} converted", flush=True) + if shard is not None: + shard.close() + shard = None + + manifest = { + "steps": [args.first_step, args.last_step], + "counts": dict(counts), + "num_shards": shard_index + 1, + "num_tasks": len(tasks), + "policy_versions": dict(sorted(policy_versions.items(), key=lambda item: int(item[0]))), + "task_trace_counts": dict(sorted(tasks.items())), + } + (staging / "manifest.json").write_text(json.dumps(manifest, indent=2) + "\n") + staging.rename(args.output_dir) + print(json.dumps(manifest["counts"], indent=2)) + print(f"output: {args.output_dir}") + except BaseException: + if shard is not None: + shard.close() + raise + + +if __name__ == "__main__": + main() diff --git a/tools/launcher/examples/Qwen/Qwen3.5-35B-A3B/specdec_bench_tp2_c1.yaml b/tools/launcher/examples/Qwen/Qwen3.5-35B-A3B/specdec_bench_tp2_c1.yaml new file mode 100644 index 00000000000..287b56a3288 --- /dev/null +++ b/tools/launcher/examples/Qwen/Qwen3.5-35B-A3B/specdec_bench_tp2_c1.yaml @@ -0,0 +1,322 @@ +# SPEED-Bench: Qwen3.5-35B-A3B Base / DSpark7 / MTP3 / MTP7 / DFlash8 (TP2 / C1 / T0+T1 / MRV2) + +job_name: qwen3.5-35b-a3b-specdec-bench-tp2-c1 + +pipeline: + global_vars: + hf_model: /hf-local/Qwen/Qwen3.5-35B-A3B + draft_model: /cicd/qwen3.5-35b-a3b-dspark/export + output_dir: /cicd/qwen3.5-35b-a3b-dspark-benchmark-tp2-c1 + + # Draft semantics: DSpark7 drafts 7 speculative tokens; DFlash8 drafts 7 speculative tokens (includes 1 anchor). + + # Prepare SPEED-Bench data + task_0: + inline: >- + python3 -m pip install -r modules/Model-Optimizer/examples/specdec_bench/requirements.txt && + (test -f /hf-local/nvidia/SPEED-Bench/speed/qualitative/test.parquet || + python3 modules/Model-Optimizer/examples/specdec_bench/prepare_data.py + --dataset speed --config qualitative --output_dir /hf-local/nvidia/SPEED-Bench) + slurm_config: + _factory_: slurm_factory + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: 2 + time: 02:00:00 + container: vllm/vllm-openai:nightly + + # Base T1 C1 + task_1: + script: common/specdec_bench/run.sh + args: + - --dataset speed + - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative + - --engine VLLM + - --speculative_algorithm NONE + - --tp_size 2 + - --ep_size 1 + - --concurrency 1 + - --num_requests 440 + - --output_length 4096 + - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":1.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" + - --aa_timing + - --show_progress + - --save_dir <>/base/t1 + environment: + - HF_MODEL_CKPT: <> + - VLLM_USE_V2_MODEL_RUNNER: "1" + slurm_config: + _factory_: slurm_factory + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: 2 + time: 04:00:00 + container: vllm/vllm-openai:nightly + + # Base T0 C1 + task_2: + script: common/specdec_bench/run.sh + args: + - --dataset speed + - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative + - --engine VLLM + - --speculative_algorithm NONE + - --tp_size 2 + - --ep_size 1 + - --concurrency 1 + - --num_requests 440 + - --output_length 4096 + - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":0.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" + - --aa_timing + - --show_progress + - --save_dir <>/base/t0 + environment: + - HF_MODEL_CKPT: <> + - VLLM_USE_V2_MODEL_RUNNER: "1" + slurm_config: + _factory_: slurm_factory + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: 2 + time: 04:00:00 + container: vllm/vllm-openai:nightly + + # DSpark7 T1 C1 + task_3: + script: common/specdec_bench/run.sh + args: + - --dataset speed + - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative + - --engine VLLM + - --speculative_algorithm DSPARK + - --draft_model_dir <> + - --draft_length 7 + - --max_seq_len 16384 + - --tp_size 2 + - --ep_size 1 + - --concurrency 1 + - --num_requests 440 + - --output_length 4096 + - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":1.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5},\"engine_args\":{\"draft_sample_method\":\"probabilistic\"}}'" + - --aa_timing + - --show_progress + - --save_dir <>/dspark7/t1 + environment: + - HF_MODEL_CKPT: <> + - VLLM_USE_V2_MODEL_RUNNER: "1" + slurm_config: + _factory_: slurm_factory + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: 2 + time: 04:00:00 + container: vllm/vllm-openai:nightly + + # DSpark7 T0 C1 + task_4: + script: common/specdec_bench/run.sh + args: + - --dataset speed + - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative + - --engine VLLM + - --speculative_algorithm DSPARK + - --draft_model_dir <> + - --draft_length 7 + - --max_seq_len 16384 + - --tp_size 2 + - --ep_size 1 + - --concurrency 1 + - --num_requests 440 + - --output_length 4096 + - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":0.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" + - --aa_timing + - --show_progress + - --save_dir <>/dspark7/t0 + environment: + - HF_MODEL_CKPT: <> + - VLLM_USE_V2_MODEL_RUNNER: "1" + slurm_config: + _factory_: slurm_factory + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: 2 + time: 04:00:00 + container: vllm/vllm-openai:nightly + + # MTP3 T1 C1 + task_5: + script: common/specdec_bench/run.sh + args: + - --dataset speed + - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative + - --engine VLLM + - --speculative_algorithm MTP + - --draft_length 3 + - --tp_size 2 + - --ep_size 1 + - --concurrency 1 + - --num_requests 440 + - --output_length 4096 + - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":1.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" + - --aa_timing + - --show_progress + - --save_dir <>/mtp3/t1 + environment: + - HF_MODEL_CKPT: <> + - VLLM_USE_V2_MODEL_RUNNER: "1" + slurm_config: + _factory_: slurm_factory + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: 2 + time: 04:00:00 + container: vllm/vllm-openai:nightly + + # MTP3 T0 C1 + task_6: + script: common/specdec_bench/run.sh + args: + - --dataset speed + - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative + - --engine VLLM + - --speculative_algorithm MTP + - --draft_length 3 + - --tp_size 2 + - --ep_size 1 + - --concurrency 1 + - --num_requests 440 + - --output_length 4096 + - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":0.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" + - --aa_timing + - --show_progress + - --save_dir <>/mtp3/t0 + environment: + - HF_MODEL_CKPT: <> + - VLLM_USE_V2_MODEL_RUNNER: "1" + slurm_config: + _factory_: slurm_factory + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: 2 + time: 04:00:00 + container: vllm/vllm-openai:nightly + + # MTP7 T1 C1 + task_7: + script: common/specdec_bench/run.sh + args: + - --dataset speed + - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative + - --engine VLLM + - --speculative_algorithm MTP + - --draft_length 7 + - --tp_size 2 + - --ep_size 1 + - --concurrency 1 + - --num_requests 440 + - --output_length 4096 + - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":1.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" + - --aa_timing + - --show_progress + - --save_dir <>/mtp7/t1 + environment: + - HF_MODEL_CKPT: <> + - VLLM_USE_V2_MODEL_RUNNER: "1" + slurm_config: + _factory_: slurm_factory + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: 2 + time: 04:00:00 + container: vllm/vllm-openai:nightly + + # MTP7 T0 C1 + task_8: + script: common/specdec_bench/run.sh + args: + - --dataset speed + - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative + - --engine VLLM + - --speculative_algorithm MTP + - --draft_length 7 + - --tp_size 2 + - --ep_size 1 + - --concurrency 1 + - --num_requests 440 + - --output_length 4096 + - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":0.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" + - --aa_timing + - --show_progress + - --save_dir <>/mtp7/t0 + environment: + - HF_MODEL_CKPT: <> + - VLLM_USE_V2_MODEL_RUNNER: "1" + slurm_config: + _factory_: slurm_factory + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: 2 + time: 04:00:00 + container: vllm/vllm-openai:nightly + + # DFlash8 T1 C1 + task_9: + script: common/specdec_bench/run.sh + args: + - --dataset speed + - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative + - --engine VLLM + - --speculative_algorithm DFLASH + - --draft_model_dir /hf-local/z-lab/Qwen3.5-35B-A3B-DFlash + - --block_size 8 + - --max_seq_len 16384 + - --tp_size 2 + - --ep_size 1 + - --concurrency 1 + - --num_requests 440 + - --output_length 4096 + - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":1.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5},\"engine_args\":{\"draft_sample_method\":\"probabilistic\"}}'" + - --aa_timing + - --show_progress + - --save_dir <>/dflash8/t1 + environment: + - HF_MODEL_CKPT: <> + - VLLM_USE_V2_MODEL_RUNNER: "1" + slurm_config: + _factory_: slurm_factory + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: 2 + time: 04:00:00 + container: vllm/vllm-openai:nightly + + # DFlash8 T0 C1 + task_10: + script: common/specdec_bench/run.sh + args: + - --dataset speed + - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative + - --engine VLLM + - --speculative_algorithm DFLASH + - --draft_model_dir /hf-local/z-lab/Qwen3.5-35B-A3B-DFlash + - --block_size 8 + - --max_seq_len 16384 + - --tp_size 2 + - --ep_size 1 + - --concurrency 1 + - --num_requests 440 + - --output_length 4096 + - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":0.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" + - --aa_timing + - --show_progress + - --save_dir <>/dflash8/t0 + environment: + - HF_MODEL_CKPT: <> + - VLLM_USE_V2_MODEL_RUNNER: "1" + slurm_config: + _factory_: slurm_factory + nodes: 1 + ntasks_per_node: 1 + gpus_per_node: 2 + time: 04:00:00 + container: vllm/vllm-openai:nightly diff --git a/tools/launcher/examples/Qwen/Qwen3.5-9B/benchmark.v2.eos.yaml b/tools/launcher/examples/Qwen/Qwen3.5-35B-A3B/specdec_bench_tp2_c32.yaml similarity index 72% rename from tools/launcher/examples/Qwen/Qwen3.5-9B/benchmark.v2.eos.yaml rename to tools/launcher/examples/Qwen/Qwen3.5-35B-A3B/specdec_bench_tp2_c32.yaml index faa83da906e..2716a9aeedc 100644 --- a/tools/launcher/examples/Qwen/Qwen3.5-9B/benchmark.v2.eos.yaml +++ b/tools/launcher/examples/Qwen/Qwen3.5-35B-A3B/specdec_bench_tp2_c32.yaml @@ -1,23 +1,29 @@ -job_name: dspark.qwen3.5-9b-speed-bench-v2 +# SPEED-Bench: Qwen3.5-35B-A3B Base / DSpark7 / MTP3 / MTP7 / DFlash8 (TP2 / C32 / T0+T1 / MRV2) + +job_name: qwen3.5-35b-a3b-specdec-bench-tp2-c32 pipeline: global_vars: - hf_model: /hf-local/Qwen/Qwen3.5-9B + hf_model: /hf-local/Qwen/Qwen3.5-35B-A3B + draft_model: /cicd/qwen3.5-35b-a3b-dspark/export + output_dir: /cicd/qwen3.5-35b-a3b-dspark-benchmark-tp2-c32 # Draft semantics: DSpark7 drafts 7 speculative tokens; DFlash8 drafts 7 speculative tokens (includes 1 anchor). # Prepare SPEED-Bench data task_0: inline: >- - python3 -m pip install -r modules/Model-Optimizer/examples/specdec_bench/requirements.txt && (test -f /hf-local/nvidia/SPEED-Bench/speed/qualitative/test.parquet || python3 modules/Model-Optimizer/examples/specdec_bench/prepare_data.py --dataset speed --config qualitative --output_dir /hf-local/nvidia/SPEED-Bench) + python3 -m pip install -r modules/Model-Optimizer/examples/specdec_bench/requirements.txt && + (test -f /hf-local/nvidia/SPEED-Bench/speed/qualitative/test.parquet || + python3 modules/Model-Optimizer/examples/specdec_bench/prepare_data.py + --dataset speed --config qualitative --output_dir /hf-local/nvidia/SPEED-Bench) slurm_config: _factory_: slurm_factory - partition: batch nodes: 1 ntasks_per_node: 1 - gpus_per_node: null + gpus_per_node: 2 time: 02:00:00 - container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + container: vllm/vllm-openai:nightly # Base T1 C32 task_1: @@ -30,21 +36,22 @@ pipeline: - --tp_size 2 - --ep_size 1 - --concurrency 32 + - --num_requests 440 - --output_length 4096 - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":1.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" - --aa_timing - --show_progress - - --save_dir /cicd/benchmark/results/base/qualitative-t1 + - --save_dir <>/base/t1 environment: - HF_MODEL_CKPT: <> + - VLLM_USE_V2_MODEL_RUNNER: "1" slurm_config: _factory_: slurm_factory - partition: batch nodes: 1 ntasks_per_node: 1 - gpus_per_node: null + gpus_per_node: 2 time: 02:00:00 - container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + container: vllm/vllm-openai:nightly # Base T0 C32 task_2: @@ -57,23 +64,24 @@ pipeline: - --tp_size 2 - --ep_size 1 - --concurrency 32 + - --num_requests 440 - --output_length 4096 - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":0.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" - --aa_timing - --show_progress - - --save_dir /cicd/benchmark/results/base/qualitative-t0-greedy + - --save_dir <>/base/t0 environment: - HF_MODEL_CKPT: <> + - VLLM_USE_V2_MODEL_RUNNER: "1" slurm_config: _factory_: slurm_factory - partition: batch nodes: 1 ntasks_per_node: 1 - gpus_per_node: null + gpus_per_node: 2 time: 02:00:00 - container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + container: vllm/vllm-openai:nightly - # DSpark T1 C32 + # DSpark7 T1 C32 task_3: script: common/specdec_bench/run.sh args: @@ -81,29 +89,30 @@ pipeline: - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative - --engine VLLM - --speculative_algorithm DSPARK - - --draft_model_dir /cicd/export-v3 + - --draft_model_dir <> - --draft_length 7 + - --max_seq_len 16384 - --tp_size 2 - --ep_size 1 - --concurrency 32 + - --num_requests 440 - --output_length 4096 - - --max_seq_len 16384 - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":1.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5},\"engine_args\":{\"draft_sample_method\":\"probabilistic\"}}'" - --aa_timing - --show_progress - - --save_dir /cicd/benchmark/results/dspark/qualitative-t1-prob + - --save_dir <>/dspark7/t1 environment: - HF_MODEL_CKPT: <> + - VLLM_USE_V2_MODEL_RUNNER: "1" slurm_config: _factory_: slurm_factory - partition: batch nodes: 1 ntasks_per_node: 1 - gpus_per_node: null + gpus_per_node: 2 time: 02:00:00 - container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + container: vllm/vllm-openai:nightly - # DSpark T0 C32 + # DSpark7 T0 C32 task_4: script: common/specdec_bench/run.sh args: @@ -111,27 +120,28 @@ pipeline: - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative - --engine VLLM - --speculative_algorithm DSPARK - - --draft_model_dir /cicd/export-v3 + - --draft_model_dir <> - --draft_length 7 + - --max_seq_len 16384 - --tp_size 2 - --ep_size 1 - --concurrency 32 + - --num_requests 440 - --output_length 4096 - - --max_seq_len 16384 - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":0.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" - --aa_timing - --show_progress - - --save_dir /cicd/benchmark/results/dspark/qualitative-t0-greedy + - --save_dir <>/dspark7/t0 environment: - HF_MODEL_CKPT: <> + - VLLM_USE_V2_MODEL_RUNNER: "1" slurm_config: _factory_: slurm_factory - partition: batch nodes: 1 ntasks_per_node: 1 - gpus_per_node: null + gpus_per_node: 2 time: 02:00:00 - container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + container: vllm/vllm-openai:nightly # MTP3 T1 C32 task_5: @@ -145,21 +155,22 @@ pipeline: - --tp_size 2 - --ep_size 1 - --concurrency 32 + - --num_requests 440 - --output_length 4096 - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":1.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" - --aa_timing - --show_progress - - --save_dir /cicd/benchmark/results/mtp3/qualitative-t1 + - --save_dir <>/mtp3/t1 environment: - HF_MODEL_CKPT: <> + - VLLM_USE_V2_MODEL_RUNNER: "1" slurm_config: _factory_: slurm_factory - partition: batch nodes: 1 ntasks_per_node: 1 - gpus_per_node: null + gpus_per_node: 2 time: 02:00:00 - container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + container: vllm/vllm-openai:nightly # MTP3 T0 C32 task_6: @@ -173,21 +184,22 @@ pipeline: - --tp_size 2 - --ep_size 1 - --concurrency 32 + - --num_requests 440 - --output_length 4096 - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":0.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" - --aa_timing - --show_progress - - --save_dir /cicd/benchmark/results/mtp3/qualitative-t0-greedy + - --save_dir <>/mtp3/t0 environment: - HF_MODEL_CKPT: <> + - VLLM_USE_V2_MODEL_RUNNER: "1" slurm_config: _factory_: slurm_factory - partition: batch nodes: 1 ntasks_per_node: 1 - gpus_per_node: null + gpus_per_node: 2 time: 02:00:00 - container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + container: vllm/vllm-openai:nightly # MTP7 T1 C32 task_7: @@ -201,21 +213,22 @@ pipeline: - --tp_size 2 - --ep_size 1 - --concurrency 32 + - --num_requests 440 - --output_length 4096 - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":1.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" - --aa_timing - --show_progress - - --save_dir /cicd/benchmark/results/mtp7/qualitative-t1 + - --save_dir <>/mtp7/t1 environment: - HF_MODEL_CKPT: <> + - VLLM_USE_V2_MODEL_RUNNER: "1" slurm_config: _factory_: slurm_factory - partition: batch nodes: 1 ntasks_per_node: 1 - gpus_per_node: null + gpus_per_node: 2 time: 02:00:00 - container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + container: vllm/vllm-openai:nightly # MTP7 T0 C32 task_8: @@ -229,21 +242,22 @@ pipeline: - --tp_size 2 - --ep_size 1 - --concurrency 32 + - --num_requests 440 - --output_length 4096 - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":0.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" - --aa_timing - --show_progress - - --save_dir /cicd/benchmark/results/mtp7/qualitative-t0-greedy + - --save_dir <>/mtp7/t0 environment: - HF_MODEL_CKPT: <> + - VLLM_USE_V2_MODEL_RUNNER: "1" slurm_config: _factory_: slurm_factory - partition: batch nodes: 1 ntasks_per_node: 1 - gpus_per_node: null + gpus_per_node: 2 time: 02:00:00 - container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + container: vllm/vllm-openai:nightly # DFlash8 T1 C32 task_9: @@ -253,27 +267,28 @@ pipeline: - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative - --engine VLLM - --speculative_algorithm DFLASH - - --draft_model_dir z-lab/Qwen3.5-9B-DFlash + - --draft_model_dir /hf-local/z-lab/Qwen3.5-35B-A3B-DFlash - --block_size 8 + - --max_seq_len 16384 - --tp_size 2 - --ep_size 1 - --concurrency 32 + - --num_requests 440 - --output_length 4096 - - --max_seq_len 16384 - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":1.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5},\"engine_args\":{\"draft_sample_method\":\"probabilistic\"}}'" - --aa_timing - --show_progress - - --save_dir /cicd/benchmark/results/dflash8/qualitative-t1-prob + - --save_dir <>/dflash8/t1 environment: - HF_MODEL_CKPT: <> + - VLLM_USE_V2_MODEL_RUNNER: "1" slurm_config: _factory_: slurm_factory - partition: batch nodes: 1 ntasks_per_node: 1 - gpus_per_node: null + gpus_per_node: 2 time: 02:00:00 - container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + container: vllm/vllm-openai:nightly # DFlash8 T0 C32 task_10: @@ -283,24 +298,25 @@ pipeline: - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative - --engine VLLM - --speculative_algorithm DFLASH - - --draft_model_dir z-lab/Qwen3.5-9B-DFlash + - --draft_model_dir /hf-local/z-lab/Qwen3.5-35B-A3B-DFlash - --block_size 8 + - --max_seq_len 16384 - --tp_size 2 - --ep_size 1 - --concurrency 32 + - --num_requests 440 - --output_length 4096 - - --max_seq_len 16384 - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":0.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" - --aa_timing - --show_progress - - --save_dir /cicd/benchmark/results/dflash8/qualitative-t0-greedy + - --save_dir <>/dflash8/t0 environment: - HF_MODEL_CKPT: <> + - VLLM_USE_V2_MODEL_RUNNER: "1" slurm_config: _factory_: slurm_factory - partition: batch nodes: 1 ntasks_per_node: 1 - gpus_per_node: null + gpus_per_node: 2 time: 02:00:00 - container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + container: vllm/vllm-openai:nightly diff --git a/tools/launcher/examples/Qwen/Qwen3.5-9B/benchmark.eos.yaml b/tools/launcher/examples/Qwen/Qwen3.5-9B/benchmark.eos.yaml deleted file mode 100644 index 0b4832d2dba..00000000000 --- a/tools/launcher/examples/Qwen/Qwen3.5-9B/benchmark.eos.yaml +++ /dev/null @@ -1,151 +0,0 @@ -job_name: dspark.qwen3.5-9b-speed-bench - -pipeline: - global_vars: - hf_model: /hf-local/Qwen/Qwen3.5-9B - - task_0: - inline: >- - python3 -m pip install -r modules/Model-Optimizer/examples/specdec_bench/requirements.txt && (test -f /hf-local/nvidia/SPEED-Bench/speed/qualitative/test.parquet || python3 modules/Model-Optimizer/examples/specdec_bench/prepare_data.py --dataset speed --config qualitative --output_dir /hf-local/nvidia/SPEED-Bench) && (test -f /hf-local/nvidia/SPEED-Bench/speed/throughput_8k/test.parquet || python3 modules/Model-Optimizer/examples/specdec_bench/prepare_data.py --dataset speed --config throughput_8k --output_dir /hf-local/nvidia/SPEED-Bench) - slurm_config: - _factory_: slurm_factory - nodes: 1 - ntasks_per_node: 1 - gpus_per_node: null - time: 02:00:00 - container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh - - task_1: - script: common/specdec_bench/run.sh - args: - - --dataset speed - - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative - - --engine VLLM - - --speculative_algorithm NONE - - --tp_size 2 - - --ep_size 1 - - --concurrency 32 - - --output_length 4096 - - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":1.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" - - --aa_timing - - --show_progress - - --save_dir /cicd/benchmark/results/base/qualitative-t1 - environment: - - HF_MODEL_CKPT: <> - slurm_config: - _factory_: slurm_factory - nodes: 1 - ntasks_per_node: 1 - gpus_per_node: null - time: 04:00:00 - container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh - - task_2: - script: common/specdec_bench/run.sh - args: - - --dataset speed - - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative - - --engine VLLM - - --speculative_algorithm DSPARK - - --draft_model_dir /cicd/export-v3 - - --draft_length 7 - - --tp_size 2 - - --ep_size 1 - - --concurrency 32 - - --output_length 4096 - - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":1.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5},\"engine_args\":{\"draft_sample_method\":\"probabilistic\"}}'" - - --aa_timing - - --show_progress - - --save_dir /cicd/benchmark/results/dspark/qualitative-t1-prob - environment: - - HF_MODEL_CKPT: <> - slurm_config: - _factory_: slurm_factory - nodes: 1 - ntasks_per_node: 1 - gpus_per_node: null - time: 04:00:00 - container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh - - task_3: - script: common/specdec_bench/run.sh - args: - - --dataset speed - - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/throughput_8k - - --engine VLLM - - --speculative_algorithm NONE - - --tp_size 2 - - --ep_size 1 - - --concurrency 8 - - --num_requests 80 - - --output_length 4096 - - --max_seq_len 16384 - - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":1.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" - - --aa_timing - - --show_progress - - --save_dir /cicd/benchmark/results/base/throughput_8k-t1 - environment: - - HF_MODEL_CKPT: <> - slurm_config: - _factory_: slurm_factory - nodes: 1 - ntasks_per_node: 1 - gpus_per_node: null - time: 04:00:00 - container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh - - task_4: - script: common/specdec_bench/run.sh - args: - - --dataset speed - - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/throughput_8k - - --engine VLLM - - --speculative_algorithm DSPARK - - --draft_model_dir /cicd/export-v3 - - --draft_length 7 - - --tp_size 2 - - --ep_size 1 - - --concurrency 8 - - --num_requests 80 - - --output_length 4096 - - --max_seq_len 16384 - - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":1.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5},\"engine_args\":{\"draft_sample_method\":\"probabilistic\"}}'" - - --aa_timing - - --show_progress - - --save_dir /cicd/benchmark/results/dspark/throughput_8k-t1-prob - environment: - - HF_MODEL_CKPT: <> - slurm_config: - _factory_: slurm_factory - nodes: 1 - ntasks_per_node: 1 - gpus_per_node: null - time: 04:00:00 - container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh - - task_5: - script: common/specdec_bench/run.sh - args: - - --dataset speed - - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative - - --engine VLLM - - --speculative_algorithm DSPARK - - --draft_model_dir /cicd/export-v3 - - --draft_length 7 - - --tp_size 2 - - --ep_size 1 - - --concurrency 32 - - --output_length 4096 - - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":0.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" - - --aa_timing - - --show_progress - - --save_dir /cicd/benchmark/results/dspark/qualitative-t0-greedy - environment: - - HF_MODEL_CKPT: <> - slurm_config: - _factory_: slurm_factory - nodes: 1 - ntasks_per_node: 1 - gpus_per_node: null - time: 04:00:00 - container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh diff --git a/tools/launcher/examples/Qwen/Qwen3.5-9B/train.eos.yaml b/tools/launcher/examples/Qwen/Qwen3.5-9B/hf_streaming_dspark_multi_node.yaml similarity index 67% rename from tools/launcher/examples/Qwen/Qwen3.5-9B/train.eos.yaml rename to tools/launcher/examples/Qwen/Qwen3.5-9B/hf_streaming_dspark_multi_node.yaml index 1a77741ddf8..ac1500dcc60 100644 --- a/tools/launcher/examples/Qwen/Qwen3.5-9B/train.eos.yaml +++ b/tools/launcher/examples/Qwen/Qwen3.5-9B/hf_streaming_dspark_multi_node.yaml @@ -1,22 +1,12 @@ -job_name: dspark.qwen3.5-9b-train-v3 +# Qwen3.5-9B DSpark training: 8 target nodes + 8 trainer nodes. + +job_name: qwen3.5-9b-dspark-training pipeline: global_vars: hf_model: /hf-local/Qwen/Qwen3.5-9B - - # The synthesis stage replaces the walkthrough's public-SFT dataset builder. - task_0: - skip: true - script: common/eagle3/make_dataset.sh - args: - - -f modules/Model-Optimizer/examples/dataset/example_data_config.yaml - - --full-conversations - slurm_config: - _factory_: slurm_factory - nodes: 1 - ntasks_per_node: 1 - gpus_per_node: null - container: nvcr.io/nvidia/tensorrt-llm/release:1.3.0rc20 + hf_data: /hf-local/modelopt/qwen3.5-9b-dspark-synthesis + output_dir: /cicd/qwen3.5-9b-dspark task_1: script: common/eagle3/train_eagle_streaming.sh @@ -25,9 +15,9 @@ pipeline: - --config modules/Model-Optimizer/modelopt_recipes/general/speculative_decoding/dspark.yaml - model.model_name_or_path=<> - model.use_fake_base_for_offline=true - - data.data_path=/hf-local/modelopt/qwen3.5-9b-synth-v2 + - data.data_path=<> - data.chat_template=examples/Qwen/Qwen3.5-9B/chat_template_train.jinja - - training.output_dir=/cicd/training-v3 + - training.output_dir=<>/training - training.training_seq_len=4096 - training.disable_tqdm=true - training.ar_validate_steps=500000 @@ -60,13 +50,13 @@ pipeline: - SERVE_TP: "8" - STREAMING_NUM_WORKERS: "4" - HS_POOL_SLOTS: "32" - - WANDB_PROJECT: - - WANDB_NAME: qwen3.5-9b-dspark-v3 - - WANDB_RUN_ID: qwen35-9b-dspark-v3 + - WANDB_PROJECT: modelopt-dspark-training + - WANDB_NAME: qwen3.5-9b-dspark + - WANDB_RUN_ID: qwen35-9b-dspark - WANDB_RESUME: allow - - WANDB_DIR: /cicd/training-v3/wandb - - EXPORT_PATH: /cicd/export-v3 - - EXPORT_EXTRA_ARGS: "--trust_remote_code" + - WANDB_DIR: <>/wandb + - EXPORT_PATH: <>/export + - EXPORT_EXTRA_ARGS: --trust_remote_code - SERVE_MAX_MODEL_LEN: "4160" - SERVE_MAX_NUM_SEQS: "32" - SERVE_READY_TIMEOUT: "1800" @@ -74,25 +64,28 @@ pipeline: _factory_: slurm_factory nodes: 16 ntasks_per_node: 1 - gpus_per_node: null + gpus_per_node: 8 dependency: singleton time: 04:00:00 - container: /dspark-training/.cache/containers/vllm-openai-latest.sqsh + container: vllm/vllm-openai:v0.27.1 task_2: script: common/specdec/export_latest_and_vllm_smoke_test.sh environment: - HF_MODEL_CKPT: <> - - DRAFT_TRAINING_DIR: /cicd/training-v3 - - DRAFT_MODEL: /cicd/export-v3 + - DRAFT_TRAINING_DIR: <>/training + - DRAFT_MODEL: <>/export - EXPORT_TRUST_REMOTE_CODE: "1" - SPEC_METHOD: dspark - NUM_SPEC_TOKENS: "7" + - TP_SIZE: "1" + - MAX_MODEL_LEN: "4160" + - MAX_OUTPUT_TOKENS: "128" - MIN_ACCEPTANCE_LENGTH: "1.2" slurm_config: _factory_: slurm_factory nodes: 1 ntasks_per_node: 1 - gpus_per_node: null + gpus_per_node: 1 time: 02:00:00 - container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + container: vllm/vllm-openai:v0.27.1 diff --git a/tools/launcher/examples/Qwen/Qwen3.5-9B/synthesize.eos.yaml b/tools/launcher/examples/Qwen/Qwen3.5-9B/hf_synth.yaml similarity index 75% rename from tools/launcher/examples/Qwen/Qwen3.5-9B/synthesize.eos.yaml rename to tools/launcher/examples/Qwen/Qwen3.5-9B/hf_synth.yaml index c2478161911..6a3f6965842 100644 --- a/tools/launcher/examples/Qwen/Qwen3.5-9B/synthesize.eos.yaml +++ b/tools/launcher/examples/Qwen/Qwen3.5-9B/hf_synth.yaml @@ -1,8 +1,12 @@ -job_name: dspark.qwen3.5-9b-synthesize +# Synthesize Qwen3.5-9B conversations dataset for DSpark training. + +job_name: qwen3.5-9b-dspark-synthesis pipeline: global_vars: hf_model: /hf-local/Qwen/Qwen3.5-9B + hf_data: /hf-local/nvidia/Nemotron-Post-Training-Dataset-v2/default.jsonl + output_dir: /hf-local/modelopt/qwen3.5-9b-dspark-synthesis task_0: script: common/vllm/query.sh @@ -22,9 +26,9 @@ pipeline: - "8192" - -- - --data - - /hf-local/nvidia/Nemotron-Post-Training-Dataset-v2/default.jsonl + - <> - --save - - /hf-local/modelopt/qwen3.5-9b-synth-v2 + - <> - --num-shards - "192" - --shard-id @@ -45,8 +49,8 @@ pipeline: _factory_: slurm_factory nodes: 1 ntasks_per_node: 1 - gpus_per_node: null + gpus_per_node: 8 time: 04:00:00 - container: /dspark-training/.cache/containers/vllm-openai-latest.sqsh + container: vllm/vllm-openai:v0.27.1 array: "0-191%96" requeue: true diff --git a/tools/launcher/examples/Qwen/Qwen3.5-9B/benchmark.v4.eos.yaml b/tools/launcher/examples/Qwen/Qwen3.5-9B/specdec_bench_tp1_c1.yaml similarity index 73% rename from tools/launcher/examples/Qwen/Qwen3.5-9B/benchmark.v4.eos.yaml rename to tools/launcher/examples/Qwen/Qwen3.5-9B/specdec_bench_tp1_c1.yaml index 690bb2d9b9c..36864a336ab 100644 --- a/tools/launcher/examples/Qwen/Qwen3.5-9B/benchmark.v4.eos.yaml +++ b/tools/launcher/examples/Qwen/Qwen3.5-9B/specdec_bench_tp1_c1.yaml @@ -1,23 +1,29 @@ -job_name: dspark.qwen3.5-9b-speed-bench-v4 +# SPEED-Bench: Qwen3.5-9B Base / DSpark7 / MTP3 / MTP7 / DFlash8 (TP1 / C1 / T0+T1 / MRV2) + +job_name: qwen3.5-9b-specdec-bench-tp1-c1 pipeline: global_vars: hf_model: /hf-local/Qwen/Qwen3.5-9B + draft_model: /cicd/qwen3.5-9b-dspark/export + output_dir: /cicd/qwen3.5-9b-dspark-benchmark-tp1-c1 # Draft semantics: DSpark7 drafts 7 speculative tokens; DFlash8 drafts 7 speculative tokens (includes 1 anchor). # Prepare SPEED-Bench data task_0: inline: >- - python3 -m pip install -r modules/Model-Optimizer/examples/specdec_bench/requirements.txt && (test -f /hf-local/nvidia/SPEED-Bench/speed/qualitative/test.parquet || python3 modules/Model-Optimizer/examples/specdec_bench/prepare_data.py --dataset speed --config qualitative --output_dir /hf-local/nvidia/SPEED-Bench) + python3 -m pip install -r modules/Model-Optimizer/examples/specdec_bench/requirements.txt && + (test -f /hf-local/nvidia/SPEED-Bench/speed/qualitative/test.parquet || + python3 modules/Model-Optimizer/examples/specdec_bench/prepare_data.py + --dataset speed --config qualitative --output_dir /hf-local/nvidia/SPEED-Bench) slurm_config: _factory_: slurm_factory - partition: batch nodes: 1 ntasks_per_node: 1 - gpus_per_node: null + gpus_per_node: 1 time: 02:00:00 - container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + container: vllm/vllm-openai:nightly # Base T1 C1 task_1: @@ -35,17 +41,17 @@ pipeline: - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":1.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" - --aa_timing - --show_progress - - --save_dir /cicd/benchmark-v4/results/base/qualitative-t1 + - --save_dir <>/base/t1 environment: - HF_MODEL_CKPT: <> + - VLLM_USE_V2_MODEL_RUNNER: "1" slurm_config: _factory_: slurm_factory - partition: batch nodes: 1 ntasks_per_node: 1 - gpus_per_node: null + gpus_per_node: 1 time: 04:00:00 - container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + container: vllm/vllm-openai:nightly # Base T0 C1 task_2: @@ -63,19 +69,19 @@ pipeline: - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":0.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" - --aa_timing - --show_progress - - --save_dir /cicd/benchmark-v4/results/base/qualitative-t0-greedy + - --save_dir <>/base/t0 environment: - HF_MODEL_CKPT: <> + - VLLM_USE_V2_MODEL_RUNNER: "1" slurm_config: _factory_: slurm_factory - partition: batch nodes: 1 ntasks_per_node: 1 - gpus_per_node: null + gpus_per_node: 1 time: 04:00:00 - container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + container: vllm/vllm-openai:nightly - # DSpark T1 C1 + # DSpark7 T1 C1 task_3: script: common/specdec_bench/run.sh args: @@ -83,30 +89,30 @@ pipeline: - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative - --engine VLLM - --speculative_algorithm DSPARK - - --draft_model_dir /cicd/export-v3 + - --draft_model_dir <> - --draft_length 7 + - --max_seq_len 16384 - --tp_size 1 - --ep_size 1 - --concurrency 1 - --num_requests 440 - --output_length 4096 - - --max_seq_len 16384 - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":1.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5},\"engine_args\":{\"draft_sample_method\":\"probabilistic\"}}'" - --aa_timing - --show_progress - - --save_dir /cicd/benchmark-v4/results/dspark/qualitative-t1-prob + - --save_dir <>/dspark7/t1 environment: - HF_MODEL_CKPT: <> + - VLLM_USE_V2_MODEL_RUNNER: "1" slurm_config: _factory_: slurm_factory - partition: batch nodes: 1 ntasks_per_node: 1 - gpus_per_node: null + gpus_per_node: 1 time: 04:00:00 - container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + container: vllm/vllm-openai:nightly - # DSpark T0 C1 + # DSpark7 T0 C1 task_4: script: common/specdec_bench/run.sh args: @@ -114,28 +120,28 @@ pipeline: - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative - --engine VLLM - --speculative_algorithm DSPARK - - --draft_model_dir /cicd/export-v3 + - --draft_model_dir <> - --draft_length 7 + - --max_seq_len 16384 - --tp_size 1 - --ep_size 1 - --concurrency 1 - --num_requests 440 - --output_length 4096 - - --max_seq_len 16384 - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":0.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" - --aa_timing - --show_progress - - --save_dir /cicd/benchmark-v4/results/dspark/qualitative-t0-greedy + - --save_dir <>/dspark7/t0 environment: - HF_MODEL_CKPT: <> + - VLLM_USE_V2_MODEL_RUNNER: "1" slurm_config: _factory_: slurm_factory - partition: batch nodes: 1 ntasks_per_node: 1 - gpus_per_node: null + gpus_per_node: 1 time: 04:00:00 - container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + container: vllm/vllm-openai:nightly # MTP3 T1 C1 task_5: @@ -154,17 +160,17 @@ pipeline: - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":1.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" - --aa_timing - --show_progress - - --save_dir /cicd/benchmark-v4/results/mtp3/qualitative-t1 + - --save_dir <>/mtp3/t1 environment: - HF_MODEL_CKPT: <> + - VLLM_USE_V2_MODEL_RUNNER: "1" slurm_config: _factory_: slurm_factory - partition: batch nodes: 1 ntasks_per_node: 1 - gpus_per_node: null + gpus_per_node: 1 time: 04:00:00 - container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + container: vllm/vllm-openai:nightly # MTP3 T0 C1 task_6: @@ -183,17 +189,17 @@ pipeline: - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":0.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" - --aa_timing - --show_progress - - --save_dir /cicd/benchmark-v4/results/mtp3/qualitative-t0-greedy + - --save_dir <>/mtp3/t0 environment: - HF_MODEL_CKPT: <> + - VLLM_USE_V2_MODEL_RUNNER: "1" slurm_config: _factory_: slurm_factory - partition: batch nodes: 1 ntasks_per_node: 1 - gpus_per_node: null + gpus_per_node: 1 time: 04:00:00 - container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + container: vllm/vllm-openai:nightly # MTP7 T1 C1 task_7: @@ -212,17 +218,17 @@ pipeline: - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":1.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" - --aa_timing - --show_progress - - --save_dir /cicd/benchmark-v4/results/mtp7/qualitative-t1 + - --save_dir <>/mtp7/t1 environment: - HF_MODEL_CKPT: <> + - VLLM_USE_V2_MODEL_RUNNER: "1" slurm_config: _factory_: slurm_factory - partition: batch nodes: 1 ntasks_per_node: 1 - gpus_per_node: null + gpus_per_node: 1 time: 04:00:00 - container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + container: vllm/vllm-openai:nightly # MTP7 T0 C1 task_8: @@ -241,17 +247,17 @@ pipeline: - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":0.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" - --aa_timing - --show_progress - - --save_dir /cicd/benchmark-v4/results/mtp7/qualitative-t0-greedy + - --save_dir <>/mtp7/t0 environment: - HF_MODEL_CKPT: <> + - VLLM_USE_V2_MODEL_RUNNER: "1" slurm_config: _factory_: slurm_factory - partition: batch nodes: 1 ntasks_per_node: 1 - gpus_per_node: null + gpus_per_node: 1 time: 04:00:00 - container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + container: vllm/vllm-openai:nightly # DFlash8 T1 C1 task_9: @@ -261,28 +267,28 @@ pipeline: - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative - --engine VLLM - --speculative_algorithm DFLASH - - --draft_model_dir z-lab/Qwen3.5-9B-DFlash + - --draft_model_dir /hf-local/z-lab/Qwen3.5-9B-DFlash - --block_size 8 + - --max_seq_len 16384 - --tp_size 1 - --ep_size 1 - --concurrency 1 - --num_requests 440 - --output_length 4096 - - --max_seq_len 16384 - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":1.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5},\"engine_args\":{\"draft_sample_method\":\"probabilistic\"}}'" - --aa_timing - --show_progress - - --save_dir /cicd/benchmark-v4/results/dflash8/qualitative-t1-prob + - --save_dir <>/dflash8/t1 environment: - HF_MODEL_CKPT: <> + - VLLM_USE_V2_MODEL_RUNNER: "1" slurm_config: _factory_: slurm_factory - partition: batch nodes: 1 ntasks_per_node: 1 - gpus_per_node: null + gpus_per_node: 1 time: 04:00:00 - container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + container: vllm/vllm-openai:nightly # DFlash8 T0 C1 task_10: @@ -292,25 +298,25 @@ pipeline: - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative - --engine VLLM - --speculative_algorithm DFLASH - - --draft_model_dir z-lab/Qwen3.5-9B-DFlash + - --draft_model_dir /hf-local/z-lab/Qwen3.5-9B-DFlash - --block_size 8 + - --max_seq_len 16384 - --tp_size 1 - --ep_size 1 - --concurrency 1 - --num_requests 440 - --output_length 4096 - - --max_seq_len 16384 - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":0.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" - --aa_timing - --show_progress - - --save_dir /cicd/benchmark-v4/results/dflash8/qualitative-t0-greedy + - --save_dir <>/dflash8/t0 environment: - HF_MODEL_CKPT: <> + - VLLM_USE_V2_MODEL_RUNNER: "1" slurm_config: _factory_: slurm_factory - partition: batch nodes: 1 ntasks_per_node: 1 - gpus_per_node: null + gpus_per_node: 1 time: 04:00:00 - container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + container: vllm/vllm-openai:nightly diff --git a/tools/launcher/examples/Qwen/Qwen3.5-9B/benchmark.v3.eos.yaml b/tools/launcher/examples/Qwen/Qwen3.5-9B/specdec_bench_tp1_c32.yaml similarity index 73% rename from tools/launcher/examples/Qwen/Qwen3.5-9B/benchmark.v3.eos.yaml rename to tools/launcher/examples/Qwen/Qwen3.5-9B/specdec_bench_tp1_c32.yaml index df80dc4f0da..9ea31e2dadd 100644 --- a/tools/launcher/examples/Qwen/Qwen3.5-9B/benchmark.v3.eos.yaml +++ b/tools/launcher/examples/Qwen/Qwen3.5-9B/specdec_bench_tp1_c32.yaml @@ -1,23 +1,29 @@ -job_name: dspark.qwen3.5-9b-speed-bench-v3 +# SPEED-Bench: Qwen3.5-9B Base / DSpark7 / MTP3 / MTP7 / DFlash8 (TP1 / C32 / T0+T1 / MRV2) + +job_name: qwen3.5-9b-specdec-bench-tp1-c32 pipeline: global_vars: hf_model: /hf-local/Qwen/Qwen3.5-9B + draft_model: /cicd/qwen3.5-9b-dspark/export + output_dir: /cicd/qwen3.5-9b-dspark-benchmark-tp1-c32 # Draft semantics: DSpark7 drafts 7 speculative tokens; DFlash8 drafts 7 speculative tokens (includes 1 anchor). # Prepare SPEED-Bench data task_0: inline: >- - python3 -m pip install -r modules/Model-Optimizer/examples/specdec_bench/requirements.txt && (test -f /hf-local/nvidia/SPEED-Bench/speed/qualitative/test.parquet || python3 modules/Model-Optimizer/examples/specdec_bench/prepare_data.py --dataset speed --config qualitative --output_dir /hf-local/nvidia/SPEED-Bench) + python3 -m pip install -r modules/Model-Optimizer/examples/specdec_bench/requirements.txt && + (test -f /hf-local/nvidia/SPEED-Bench/speed/qualitative/test.parquet || + python3 modules/Model-Optimizer/examples/specdec_bench/prepare_data.py + --dataset speed --config qualitative --output_dir /hf-local/nvidia/SPEED-Bench) slurm_config: _factory_: slurm_factory - partition: batch nodes: 1 ntasks_per_node: 1 - gpus_per_node: null + gpus_per_node: 1 time: 02:00:00 - container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + container: vllm/vllm-openai:nightly # Base T1 C32 task_1: @@ -30,21 +36,22 @@ pipeline: - --tp_size 1 - --ep_size 1 - --concurrency 32 + - --num_requests 440 - --output_length 4096 - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":1.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" - --aa_timing - --show_progress - - --save_dir /cicd/benchmark-v3/results/base/qualitative-t1 + - --save_dir <>/base/t1 environment: - HF_MODEL_CKPT: <> + - VLLM_USE_V2_MODEL_RUNNER: "1" slurm_config: _factory_: slurm_factory - partition: batch nodes: 1 ntasks_per_node: 1 - gpus_per_node: null + gpus_per_node: 1 time: 02:00:00 - container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + container: vllm/vllm-openai:nightly # Base T0 C32 task_2: @@ -57,23 +64,24 @@ pipeline: - --tp_size 1 - --ep_size 1 - --concurrency 32 + - --num_requests 440 - --output_length 4096 - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":0.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" - --aa_timing - --show_progress - - --save_dir /cicd/benchmark-v3/results/base/qualitative-t0-greedy + - --save_dir <>/base/t0 environment: - HF_MODEL_CKPT: <> + - VLLM_USE_V2_MODEL_RUNNER: "1" slurm_config: _factory_: slurm_factory - partition: batch nodes: 1 ntasks_per_node: 1 - gpus_per_node: null + gpus_per_node: 1 time: 02:00:00 - container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + container: vllm/vllm-openai:nightly - # DSpark T1 C32 + # DSpark7 T1 C32 task_3: script: common/specdec_bench/run.sh args: @@ -81,29 +89,30 @@ pipeline: - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative - --engine VLLM - --speculative_algorithm DSPARK - - --draft_model_dir /cicd/export-v3 + - --draft_model_dir <> - --draft_length 7 + - --max_seq_len 16384 - --tp_size 1 - --ep_size 1 - --concurrency 32 + - --num_requests 440 - --output_length 4096 - - --max_seq_len 16384 - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":1.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5},\"engine_args\":{\"draft_sample_method\":\"probabilistic\"}}'" - --aa_timing - --show_progress - - --save_dir /cicd/benchmark-v3/results/dspark/qualitative-t1-prob + - --save_dir <>/dspark7/t1 environment: - HF_MODEL_CKPT: <> + - VLLM_USE_V2_MODEL_RUNNER: "1" slurm_config: _factory_: slurm_factory - partition: batch nodes: 1 ntasks_per_node: 1 - gpus_per_node: null + gpus_per_node: 1 time: 02:00:00 - container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + container: vllm/vllm-openai:nightly - # DSpark T0 C32 + # DSpark7 T0 C32 task_4: script: common/specdec_bench/run.sh args: @@ -111,27 +120,28 @@ pipeline: - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative - --engine VLLM - --speculative_algorithm DSPARK - - --draft_model_dir /cicd/export-v3 + - --draft_model_dir <> - --draft_length 7 + - --max_seq_len 16384 - --tp_size 1 - --ep_size 1 - --concurrency 32 + - --num_requests 440 - --output_length 4096 - - --max_seq_len 16384 - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":0.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" - --aa_timing - --show_progress - - --save_dir /cicd/benchmark-v3/results/dspark/qualitative-t0-greedy + - --save_dir <>/dspark7/t0 environment: - HF_MODEL_CKPT: <> + - VLLM_USE_V2_MODEL_RUNNER: "1" slurm_config: _factory_: slurm_factory - partition: batch nodes: 1 ntasks_per_node: 1 - gpus_per_node: null + gpus_per_node: 1 time: 02:00:00 - container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + container: vllm/vllm-openai:nightly # MTP3 T1 C32 task_5: @@ -145,21 +155,22 @@ pipeline: - --tp_size 1 - --ep_size 1 - --concurrency 32 + - --num_requests 440 - --output_length 4096 - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":1.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" - --aa_timing - --show_progress - - --save_dir /cicd/benchmark-v3/results/mtp3/qualitative-t1 + - --save_dir <>/mtp3/t1 environment: - HF_MODEL_CKPT: <> + - VLLM_USE_V2_MODEL_RUNNER: "1" slurm_config: _factory_: slurm_factory - partition: batch nodes: 1 ntasks_per_node: 1 - gpus_per_node: null + gpus_per_node: 1 time: 02:00:00 - container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + container: vllm/vllm-openai:nightly # MTP3 T0 C32 task_6: @@ -173,21 +184,22 @@ pipeline: - --tp_size 1 - --ep_size 1 - --concurrency 32 + - --num_requests 440 - --output_length 4096 - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":0.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" - --aa_timing - --show_progress - - --save_dir /cicd/benchmark-v3/results/mtp3/qualitative-t0-greedy + - --save_dir <>/mtp3/t0 environment: - HF_MODEL_CKPT: <> + - VLLM_USE_V2_MODEL_RUNNER: "1" slurm_config: _factory_: slurm_factory - partition: batch nodes: 1 ntasks_per_node: 1 - gpus_per_node: null + gpus_per_node: 1 time: 02:00:00 - container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + container: vllm/vllm-openai:nightly # MTP7 T1 C32 task_7: @@ -201,21 +213,22 @@ pipeline: - --tp_size 1 - --ep_size 1 - --concurrency 32 + - --num_requests 440 - --output_length 4096 - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":1.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" - --aa_timing - --show_progress - - --save_dir /cicd/benchmark-v3/results/mtp7/qualitative-t1 + - --save_dir <>/mtp7/t1 environment: - HF_MODEL_CKPT: <> + - VLLM_USE_V2_MODEL_RUNNER: "1" slurm_config: _factory_: slurm_factory - partition: batch nodes: 1 ntasks_per_node: 1 - gpus_per_node: null + gpus_per_node: 1 time: 02:00:00 - container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + container: vllm/vllm-openai:nightly # MTP7 T0 C32 task_8: @@ -229,21 +242,22 @@ pipeline: - --tp_size 1 - --ep_size 1 - --concurrency 32 + - --num_requests 440 - --output_length 4096 - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":0.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" - --aa_timing - --show_progress - - --save_dir /cicd/benchmark-v3/results/mtp7/qualitative-t0-greedy + - --save_dir <>/mtp7/t0 environment: - HF_MODEL_CKPT: <> + - VLLM_USE_V2_MODEL_RUNNER: "1" slurm_config: _factory_: slurm_factory - partition: batch nodes: 1 ntasks_per_node: 1 - gpus_per_node: null + gpus_per_node: 1 time: 02:00:00 - container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + container: vllm/vllm-openai:nightly # DFlash8 T1 C32 task_9: @@ -253,27 +267,28 @@ pipeline: - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative - --engine VLLM - --speculative_algorithm DFLASH - - --draft_model_dir z-lab/Qwen3.5-9B-DFlash + - --draft_model_dir /hf-local/z-lab/Qwen3.5-9B-DFlash - --block_size 8 + - --max_seq_len 16384 - --tp_size 1 - --ep_size 1 - --concurrency 32 + - --num_requests 440 - --output_length 4096 - - --max_seq_len 16384 - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":1.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5},\"engine_args\":{\"draft_sample_method\":\"probabilistic\"}}'" - --aa_timing - --show_progress - - --save_dir /cicd/benchmark-v3/results/dflash8/qualitative-t1-prob + - --save_dir <>/dflash8/t1 environment: - HF_MODEL_CKPT: <> + - VLLM_USE_V2_MODEL_RUNNER: "1" slurm_config: _factory_: slurm_factory - partition: batch nodes: 1 ntasks_per_node: 1 - gpus_per_node: null + gpus_per_node: 1 time: 02:00:00 - container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + container: vllm/vllm-openai:nightly # DFlash8 T0 C32 task_10: @@ -283,24 +298,25 @@ pipeline: - --dataset_path /hf-local/nvidia/SPEED-Bench/speed/qualitative - --engine VLLM - --speculative_algorithm DFLASH - - --draft_model_dir z-lab/Qwen3.5-9B-DFlash + - --draft_model_dir /hf-local/z-lab/Qwen3.5-9B-DFlash - --block_size 8 + - --max_seq_len 16384 - --tp_size 1 - --ep_size 1 - --concurrency 32 + - --num_requests 440 - --output_length 4096 - - --max_seq_len 16384 - "--runtime_params '{\"sampling_kwargs\":{\"temperature\":0.0,\"top_p\":0.95,\"top_k\":20,\"presence_penalty\":1.5}}'" - --aa_timing - --show_progress - - --save_dir /cicd/benchmark-v3/results/dflash8/qualitative-t0-greedy + - --save_dir <>/dflash8/t0 environment: - HF_MODEL_CKPT: <> + - VLLM_USE_V2_MODEL_RUNNER: "1" slurm_config: _factory_: slurm_factory - partition: batch nodes: 1 ntasks_per_node: 1 - gpus_per_node: null + gpus_per_node: 1 time: 02:00:00 - container: /dspark-training/.cache/containers/vllm-openai-nightly.sqsh + container: vllm/vllm-openai:nightly diff --git a/tools/launcher/pyproject.toml b/tools/launcher/pyproject.toml index 8ba825776d4..cbc1d1f2c80 100644 --- a/tools/launcher/pyproject.toml +++ b/tools/launcher/pyproject.toml @@ -24,6 +24,9 @@ modelopt_launcher = [ "examples/**/*.jinja", ] +[tool.uv] +package = true + [tool.pytest.ini_options] testpaths = ["tests"] diff --git a/tools/launcher/tests/test_slurm_executor.py b/tools/launcher/tests/test_slurm_executor.py index 3ce72ba656b..b84cb087341 100644 --- a/tools/launcher/tests/test_slurm_executor.py +++ b/tools/launcher/tests/test_slurm_executor.py @@ -425,7 +425,7 @@ def test_none_container_mounts_handled(self, mock_tunnel, mock_executor): @patch("core.run.SlurmExecutor") @patch("core.run.SSHTunnel") - def test_requeue_sets_param_and_bumps_retries(self, mock_tunnel, mock_executor): + def test_additional_params_and_requeue(self, mock_tunnel, mock_executor): mock_tunnel.return_value = MagicMock() executor = mock_executor.return_value executor.retries = 0 @@ -445,6 +445,8 @@ def test_requeue_sets_param_and_bumps_retries(self, mock_tunnel, mock_executor): ntasks_per_node=1, gpus_per_node=1, array=None, + dependency="singleton", + additional_parameters={"signal": "USR1@60"}, ) build_slurm_executor( @@ -457,6 +459,10 @@ def test_requeue_sets_param_and_bumps_retries(self, mock_tunnel, mock_executor): packager=MagicMock(), ) + assert mock_executor.call_args.kwargs["additional_parameters"] == { + "signal": "USR1@60", + "dependency": "singleton", + } # requeue=True flags the additional parameter and bumps retries above 0 so # nemo-run's sbatch wrapper actually issues `scontrol requeue` on preemption. assert executor.additional_parameters["requeue"] is True From 32173370b38f2594ad07275cfc4714b72e855154 Mon Sep 17 00:00:00 2001 From: Jinze Xue Date: Fri, 4 Sep 2026 18:47:31 -0700 Subject: [PATCH 10/10] Fix DSpark benchmark block-size mapping Signed-off-by: Jinze Xue --- examples/specdec_bench/run.py | 5 +++-- examples/specdec_bench/specdec_bench/models/vllm.py | 9 +-------- .../Qwen/Qwen3.5-35B-A3B/specdec_bench_tp2_c1.yaml | 4 ++-- .../Qwen/Qwen3.5-35B-A3B/specdec_bench_tp2_c32.yaml | 4 ++-- .../examples/Qwen/Qwen3.5-9B/specdec_bench_tp1_c1.yaml | 4 ++-- .../examples/Qwen/Qwen3.5-9B/specdec_bench_tp1_c32.yaml | 4 ++-- 6 files changed, 12 insertions(+), 18 deletions(-) diff --git a/examples/specdec_bench/run.py b/examples/specdec_bench/run.py index 1c155ad0ef2..d9d8b832c59 100644 --- a/examples/specdec_bench/run.py +++ b/examples/specdec_bench/run.py @@ -368,8 +368,9 @@ def run_simple(args): required=False, default=None, help=( - "DFlash block size (num_speculative_tokens). Use instead of --draft_length " - "for DFLASH: block_size = draft_length + 1." + "Draft block size for DFlash and DSpark. To draft N tokens " + "(num_speculative_tokens=N), use --block_size N+1 for DFlash and " + "--block_size N for DSpark." ), ) parser.add_argument( diff --git a/examples/specdec_bench/specdec_bench/models/vllm.py b/examples/specdec_bench/specdec_bench/models/vllm.py index b1456bbd202..9c754fac7ab 100644 --- a/examples/specdec_bench/specdec_bench/models/vllm.py +++ b/examples/specdec_bench/specdec_bench/models/vllm.py @@ -129,14 +129,7 @@ def __init__(self, model_dir, max_concurrent_requests, sampling_kwargs, **kwargs specdec = { "method": "dspark", "model": kwargs.get("draft_model_dir"), - "num_speculative_tokens": kwargs.get("speculative_num_steps", 7), - } - elif kwargs.get("speculative_algorithm") == "DSPARK": - specdec = { - "method": "dspark", - "model": kwargs.get("draft_model_dir"), - "num_speculative_tokens": kwargs.get("speculative_num_draft_tokens", 7), - "draft_sample_method": kwargs.get("draft_sample_method", "greedy"), + "num_speculative_tokens": kwargs.get("speculative_num_draft_tokens") or 7, } elif kwargs.get("speculative_algorithm") == "NONE": specdec = None diff --git a/tools/launcher/examples/Qwen/Qwen3.5-35B-A3B/specdec_bench_tp2_c1.yaml b/tools/launcher/examples/Qwen/Qwen3.5-35B-A3B/specdec_bench_tp2_c1.yaml index 287b56a3288..cb8b94f31c3 100644 --- a/tools/launcher/examples/Qwen/Qwen3.5-35B-A3B/specdec_bench_tp2_c1.yaml +++ b/tools/launcher/examples/Qwen/Qwen3.5-35B-A3B/specdec_bench_tp2_c1.yaml @@ -90,7 +90,7 @@ pipeline: - --engine VLLM - --speculative_algorithm DSPARK - --draft_model_dir <> - - --draft_length 7 + - --block_size 7 - --max_seq_len 16384 - --tp_size 2 - --ep_size 1 @@ -121,7 +121,7 @@ pipeline: - --engine VLLM - --speculative_algorithm DSPARK - --draft_model_dir <> - - --draft_length 7 + - --block_size 7 - --max_seq_len 16384 - --tp_size 2 - --ep_size 1 diff --git a/tools/launcher/examples/Qwen/Qwen3.5-35B-A3B/specdec_bench_tp2_c32.yaml b/tools/launcher/examples/Qwen/Qwen3.5-35B-A3B/specdec_bench_tp2_c32.yaml index 2716a9aeedc..2b8c1c36590 100644 --- a/tools/launcher/examples/Qwen/Qwen3.5-35B-A3B/specdec_bench_tp2_c32.yaml +++ b/tools/launcher/examples/Qwen/Qwen3.5-35B-A3B/specdec_bench_tp2_c32.yaml @@ -90,7 +90,7 @@ pipeline: - --engine VLLM - --speculative_algorithm DSPARK - --draft_model_dir <> - - --draft_length 7 + - --block_size 7 - --max_seq_len 16384 - --tp_size 2 - --ep_size 1 @@ -121,7 +121,7 @@ pipeline: - --engine VLLM - --speculative_algorithm DSPARK - --draft_model_dir <> - - --draft_length 7 + - --block_size 7 - --max_seq_len 16384 - --tp_size 2 - --ep_size 1 diff --git a/tools/launcher/examples/Qwen/Qwen3.5-9B/specdec_bench_tp1_c1.yaml b/tools/launcher/examples/Qwen/Qwen3.5-9B/specdec_bench_tp1_c1.yaml index 36864a336ab..252f6ab0b07 100644 --- a/tools/launcher/examples/Qwen/Qwen3.5-9B/specdec_bench_tp1_c1.yaml +++ b/tools/launcher/examples/Qwen/Qwen3.5-9B/specdec_bench_tp1_c1.yaml @@ -90,7 +90,7 @@ pipeline: - --engine VLLM - --speculative_algorithm DSPARK - --draft_model_dir <> - - --draft_length 7 + - --block_size 7 - --max_seq_len 16384 - --tp_size 1 - --ep_size 1 @@ -121,7 +121,7 @@ pipeline: - --engine VLLM - --speculative_algorithm DSPARK - --draft_model_dir <> - - --draft_length 7 + - --block_size 7 - --max_seq_len 16384 - --tp_size 1 - --ep_size 1 diff --git a/tools/launcher/examples/Qwen/Qwen3.5-9B/specdec_bench_tp1_c32.yaml b/tools/launcher/examples/Qwen/Qwen3.5-9B/specdec_bench_tp1_c32.yaml index 9ea31e2dadd..994c7d83211 100644 --- a/tools/launcher/examples/Qwen/Qwen3.5-9B/specdec_bench_tp1_c32.yaml +++ b/tools/launcher/examples/Qwen/Qwen3.5-9B/specdec_bench_tp1_c32.yaml @@ -90,7 +90,7 @@ pipeline: - --engine VLLM - --speculative_algorithm DSPARK - --draft_model_dir <> - - --draft_length 7 + - --block_size 7 - --max_seq_len 16384 - --tp_size 1 - --ep_size 1 @@ -121,7 +121,7 @@ pipeline: - --engine VLLM - --speculative_algorithm DSPARK - --draft_model_dir <> - - --draft_length 7 + - --block_size 7 - --max_seq_len 16384 - --tp_size 1 - --ep_size 1