Engine
The engine is the subsystem that executes a run. The two currently implemented concrete engines are the trainer, which fits a model, and the batch inference engine, which applies a trained model to new data. Both share the structure described here.
An engine is constructed from a configuration file (YAML, JSON, or TOML). From its configuration it lazily assembles four subsystems:
Services supply shared, run-scoped capabilities and data.
Policy defines the task and the contracts each component must satisfy.
Components are the configurable building blocks of the model.
Callbacks observe and extend the run through lifecycle hooks.
A run is started by calling execute. Engines can be wrapped for distributed,
multi-rank execution without changing their configuration.