Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
129 commits
Select commit Hold shift + click to select a range
119ee63
[DataFlow runtime · online disagg 1/n] StreamingRefChannel — cross-pr…
maocheng23 Jun 28, 2026
7fedce7
[DataFlow runtime · M6] MooncakeFeatureStore zero-copy transport
maocheng23 Jun 28, 2026
b02fe0c
[DataFlow runtime · online disagg 2/n] build_disagg_online_{producer,…
maocheng23 Jun 28, 2026
d287b1f
fix(mooncake): reject zero-copy get_into short reads; drop dead _tens…
maocheng23 Jun 29, 2026
6f941c6
[DataFlow runtime · online] O1.1 — shared cross-process control plane
maocheng23 Jun 29, 2026
31a9702
[DataFlow runtime · online] O1.2 — named builder + interleaved async …
maocheng23 Jun 29, 2026
4fcb521
[DataFlow runtime] Composable launch: StrategySpec registry + paramet…
maocheng23 Jun 30, 2026
69d2ff5
[DataFlow runtime] DFlash end-to-end on the composable launch (offlin…
maocheng23 Jun 30, 2026
424bb5f
[DataFlow runtime] Domino end-to-end + StepContext for schedule-depen…
maocheng23 Jun 30, 2026
94a49c1
[DataFlow runtime] Phase B1 — TargetEngine ABC + de-EAGLE3 the target…
maocheng23 Jul 1, 2026
6cb5b4e
Merge pull request #622 from sgl-project/dataflow-up-17-online-disagg
jiapingW Jun 30, 2026
6ea0c75
Merge pull request #624 from sgl-project/dataflow-up-19-online-shared…
jiapingW Jul 2, 2026
90e8fe9
Merge pull request #625 from sgl-project/dataflow-up-20-online-async-…
jiapingW Jul 2, 2026
9f527c6
Merge pull request #627 from sgl-project/dataflow-up-21-composable-la…
jiapingW Jul 2, 2026
9009294
Merge pull request #628 from sgl-project/dataflow-up-22-dflash
jiapingW Jul 2, 2026
92d71bd
[Phase D 1/5] no_sync gradient accumulation: boundary decided before …
maocheng23 Jul 4, 2026
9cd07ec
[DataFlow runtime] Phase C — colocated lightweight control plane
maocheng23 Jul 1, 2026
a376983
[DataFlow runtime] Phase B2 — decouple the target engine from the sgl…
maocheng23 Jul 1, 2026
d46de7a
Merge pull request #629 from sgl-project/dataflow-up-23-domino
jiapingW Jul 3, 2026
3150275
[Phase D 2/5] backend full training state + CheckpointManager (atomic…
maocheng23 Jul 4, 2026
86d0a93
[Phase C review fixes] deployment_mode on colocated builders, leaner …
maocheng23 Jul 1, 2026
dde1435
refactor: clarify sglang eagle3 capture entrypoints
maocheng23 Jul 1, 2026
086557d
Merge pull request #631 from sgl-project/dataflow-up-24-target-engine
jiapingW Jul 3, 2026
0451f8a
[Phase D 3/5] full resume: domain restore ordering, data-stream seek,…
maocheng23 Jul 4, 2026
faf6140
[Phase C review fixes 2] pin build_online_runtime to local_colocated
maocheng23 Jul 1, 2026
e038b93
[DataFlow runtime] Phase B3 — domain Trainer wrapping the runtime seam
maocheng23 Jul 1, 2026
00fb08f
Merge pull request #632 from sgl-project/dataflow-up-25-sglang-captur…
jiapingW Jul 3, 2026
63abaf6
[Phase D 4/5] Evaluator: aggregate-before-geometric-sum, DP-safe sche…
maocheng23 Jul 4, 2026
de24798
style: apply pre-commit (black/isort/autoflake)
maocheng23 Jul 2, 2026
dac94c0
[DataFlow runtime] Phase B4 — adopt the de-EAGLE3 surface (cutover + …
maocheng23 Jul 1, 2026
9bd6a09
Merge pull request #633 from sgl-project/dataflow-up-26-domain-trainer
jiapingW Jul 3, 2026
5e0da8b
[Phase D 5/5] best-checkpoint tracking in the training loop; docs
maocheng23 Jul 4, 2026
5579004
[Phase C review fixes] rename control-plane builder and trim comments
maocheng23 Jul 2, 2026
c1b3f2a
Merge pull request #635 from sgl-project/dataflow-up-27-target-engine…
jiapingW Jul 3, 2026
a0e48df
[DataFlow runtime] E0 — layout consolidation: runtime/ is substrate-o…
maocheng23 Jul 4, 2026
c9b9b66
style: apply pre-commit formatting
maocheng23 Jul 4, 2026
42a0304
Merge pull request #636 from sgl-project/dataflow-up-28-colocated-lig…
jiapingW Jul 3, 2026
a0c1109
E0: remove old-path import shims — runtime/ and modeling/target hard-…
maocheng23 Jul 4, 2026
8ecdbcf
[SpecForge] E — draft-architecture registry (@register_draft)
maocheng23 Jul 1, 2026
16b6c91
style: trim draft registry comments
maocheng23 Jul 4, 2026
0d2cd0c
[SpecForge] Phase E — collapse the (algorithm x backend) target-engin…
maocheng23 Jul 4, 2026
2576455
style: fix draft registry import ordering
maocheng23 Jul 4, 2026
0fb041f
[SpecForge] Phase E — three-layer capture boundary: TargetCapturePoli…
maocheng23 Jul 4, 2026
dd2b685
[SpecForge] Phase E — exporters: DataFlow checkpoint -> HF / sglang d…
maocheng23 Jul 4, 2026
c83a35b
fix(export-cli): expose HF embedding source
maocheng23 Jul 4, 2026
cb44afb
Merge commit '4849678272641faa9ca4a8ee9de12360181aee13' into HEAD
maocheng23 Jul 4, 2026
9b0a68a
docs: e2e curve-comparison report vs main (Qwen2.5-0.5B, 100 steps)
maocheng23 Jul 4, 2026
d56679c
docs(report): full reproduction commands + experiment kit for the e2e…
maocheng23 Jul 4, 2026
86c7d76
[SpecForge] Phase E — typed Pydantic config + specforge CLI
maocheng23 Jul 4, 2026
27e7995
style: mark e2e driver scripts executable (shebang hook)
maocheng23 Jul 4, 2026
180730b
Merge branch 'codex-up32-boundary' into HEAD
maocheng23 Jul 4, 2026
42d484c
fix lint
jiapingW Jul 5, 2026
a244785
Merge pull request #637 from sgl-project/dataflow-up-29-training-mana…
jiapingW Jul 5, 2026
b9094d1
Merge pull request #638 from sgl-project/dataflow-up-30-e0-layout
jiapingW Jul 5, 2026
b9c2860
[SpecForge] examples: Qwen3.6-27B DFlash online (Nemotron-v2, 6 epochs)
maocheng23 Jul 5, 2026
9dffeae
Merge pull request #642 from sgl-project/dataflow-up-31-draft-registry
jiapingW Jul 5, 2026
becfd7f
[SpecForge] examples/disagg: online disaggregated Qwen3.6-27B DFlash
maocheng23 Jul 5, 2026
045faef
Merge pull request #643 from sgl-project/dataflow-up-32-engine-collapse
jiapingW Jul 5, 2026
9cd6d39
[SpecForge] examples: replace docs/reports/e2e with Qwen2.5-0.5B exam…
maocheng23 Jul 5, 2026
3046940
Merge pull request #644 from sgl-project/dataflow-up-33-config-cli
jiapingW Jul 5, 2026
e4d9d4b
fix(sglang): make the DataFlow capture backend work on sglang 0.5.14
maocheng23 Jul 5, 2026
5a07e33
style: isort import order in run_disagg_dflash.py
maocheng23 Jul 5, 2026
b1cb098
Merge pull request #645 from sgl-project/dataflow-up-34-exporters
jiapingW Jul 5, 2026
0f8c039
style(sglang): trim verbose version-porting comments in capture backend
maocheng23 Jul 6, 2026
d32ef8a
Merge pull request #650 from maocheng23/dataflow-qwen36-dflash-example
jiapingW Jul 6, 2026
6b75f38
Merge pull request #652 from maocheng23/dataflow-up-16-sgl0.5.14
jiapingW Jul 6, 2026
6ed5476
[DataFlow O2] server-side spec capture: sglang 0.5.14 patch + zero-co…
maocheng23 Jul 6, 2026
4ffc395
runtime: DP online consumer — centralized RefDistributor + single-led…
maocheng23 Jul 6, 2026
cba9110
examples(disagg): print the training curve to stdout (loss + per-posi…
maocheng23 Jul 6, 2026
b923b64
fix(apply-script): installed sglang needs -p2 (strip a/ + python/), n…
maocheng23 Jul 6, 2026
b7dbfcc
example: stub flashinfer on GPU-less processes (yunchang import-time …
maocheng23 Jul 6, 2026
8c90fbf
spec-capture: select capture method (eagle3|dflash) via --spec-captur…
maocheng23 Jul 6, 2026
d8f97e4
fix(server-capture): eagle3 loss_mask follows the offline (B, L) conv…
maocheng23 Jul 6, 2026
d61f79f
dp-distributor: fix review findings — backpressure granularity, resta…
maocheng23 Jul 6, 2026
9ca23a3
server-capture: dedicated spec_capture output field (fix per-token cu…
maocheng23 Jul 6, 2026
02911c5
examples(disagg): real server-capture dflash-Qwen36; trim comments; lint
maocheng23 Jul 6, 2026
c7fc438
server-capture: forbid radix cache — a prefix hit silently truncates …
maocheng23 Jul 7, 2026
2b6cacf
disagg(mooncake): pure-client producer/consumer (segment=0) + sized s…
maocheng23 Jul 6, 2026
36cb7ed
fix(test): import os in test_server_capture (new wiring test)
maocheng23 Jul 6, 2026
2bdf2a2
multi-server producer: fan the disagg producer out over N capture ser…
maocheng23 Jul 7, 2026
3b3ae0e
example: wire --spec-capture-method dflash into the dflash server launch
maocheng23 Jul 7, 2026
f0966a4
data-plane: loader pumps store.gc() on a lease-aware cadence
maocheng23 Jul 6, 2026
35c82e0
fix lint
jiapingW Jul 6, 2026
814f472
Merge pull request #656 from maocheng23/dataflow-o4-multiserver
jiapingW Jul 7, 2026
728f798
mooncake: never probe existence before a remove (is_exist grants a le…
maocheng23 Jul 6, 2026
12ea224
Merge pull request #653 from maocheng23/dataflow-o2-server-capture
jiapingW Jul 6, 2026
5d786a1
Merge online O3/O4 into dataflow-up-16
maocheng23 Jul 7, 2026
13f8414
Merge pull request #654 from maocheng23/dataflow-o2-capture-run-fixes
jiapingW Jul 7, 2026
fe306d3
Merge pull request #657 from maocheng23/dataflow-up16-o3-o4-rollup
jiapingW Jul 7, 2026
502418f
test: adapt VP drafter assertion to metrics return
Jul 10, 2026
caefeb9
fix: preserve main behavior across PR 648 integration
Jul 10, 2026
1cfba97
fix: preserve P-EAGLE registry across rebase
Jul 11, 2026
3c8d4d2
fix(peagle): make checkpoint reload and resume faithful
Jul 11, 2026
d3e4c4f
fix(server-capture): disable radix cache in live gate
Jul 11, 2026
e7ba6c0
[DataFlow runtime] Phase B1 — TargetEngine ABC + de-EAGLE3 the target…
maocheng23 Jul 1, 2026
20f5f65
[DataFlow runtime] Phase B2 — decouple the target engine from the sgl…
maocheng23 Jul 1, 2026
98b753d
[DataFlow runtime] E0 — layout consolidation: runtime/ is substrate-o…
maocheng23 Jul 4, 2026
83e3eac
[SpecForge] E — draft-architecture registry (@register_draft)
maocheng23 Jul 1, 2026
d7985a7
style: fix draft registry import ordering
maocheng23 Jul 4, 2026
16e7cfe
[SpecForge] Phase E — typed Pydantic config + specforge CLI
maocheng23 Jul 4, 2026
fd2fffa
fix(sglang): make the DataFlow capture backend work on sglang 0.5.14
maocheng23 Jul 5, 2026
08bd2fe
fix(sglang): port parallel-state init in patch.py to sglang 0.5.14
maocheng23 Jul 5, 2026
70e241a
support domino disaggregated training[bug]
jiapingW Jul 7, 2026
e3c7acb
fix bugs
jiapingW Jul 7, 2026
3063d4a
1. dflash family draft model abstract
Jul 9, 2026
62cb3f1
fix lint
Jul 9, 2026
12c27d3
[DataFlow runtime] Domino disagg: 1-server + DP=7 launcher + working …
maocheng23 Jul 7, 2026
832263f
support dspark training
jiapingW Jul 9, 2026
b057d18
support train multi epochs
jiapingW Jul 9, 2026
ea7d529
disagg logging: DP-average loss/acc + log train/accuracy & train/lr
maocheng23 Jul 9, 2026
372b857
examples: dflash 1-server + DP=7 disagg launcher (auto LR-schedule st…
maocheng23 Jul 9, 2026
83ec0c3
examples: add two-node DFlash launcher
maocheng23 Jul 9, 2026
8b2ce67
refactor domino and dspark code
jiapingW Jul 10, 2026
fe0ad18
fix some bugs
jiapingW Jul 10, 2026
02bf0a7
fix lint and grad norm clip bugs[PR663]
jiapingW Jul 10, 2026
69e18e6
feat(data): add validated Qwen ShareGPT regeneration pipelines
jianuo-huang Jul 12, 2026
4f17f85
feat(data): explode multi-turn reasoning into generation events
jianuo-huang Jul 12, 2026
2963b5e
test(domino): add generic overfit and DFLASH serving gates
jianuo-huang Jul 12, 2026
4ac963c
Merge pull request #660 from sgl-project/domino-disagg
jiapingW Jul 13, 2026
bbe3956
del torch version updated
jiapingW Jul 13, 2026
2055413
fix test_offline_train_eagle3
jiapingW Jul 13, 2026
a1e0ce9
fix tests in test_runtime
jiapingW Jul 13, 2026
3e22c30
fix test_scripts
jiapingW Jul 13, 2026
05d554a
fix test_utils
jiapingW Jul 13, 2026
a416043
style: satisfy pre-commit lint
maocheng23 Jul 13, 2026
226a710
test: restore 4-rank legacy teacher fixture
maocheng23 Jul 13, 2026
20e2e3f
fix: avoid duplicate distributed grad norm reduction
maocheng23 Jul 13, 2026
f90d9bf
switch from hf to modelscope
FrankLeeeee Jul 14, 2026
2c0c60a
fixed mem static fraction
FrankLeeeee Jul 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,9 @@ repos:
- id: check-symlinks
- id: destroyed-symlinks
- id: trailing-whitespace
exclude: \.patch$ # stripping context-line whitespace breaks git apply
- id: end-of-file-fixer
exclude: \.patch$
- id: check-yaml
args: [--allow-multiple-documents]
- id: check-toml
Expand Down
144 changes: 144 additions & 0 deletions bench_domino_mfu.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,144 @@
"""Isolated single-GPU MFU / FLOPs / memory benchmark for the domino trainer.

Removes the data-supply path and DP comm so we measure ONLY the per-step trainer
compute: build the real draft (configs/qwen3-8b-domino.json shapes) with random
weights on one GPU, feed a realistic batch, time fwd+bwd with CUDA events, count
forward FLOPs with torch's FlopCounterMode, and read peak allocated memory.

Reports achieved TFLOP/s and MFU vs H200 bf16 dense peak (989.5 TFLOP/s) for a
sweep of batch sizes, plus per-sample compute (to show it is ~flat in batch =
compute-latency bound, not FLOPs/memory bound).
"""

import json

import torch
import torch.nn as nn
from torch.utils.flop_counter import FlopCounterMode
from transformers import Qwen3Config

from specforge.core.dflash import OnlineDominoModel
from specforge.modeling.draft.dflash import DFlashDraftModel

H200_BF16_TFLOPS = 989.5 # SXM, dense
SEQ = 768
NUM_ANCHORS = 256
CFG_PATH = "configs/qwen3-8b-domino.json"


def build(dtype, device):
raw = json.load(open(CFG_PATH))
dfc = raw["dflash_config"]
cfg = Qwen3Config(
hidden_size=raw["hidden_size"],
num_hidden_layers=raw["num_hidden_layers"],
num_attention_heads=raw["num_attention_heads"],
num_key_value_heads=raw.get("num_key_value_heads", 8),
head_dim=raw.get("head_dim", 128),
intermediate_size=raw["intermediate_size"],
vocab_size=raw["vocab_size"],
max_position_embeddings=raw.get("max_position_embeddings", 40960),
rms_norm_eps=raw.get("rms_norm_eps", 1e-6),
attention_bias=raw.get("attention_bias", False),
attention_dropout=0.0,
rope_theta=raw.get("rope_theta", 1000000.0),
)
cfg._attn_implementation = "sdpa"
cfg.layer_types = ["full_attention"] * raw["num_hidden_layers"]
cfg.num_target_layers = 36
cfg.block_size = raw["block_size"]
cfg.dflash_config = dfc

draft = DFlashDraftModel(cfg).to(device=device, dtype=dtype)
V, H = raw["vocab_size"], raw["hidden_size"]
lm_head = nn.Linear(H, V, bias=False).to(device=device, dtype=dtype)
embed = nn.Embedding(V, H).to(device=device, dtype=dtype)
for p in list(lm_head.parameters()) + list(embed.parameters()):
p.requires_grad_(False)

model = OnlineDominoModel(
draft_model=draft,
target_lm_head=lm_head,
target_embed_tokens=embed,
mask_token_id=dfc["mask_token_id"],
block_size=raw["block_size"],
attention_backend="sdpa",
num_anchors=NUM_ANCHORS,
loss_decay_gamma=7.0,
shift_label=dfc.get("shift_label", True),
)
n_train = sum(p.numel() for p in draft.parameters() if p.requires_grad)
return model, cfg, n_train


def make_inputs(cfg, bsz, dtype, device):
naux = len(cfg.dflash_config["target_layer_ids"])
g = torch.Generator(device="cpu").manual_seed(0)
input_ids = torch.randint(0, cfg.vocab_size, (bsz, SEQ), generator=g).to(device)
hidden = torch.randn(
bsz, SEQ, naux * cfg.hidden_size, generator=g, dtype=torch.float32
).to(device=device, dtype=dtype)
loss_mask = torch.ones(bsz, SEQ, device=device)
return input_ids, hidden, loss_mask


def bench(bsz, dtype=torch.bfloat16, device="cuda", iters=10, warmup=3):
model, cfg, n_train = build(dtype, device)
inp = make_inputs(cfg, bsz, dtype, device)

def step():
for p in model.draft_model.parameters():
p.grad = None
loss, _, _ = model(*inp, lambda_base=0.5)
loss.backward()
return loss

for _ in range(warmup):
step()
torch.cuda.synchronize()

# forward FLOPs (counts mm/bmm/sdpa; flex_attention may be undercounted)
with torch.no_grad():
fc = FlopCounterMode(display=False)
with fc:
model(*inp, lambda_base=0.5)
fwd_flop = fc.get_total_flops()

torch.cuda.reset_peak_memory_stats()
start = torch.cuda.Event(enable_timing=True)
end = torch.cuda.Event(enable_timing=True)
torch.cuda.synchronize()
start.record()
for _ in range(iters):
step()
end.record()
torch.cuda.synchronize()
ms = start.elapsed_time(end) / iters
peak_gb = torch.cuda.max_memory_allocated() / 1e9

# total training FLOP ~ 3x forward (1 fwd + 2 bwd), the standard rule
total_flop = 3.0 * fwd_flop
tflops = total_flop / (ms / 1e3) / 1e12
mfu = 100.0 * tflops / H200_BF16_TFLOPS
per_sample_ms = ms / bsz
print(
f"[bsz={bsz}] step={ms:7.1f}ms per_sample={per_sample_ms:6.1f}ms "
f"fwdFLOP={fwd_flop/1e12:6.2f}T ~totFLOP={total_flop/1e12:6.2f}T "
f"achieved={tflops:6.1f}TFLOP/s MFU={mfu:4.1f}% peakmem={peak_gb:6.1f}GB "
f"draft_params={n_train/1e9:.2f}B",
flush=True,
)
del model
torch.cuda.empty_cache()


if __name__ == "__main__":
print(
f"device={torch.cuda.get_device_name(0)} peak_ref={H200_BF16_TFLOPS} TFLOP/s bf16 dense"
)
for b in (2, 4, 8):
try:
bench(b)
except RuntimeError as e:
print(f"[bsz={b}] FAILED: {str(e)[:120]}")
torch.cuda.empty_cache()
45 changes: 45 additions & 0 deletions configs/qwen2.5-0.5b-dflash.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
{
"architectures": [
"DFlashDraftModel"
],
"attention_bias": false,
"attention_dropout": 0.0,
"auto_map": {
"AutoModel": "dflash.DFlashDraftModel"
},
"block_size": 16,
"bos_token_id": 151643,
"dflash_config": {
"mask_token_id": 151669,
"target_layer_ids": [1, 6, 11, 16, 21]
},
"dtype": "bfloat16",
"eos_token_id": 151645,
"head_dim": 64,
"hidden_act": "silu",
"hidden_size": 896,
"initializer_range": 0.02,
"intermediate_size": 4864,
"layer_types": [
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention"
],
"max_position_embeddings": 32768,
"max_window_layers": 5,
"model_type": "qwen3",
"num_attention_heads": 14,
"num_hidden_layers": 5,
"num_key_value_heads": 2,
"num_target_layers": 24,
"rms_norm_eps": 1e-06,
"rope_scaling": null,
"rope_theta": 1000000,
"sliding_window": null,
"tie_word_embeddings": false,
"use_cache": true,
"use_sliding_window": false,
"vocab_size": 151936
}
29 changes: 29 additions & 0 deletions configs/qwen2.5-0.5b-eagle3.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
{
"architectures": [
"LlamaForCausalLMEagle3"
],
"attention_bias": false,
"attention_dropout": 0.0,
"bos_token_id": 151643,
"eos_token_id": 151645,
"hidden_act": "silu",
"hidden_size": 896,
"initializer_range": 0.02,
"intermediate_size": 4864,
"max_position_embeddings": 32768,
"max_window_layers": 24,
"model_type": "llama",
"num_attention_heads": 14,
"num_hidden_layers": 1,
"num_key_value_heads": 2,
"rms_norm_eps": 1e-06,
"rope_scaling": null,
"rope_theta": 1000000.0,
"sliding_window": 131072,
"tie_word_embeddings": false,
"torch_dtype": "bfloat16",
"use_cache": true,
"use_sliding_window": false,
"vocab_size": 151936,
"draft_vocab_size": 16000
}
51 changes: 51 additions & 0 deletions configs/qwen3-4b-dspark.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
{
"architectures": [
"DSparkDraftModel"
],
"attention_bias": false,
"attention_dropout": 0.0,
"auto_map": {
"AutoModel": "dspark.DSparkDraftModel"
},
"block_size": 7,
"bos_token_id": 151643,
"dflash_config": {
"mask_token_id": 151669,
"target_layer_ids": [1, 9, 17, 25, 33],
"projector_type": "dspark",
"markov_rank": 256,
"markov_head_type": "vanilla",
"confidence_head_alpha": 1.0,
"enable_confidence_head": true,
"confidence_head_with_markov": true
},
"dtype": "bfloat16",
"eos_token_id": 151645,
"head_dim": 128,
"hidden_act": "silu",
"hidden_size": 2560,
"initializer_range": 0.02,
"intermediate_size": 9728,
"layer_types": [
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention"
],
"max_position_embeddings": 40960,
"max_window_layers": 5,
"model_type": "qwen3",
"num_attention_heads": 32,
"num_hidden_layers": 5,
"num_key_value_heads": 8,
"num_target_layers": 36,
"rms_norm_eps": 1e-06,
"rope_scaling": null,
"rope_theta": 1000000,
"sliding_window": null,
"tie_word_embeddings": false,
"use_cache": true,
"use_sliding_window": false,
"vocab_size": 151936
}
5 changes: 3 additions & 2 deletions configs/qwen3-8b-domino.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
{
"emb_dim": 256,
"architectures": [
"DFlashDraftModel"
"DominoDraftModel"
],
"attention_bias": false,
"attention_dropout": 0.0,
"auto_map": {
"AutoModel": "dflash.DFlashDraftModel"
"AutoModel": "domino.DominoDraftModel"
},
"block_size": 16,
"bos_token_id": 151643,
Expand Down
4 changes: 2 additions & 2 deletions configs/qwen3.5-4b-domino.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"architectures": [
"DFlashDraftModel"
"DominoDraftModel"
],
"attention_bias": false,
"attention_dropout": 0.0,
"auto_map": {
"AutoModel": "dflash.DFlashDraftModel"
"AutoModel": "domino.DominoDraftModel"
},
"block_size": 16,
"bos_token_id": 248043,
Expand Down
53 changes: 53 additions & 0 deletions configs/qwen3.6-27b-dflash.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
{
"architectures": [
"DFlashDraftModel"
],
"attention_bias": false,
"attention_dropout": 0.0,
"auto_map": {
"AutoModel": "dflash.DFlashDraftModel"
},
"block_size": 16,
"bos_token_id": null,
"dflash_config": {
"mask_token_id": 248070,
"target_layer_ids": [
1,
16,
31,
46,
61
]
},
"dtype": "bfloat16",
"eos_token_id": 248044,
"head_dim": 128,
"hidden_act": "silu",
"hidden_size": 5120,
"initializer_range": 0.02,
"intermediate_size": 17408,
"layer_types": [
"sliding_attention",
"sliding_attention",
"sliding_attention",
"sliding_attention",
"full_attention"
],
"max_position_embeddings": 262144,
"max_window_layers": 5,
"model_type": "qwen3",
"num_attention_heads": 32,
"num_hidden_layers": 5,
"num_key_value_heads": 8,
"num_target_layers": 64,
"pad_token_id": 248044,
"rms_norm_eps": 1e-06,
"sliding_window": 2048,
"tie_word_embeddings": false,
"transformers_version": "5.5.3",
"use_cache": true,
"use_sliding_window": true,
"vocab_size": 248320,
"rope_theta": 10000000,
"rope_scaling": null
}
Loading
Loading