-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Streamline experiments commands #5413
Comments
One random suggestion/thought I had about DVC in general - we can at least/also group them? (if it's impossible to get rid of some). Basic commands, commands to share experiments (pull/push/list), checkpoint? Help should be structured with these groups in mind then (similar to git I think). |
Yes, grouping and ordering is likely key to help guide users. I think this fits under general UI guidelines that @skshetry is researching. |
It also seems to overlap (conceptually) with |
In the long term I think the plan is to eventually replace |
Regarding this question, I wasn't sure whether or not
But if we are going to keep the behavior to run automatically we could also just make it a flag like |
I think there still needs to be a way for users to easily delete specified experiments or checkpoints (possibly after the 2.0 release). I prefer that
|
Implementing something like |
Moved the discussion of dropping experiments to #5437.
Sorry, this was incorrectly stated. Overall, it looks like
It's doing a lot, and it wasn't clear to me from the help text what it would do. I think at minimum, the docs likely need to have an example showing all this functionality, like: $ dvc exp show --no-pager
┏━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━┳━━━━━━━┓
┃ Experiment ┃ Created ┃ epoch ┃ start ┃
┡━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━╇━━━━━━━┩
│ workspace │ - │ 1 │ 0 │
│ main │ Jan 21, 2021 │ - │ 0 │
│ │ ╓ exp-f3c4a │ 12:59 PM │ 1 │ 0 │
│ ├─╨ bb6cf9d │ 12:59 PM │ 0 │ 0 │
└───────────────┴──────────────┴───────┴───────┘
$ dvc exp branch exp-f3c4a new_branch
$ git checkout -f new_branch
$ dvc exp show --no-pager
┏━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━┳━━━━━━━┓
┃ Experiment ┃ Created ┃ epoch ┃ start ┃
┡━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━╇━━━━━━━┩
│ workspace │ - │ 1 │ 0 │
│ exp │ 12:59 PM │ 1 │ 0 │
└────────────┴──────────┴───────┴───────┘
$ git log
commit 60fa72a9061ff91023aef9b6a16889545e3cd238 (HEAD -> exp, refs/exps/exec/EXEC_CHECKPOINT, refs/exps/exec/EXEC_BRANCH, refs/exps/exec/EXEC_APPLY, refs/exps/01/4ea37f98c0221bdbfba8528e92920bf1dc35ba/exp-f3c4a)
Author: David Berenbaum <[email protected]>
Date: Tue Feb 9 17:59:58 2021 +0000
dvc: commit experiment c4b8912ed1b9a83602114b2d09431069a5dc97ee892b001b7721d91a694ceb58
commit bb6cf9d63c7d75e47dc8209695d02d4f5ec9e28a
Author: David Berenbaum <[email protected]>
Date: Tue Feb 9 17:59:57 2021 +0000
dvc: commit experiment f3c4a8986bbca3e6732d6a594e10b6b0794f34d1ed291b223837c53f94eff32c Alternatively, there could be a command that does less, like Thoughts?
For the exp subcommands, grouping might be overkill, although I love the idea for the high-level dvc commands. For exp, is there any particular order now? I would put them in order based roughly on some combination of usage frequency and shared functionality, which I would guess to be something like |
So internally, an experiment is already equivalent to a git branch, and individual git commits for each checkpoint already exist. The only difference between an experiment and a regular git branch is that experiments go in
Essentially it's just a wrapper for
the same way you can create a new branch from any other existing git branch/tag/sha/ref
This is the same thing as just doing a git merge from an experiment into master (or whatever your current branch is). So
The idea behind
Basically we can add wrappers for whatever git functionality we want (like merge/rebase) but originally we thought it might just be easier to have a command that lets the user see a "normal" git branch and then let the user do whatever they want with it. |
Thanks, @pmrowla! I know this is more in-depth than what we will want in the docs, but hopefully we can use similar language there since this explanation made the command clear to me. Closing this out. |
Hm. I see this is closed but I wanted to mention I've detected some possible consistency issues in short flag naming e.g. Sorry it tool me this long to bring this up but it's been a concern in the past with other commands (see #3422) so prob worth mentioning still — is there still time to rename now or should I just add to the list in #3422? |
@jorgeorpinel Can you document the issues in here or #3422 and then we can decide what to do? |
OK, as soon as I finish writing all the refs I should be able to do that comprehensively. |
Experiments already has ten different commands before even being released:
This may be confusing for new users, and more commands are likely over time. Once experiments is released, it will be harder to get rid of commands. Are there any commands that can be dropped or streamlined?
Some specific commands to possibly streamline:
dvc exp run
: Given thatdvc run
is likely to be deprecated anddvc exp
is likely to keep growing, what is the role of this command? What aboutdvc stage add
anddvc repro
, which have similar functionality? Shoulddvc exp run
merely add/edit a stage by default rather than execute, or should this at least be an option?dvc exp branch
: This behaves similarly todvc exp apply
followed bygit checkout -b
. One major difference is thatdvc exp branch
will promotes all experiments in the workspace to git commits in the new branch. Does this make sense as a separate command, or could it be captured as an option? Is there any other way to promote experiments to commits without creating a new branch? Do the command name and description adequately describe its behavior?dvc exp reset
: Does this need its own command or could it be an option? Does it make sense that the command both deletes checkpoints and then duplicatesdvc exp run
functionality?The text was updated successfully, but these errors were encountered: