Decouple inference from preprocessing and postprocessing steps from pipeline
### Feature request

Each pipeline under the pipeline abstraction has a preprocessing, forward and postprocessing method. In order to use any pipeline it should be initiliazed providing a model so preprocessing and postprocessing methods cannot be easily used by other services.
It would be great to provide the model just for the forward method, so methods that don't need it can be use independently.

For instance, if I want to serve a [zero shot classification pipeline](https://huggingface.co/docs/transformers/v4.21.0/en/main_classes/pipelines#transformers.ZeroShotClassificationPipeline) the model is a required parameter so I can't just split the preprocess logic to send it to an inference service hosting the model itself.

### Motivation

When deploying models using a pipeline I would like to use an inference server and keep any preprocessing and postprocessing logic as a different service. The goal is to improve throughput by using different services that can scale independently while using specialized inference servers for predictions and model optimizations.

### Your contribution

If my previous assumptions are correct and there is no workaround that I missed I would be happy to discuss a possible solution and create a PR
cc @Narsil <|||||>@jspablo ,

This is a very sound request which does make sense.

I think it's going to be tricky to implement in a streamlined fashion since a lot of postprocessing actually uses the model (to get the config). We could have the config be on its own but that require real care since then we have to be extremely consistent (to use the same location) and that would force users that use custom models (with `pipeline(model=MyAwesomeModel()`) to also pass a config along to make it fit the model.

IMO, the easiest route you can take is actually send a mocked model (like an empty class or something). 
Override the `forward` method of your model to do the remote calling. and then implement everything that might be required for later steps.

Does this make sense ?

If you have better proposal/ergonomics suggestion, I am all hears !<|||||>Thank you @Narsil
Yes, it makes sense, tested something similar for using ONNX models before they were included in the pipeline abstraction.
Just was looking for a more generic way to reuse any pipeline.<|||||>This issue has been automatically marked as stale because it has not had recent activity. If you think this still needs to be addressed please comment on this thread.

Please note that issues that do not follow the [contributing guidelines](https://github.com/huggingface/transformers/blob/main/CONTRIBUTING.md) are likely to be ignored.