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.
docstr: Performs one decoding iteration and returns newly generated results.
  
  This function performs one decoding iteration of the engine. It first
  schedules the sequences to be executed in the next iteration and the
  token blocks to be swapped in/out/copy. Then, it executes the model
  and updates the scheduler with the model outputs. Finally, it decodes
  the sequences and returns the newly generated results.
docstr_tok: ["Performs","one","decoding","iteration","and","returns","newly","generated","results",".","This","function","performs","one","decoding","iteration","of","the","engine",".","It","first","schedules","the","sequences","to","be","executed","in","the","next","iteration","and","the","token","blocks","to","be","swapped","in\/out\/copy",".","Then",",","it","executes","the","model","and","updates","the","scheduler","with","the","model","outputs",".","Finally",",","it","decodes","the","sequences","and","returns","the","newly","generated","results","."]
code: def step(self) -> List[RequestOutput]:
      """Performs one decoding iteration and returns newly generated results.
  
      This function performs one decoding iteration of the engine. It first
      schedules the sequences to be executed in the next iteration and the
      token blocks to be swapped in/out/copy. Then, it executes the model
      and updates the scheduler with the model outputs. Finally, it decodes
      the sequences and returns the newly generated results.
      """
      (
          seq_group_metadata_list,
          scheduler_outputs,
          ignored,
      ) = self._schedule()
      if scheduler_outputs.is_empty():
          return ignored
  
      # Execute the model.
      output = self._run_workers(
          "execute_model",
          seq_group_metadata_list=seq_group_metadata_list,
          blocks_to_swap_in={},
          blocks_to_swap_out={},
          blocks_to_copy={},
          finished_seqs=scheduler_outputs.finished_seqs,
      )
  
      return (
          self._process_model_outputs(output, scheduler_outputs)
          + ignored
      )
  
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 14 for calling the LLMEngine obj's underlying member method code with example usage: obj.step() and returns: unknown, ignored