Replies: 18 comments
-
🤔 It's an interesting idea. I'm not sure it's a high priority, but having more human-readable names seems like it would be nice. There are at least a couple complications, like the fact that experiment names should be unique, which this doesn't guarantee, and there can be multiple One potential downside is that if a user is tuning the same parameter across many experiments, the first part of each experiment name will look the same, which could make the table hard to read and mean that more characters are needed to apply or otherwise reference a specific experiment. |
Beta Was this translation helpful? Give feedback.
-
Also quick note. Experiments are not always about changing parameter values. They are also about changing data and/or code. (It's not reflected well in the table and should be improved, but it's a separate story). Btw, how do we guarantee uniqueness now if I modify a comment in a python file that is not even part of the pipeline and run an experiment again? |
Beta Was this translation helpful? Give feedback.
-
I also had considered this in the past. But didn't found a good answer to it. The main difficulty of this is exp names, good representative names for each experiment are not easy to get. There are several ways to achieve it. 1 . Let users give names, but they may not willing to do so. |
Beta Was this translation helpful? Give feedback.
-
IMHO some basic heuristics may work:
We have pipeline/parameter elements from |
Beta Was this translation helpful? Give feedback.
-
That's a good question but probably if something is not the part of the pipeline, it's out of scope for change detection. I'll test this. |
Beta Was this translation helpful? Give feedback.
-
Yes, we do not change serval parameters one time, but we might change param(a) in the first exp then param(b) in the second, and finally, the last exp might have serval changed params. This is what I do in the past. |
Beta Was this translation helpful? Give feedback.
-
I don't think improved naming requires having a solution for every type of experiment. As @iesahin mentioned, current behavior could still be the default in edge cases. I'd be more concerned whether any solution that requires checking for uniqueness could slow things down. For comparison, wandb chooses random human-readable names like |
Beta Was this translation helpful? Give feedback.
-
A few questions:
I like the idea of using random human readable names. Alternative here could be something that Sentry does - it names errors like this:
it keep suffix simple and short. Since they don't expect 1000s of them - it works nicely. |
Beta Was this translation helpful? Give feedback.
-
This is a good point. Does the results between these two differ: 1:
2:
As far as I know, So it might be better to track differences in In this case, you are right @karajan1001, the user may be changing more than 2 parameters but I think it may still be possible to get most recently changed two parameters. |
Beta Was this translation helpful? Give feedback.
-
Uniqueness is already checked at the end, when the generated experiment name coincides with the directory name. I don't know the implementation details but it shouldn't have an effect on speed.
Docker uses such names for containers as well but from user POV, I think having experiments named like ˋunits=512-activation=tanhˋ is more desirable than |
Beta Was this translation helpful? Give feedback.
-
To chime in on this: I have just been looking to see if there was an option to tweak the 'exp-' prefix for experiments. Being able to do this could allow for better grouping of experiments to reflect changes of a significant params such as if you have a 'model_type' param for experiments when comparing architectures. The experiment name would then still end with the hash. |
Beta Was this translation helpful? Give feedback.
-
@JamesQuirk Just making sure you are at least aware that you can manually name your experiments with |
Beta Was this translation helpful? Give feedback.
-
Yes I have seen that. But that changes the whole name doesn't it? So the custom name would need to account for uniqueness..? |
Beta Was this translation helpful? Give feedback.
-
Correct @JamesQuirk, so it's possible to group experiments but all the naming burden falls to the user. If I understand, you would like to do something like give multiple experiments the same name and have dvc append some unique id to the end of each one? |
Beta Was this translation helpful? Give feedback.
-
Could you
```
dvc exp run -n myprefix-${RANDOM}
```
?
|
Beta Was this translation helpful? Give feedback.
-
@dberenbaum yes, that's what I was thinking.
This is a valid option but there is still chance that a random number (of finite length) could have already been used which introduces inconveniences with handling that. Using the start of the hash would be better - as dvc already does. |
Beta Was this translation helpful? Give feedback.
-
Makes sense as a nice feature to have. I've extracted it into a new issue: #6680. |
Beta Was this translation helpful? Give feedback.
-
@JamesQuirk another option might be:
which guarantees unique names for experiments taking longer than 1 second :) |
Beta Was this translation helpful? Give feedback.
-
Currently, the autogenerated experiment names are hashes produced from the pipeline elements. They are in the form of
exp-12ab90
and having two different hashes for an experiment may be confusing at times iterative/dvc.org#2499Is it possible to set these experiment names from modified parameter names? For example
dvc exp run -S param.name=value
may produce an experiment name likeexp-param-name-value
. It may be a bit long, especially for multiple parameters but being able to understand the experiment with the name worth the longer description I think.There may be a length limit, e.g., 20 characters for the param section and a 4 character hash value can be added to the end. Overall the names could be like
exp-param-name-value-1a2c
, or it may be possible to skip theexp-
part as well. They are descriptive and unique to use for autocompletion.Current behavior may be the default if there is no
-S
option.Beta Was this translation helpful? Give feedback.
All reactions