|
Download reference/code/SpecForge/docs/roadmap/README.md from Ouzhang/hku_diffusion_dllm: direct link, hf CLI and curl.
- Browser
- Download file 4.65 kB
-
https://huggingface.co/Ouzhang/hku_diffusion_dllm/resolve/main/reference/code/SpecForge/docs/roadmap/README.md
- Command line
-
hf download hf://Ouzhang/hku_diffusion_dllm/reference/code/SpecForge/docs/roadmap/README.md
-
curl -L -o README.md https://huggingface.co/Ouzhang/hku_diffusion_dllm/resolve/main/reference/code/SpecForge/docs/roadmap/README.md
4.65 kB
SpecForge Roadmap
The consolidated, phase-by-phase roadmap behind ../../plan.md (the reconciled
architecture). It folds in the former online-disaggregation roadmap PR (#618) so there is one
roadmap home. Each track doc gives, per phase: Goal / Target state / Implementation
(files + symbols) / Tests / Done-when.
Standing decisions (apply across all tracks)
- Substrate is canonical.
SampleRef(metadata, control plane;assert_no_tensors) +FeatureStore(tensors: Local/SharedDir/Mooncake) +FeatureDataLoaderβTrainBatch. There is no separateHiddenStateStreamsource of truth β the loader is the stream; online/offline/ disaggregated vary only in (ref source +FeatureStore), shielded from training. - Frozen target, no weight sync. "Train-with-decode" = a frozen target streams hidden
states over a fixed prompt set; the draft is not in the generation loop. Weight-sync /
hot draft-update / weight-version registry / staleness gate / on-policy are out of scope;
draft_weight_versionis kept only as provenance. - Ray is OPEN. A candidate for the O2 scale-out orchestration layer β likely needed for multi-node N-producer/M-trainer scale-out β but not committed and not a non-goal. See the decision gate in online-disaggregation.md Β§O2.
- Preserve the training seam (
TrainerCore/DraftTrainStrategy/TrainingBackend+StepContext); a domainTrainer+ managers wrap it, they do not replace it. It is relocated intact (not rewritten) fromruntime/trainingto top-leveltraining/in the move-only stepE0β see domain-refactor.md. - One implementation home per concern;
runtime/is substrate-only.runtime/holds only the DataFlow spine (control_plane+data_plane+contracts). All training-execution code lives in top-leveltraining/, all rollout/capture-execution code in top-levelinference/, andmodeling/holds model definitions only (no orchestration, no capture factory). New code is born in its final home β the Phase-D managers land directly intraining/, never deeper inruntime/; the existing seam and target engine are relocated once, inE0. There is no facade package.
Tracks
| Track | Doc | Scope |
|---|---|---|
| Domain / architecture | domain-refactor.md | Strategy/registry, TargetEngine, domain Trainer + managers, drafts registry, config/CLI/export |
| Online disaggregation | online-disaggregation.md | Live frozen-target generation, cross-process control plane, scale-out (Ray = open), hardening |
| Eval & breadth | eval-and-breadth.md | Acceptance-length eval harness; new algorithms = a StrategySpec + loss |
Phase status at a glance
| Phase | Track | Size | Status |
|---|---|---|---|
| A β Composable launch | domain | L | in review (#627/#628/#629) |
| O1.1 β Shared cross-process control plane | online | M | in review (~#624) |
| O1.2 β Async streaming loop + one-process builder | online | M | in review (~#625) |
B β Domain abstractions (TargetEngine + Trainer) |
domain | L | next |
| O1.3 β Live SGLang-server hidden-state capture | online | L | next (π΄ spike gates it) |
| E1 β Acceptance-length eval harness | eval | M | next |
| C β Colocated lightweight path | domain | M | later |
| D β Training managers (no_sync / resume / ckpt / eval) | domain | L | later |
| E0 β Layout consolidation (move-only: seam + target engine β top-level homes) | domain | M | later (front of E) |
| E β Composition & run surface (drafts registry, config/CLI, export) | domain | L | later |
| O2 β Scale-out orchestration (Ray = open) | online | L | later |
| O3 β Hardening (RDMA pool, restart, observability) | online | L | later |
| E2 β Algorithm breadth (MTP/β¦) | eval | L | later |
Dependencies (cross-track)
domain: A(rev.) ββ¬ββΆ B ββ¬ββΆ C
β βββΆ D ββΆ E0 ββΆ E
βββΆ B.TargetEngine ββββββββββββββ
online: O1.1(review) ββΆ O1.2(review) ββΆ O1.3 βββββ ββΆ O2(Ray=open) ββΆ O3
eval: E1 ββΆ E2 (parallel / orthogonal to both tracks)
- Domain B (
TargetEngine) unblocks online O1.3 (a realSGLangServerEnginecapture backend), so it is the highest-leverage next domain step. - E1's
Evaluatoris the same one domain D wires into the trainer loop β build once.