The inference pipeline supports and enables a wide range of techniques that are divided into two categories:  
* Pipeline functionality: these techniques modify the pipeline or extend it for other applications. For example, pipeline callbacks add new features to a pipeline and a pipeline can also be extended for distributed inference.