Pipeline LoRA publication and bound tau-bench requests - #807
Conversation
|
Live qualification at Caladan batch 40 exposed a policy Commit e1f04eb fixes the root cause without changing any timeout: streamed calls now use ART as the sole retry owner, disable SDK-internal retries on a shared-transport client clone, and retain exactly Verification: 18 focused stream tests pass; Ruff, formatting, ty, and lock checks pass. A fresh Codex review and a persistent Claude Fable 5 re-review both approved the revised exact-attempt-budget implementation with no blockers. The full unconstrained local test collection is not feasible in this lightweight environment because GPU/Megatron |
|
Follow-up: Claude Fable 5 correctly found that three existing tau-bench test doubles lacked |
|
Final post-fix status: Claude Fable 5 re-reviewed commit 7da0985 after the fake-client compatibility repair and approved with no remaining blockers. GitHub quality checks, install smoke test, and two-H200 TrainerRank validation are all green. The PR remains draft and unmerged pending live experiment qualification and downstream pinning. |
|
Post-remediation review record:
This remains draft pending patched live qualification and downstream pinning. |
e84d4cd to
459b9c8
Compare
af9103b to
69cdf94
Compare
69cdf94 to
ed3efbb
Compare
|
I believe lora publishing is well optimized in the new multinode pr #808. A snapshot is taken and moved to the cpu, then the forward-backward work proceeds. There's a bunch of other overlap around this, but point is the time between consecutive fwd-bwd work is roughly 200ms. |
Summary
Why
LoRA conversion and serialization were still running on Caladan's strict trainer queue. For the measured 116 MiB Qwen adapter, that delayed the next gradient by about 227 seconds even after upload itself had been reduced to seconds.
ART #804 changed URL-backed tau-bench policy calls to token-delta streaming. Live 512-concurrency qualification showed that this saturated one Python core, relayed more than 1 GB of SSE data, and still produced connection retries. This PR reverts the tau-bench portion of that change rather than adding more stream-specific pooling, sharding, parsing, or transport behavior.
Long sampled histories could additionally trigger repeated suffix and lineage scans. Those paths now use linear failure-table matching while preserving the existing conservative reconciliation rules.
Tau-bench request bound
URL-backed policy clients now use:
The longest legitimate Qwen3.5-4B cold request observed was 351 seconds, while Caladan's benchmark default is 15 minutes. The approximately 20-minute retry-inclusive budget provides headroom without inheriting Caladan's unrelated 45-minute cross-model control-plane safety limit.
Tau-bench now calls
chat.completions.create(..., stream=False)directly. It no longer sends stream options, progress headers, or a private final-response header, and it has no stream-body retry or reconstruction path. ART's generic public stream consumer remains available to callers that explicitly use it.Scope
The tau-bench production diff against
mainis 11 additions and 100 deletions. The removed code includes automatic streaming selection, usage trailers, custom stream headers, body-level retry classification, and completion reconstruction.Validation
Delivery note
This remains a draft for review. Caladan must pin ART's eventual merge SHA rather than this branch commit.