Discussion about this post

User's avatar
Luka Govedič's avatar

I think the core idea of generative approaches allowing us to raise the level of abstraction even higher than before is great! Two minor points:

> It also isn’t hard to see how getting the same answer every time can be helpful, for instance in reproducing data analysis from scientific experiments.

I think significantly more work will be needed in this area. We have existing methods to raise the level of abstraction in ML/scientific computing, and yet those approaches still lag behind expert implementations. While the gap may shrink with generative approaches, I think one important aspect to resolve is numerical precision, specifically connected to associativity of floating-point operations. Experts hand-optimizing the code will often assume associativity and perform transformations on the code that a compiler cannot legally perform. (Experts might also have a better intuition about which operations are safer to transform). Floating point math is already an approximation of real value math, so often (but not always) any order of operations can be similarly close to the correct answer. However, reproducibility is important! So perhaps there needs to be a way to "pick" a specific operation order during the optimization process, and then maintain it. Kind of like committing a package.lock file to version control.

> ... the place of undocumented features in software that is regularly regenerated.

I think this could be slightly mitigated by generating API docs directly out of the specification. More robustly, perhaps client code could be formally validated to only depend on the specifications, although not sure if this is a tractable problem.

13 more comments...

No posts

Ready for more?