Conversation
…om training_run Also resolve training runs looked up by the sampler-path run ID (<model_id>:train:0). Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
I'll fix CI failures and address comments from users with write access that start with 'Devin'.
|
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
create_lora_training_client(user_metadata=...)was accepted and stored on the control-plane model record, but never reached checkpoints, soGET /training_runs/{id}had nouser_metadataand Tinker'sTrainingRun.user_metadatawas alwaysNone. tinker_cookbook relies on this to recover a run's renderer from a checkpoint path (get_renderer_name_from_checkpoint_asyncreadsuser_metadata["renderer_name"]); on Spindle that always fell back to the caller's configured renderer.Flow after this PR:
Also folds in the sampler-path lookup from #8 (now closed): sampler paths are minted as
tinker://<model_id>:train:0/sampler_weights/...but checkpoints are filed under the baremodel_id, soget_training_run_by_tinker_path(sampler_path)404'd.training_run()now retries with:train:0stripped when the literal ID has no entries.Absent metadata stays
Noneend to end; old checkpoints without the key returnuser_metadata: None.Tests: control-plane unit test covers present/absent metadata and the
:train:0alias; the real-SDK e2e test creates a training client withuser_metadata, then checksget_training_runandget_training_run_by_tinker_path(<sampler path>)both return it; Miles/FFT checkpoint-metadata tests assert the new key. Full suite: 696 passed, 1 skipped.Link to Devin session: https://modal.devinenterprise.com/sessions/f53cfabb210146de8f0338fe388d7973
Open in Devin Desktop: https://modal.devinenterprise.com/desktop/session/f53cfabb210146de8f0338fe388d7973?variant=devin
Requested by: @kevintli