[DataFlow runtime] Domino end-to-end + StepContext for schedule-dependent loss#629
Conversation
|
Warning You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again! |
… W3′ naming Review fixes (verified against the files): - Status (confirmed): stop calling the in-review composable-launch stack (#627/#628/#629) "landed"/"DONE"/"done". Split the genuinely-merged spine from the in-review stack in §1; one consistent "in review" label in §1/Phase A/success table and across the roadmap (README, Phase A). Leave the spine's "landed" wording (it is merged). - Module placement (confirmed): Evaluator/EvalCache are top-level domain managers (specforge/eval/), not specforge/runtime/eval/ — fix the eval-and-breadth.md outlier to match plan.md §2.3 and domain-refactor.md. - W3′ naming (confirmed): SGLangServerEngine is ONE engine with two feature transports (capture-into-FeatureStore for W3/O1.3, inline-HTTP for the light W3′) — disambiguate in §2.2, the workload table and §G2 rather than overloading one name. - O1.3 spike (reviewer's premise refuted — it is already an explicit 🔴 gate): added the valid narrow point instead — the spike scopes only the sglang_server slice of Phase B; the de-EAGLE3 extraction and domain Trainer carry no engine risk. Additional contradictions found by a completeness sweep and fixed: - StrategySpec registry: plan.md said it "stays in runtime/training unchanged" but §6 + Phase E move it — clarify the per-step strategy seam stays, the registry converges into training/strategies/. - TargetEngine source: extracted from modeling/target/*TargetModel (adapters wrap it), not "absorbs runtime/inference adapters". - Draft package: models/drafts is the target layout; note today's modeling/draft/ + real filenames. - Dependency graph: align domain-refactor (E depended on {C,D}) with README (D→E, C parallel). - Drop the up-19/up-20 branch tags that only appeared in the online doc. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
Warning You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again! |
Code reviewNo high-confidence issues found. Checked for bugs in the Domino StrategySpec, StepContext threading, lambda schedule parity with the script, and offline/online launcher wiring. |
…dent loss
Domino is the third algorithm on the composable launch — a StrategySpec plus the
ONE genuine shared-contract extension the analysis predicted.
- strategy.py: StepContext{global_step, total_steps} threaded into forward_loss
(optional; eagle3/dflash ignore it). DominoTrainStrategy: reuses the DFlash
feature schema + adapter; its forward_loss reads ctx to compute the decaying
lambda_base that blends Domino's base loss (mirrors train_domino.get_lambda_base).
- trainer.py: TrainerCore.train_step / eval_step accept a StepContext; fit passes
StepContext(global_step, total_steps=max_steps). Backward-compatible.
- contracts.py: DraftStrategyName += "domino".
- registry.py: domino spec — reuses DFlash transform/collate/adapter, domino reader
(strategy tag) + DominoTrainStrategy. No new builder, no launch.py change.
- tests/_fixtures.py: build_domino (DFlash draft w/ projector_type="domino" head ->
OnlineDominoModel).
- tests/test_domino_launch.py (new): CPU lambda-schedule test + offline/online GPU
end-to-end.
Adding domino touched ZERO launch.py and reused the dflash data path — exactly the
"new algorithm = a spec + its loss" goal.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
6945bfe to
a6b8b7d
Compare
64eb276 to
9c1c020
Compare
|
Addressed review feedback (self-review pass) — includes one real bug fix.
Deferred: exposing Validated: full |
What
Domino — the third algorithm on the composable launch. Beyond a
StrategySpecit needs exactly one shared-contract extension:StepContext.Changes
strategy.py:StepContext{global_step, total_steps}threaded intoforward_loss(optional; eagle3/dflash ignore it).DominoTrainStrategyreuses the DFlash feature schema + adapter; itsforward_lossreadsctxto compute the decayinglambda_basethat blends Domino's base loss (mirrorstrain_domino.get_lambda_base).trainer.py:TrainerCore.train_step/eval_stepaccept aStepContext;fitpassesStepContext(global_step, total_steps=max_steps). Backward-compatible.contracts.py:DraftStrategyName += "domino".registry.py: domino spec — reuses DFlash transform/collate/adapter + a domino reader;DominoTrainStrategy. No new builder, nolaunch.pychange.tests/_fixtures.py:build_domino(DFlash draft w/projector_type="domino"head →OnlineDominoModel).tests/test_domino_launch.py(new): CPU lambda-schedule test + offline/online GPU end-to-end.Adding domino touched zero
launch.pyand reused the dflash data path — the "new algorithm = a spec + its loss" goal.StepContextis the one genuine, deliberate contract change (vs. leaking schedule state through ad-hoc kwargs).Testing
Part of the 197 tests OK suite run at this tip (sci-h200 / H200), incl. the new domino offline/online GPU tests + the CPU schedule test.
Stacked on the dflash PR. Part 3/3.
🤖 Generated with Claude Code