[Doc][Tune][Restore] Split "Tune stopping and resuming" into two user guides - #33495
Conversation
Signed-off-by: Justin Yu <justinvyu@berkeley.edu>
Signed-off-by: Justin Yu <justinvyu@berkeley.edu>
Signed-off-by: Justin Yu <justinvyu@berkeley.edu>
Signed-off-by: Justin Yu <justinvyu@berkeley.edu>
Signed-off-by: Justin Yu <justinvyu@berkeley.edu>
Signed-off-by: Justin Yu <justinvyu@berkeley.edu>
gjoliver
left a comment
There was a problem hiding this comment.
very nice man.
so super quick questions
| "num_epochs": 10, | ||
| "hyperparam": tune.grid_search([4, 5, 6]), | ||
| # Use the `best_checkpoint_uri` from above. | ||
| "start_from_checkpoint": best_checkpoint_path, |
There was a problem hiding this comment.
is start_from_checkpoint a new config name that is introduced?
There was a problem hiding this comment.
Nope, this is just some random config name for users to seed the new run with a checkpoint. This actually only works if the checkpoint is available in s3. Otherwise, if it's a local path, some nodes will not find it.
|
|
||
| Therefore, ``Tuner.restore`` is not suitable for our desired behavior. | ||
| This style of "iterative experimentation" should be done with *new* Tune experiments | ||
| rather than restoring a single experiment over and over and modifying the experiment spec. |
There was a problem hiding this comment.
but if we run new Tune experiments, how do you seed the initial model with whatever checkpint avaialble to us?
shouldn't we add an example for that too?
There was a problem hiding this comment.
See the first point. Without introducing some API to pass an initial checkpoint to Tuner, then accessing it through session.get_checkpoint, we need to just pass it through the config.
Signed-off-by: Justin Yu <justinvyu@berkeley.edu>
Signed-off-by: Justin Yu <justinvyu@berkeley.edu>
Signed-off-by: Justin Yu <justinvyu@berkeley.edu>
Signed-off-by: Justin Yu <justinvyu@berkeley.edu>
…restore Signed-off-by: Justin Yu <justinvyu@berkeley.edu>
Signed-off-by: Justin Yu <justinvyu@berkeley.edu>
Signed-off-by: Justin Yu <justinvyu@berkeley.edu>
Signed-off-by: Justin Yu <justinvyu@berkeley.edu>
Signed-off-by: Justin Yu <justinvyu@berkeley.edu>
Signed-off-by: Justin Yu <justinvyu@berkeley.edu>
… guides (ray-project#33495) Signed-off-by: elliottower <elliot@elliottower.com>
… guides (ray-project#33495) Signed-off-by: Jack He <jackhe2345@gmail.com>
Summary
This PR splits the "Tune Stopping and Resuming" guide into two user guides: (1) Tune Stopping, and (2) Tune Fault Tolerance. This PR also adds a FAQ post about the "iterative experimentation" workflow not being supported by
Tuner.restore, but rather through new Tune experiments.Why?
The scope of
Tuner.restorefunctionality is unclear. Users think that it should be used for iterative experimentation where hyperparameters/configs are changed before resuming training. However, its usage should be limited to providing fault tolerance at the experiment level, without any changes to the experiment specification. [github, slack, slack, slack]In previous discussions (Tuner API Design), we have decided against allowing modifications to things like trial stopping criteria upon resume. The idea is that an experiment should follow a single spec, and experiment restore is used for fault-tolerance to continue retrying the job if it’s interrupted. We have not communicated this decision through to outward-facing docs and usage examples (both in the open-source and product documentation), which is the reason for the continued user questions (see links above).
--> For reviewers <--
There are 3 new pieces of the docs to review:
Here's what the old guide looks like: https://docs.ray.io/en/releases-2.3.0/tune/tutorials/tune-stopping.html
Related issue number
Closes #30223
Closes #31830
Checks
git commit -s) in this PR.scripts/format.shto lint the changes in this PR.method in Tune, I've added it in
doc/source/tune/api/under thecorresponding
.rstfile.