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

This commit is contained in:
Roy 2024-05-02 04:08:14 +08:00 committed by GitHub
parent c47ba4aaa9
commit 3a922c1e7e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 16 additions and 10 deletions

View File

@ -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
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):
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:
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()

View File

@ -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,