code: def compute_sobol_indices_from_model_list(
      model_list: List[Model],
      bounds: Tensor,
      order: str = "first",
      **sobol_kwargs: Any,
  ) -> Tensor:
      """
      Computes Sobol indices of a list of models on a bounded domain.
  
      Args:
          model_list: A list of botorch.models.model.Model types for which to compute
              the Sobol indices.
          bounds: A 2 x d Tensor of lower and upper bounds of the domain of the models.
          order: A string specifying the order of the Sobol indices to be computed.
              Supports "first" and "total" and defaults to "first".
          sobol_kwargs: keyword arguments passed on to SobolSensitivityGPMean.
  
      Returns:
          With m GPs, returns a (m x d) tensor of `order`-order Sobol indices.
      """
      indices = []
      method = getattr(SobolSensitivityGPMean, f"{order}_order_indices")
      for model in model_list:
          sens_class = SobolSensitivityGPMean(
              model=model,
              bounds=bounds,
              **sobol_kwargs,
          )
          indices.append(method(sens_class))
      return torch.stack(indices)
  
imports: from copy import deepcopy
  from typing import Any, Callable, Dict, List, Optional, Union
  import numpy
  import torch
  from ax.modelbridge.torch import TorchModelBridge
  from ax.models.torch.botorch import BotorchModel
  from ax.models.torch.botorch_modular.model import BoTorchModel
  from ax.utils.common.typeutils import checked_cast
  from botorch.models.model import Model, ModelList
  from botorch.posteriors.gpytorch import GPyTorchPosterior
  from botorch.sampling.normal import SobolQMCNormalSampler
  from botorch.utils.sampling import draw_sobol_samples
  from botorch.utils.transforms import unnormalize
  from torch import Tensor
label_desc: Use image node_id 3 for calling a global function with example usage: compute_sobol_indices_from_model_list(model_list, bounds, order) and returns: torch