Unverified Commit 3a922c1e authored by Roy's avatar Roy Committed by GitHub
Browse files

[Bugfix][Core] Fix and refactor logging stats (#4336)

parent c47ba4aa
...@@ -8,6 +8,7 @@ from typing import (Any, AsyncIterator, Callable, Dict, Iterable, List, ...@@ -8,6 +8,7 @@ from typing import (Any, AsyncIterator, Callable, Dict, Iterable, List,
from transformers import PreTrainedTokenizer from transformers import PreTrainedTokenizer
from vllm.config import DecodingConfig, ModelConfig from vllm.config import DecodingConfig, ModelConfig
from vllm.core.scheduler import SchedulerOutputs
from vllm.engine.arg_utils import AsyncEngineArgs from vllm.engine.arg_utils import AsyncEngineArgs
from vllm.engine.llm_engine import LLMEngine from vllm.engine.llm_engine import LLMEngine
from vllm.executor.ray_utils import initialize_ray_cluster, ray from vllm.executor.ray_utils import initialize_ray_cluster, ray
...@@ -15,7 +16,7 @@ from vllm.logger import init_logger ...@@ -15,7 +16,7 @@ from vllm.logger import init_logger
from vllm.lora.request import LoRARequest from vllm.lora.request import LoRARequest
from vllm.outputs import RequestOutput from vllm.outputs import RequestOutput
from vllm.sampling_params import SamplingParams from vllm.sampling_params import SamplingParams
from vllm.sequence import MultiModalData from vllm.sequence import MultiModalData, SamplerOutput
from vllm.usage.usage_lib import UsageContext from vllm.usage.usage_lib import UsageContext
logger = init_logger(__name__) logger = init_logger(__name__)
...@@ -224,8 +225,7 @@ class _AsyncLLMEngine(LLMEngine): ...@@ -224,8 +225,7 @@ class _AsyncLLMEngine(LLMEngine):
scheduler_outputs.ignored_seq_groups, seq_group_metadata_list) scheduler_outputs.ignored_seq_groups, seq_group_metadata_list)
# Log stats. # Log stats.
if self.log_stats: self.do_log_stats(scheduler_outputs, output)
self.stat_logger.log(self._get_stats(scheduler_outputs))
return request_outputs return request_outputs
...@@ -707,9 +707,13 @@ class AsyncLLMEngine: ...@@ -707,9 +707,13 @@ class AsyncLLMEngine:
else: else:
return self.engine.get_decoding_config() return self.engine.get_decoding_config()
async def do_log_stats(self) -> None: async def do_log_stats(
self,
scheduler_outputs: Optional[SchedulerOutputs] = None,
model_output: Optional[List[SamplerOutput]] = None) -> None:
if self.engine_use_ray: if self.engine_use_ray:
await self.engine.do_log_stats.remote() # type: ignore await self.engine.do_log_stats.remote( # type: ignore
scheduler_outputs, model_output)
else: else:
self.engine.do_log_stats() self.engine.do_log_stats()
......
...@@ -597,16 +597,18 @@ class LLMEngine: ...@@ -597,16 +597,18 @@ class LLMEngine:
scheduler_outputs.ignored_seq_groups, seq_group_metadata_list) scheduler_outputs.ignored_seq_groups, seq_group_metadata_list)
# Log stats. # Log stats.
if self.log_stats: self.do_log_stats(scheduler_outputs, output)
self.stat_logger.log(
self._get_stats(scheduler_outputs, model_output=output))
return request_outputs return request_outputs
def do_log_stats(self) -> None: def do_log_stats(
self,
scheduler_outputs: Optional[SchedulerOutputs] = None,
model_output: Optional[List[SamplerOutput]] = None) -> None:
"""Forced log when no requests active.""" """Forced log when no requests active."""
if self.log_stats: if self.log_stats:
self.stat_logger.log(self._get_stats(scheduler_outputs=None)) self.stat_logger.log(
self._get_stats(scheduler_outputs, model_output))
def _get_stats( def _get_stats(
self, self,
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment