Skip to content

Support cross-entity checkpoint forks - #676

Closed
poofeth wants to merge 1 commit into
OpenPipe:mainfrom
poofeth:fix/fork-checkpoint-from-entity-649
Closed

Support cross-entity checkpoint forks#676
poofeth wants to merge 1 commit into
OpenPipe:mainfrom
poofeth:fix/fork-checkpoint-from-entity-649

Conversation

@poofeth

@poofeth poofeth commented May 11, 2026

Copy link
Copy Markdown

Fixes #649.

Summary

  • Add an optional from_entity parameter to ServerlessBackend._experimental_fork_checkpoint.
  • Use the explicit source entity when building the W&B artifact collection path, falling back to the destination model entity and then W&B default entity.
  • Add unit coverage for explicit source entity, fallback behavior, and missing-entity validation.

Validation

  • uv run pytest tests/unit/test_serverless_fork_checkpoint.py -q
  • uv run ruff check src/art/serverless/backend.py tests/unit/test_serverless_fork_checkpoint.py
  • uv run ruff format --check src/art/serverless/backend.py tests/unit/test_serverless_fork_checkpoint.py
  • git diff --check

Note: this is a regular issue fix, not an Algora bounty claim.

@poofeth
poofeth force-pushed the fix/fork-checkpoint-from-entity-649 branch from c0221d8 to 6f9280c Compare May 11, 2026 04:44
@poofeth

poofeth commented May 11, 2026

Copy link
Copy Markdown
Author

Added a direct fake-W&B regression test in 6f9280c2 to prove from_entity is threaded into the artifact lookup call.

Additional validation after the update:

uv run pytest tests/unit/test_serverless_fork_checkpoint.py -q
uv run ruff check src/art/serverless/backend.py tests/unit/test_serverless_fork_checkpoint.py
uv run ruff format --check src/art/serverless/backend.py tests/unit/test_serverless_fork_checkpoint.py
git diff --check

Result: 5 tests passed; lint, format-check, and diff-check passed.

@poofeth

poofeth commented May 11, 2026

Copy link
Copy Markdown
Author

Closing this to keep my open review queue focused on active bounty work. This is a regular issue fix rather than an Algora/bounty claim, and I do not want it to add noise while prioritizing payout-backed PRs. The branch and tests remain available if maintainers want to reuse the patch later.

@poofeth poofeth closed this May 11, 2026
AnnaSuSu added a commit to AnnaSuSu/ART that referenced this pull request Jul 14, 2026
…tity

ServerlessBackend._experimental_fork_checkpoint built the source artifact path
from the destination model's entity (model.entity or api.default_entity), so a
checkpoint could only be forked within the same W&B entity. Forking e.g.
willow-voice/willow_normal/kl-000-1 into wb-training/... failed because it looked
for the artifact under wb-training.

Add an optional from_entity parameter and resolve the source entity as
from_entity -> model.entity -> api.default_entity via a small pure helper
(_wandb_checkpoint_collection_path) that also raises a clear error when no entity
is available. Re-implements the approach validated in OpenPipe#676.

Closes OpenPipe#649
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.

Add from_entity parameter to _experimental_fork_checkpoint

1 participant