This is truly a great discussion to have. Personally I think the main difference is that software development is a somewhat linear process , and git captures it very well. But ML is a lot wider nonlinear process, which to me means that trying to conform the same workflow into a Dev tree will end up failing. The way ClearML thinks about it (and I think the analogy to source control is correct ) is probably closer to how you think about project management rather than git. That said, every Task holds everything about the state of process in Dev (ie code, args, env etc) , project is closer to Dev project (sometimes this is a single repo, but with more complicated projects you have multiple ) , but each Task/expriment is a "commit" of you will... I think that subprojects were born from the need to divide the progress into more managable workflow , where you can have multiple Dev streams under the same conceptual project (maybe diff models dev for the same goal). Wdyt ?
I would also add that Task name is not unique and you can use to describe the "process / goal etc" which would make it pretty obvious to search / review from the UI.
Regrading models and branchs, Iw ould use the Task tags (you can have as many as you like) to tag the specific model type (or dev branch if the alg is diff), this means you can also easily filter based on the Tags in the UI.
can you use the Web UI to compare the artifacts from two separate subprojects?
Yes comparison is not limited, in the comparison mode you can add any Task to the comparison, you can also have "flatten view" of projects (i.e. Tasks from all the subprojects) for easy access