code: def _create_vgpao_model(
      kernel: Kernel,
      likelihood: Likelihood,
      q_alpha: Optional[TensorType],
      q_lambda: Optional[TensorType],
  ) -> gpflow.models.VGPOpperArchambeau:
      model_vgpoa = gpflow.models.VGPOpperArchambeau(
          (DatumVGP.X, DatumVGP.Y),
          kernel,
          likelihood,
          num_latent_gps=DatumVGP.DY,
      )
      model_vgpoa.q_alpha.assign(q_alpha)
      model_vgpoa.q_lambda.assign(q_lambda)
  
      return model_vgpoa
  
imports: from typing import Optional, Tuple
  import numpy
  import pytest
  from check_shapes import ShapeChecker
  from numpy.testing import assert_allclose
  import gpflow
  from gpflow.base import AnyNDArray, TensorType
  from gpflow.config import default_jitter
  from gpflow.kernels import Kernel
  from gpflow.likelihoods import Likelihood
  from gpflow.mean_functions import Constant
  from gpflow.models import GPModel, maximum_log_likelihood_objective, training_loss_closure
label_desc: Use image node_id 4 for calling a global function with example usage: _create_vgpao_model(kernel, likelihood, q_alpha, q_lambda) and returns: model_vgpoa