onnx / turnkeyml

The no-code AI toolchain
Apache License 2.0
73 stars 16 forks source link

Rename Stage to Tool #184

Closed jeremyfowers closed 3 months ago

jeremyfowers commented 4 months ago

We have Stages and ManagementTools, which are quite similar but also different in meaningful ways (e.g., Stages have State but ManagementTools don't; Stages are meant to be sequenced but ManagementTools are not, etc.).

Should they both be called Stage or Tool?

IMO, everything should be a Tool. People automatically know what "Tool" and "Toolchain" mean in context, while "Stage" and "Sequence" require explanation like "a Stage is a tool that you can chain into a Sequence..."

Under this change, the classes would be:

Example BuildTools: discover, export-pytorch, benchmark Example ManagementTools: report, cache, version

jeremyfowers commented 4 months ago

@danielholanda @ramkrishna2910 @vgodsoe please discuss this decision

danielholanda commented 3 months ago

I find that most of the confusion comes from our initial attempts to it a stage and a few puns around it. What it we instead use some terminology that is common in compiler flows (e.g. passes instead of stages)?

The main thing that I'm not a big fan in the above proposal is the name "ToolChain" as it is not as clear as "Sequence" in a phrase.

"You can run a sequence of stages" is much easier to understand than "You can combine multiple build tools into a tool chain".

jeremyfowers commented 3 months ago

"You can run a sequence of stages" is much easier to understand than "You can combine multiple build tools into a tool chain".

Agree.

What it we instead use some terminology that is common in compiler flows (e.g. passes instead of stages)?

The nice thing about Tool is that it applies equally well to both the build tools (e.g., export tool) and the management tools (e.g., report tool).

Some more brainstorming:

jeremyfowers commented 3 months ago

I've been trying out Tool and I think it's good.