class_docstr: Implementation of the multi-task sparse axis-aligned subspace priors (SAAS) model.
  
  The multi-task model uses an ICM kernel. The data kernel is same as the single task
  SAAS model in order to handle high-dimensional parameter spaces. The task kernel
  is a Matern-5/2 kernel using learned task embeddings as the input.
docstr: Load the MCMC samples into the mean_module, covar_module, and likelihood.
code: def load_mcmc_samples(
      self, mcmc_samples: Dict[str, Tensor]
  ) -> Tuple[Mean, Kernel, Likelihood, Kernel, Parameter]:
      r"""Load the MCMC samples into the mean_module, covar_module, and likelihood."""
      tkwargs = {
          "device": self.train_X.device,
          "dtype": self.train_X.dtype,
      }
      num_mcmc_samples = len(mcmc_samples["mean"])
      batch_shape = torch.Size([num_mcmc_samples])
  
      mean_module, covar_module, likelihood = super().load_mcmc_samples(
          mcmc_samples=mcmc_samples
      )
  
      task_covar_module = MaternKernel(
          nu=2.5,
          ard_num_dims=self.task_rank,
          batch_shape=batch_shape,
      ).to(**tkwargs)
      task_covar_module.lengthscale = reshape_and_detach(
          target=task_covar_module.lengthscale,
          new_value=mcmc_samples["task_lengthscale"],
      )
      latent_features = Parameter(
          torch.rand(
              batch_shape
              + torch.Size([self.num_tasks, self.task_rank]),
              requires_grad=True,
              **tkwargs,
          )
      )
      latent_features = reshape_and_detach(
          target=latent_features,
          new_value=mcmc_samples["latent_features"],
      )
      return (
          mean_module,
          covar_module,
          likelihood,
          task_covar_module,
          latent_features,
      )
  
imports: from typing import Any, Dict, List, Mapping, NoReturn, Optional, Tuple, Union
  import pyro
  import torch
  from botorch.acquisition.objective import PosteriorTransform
  from botorch.models.fully_bayesian import matern52_kernel, MIN_INFERRED_NOISE_LEVEL, PyroModel, reshape_and_detach, SaasPyroModel
  from botorch.models.multitask import MultiTaskGP
  from botorch.models.transforms.input import InputTransform
  from botorch.models.transforms.outcome import OutcomeTransform
  from botorch.posteriors.fully_bayesian import GaussianMixturePosterior, MCMC_DIM
  from botorch.utils.datasets import MultiTaskDataset, SupervisedDataset
  from gpytorch.distributions.multivariate_normal import MultivariateNormal
  from gpytorch.kernels import MaternKernel
  from gpytorch.kernels.kernel import Kernel
  from gpytorch.likelihoods.likelihood import Likelihood
  from gpytorch.means.mean import Mean
  from torch import Tensor
  from torch.nn.parameter import Parameter
label_desc: Use image node_id 5 for calling the MultitaskSaasPyroModel obj's underlying member method code with example usage: obj.load_mcmc_samples(mcmc_samples) and returns: mean_module,  covar_module,  likelihood,  task_covar_module,  latent_features