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.
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
live: initial docs draft #2227
live: initial docs draft #2227
Changes from 5 commits
36d7286
cbe791d
d13ddf0
edd4138
dde7364
2285569
4e9148c
8478818
0f8b215
f17fdf9
890d9a1
280123c
a534665
3b37309
54d78e0
cf7fadb
c7c0dc1
507d991
f5e4b3e
a3da8ce
cd8a729
8b3dcf4
b4f87c1
6a46050
7c06934
05ae874
402ef5b
b0f5481
1bc36e8
837ba4a
1c60f27
File filter
Filter by extension
Conversations
Jump to
There are no files selected for viewing
This comment was marked as resolved.
Sorry, something went wrong.
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.
Is this too specific? What's the broader use case?
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.
I don't think so? Are you asking whether there are non-ML use cases (not likely), or is there something else you think might be too specific?
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.
Non model-training use cases. E.g. feature extraction or any other stage
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.
Good question. I think it's safe to say that dvclive is a narrower product built specifically for model training.
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.
I mentioned that we might want to link to https://github.com/iterative/dvc-checkpoints-mnist, but alternatively you could incorporate checkpoints in this example. That might be too much to dive right into, but I think most use cases for dvclive with dvc will include checkpoints.
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.
Then maybe we need one more section? We integrated the project with DVC and dvclive, lets make some experiments?
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.
I think the changes to introduce checkpoints would be to write the model out in the callback, and to add the model output to dvc with
stage add --checkpoint model ...
. I don't see checkpoints as necessarily being tied to experiments. It adds versioning of the model output that aligns with the metrics dvclive is tracking.However, as you mentioned below, let's think about how we can introduce multiple examples to cover all of this. I think the example you have is a great starting point.
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.
Would it be better to use
stage add && repro/exp run
here? @jorgeorpinel?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.
Good point, I will introduce that.
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.
Using
stage add
above also gives you a reason to move this section up and separate it from therun/repro
part and explanation of the dvclive outputs.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.
I should update the example repo I have with this example. Keras really makes for a clean, minimal example.
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.
Yeah, but on the other hand we need to prepare
Callback
, while intorch
everything nicely goes into the training loopThere 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.
This is nice, but would it be easier for people getting started to see a manual training loop first rather than a callback? This doesn't need to be a blocker, but maybe something to consider as an enhancement.
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.
I think that if we link your
torch
example, it will be fine.As i read manual loop tutorial for keras, it seems to me that we will occlude the main point of the tutorial with step by step execution (pushing data through model, calling optimizer, updating gradients). While in this case we have everything hidden under
fit
call.Callbacks
are not that obvious concept, though I think its easier to understand it than reading through whole training loop.Still, that makes me think that maybe we need not one example, but more? MNIST classifier targeted for DL frameworks users, and something different for, for example, classic ML practitioners? Maybe something with Iris dataset?
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.
Yeah, we will need multiple examples. I'm still not sure myself how dvclive would work for "classic" ML or whether that's a useful scenario to consider. For now, let's keep what you have, and if you think there's a natural way to link to the dvc-checkpoints-mnist example, we could have that as an additional use case. Otherwise, we can find a way to add that or a similar example in the future.