text: Title: Simplify deterministic sampling for probabilistic models in production
  Body: First of all, thanks for this amazing library! It has made my work a lot easier.
  
  **Is your feature request related to a current problem? Please describe.**
  I'm wrapping a probabilistic forecasting model in a FastAPI endpoint for access by end users. I'm using `QuantileRegression` and the results look great. However, I noticed that the forecasts differ subtly between invocations when feeding in the same input timeseries. This is because the model instance uses its own RNG state that cannot be conveniently seeded from the outside using e.g.  `torch.manual_seed(seed_int)` or `np.random.seed(seed_int)`. If I understand correctly, this is managed through the `@random_method` decorator defined here:
  
  https://github.com/unit8co/darts/blob/8e93720e6277726089058cf4d039b97de0f57c34/darts/utils/torch.py#L85
  
  My model definition looks like the below.
  
  ```python
  model = NLinearModel(
      input_chunk_length=24*5,
      output_chunk_length=24,
      likelihood=QuantileRegression(quantiles=[0.01, 0.05, 0.2, 0.5, 0.8, 0.95, 0.99]),
      random_state=42,
      pl_trainer_kwargs={'deterministic': True}
  )
  ```
  
  **Describe proposed solution**
  The below is what I'm currently doing to re-seed the RNG before every invocation of `.predict()`.
  
  It would be great if there was a cleaner way to prevent `_random_instance` from being re-seeded on every invocation of `predict()` with a new random seed, i.e. to disable the effect of `@random_method`.
  
  ```python
  with torch.random.fork_rng():
      # Re-seed the hidden RNG state of the model instance to ensure deterministic sampling.
      model._random_instance = np.random.RandomState(seed_int)
      prediction = model.predict(
          series=ts,
          n=24,
          num_samples=500,
      )
  ```
  