code: def likelihood_guide(
      theta_dict, design, observation_labels, target_labels
  ):
      theta = torch.cat(list(theta_dict.values()), dim=-1)
      centre = rmv(design, theta)
  
      # Need to avoid name collision here
      mu = pyro.param("mu_l", torch.zeros(3))
      scale_tril = pyro.param(
          "scale_tril_l",
          torch.eye(3),
          constraint=torch.distributions.constraints.lower_cholesky,
      )
  
      pyro.sample(
          "y",
          dist.MultivariateNormal(centre + mu, scale_tril=scale_tril),
      )
  
imports: import pytest
  import torch
  import pyro
  import pyro.distributions
  import pyro.optim
  from pyro.contrib.oed.eig import donsker_varadhan_eig, laplace_eig, lfire_eig, marginal_eig, marginal_likelihood_eig, nmc_eig, posterior_eig, vnmc_eig
  from pyro.contrib.oed.glmm import known_covariance_linear_model
  from pyro.contrib.oed.glmm.guides import LinearModelLaplaceGuide
  from pyro.contrib.oed.util import linear_model_ground_truth
  from pyro.contrib.util import rmv, rvv
  from pyro.infer import Trace_ELBO
  from tests.common import assert_equal
label_desc: Use image node_id 5 for calling a global function with example usage: likelihood_guide(theta_dict, design, observation_labels, target_labels) without return types