-
Notifications
You must be signed in to change notification settings - Fork 16
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
Latest: by SemVer or by timestamp? #132
Comments
I assume that for A special question: if user registered 0 SemVer versions of his artifact, do we want to show (in Studio) commits in which the model was promoted to some stages as "versions" (i.e. "implicit" versions)? Or should we show empty fields? Also, do we want to show latest "implicit" version in "latest version" column or it should be empty? And what happens if he stopped registering SemVer versions at some point? Do we stop updating versions? Considering my assumptions, it would look like this:
The same flags will apply to Trying to make summary: I think we should treat |
My opinions:
|
Basically, because users may want to do that. And for sure they may create
This is what MLflow MR do btw with Also, this could be achieved with
😐 |
@dmpetrov AFAIR you were the proponent of allowing to skip mandatory SemVer registration when promoting when we discussed this few months. Do you still think it shouldn't be mandatory? |
About why allow registering commit/refs:
Consider this from my response in our discussion today - if the user uses Approahces in order of correctness (IMO):
|
@omesser, getting back to GTO since MLEM release is on the way 😅 What you say makes sense to me, and I would like to agree considering the simplicity. But with each "strict" option we need to understand how GTO behaves if a user breaks it. If we don't allow a user to promote a model in a commit without registering it (explicitly in your option1 / implicitly in option2), then what GTO should do if a user creates that git tag by himself? I see these options:
I think 1st and 2nd are preferable. But still, they could be bad since promoting git tag will trigger CI if you push it. So in fact, a user may be confused: I created a tag (though manually), I pushed it, why am I getting some errors? Also, another case to consider. Let's suppose I registered version and made a promotion. I've pushed promoting tag, but forgot to push registering tag. Then the other person clones the repo, and he's getting these warnings. 🤔 Not sure what we can do to fix this, but looks confusing. Maybe have some GTO cmd to push git tags and check that everything is ok like @dberenbaum and you suggested, e.g. here (can't find the other one by Dave). |
In https://github.com/iterative/studio/issues/3968#issuecomment-1209073924 we decided it should be a sort by timestamp, and not by SemVer. Now we need to
|
gto which rf prod
should show the latest version ofrf
promoted toprod
. There are two approaches on selecting the latest one: by SemVer and by timestamp.E.g. if I promoted
v1.0.0
first, and then promotedv0.0.1
: latest by SemVer would bev1.0.0
, while latest by timestamp would bev0.0.1
.Promoting non-registered versions makes things more interesting. E.g. if I promoted version from commit
abc1234
and didn't register a version from that commit - the latest by timestamp would beabc1234
now.The question is: what should we show by default in Studio and in CLI?
Since we treat SemVer as a number that positively correlates with model quality and stability, the default latest in my mind should be
v1.0.0
. But then if you have a single registered version of model in stageprod
and then for some reason abandoned registering SemVer versions and just promote, you'll always have that SemVer ingto latest
andgto show
. As a more simple example, a user may be confused after promotingabc1234
because it doesn't appear ingto show
by default or becausegto latest
doesn't return it.As an option to resolve this we can keep
--sort-by-semver
default and add flag--sort-by-time
that will give the recent promoted version/ref.WDYT? cc @omesser @dberenbaum @dmpetrov @shcheklein
The text was updated successfully, but these errors were encountered: