class_docstr: An LLM engine that receives requests and generates texts.
  
  This is the main class for the vLLM engine. It receives requests
  from clients and generates texts from the LLM. It includes a tokenizer, a
  language model (possibly distributed across multiple GPUs), and GPU memory
  space allocated for intermediate states (aka KV cache). This class utilizes
  iteration-level scheduling and efficient memory management to maximize the
  serving throughput.
  
  The `LLM` class wraps this class for offline batched inference and the
  `AsyncLLMEngine` class wraps this class for online serving.
  
  NOTE: The config arguments are derived from the `EngineArgs` class. For the
  comprehensive list of arguments, see `EngineArgs`.
  
  Args:
      model_config: The configuration related to the LLM model.
      cache_config: The configuration related to the KV cache memory
          management.
      parallel_config: The configuration related to distributed execution.
      scheduler_config: The configuration related to the request scheduler.
      distributed_init_method: The initialization method for distributed
          execution. See `torch.distributed.init_process_group` for details.
      placement_group: Ray placement group for distributed execution.
          Required for distributed execution.
      log_stats: Whether to log statistics.
code: def _process_model_outputs(
      self, output: SamplerOutput, scheduler_outputs: SchedulerOutputs
  ) -> List[RequestOutput]:
      # Update the scheduled sequence groups with the model outputs.
      scheduled_seq_groups = scheduler_outputs.scheduled_seq_groups
      for seq_group, samples in zip(scheduled_seq_groups, output):
          self._process_sequence_group_samples(seq_group, samples)
  
      # Free the finished sequence groups.
      self.scheduler.free_finished_seq_groups()
  
      # Create the outputs.
      request_outputs: List[RequestOutput] = []
      for seq_group in (
          scheduled_seq_groups + scheduler_outputs.ignored_seq_groups
      ):
          request_output = RequestOutput.from_seq_group(seq_group)
          request_outputs.append(request_output)
  
      # Co(gc): we disable the gpu stats part in the function
      if self.log_stats:
          # Log the system stats.
          self._log_system_stats(
              scheduler_outputs.prompt_run,
              scheduler_outputs.num_batched_tokens,
          )
      return request_outputs
  
imports: import time
  from typing import TYPE_CHECKING, Any, Iterable, List, Optional, Tuple, Union, Dict
  from bigdl.llm.vllm.config import ModelConfig, SchedulerConfig
  from bigdl.llm.vllm.core.scheduler import SchedulerOutputs, FixedWindowScheduler
  from bigdl.llm.vllm.engine.arg_utils import EngineArgs
  from bigdl.llm.vllm.logger import init_logger
  from bigdl.llm.vllm.outputs import RequestOutput
  from bigdl.llm.vllm.sampling_params import SamplingParams
  from bigdl.llm.vllm.sequence import SamplerOutput, Sequence, SequenceGroup, SequenceGroupMetadata, SequenceStatus, SequenceOutputs
  from bigdl.llm.vllm.transformers_utils.tokenizer import get_tokenizer, detokenize_incrementally
  from bigdl.llm.vllm.utils import Counter
  from bigdl.llm.utils.common import invalidInputError
label_desc: Use image node_id 13 for calling the LLMEngine obj's underlying member method code with example usage: obj._process_model_outputs(output, scheduler_outputs) and returns: request_outputs