An abstraction becomes leaky when an interface exposes implementation details it should hide. In an ML API, exposing numerous handlers, parameters, and their dependencies makes the interface difficult to learn and use. Prefer a small, predictable interface that hides complexity behind a few meaningful methods. section 13.1
Use these checks when designing an ML API:
- Keep methods and parameters few enough that users do not need deep knowledge of internals. section 13.1
- Make behavior predictable by deciding which defaults belong inside the interface and which details users must control. section 13.1
- Expose controls such as time, seed, and model version only when the interface needs users to manage them. section 13.1
Figure 13.1 Overconfiguration vs. underconfiguration
Use the comparison of overconfiguration and underconfiguration to balance a simple interface against insufficient control. section 13.1


