Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
214 commits
Select commit Hold shift + click to select a range
94e9d2e
pr1: tinker data format layer — per-token client channels and slot-st…
yushengsu-thu Aug 7, 2026
6bcd8af
pr2: tinker slot pool, run registry, and registration config
yushengsu-thu Aug 7, 2026
d7b8695
pr3: tinker operation ledger — gap-buffered arrival, fingerprinted re…
yushengsu-thu Aug 7, 2026
2efbc30
pr4: tinker control plane — serving identity, backend preflight, cont…
yushengsu-thu Aug 7, 2026
6276d0b
pr5: tinker per-slot Adam — per-call AdamParams, unnormalized gradien…
yushengsu-thu Aug 7, 2026
f45c086
pr6: tinker loss layer — per-slot dispatch, sum reduction, logprob co…
yushengsu-thu Aug 7, 2026
ca91aa5
pr7: tinker trainer verbs — control-op execution, fixed-residency rec…
yushengsu-thu Aug 7, 2026
709dac0
pr8: tinker rollout layer — queue children, homogeneous kind-locked s…
yushengsu-thu Aug 8, 2026
abba6c8
pr9: tinker wiring — driver loop with publish barrier, actor-group ve…
yushengsu-thu Aug 8, 2026
d4c1c46
pr10: delete the adapter-sample-level multi-LoRA path
yushengsu-thu Aug 8, 2026
638abc0
tinker backend: H200 E2E client — lifecycle, forward, ownership-fence…
yushengsu-thu Aug 8, 2026
0486b5a
tinker backend: 4-adapter RL quality client — concurrent GRPO loops o…
yushengsu-thu Aug 8, 2026
c5ad479
fe1: ledger terminal-rejected ordinals — a boundary-rejected submissi…
yushengsu-thu Aug 10, 2026
8ad79f5
fe2: tinker wire models and payload translation
yushengsu-thu Aug 10, 2026
5113341
fe3: frontend state stores and service orchestration
yushengsu-thu Aug 10, 2026
ecca3c9
fe4: /api/v1 HTTP surface, auth, and launch wiring
yushengsu-thu Aug 10, 2026
c0adc2d
fe5: contract tests — the unmodified SDK drives the frontend over liv…
yushengsu-thu Aug 10, 2026
edee796
fe6: document the SDK frontend and settle the D5 ordinal note
yushengsu-thu Aug 10, 2026
bd3ef8a
fe7: map the SDK sampling seed to sglang sampling_seed
yushengsu-thu Aug 10, 2026
c4794fd
fe8: SDK-driven GPU validation clients
yushengsu-thu Aug 10, 2026
eb0b41c
docs: add tinker client-owned RL loop
yushengsu-thu Aug 11, 2026
9725df7
tinker frontend tests: characterize paused_capacity for an unbound cr…
yushengsu-thu Aug 12, 2026
c13156d
tinker backend: split protocol-mode predicate from the multi-LoRA exe…
yushengsu-thu Aug 11, 2026
52bd388
rollout: typed postprocess contract — the manager stops sniffing the …
yushengsu-thu Aug 11, 2026
5391f3f
tinker tests: refactor-equivalence capture of the gradient window and…
yushengsu-thu Aug 12, 2026
8735779
tinker backend: registration-keyed GradientWindowTracker — step/dirty…
yushengsu-thu Aug 12, 2026
e03c86f
tinker: batch-local operation lanes carry loss/result correlation — t…
yushengsu-thu Aug 12, 2026
fe20560
tinker: TrainerResidencyPort, ResidentBinding, and the batch executio…
yushengsu-thu Aug 12, 2026
e102a54
tinker: generic control coordinator + MultiLoraParameterExecutor — co…
yushengsu-thu Aug 12, 2026
fba7e63
tinker rollout: OperationQueuePort — the operation-to-batch adapter s…
yushengsu-thu Aug 12, 2026
c5010ee
tinker driver: RolloutComponents role factory + WeightPublisher seam …
yushengsu-thu Aug 12, 2026
67e771c
tinker backend: InferenceAdminPort — engine aborts leave the backend'…
yushengsu-thu Aug 12, 2026
5e99ecb
Merge tinker-compatible-backend: adopt the codex-rollout-fullparamete…
yushengsu-thu Aug 12, 2026
5ebef94
tinker frontend tests: FakeDriver speaks the post-refactor controller…
yushengsu-thu Aug 12, 2026
595ae32
tinker frontend: the service reads the backend facade, never registry…
yushengsu-thu Aug 12, 2026
4d4e38a
tinker frontend: injected SamplingTransport — the /generate hop stops…
yushengsu-thu Aug 12, 2026
3ee8ed2
tinker tests: align the multi-LoRA CP fake iterator with the real Dat…
yushengsu-thu Aug 12, 2026
6f34aeb
Merge tinker-compatible-backend: CP fake-iterator contract fix
yushengsu-thu Aug 12, 2026
0dc5970
tinker: the batch execution lease is metric-inert — log_rollout_data …
yushengsu-thu Aug 12, 2026
9e6627d
Merge tinker-compatible-backend: log_rollout_data lease skip (H200 fix)
yushengsu-thu Aug 12, 2026
d4511ff
Merge tinker-frontend: adopt the codex-rollout-fullparameter-design-0…
yushengsu-thu Aug 12, 2026
f03be50
tinker: failure-path fixes from the external adversarial review — win…
yushengsu-thu Aug 12, 2026
5245468
tinker: delete the dead/duplicate surfaces flagged by the external re…
yushengsu-thu Aug 12, 2026
1d43620
tinker frontend: failure-path fixes from the external adversarial rev…
yushengsu-thu Aug 12, 2026
f830a45
tinker: norm-blind veto — refuse a step whose norm collection is stru…
yushengsu-thu Aug 12, 2026
f54b13b
Merge tinker-compatible-backend: adversarial-review failure-path fixe…
yushengsu-thu Aug 12, 2026
794102e
Merge tinker-frontend: adversarial-review failure-path fixes across t…
yushengsu-thu Aug 12, 2026
846798d
tinker tests: black formatting on the new executor regression test
yushengsu-thu Aug 12, 2026
d4236bb
tinker frontend tests: black formatting on the sdk fixture teardown
yushengsu-thu Aug 12, 2026
db72d53
Merge tinker-compatible-backend: black formatting on the new executor…
yushengsu-thu Aug 12, 2026
81de9bd
Merge tinker-frontend: black formatting follow-up
yushengsu-thu Aug 12, 2026
d5bb5e0
tinker frontend tests: FakeDriver poison discard carries gradient_win…
yushengsu-thu Aug 12, 2026
3f4486a
Merge tinker-frontend: FakeDriver consumed-bit mirror
yushengsu-thu Aug 12, 2026
c0def78
tinker: refuse recompute configs that silently zero every adapter gra…
yushengsu-thu Aug 12, 2026
b854773
tinker: relax the multi-LoRA recompute guard to a bridge feature probe
yushengsu-thu Aug 13, 2026
08c26e4
tinker: finalize uncommitted data batches — no operation stays CLAIME…
yushengsu-thu Aug 13, 2026
92e7209
tinker docs: narrow the full-parameter reuse claims to what the code …
yushengsu-thu Aug 13, 2026
a52726b
Merge main @ 456340f86 into tinker-compatible-backend
yushengsu-thu Aug 13, 2026
3ab609f
Merge tinker-compatible-backend: bridge-probe guard relaxation, uncom…
yushengsu-thu Aug 13, 2026
259eebd
docs: regenerate the examples mirror for the tinker recipe set
yushengsu-thu Aug 13, 2026
70d7f3f
docs: regenerate the examples mirror for the frontend README rows
yushengsu-thu Aug 13, 2026
b1f0458
tinker e2e: configurable noise tolerance for the poison-window client…
yushengsu-thu Aug 13, 2026
c37e45f
Merge tinker-frontend: bridge-probe guard relaxation stack (backend i…
yushengsu-thu Aug 13, 2026
170beaa
docs: regenerate the examples mirror for the full-stack README section
yushengsu-thu Aug 13, 2026
1eb5036
tinker: count TP-duplicated expert adapter grads once in the per-slot…
yushengsu-thu Aug 13, 2026
173a605
Merge tinker-compatible-backend: TP-duplicated expert adapter grad-no…
yushengsu-thu Aug 13, 2026
01257db
Merge tinker-frontend: TP-duplicated expert adapter grad-norm dedup
yushengsu-thu Aug 13, 2026
05d4b09
tinker e2e: poison-client sensitivity bar = the tolerance itself, mar…
yushengsu-thu Aug 13, 2026
9708ba5
Merge tinker-frontend: poison-client sensitivity bar fix
yushengsu-thu Aug 13, 2026
66f37a0
tinker: document LayerWise expert ownership
yushengsu-thu Aug 13, 2026
005135d
[multi-lora] integrate LayerWise expert ownership fixes
yushengsu-thu Aug 13, 2026
76ac997
[multi-lora] narrow LayerWise integration scope
yushengsu-thu Aug 13, 2026
c04e709
docker: track Megatron-Bridge @bridge instead of pinning a SHA
yushengsu-thu Aug 13, 2026
1dcb4a2
Merge tinker-compatible-backend: LayerWise expert ownership integrati…
yushengsu-thu Aug 13, 2026
75847ad
Revert "tinker: count TP-duplicated expert adapter grads once in the …
yushengsu-thu Aug 13, 2026
5c252cd
Merge tinker-frontend: LayerWise expert ownership integration and ded…
yushengsu-thu Aug 13, 2026
e1a82b9
Merge main @ 9075e867f: docs sidebar restructure, training log-prob r…
yushengsu-thu Aug 13, 2026
ff71650
Merge main @ 85e7655f1: lora E2E estimate calibration
yushengsu-thu Aug 13, 2026
936b7af
tests: expect the tinker forward_only kwarg in the exact train-call pin
yushengsu-thu Aug 13, 2026
8a70cbf
Merge main @ 85e7655f1: docs sidebar restructure, training log-prob r…
yushengsu-thu Aug 13, 2026
699bc97
tests: expect the tinker forward_only kwarg in the exact train-call pin
yushengsu-thu Aug 13, 2026
53a0873
Merge tinker-compatible-backend: main @ 85e7655f1 re-sync (docs sideb…
yushengsu-thu Aug 13, 2026
2763f3d
Merge tinker-frontend: main @ 85e7655f1 re-sync landed on the backend…
yushengsu-thu Aug 13, 2026
6347bcf
rollout: cleanup-safe downstream handoff — opaque RolloutFnHandoff re…
yushengsu-thu Aug 14, 2026
62aee3a
tinker rollout: direct-await invocation, typed claim/lease recovery, …
yushengsu-thu Aug 14, 2026
2ba938f
Merge tinker-compatible-backend: cleanup-safe rollout handoff + sched…
yushengsu-thu Aug 14, 2026
12693fd
Merge tinker-frontend: codex-0813 review fixes (cleanup-safe rollout …
yushengsu-thu Aug 14, 2026
36be7ce
Merge main @ f38655d88: class-based rollout is now the default (#2522…
yushengsu-thu Aug 14, 2026
0675ac6
Merge tinker-compatible-backend: main @ f38655d88 re-sync (class-base…
yushengsu-thu Aug 14, 2026
759e8f7
Merge tinker-frontend: main @ f38655d88 re-sync (class-based rollout …
yushengsu-thu Aug 14, 2026
8deb2f3
Merge branch 'main' into tinker-compatible-backend
yushengsu-thu Aug 15, 2026
81357d2
Merge branch 'tinker-compatible-backend' into tinker-frontend
yushengsu-thu Aug 15, 2026
0bd47e9
Merge updated tinker frontend stack
yushengsu-thu Aug 15, 2026
73919d6
frontend: global weighted sampling admission + hard transport bound +…
yushengsu-thu Aug 15, 2026
25f38fc
tests: sampling admission invariants + real-SDK aggregate-saturation …
yushengsu-thu Aug 15, 2026
88c6c91
Merge tinker-frontend: Tau sampling-stall P0 fix (global weighted adm…
yushengsu-thu Aug 15, 2026
20c446a
frontend: sampling context preflight + observability + orphan reaper
yushengsu-thu Aug 16, 2026
0ec9855
tests: context preflight, orphan-reaper identity preservation, sampli…
yushengsu-thu Aug 16, 2026
7047d57
frontend: context discovery hops through the router's /workers to rea…
yushengsu-thu Aug 16, 2026
b1fee12
Merge tinker-frontend: sampling context preflight + observability + o…
yushengsu-thu Aug 16, 2026
7b8c2f9
tinker: delete the batch_id dead field, the test-only tenant property…
yushengsu-thu Aug 17, 2026
20217d7
tinker: type the claim result as ClaimedOperationBatch (0813 review §…
yushengsu-thu Aug 17, 2026
a3fcb62
tinker: collapse TinkerOperationSource + QueueChildRolloutFn into the…
yushengsu-thu Aug 17, 2026
08872dc
tinker: rename TinkerOperationBatchAdapter to TinkerRolloutFn, droppi…
yushengsu-thu Aug 17, 2026
1feaf4a
Merge tinker-compatible-backend: Round 3 pure-structural cleanup (081…
yushengsu-thu Aug 17, 2026
c244f38
Merge tinker-frontend: Round 3 pure-structural cleanup (0813 review §…
yushengsu-thu Aug 17, 2026
999f499
tinker: gap-timeout the operation stream typed instead of stalling fo…
yushengsu-thu Aug 18, 2026
6444c58
tinker: report loss_weight:sum so SFT per-token loss has a correct de…
yushengsu-thu Aug 18, 2026
3034bc4
tinker docs: gap-timeout contract, SFT loss denominator, and SDK 0.24…
yushengsu-thu Aug 18, 2026
5b39683
Merge tinker-compatible-backend: gap timeout + loss_weight:sum + docs…
yushengsu-thu Aug 18, 2026
53842fa
tinker frontend: SFT mini-loop uses the true teacher-forced denominat…
yushengsu-thu Aug 18, 2026
55b76e7
Merge tinker-frontend: gap timeout, loss_weight:sum SFT denominator, …
yushengsu-thu Aug 18, 2026
93e0d2e
Merge main @ 62a66297b into tinker-compatible-backend
yushengsu-thu Aug 18, 2026
2715eec
Merge tinker-compatible-backend: main @ 62a66297b re-sync (#2589 no-a…
yushengsu-thu Aug 18, 2026
9935809
Merge tinker-frontend: main @ 62a66297b re-sync (#2589 no-abort bump,…
yushengsu-thu Aug 18, 2026
fa73efa
tests: de-poison the model-initialize sys.modules restore; patch trai…
yushengsu-thu Aug 18, 2026
7c968cf
Merge branch 'tinker-compatible-backend' into tinker-frontend
yushengsu-thu Aug 18, 2026
9b12218
Merge branch 'tinker-frontend' into agent/tinker-full-stack-example
yushengsu-thu Aug 18, 2026
b95bc46
Revert "tinker rollout: direct-await invocation, typed claim/lease re…
yushengsu-thu Aug 18, 2026
51c9e14
Revert "rollout: cleanup-safe downstream handoff — opaque RolloutFnHa…
yushengsu-thu Aug 18, 2026
a016c68
Merge tinker-compatible-backend: revert the 0813 Round-1/2 rollout-ma…
yushengsu-thu Aug 18, 2026
648b738
Merge branch 'tinker-frontend' into fullstack-align-0817
yushengsu-thu Aug 18, 2026
326f1c4
Merge branch 'main' into tinker-compatible-backend
yushengsu-thu Aug 18, 2026
cd3f62c
Merge branch 'tinker-compatible-backend' into tinker-frontend
yushengsu-thu Aug 18, 2026
a92e2db
Merge branch 'main' into agent/tinker-full-stack-example
yushengsu-thu Aug 18, 2026
edf6149
Merge remote-tracking branch 'radixark/tinker-frontend' into codex/up…
yushengsu-thu Aug 18, 2026
1ce8021
[multi-lora] fix mixed Tinker loss channels
yushengsu-thu Aug 18, 2026
df72bfa
[multi-lora] harden Tinker sampling lifecycle
yushengsu-thu Aug 18, 2026
70b11d0
tests: cover mixed loss channel boundaries
yushengsu-thu Aug 18, 2026
74cca64
Merge branch 'tinker-compatible-backend' of github.com:radixark/miles…
yushengsu-thu Aug 18, 2026
80ca790
Merge branch 'tinker-frontend' of github.com:radixark/miles into code…
yushengsu-thu Aug 18, 2026
abfdc79
style: format sampler cleanup
yushengsu-thu Aug 18, 2026
0ff59d7
Merge branch 'tinker-frontend' of github.com:radixark/miles into code…
yushengsu-thu Aug 18, 2026
b82a9fc
multi-lora: separate operation backend names from Tinker
yushengsu-thu Aug 18, 2026
9eb370b
test: cover operation rollout path compatibility
yushengsu-thu Aug 18, 2026
0cb6491
Merge updated Multi-LoRA operation backend into Tinker frontend
yushengsu-thu Aug 18, 2026
053764c
docs: clarify Tinker protocol flag boundary
yushengsu-thu Aug 18, 2026
ebd2a9c
Merge branch 'tinker-compatible-backend' of github.com:radixark/miles…
yushengsu-thu Aug 18, 2026
8ac360a
Merge updated Tinker frontend and operation backend
yushengsu-thu Aug 18, 2026
1718636
refactor: separate Tinker protocol from operation executors
yushengsu-thu Aug 18, 2026
0b1e3d8
test: align operation E2E paths with multi-LoRA
yushengsu-thu Aug 18, 2026
126fdf2
Merge updated multi-LoRA operation backend
yushengsu-thu Aug 18, 2026
53857d4
Merge renamed operation backend and Tinker frontend
yushengsu-thu Aug 18, 2026
01cc146
docs: update renamed multi-LoRA operation paths
yushengsu-thu Aug 18, 2026
ec676d8
test: keep allocator fixture local to its test module
yushengsu-thu Aug 18, 2026
3815a7f
Merge commit 'ec676d8ee' into codex/naming-2346
yushengsu-thu Aug 18, 2026
85510d9
Merge commit '3815a7f200fa74e5434bf2a570c0d4e5232ee16e' into codex/na…
yushengsu-thu Aug 18, 2026
515021c
test: isolate rollout object-store fixture
yushengsu-thu Aug 18, 2026
3d751ec
Merge commit '515021ce5' into codex/naming-2346
yushengsu-thu Aug 18, 2026
064ace3
Merge commit '3d751ecfe' into codex/naming-2365
yushengsu-thu Aug 18, 2026
306f447
docs: clarify multi-lora launcher args scope
yushengsu-thu Aug 21, 2026
9f71fa6
refactor: group Megatron API backends
yushengsu-thu Aug 21, 2026
b2af112
refactor: align weight updater naming
yushengsu-thu Aug 21, 2026
013788d
refactor: clarify runtime controller naming
yushengsu-thu Aug 21, 2026
f4a5f1f
refactor: trim redundant multi-lora commentary and tests
yushengsu-thu Aug 21, 2026
e48cd1d
test: trim redundant multi-lora coverage
yushengsu-thu Aug 21, 2026
7a0719e
refactor: make multi-lora operations service-only
yushengsu-thu Aug 21, 2026
72ed124
refactor: make rollout dispatch return explicit
yushengsu-thu Aug 21, 2026
84f7383
refactor: clarify multi-lora launcher limits
yushengsu-thu Aug 21, 2026
7189b1e
test: trim redundant operation-backend coverage
yushengsu-thu Aug 21, 2026
e87e4ef
Merge updated Multi-LoRA operation backend into Tinker frontend
yushengsu-thu Aug 21, 2026
83b55d1
Merge updated Tinker frontend into full-stack example
yushengsu-thu Aug 21, 2026
5fa5861
docs: compress the driver comments per review
yushengsu-thu Aug 21, 2026
fce25b0
Merge remote-tracking branch 'origin/tinker-compatible-backend' into …
yushengsu-thu Aug 21, 2026
aed5f60
Merge remote-tracking branch 'origin/tinker-frontend' into tinker-ful…
yushengsu-thu Aug 22, 2026
d9553d4
driver: tolerate consecutive generate failures instead of dying with …
yushengsu-thu Aug 22, 2026
2611c1f
operations: terminal-fail CLAIMED operations that outlive a TTL
yushengsu-thu Aug 22, 2026
7b70a7b
rollout: return a FAILED child runtime to IDLE after a cooldown
yushengsu-thu Aug 22, 2026
8ad4f41
test: give the fake RayTaskError the traceback surface its str() formats
yushengsu-thu Aug 22, 2026
7089c7f
Merge branch 'tinker-compatible-backend' into tinker-frontend
yushengsu-thu Aug 22, 2026
3297f8e
Merge branch 'tinker-frontend' into tinker-full-stack
yushengsu-thu Aug 22, 2026
2e4a6c2
fix: point the publish-path local import at api_backends after the re…
yushengsu-thu Aug 22, 2026
a52c730
test: statically pin every miles-internal import to an existing module
yushengsu-thu Aug 22, 2026
dfca380
Merge branch 'tinker-compatible-backend' into tinker-frontend
yushengsu-thu Aug 22, 2026
07ecafa
frontend: serve prompt logprobs (SamplingClient.compute_logprobs)
yushengsu-thu Aug 22, 2026
3fed3c0
Merge branch 'tinker-frontend' into tinker-full-stack
yushengsu-thu Aug 22, 2026
dd2fb33
test: tolerate absent optional deps when resolving publish-path imports
yushengsu-thu Aug 22, 2026
9b3be20
Merge branch 'tinker-compatible-backend' into tinker-frontend
yushengsu-thu Aug 22, 2026
66bd9b6
Merge branch 'tinker-frontend' into tinker-full-stack
yushengsu-thu Aug 22, 2026
83dfc4a
multi-lora: delete the unused parse_adapter helper and its orphan test
yushengsu-thu Aug 22, 2026
c6d26c9
Merge branch 'zombie-fix' into fe-fwd
yushengsu-thu Aug 22, 2026
7890e2c
Merge branch 'fe-fwd' into fs-fwd
yushengsu-thu Aug 22, 2026
bf891bb
ci: pin tinker==0.24.1 into the CPU requirements so the SDK metrics-c…
yushengsu-thu Aug 22, 2026
5d7c138
Merge branch 'item2' into fe-fwd2
yushengsu-thu Aug 22, 2026
564773a
Merge branch 'fe-fwd2' into fs-fwd2
yushengsu-thu Aug 22, 2026
957c253
multi-lora: remove the stamped-slot fallback and its launch-unreachab…
yushengsu-thu Aug 22, 2026
c7f8593
test: drop the duplicate non-tinker trim test
yushengsu-thu Aug 22, 2026
2af2de4
test: move the update_weight_version abort regression out of this PR
yushengsu-thu Aug 22, 2026
54fe8f2
e2e: RL-quality harness exits non-zero when an adapter loop aborts
yushengsu-thu Aug 22, 2026
7563b7e
style: wrap the lease slot-routing call to black's line length
yushengsu-thu Aug 22, 2026
51e3e39
Merge branch 'tinker-compatible-backend' into tinker-frontend
yushengsu-thu Aug 22, 2026
667b1f0
Merge branch 'tinker-frontend' into fs-fwd2
yushengsu-thu Aug 22, 2026
92ac88a
docs: compress multi-line comments to one line per review
yushengsu-thu Aug 23, 2026
fa008d8
Merge branch 'tinker-compatible-backend' into tinker-frontend
yushengsu-thu Aug 23, 2026
72ff71a
Merge branch 'tinker-frontend' into agent/tinker-full-stack-example
yushengsu-thu Aug 23, 2026
7755776
tests: strip comments from stack-added CI tests
yushengsu-thu Aug 23, 2026
6fa0ee8
merge: forward tinker-compatible-backend (stripped CI test comments) …
yushengsu-thu Aug 23, 2026
135cbaa
tests: strip comments from frontend-added CI tests
yushengsu-thu Aug 23, 2026
e2f18cd
merge: forward tinker-frontend (stripped CI test comments) into tinke…
yushengsu-thu Aug 23, 2026
f01778a
multi-lora: bound the operation ledger by the registry's completed ring
yushengsu-thu Aug 24, 2026
76741de
merge: forward tinker-compatible-backend (ledger ring-bound fix) into…
yushengsu-thu Aug 24, 2026
5b3af7c
merge: forward tinker-frontend (ledger ring-bound fix) into tinker-fu…
yushengsu-thu Aug 24, 2026
0cca03a
multi-lora: skip the base-weight update session for LoRA-only distrib…
yushengsu-thu Aug 24, 2026
20c4aac
Merge branch 'addback' into fe-ab
yushengsu-thu Aug 24, 2026
b340c37
Merge branch 'fe-ab' into fs-ab
yushengsu-thu Aug 24, 2026
93bf84d
ci: verify import targets in the source-resolution harness step
yushengsu-thu Aug 24, 2026
b0b8c92
Merge branch 'tinker-compatible-backend' into tinker-frontend
yushengsu-thu Aug 24, 2026
6c30be8
Merge branch 'tinker-frontend' into tinker-full-stack-example
yushengsu-thu Aug 24, 2026
5a7134b
remove the bridge recompute-guard: deployment tracks Megatron-Bridge …
yushengsu-thu Aug 24, 2026
6d944b6
Merge branch 'backend-guard-removal' into fe-guard-removal
yushengsu-thu Aug 24, 2026
e4c0963
Merge branch 'fe-guard-removal' into fs-guard-removal
yushengsu-thu Aug 24, 2026
e7e8abf
Merge origin/main into tinker-compatible-backend
yushengsu-thu Aug 24, 2026
4c8bb15
Merge branch 'backend-guard-removal' into fe-guard-removal
yushengsu-thu Aug 24, 2026
b0c391b
Merge branch 'fe-guard-removal' into fs-guard-removal
yushengsu-thu Aug 24, 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
5 changes: 1 addition & 4 deletions docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -165,10 +165,7 @@ RUN pip install "git+https://github.com/NVIDIA-NeMo/Emerging-Optimizers.git@v0.3
RUN TMS_CUDA_MAJOR=$(python3 -c "import torch; print(torch.version.cuda.split('.')[0])") \
pip install git+https://github.com/fzyzcjy/torch_memory_saver.git@f05a8754daf68238d54e4cf31cb3ba866684bbaf --no-cache-dir --force-reinstall
RUN pip install "nvidia-modelopt[torch]>=0.37.0" --no-build-isolation
# radixark/Megatron-Bridge#24 (TE 2.17 grouped-linear contract), merged to @bridge.
# Pinned by SHA, not branch: buildkit caches this layer on the instruction text, so a
# branch that moves leaves the old revision baked into the image with nothing to show it.
RUN pip install git+https://github.com/radixark/Megatron-Bridge.git@7f0fb3456f8ffe47599b5fd167b454605d85f932 --no-deps --no-build-isolation
RUN pip install git+https://github.com/radixark/Megatron-Bridge.git@bridge --no-deps --no-build-isolation
RUN pip install megatron-energon --no-deps
RUN pip install multi-storage-client --no-deps

Expand Down
40 changes: 24 additions & 16 deletions docs/advanced/lora.md
Original file line number Diff line number Diff line change
Expand Up @@ -300,32 +300,32 @@ its own Adam state and independently clocked scheduler. The trainer coalesces
ready prompt-group slices or partial adapter batches and selectively upserts
only changed adapters into SGLang.

Set the slot capacity with `--multi-lora-n-adapters N`. A bounded run registers
repeatable `--multi-lora-adapter NAME PATH` entries at startup; service mode can
start with empty slots and register adapters through the controller HTTP API.
Set the slot capacity with `--multi-lora-n-adapters N`. The operation backend
starts as a long-running service with empty slots and registers adapters at
runtime through the controller HTTP API.
This path currently forces Megatron-Bridge LoRA and requires disaggregated NCCL
broadcast, PP1, THD, Adam, and no train offload. Shared-outer expert adapters are
unsupported, and MoE expert adapters cannot use FP8/FP4 experts.

Native multi-LoRA is not implied by the native single-adapter work: both current
`main` and the Tinker-oriented branch below still build multi-LoRA through
`main` and the operation-backend branch below still build multi-LoRA through
Megatron-Bridge. Native multi-LoRA is tracked separately in
[issue #2141](https://github.com/radixark/miles/issues/2141).

### Future Tinker-compatible operation backend
### Multi-LoRA operation backend and Tinker compatibility

[PR #2273](https://github.com/radixark/miles/pull/2273) is the active
Tinker-oriented backend proposal. It changes ownership of the training loop:
Multi-LoRA operation-backend proposal. It changes ownership of the training loop:
instead of the server owning a dataset, reward function, and one-step schedule,
clients submit explicit operations against a registered adapter. Its primary
intended consumer is a Tinker-compatible training service rather than a generic
server-owned dataset scheduler.
consumer today is a Tinker-compatible protocol adapter, but the trainer-side
operation contract is named independently from that client protocol.

```text
Tinker-style client
| register + ordered operations
Tinker client -> Tinker protocol/frontend adapter
| normalized register + ordered operations
v
controller / operation ledger
MultiLoraOperationBackend / operation ledger
| bind one fixed LoRA slot
v
Megatron-Bridge multi-LoRA trainer
Expand All @@ -335,6 +335,12 @@ Megatron-Bridge multi-LoRA trainer
SGLang router + registration-scoped adapter identity
```

The current concrete is `MultiLoraOperationBackend`, with
`MultiLoraOperationBatchFn` and `MultiLoraParameterExecutor` handling adapter
batching and slot execution. `Tinker` remains the wire/SDK compatibility name.
A future full-parameter executor may reuse the normalized operation contract,
but this PR does not implement or claim full-parameter training.

The operation surface separates compute, optimization, and publication:

| Operation | Contract |
Expand All @@ -349,7 +355,8 @@ are strictly serialized per registration, while idempotent retries, gap-buffered
arrival, acknowledgements, and backpressure make execution retry-safe and
order-safe. A registration-scoped serving identity prevents an old request from
using a slot after that slot has been reassigned. Authenticated remote access is
the responsibility of the future frontend, not the Ray operation API in #2273.
provided by the stacked Tinker frontend in #2346; it is not part of the Ray
operation API in #2273.

The v1 scope in the PR is deliberately narrow: text-only synchronous training,
one shared base model, shifted 1-D targets, `cross_entropy`, importance-sampling,
Expand All @@ -362,9 +369,10 @@ This backend is implemented in an open PR, not released on `main`; the PR
reports H200 validation. PR #2273 provides the operation backend, but its v1
training operations are still exposed through the controller's Ray API. The
stacked [PR #2346](https://github.com/radixark/miles/pull/2346) adds a REST
frontend compatible with the official `tinker==0.24.1` client; its GPU frontend
E2E is still pending. If #2273 lands as proposed, it replaces the current
dataset-driven driver.
frontend compatible with the official `tinker==0.24.1` client. The stacked
full system has passed both RL and pure-SFT 2xH200 acceptance; those results do
not expand #2273 beyond its fixed-slot Multi-LoRA scope. If #2273 lands as
proposed, it replaces the current dataset-driven driver.
</Warning>

## Compatibility and limitations
Expand Down Expand Up @@ -404,5 +412,5 @@ dataset-driven driver.
- `miles/rollout/session/core.py` attaches the single adapter to agentic session
requests.
- `miles/ray/multi_lora/`, `miles/rollout/multi_lora/`, and
`miles/backends/megatron_utils/multi_lora_*.py` implement the multi-adapter
`miles/backends/megatron_utils/api_backends/multi_lora/` implement the multi-adapter
controller, routing, scheduling, optimization, and checkpoint path.
2 changes: 1 addition & 1 deletion docs/docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -242,7 +242,7 @@
"pages": [
"examples/geo3k-vlm",
"examples/geo3k-vlm/multi-turn",
"examples/multi-lora",
"examples/multi-lora-operations",
"examples/on-policy-distillation",
"examples/on-policy-distillation/qwen3-5-35b-selfdistill",
"examples/ppo",
Expand Down
2 changes: 1 addition & 1 deletion docs/examples/index.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading