Skip to content

Pin the ports image to Miles 386ae3b07 and regenerate the golden samples - #256

Merged
michaellchung merged 3 commits into
mainfrom
s23-pr-15-image-pins
Oct 14, 2026
Merged

michaellchung merged 3 commits into
mainfrom
s23-pr-15-image-pins

Conversation

@michaellchung

@michaellchung michaellchung commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Rebuilds yeto-miles-ports on michaellchung/miles s23-sao-streaming-roles (386ae3b07) and pins it. This closes the stack's expected test failures.

Motivation

PRs 01-05 moved MILES_NEXT_COMMIT (56068bd56, then the LoRA-hybrid transport and SAO streaming primitives) but the image tag and digest still named 64b591a4b until a rebuild. This image is the one used by the P0-1.11 GPU run.

What changed

  • pins.py, entry.py: new image tag/digest and Miles lineage for 386ae3b07; docker/miles-ports/Dockerfile ARG.
  • Build record under .../2026-10-14-386ae3b-2fa8801/ (build-record.json, check.txt, image-manifest.json).
  • Decoupling golden samples (8) regenerated per yeto-framework-decoupling/hash-migration.md (entry added there).
  • tests/test_rl_ports_image.py: one expectation updated.

Also in this PR: two full-parameter fixes (appended at the end of the chain)

  • Forward the full-parameter identity through the ports island entry: _run_ports used the LoRA hash for full-parameter runs; it now forwards the full-parameter identity (island_entry.py, test in test_rl_launcher_dense_full.py).
  • Keep whole FP32 masters for full-parameter Miles actors: full-parameter actors turn off the distributed optimizer, with a validate guard and 3 tests (config.py, test_rl_miles_adapter_config.py).
  • Why here: the fixes touch files owned by PRs 02/03, but they were found after the chain was cut. Appending them to Pin the ports image to Miles 386ae3b07 and regenerate the golden samples #256 avoids rebasing 12 downstream branches. They can be split into their own PR on request.

Behavior changes / compatibility

  • After this PR, the 11 expected failures of PRs 01-14 are gone: test_rl_ports_image (2), the 8 test_decoupling_golden samples, and test_rl_backend_identity::test_golden_samples_keep_both_old_hashes_and_carry_the_identity (golden 9 + ports_image 2).
  • Runs pinned to the earlier image are test runs and do not resume (P0-D5).

Tests

Local CPU: test_rl_ports_image.py, test_decoupling_golden.py, test_rl_backend_identity.py: 57 passed. Full suite with cargo: queued behind the GPU run lock; log logs/pr-split/full-s23-pr-15-image-pins.log (fill in before opening the PR).

Not verified on GPU

The image is the one the P0-1.11 GPU run uses (in progress at the time of writing); results will be linked here before merge. DeepSeek V4 paths in this image are not run on GPU.

Depends on

#255. Tree of this branch equals s23-g3-fullparam (s23-final + 7f9daece + b8d4653f + 166ed64d).

🤖 Generated with Claude Code

chowhsu and others added 3 commits October 14, 2026 11:33
Rebuild yeto-miles-ports on michaellchung/miles s23-sao-streaming-roles
(386ae3b07: 56068bd56 plus the LoRA-hybrid full-parameter transport and the
SAO streaming primitives), update the pins, lineage, Dockerfile ARG and build
record, and regenerate the decoupling golden samples per hash-migration.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The P0-1.11 GPU run probe (s23-g2-fpprobe-20261014a) failed before Miles
started: _run_ports re-derived a LoRA config hash for every island, and a
full-parameter island has no LoRA rank (TypeError on lora_r=None). run_miles
already binds the full-parameter identity (model config hash) on miles_args;
_run_ports now forwards it and derives LoRA identity only for LoRA islands.
A test parses the launcher's dense island command and drives _run_ports to
run_ports_island.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Miles' set_default_megatron_args forces the distributed optimizer on for
Adam regardless of argv. Under it every main_param is a flat slice of the
owned range even at DP=1, so the full-parameter shard manifest refuses it
as an incomplete FP32 master. The SAO source branch turned the optimizer
off for any external policy sync; the fork port kept that only for the
LoRA hybrid. Set use_distributed_optimizer=False as a runtime attribute in
full-parameter mode (applied after Miles' defaults, before Megatron's
validate_args) and refuse a parsed namespace that still has it on.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@michaellchung
michaellchung marked this pull request as ready for review October 14, 2026 11:33
@michaellchung
michaellchung merged commit 71e7a5f into main Oct 14, 2026
1 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants