RFC: Introduce ml_program dialect and top-level ops (proposal v2)

Some other responses from questions posed up-thread:

Speaking personally, I dislike the “ML-ification” of basic things like math, and I’ve generally tried to avoid using the “ML” prefix (at least to mean literally “machine learning” versus some other tongue in cheek thing) as a result. However, I think there is actually a real gap here with respect to the commonalities that exist in multiple ML frameworks in the wild, each of which has years of mileage and, collectively, billions of users on them. I think by naming it anything other than “ML” at this point, we are not acknowledging this reality. It hurts me a bit to make this argument, but I think it is true.

Plus, in the future, once this fad moves on, we can all convince ourselves that it just means “multi-level programs” :slight_smile:

Possibly they do. With this RFC, we seem solidly on the incremental path of discussing ops at a time. I think this will afford us plenty of visibility to perform such an initial sort. The counter-argument is that if we have multiple frameworks in a domain defining the same high-level concept, there is some benefit to collecting those things in a way that preserves their heritage. This tends to be quite different from how one sorts “low level” concepts, in my experience.

We can debate that for those ops when they come up. As a counter-argument, for things aligned with some common, domain specific thing, it can be useful to have an isomorphic representation for that domain that holds together. Such things that are more frontend aligned, ime, often have subtleties in their modeling that would be different if attempting to do canonically at the lowest levels.

Speaking personally, I’ve been in multiple of these kinds of situations and such an exercise never converged if not approached in an informed but incremental fashion. This space is vast, and while a few of us have significant slices of it in our heads, no one has a complete picture (to say nothing of an unbiased picture). Largely being in the category of “dealing with the past”, I think the only way to do it is incrementally, topic by topic, from the bottom.

To be clear, I think that we will ultimately end up with multiple dialects that compose together. But it is important to start with something simple and then have the diligence to look at it and split/rearrange over time before it solidifies too much.

1 Like