-
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
Experiments proof of concept #4199
Conversation
* only includes metrics + params (no code/data information)
* just shows combined output from `metrics diff` and `plots diff` for now
* experiment related commands will be accessible but hidden from the default command help messages
* experiments only enabled in test environment (DVC_TEST) or when core.experiments config option is true
experiments_parser = subparsers.add_parser( | ||
"experiments", | ||
parents=[parent_parser], | ||
description=append_doc_link(EXPERIMENTS_HELP, "experiments"), | ||
formatter_class=argparse.RawDescriptionHelpFormatter, | ||
) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
help
param intentionally omitted here for now so that the command is hidden from the default dvc
/dvc --help
usage output
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In the long term, we should think of some way for this. Even though we had it hidden, users were still trying out new 1.0 docs in 0.94 dvc
. Something like [experimental]
flags come to mind but would be difficult to read it at this higher-level (add_parser
), or could introduce DVC_EXPERIMENTAL_XXX_ENABLE
envs or maybe, even simpler name mangling till it's ready.
Not a big issue right now, just sharing the issue that I had. π. Definitely something we should consider, as we mostly work on HEAD.
First post has been updated with details. All behavior changes are disabled unless |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great start!
This feature piqued my interest. Is there a writeup somewhere of what an "experiment" is, and how it relates to a pipeline and its results? I didn't see any docs/explanation in the PR itself. |
Related to #2799.
β I have followed the Contributing to DVC checklist.
π If this PR requires documentation updates, I have created a separate PR (or issue, at least) in dvc.org and linked it here.
β I will check DeepSource, CodeClimate, and other sanity checks below. (We consider them recommendatory and don't expect everything to be addressed. Please fix things that actually improve code or fix bugs.)
Thank you for the contribution - we'll try to review it as soon as possible. π
Implements initial POC support using a single git clone. UI is rough expected to change a lot.
dvc repro -e/--experiment
- creates a new experiment. Experiment is derived from the current HEAD commit in the user's repo and contains any changes in the user's current workspace.dvc experiments show
- show experiment table. By default table includes the user's workspace, the current HEAD commit and any experiments derived from HEAD.--all-commits/--all-tags/--all-branches
can be used to display more experiments.dvc experiments diff
- diff 2 experiments. Currently just concats the output fromdvc metrics diff
anddvc plots diff
.dvc experiments checkout <experiment_rev>
- applies the changes from the specified experiment to the user's current workspace. If the changes would generate a git merge conflict, this command does nothing.--force
can be used to replace the user's current workspace with the experiment changes. This has only been tested in cases where user checks out an experiment into a workspace with the original commit the experiment was derived from.Note: using
--force
currently does agit reset --hard
in your workspace, the behavior you most likely want is togit stash
your workspace changes before usingdvc experiments checkout
dvc --help
output, but runningdvc experiments --help
can be used to show the usage for the experiments commands.core.experiments
config option is set to true (or if DVC is run inside a testing/CI environment).General thoughts/questions for next iteration:
experiments diff
- mimicmetrics/params diff
formats or use theshow
table with added deltas?experiments checkout
feels a bit awkward to use, maybe it should be arepro --experiment <rev>
command to reproduce a specific experiment instead?