docs: def deploy(self, initial_instance_count, instance_type, endpoint_name=None, tags=None):
          """Deploy this ``Model`` to an ``Endpoint`` and optionally return a ``Predictor``.
  
          Create a SageMaker ``Model`` and ``EndpointConfig``, and deploy an ``Endpoint`` from this ``Model``.
          If ``self.predictor_cls`` is not None, this method returns a the result of invoking
          ``self.predictor_cls`` on the created endpoint name.
  
          The name of the created model is accessible in the ``name`` field of this ``Model`` after deploy returns
  
          The name of the created endpoint is accessible in the ``endpoint_name``
          field of this ``Model`` after deploy returns.
  
          Args:
              instance_type (str): The EC2 instance type to deploy this Model to. For example, 'ml.p2.xlarge'.
              initial_instance_count (int): The initial number of instances to run in the
                  ``Endpoint`` created from this ``Model``.
              endpoint_name (str): The name of the endpoint to create (default: None).
                  If not specified, a unique endpoint name will be created.
              tags(List[dict[str, str]]): The list of tags to attach to this specific endpoint.
  
          Returns:
              callable[string, sagemaker.session.Session] or None: Invocation of ``self.predictor_cls`` on
                  the created endpoint name, if ``self.predictor_cls`` is not None. Otherwise, return None.
          """
          if not self.sagemaker_session:
              self.sagemaker_session = Session()
  
          containers = self.pipeline_container_def(instance_type)
  
          self.name = self.name or name_from_image(containers[0]['Image'])
          self.sagemaker_session.create_model(self.name, self.role, containers, vpc_config=self.vpc_config)
  
          production_variant = sagemaker.production_variant(self.name, instance_type, initial_instance_count)
          self.endpoint_name = endpoint_name or self.name
          self.sagemaker_session.endpoint_from_production_variants(self.endpoint_name, [production_variant], tags)
          if self.predictor_cls:
              return self.predictor_cls(self.endpoint_name, self.sagemaker_session)