Add from_entity parameter to _experimental_fork_checkpoint
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 72/100
Research direction
Start at ServerlessBackend._experimental_fork_checkpoint and inspect the artifact path construction around line 89. Add the optional source-entity input described in the issue, and verify that a checkpoint can be forked from an entity different from the destination model's entity without the download-and-reupload workaround.
Written by the indexing model from the issue text.
Description
Problem
_experimental_fork_checkpoint in ServerlessBackend constructs the source artifact path using the destination model's entity (line ~89):
from_entity = model.entity or api.default_entity
collection_path = f"{from_entity}/{from_project}/{from_model}"
This means you can't fork from a checkpoint in a different W&B entity. For example, forking from willow-voice/willow_normal/kl-000-1 into wb-training/willow_normal/my-new-run fails because it looks for the artifact under wb-training.
Proposed Fix
Add an optional from_entity parameter to _experimental_fork_checkpoint:
async def _experimental_fork_checkpoint(
self,
model: Model,
from_model: str,
from_project: str | None = None,
from_entity: str | None = None, # NEW
from_s3_bucket: str | None = None,
not_after_step: int | None = None,
verbose: bool = False,
prefix: str | None = None,
) -> None:
And use it when constructing the artifact path:
from_entity = from_entity or model.entity or api.default_entity
Current Workaround
Download the artifact from the source entity and re-upload it to the destination entity before calling fork. This works but doubles the artifact storage and adds an unnecessary copy step.
- Dominant language
- Python
- Stars
- 10.8k
- Forks
- 989
- Avg merge
- 6h 29m
- Merged PRs (30d)
- 85
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from OpenPipe/ART
-
enhancement
Difficulty 4/5 3-5 days Newbie friendliness 48/100
-
Difficulty 5/5 Over a week Newbie friendliness 35/100
-
Difficulty 5/5 Over a week Newbie friendliness 35/100
-
Investigate output and gradient variability between matched same-source Qwen TrainerRank actors Open
Difficulty 5/5 Over a week Newbie friendliness 25/100
-
Difficulty 5/5 Over a week Newbie friendliness 20/100
Similar issues
-
documentation help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
simonw/sqlite-utils#872 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100