From 5659b2fcbc0fedd198dd4eceb3e869cd293709ff Mon Sep 17 00:00:00 2001 From: Harry Mellor <19981378+hmellor@users.noreply.github.com> Date: Wed, 7 May 2025 17:03:24 +0200 Subject: [PATCH 1/3] Only log non-default CLI args for online serving Signed-off-by: Harry Mellor <19981378+hmellor@users.noreply.github.com> --- vllm/entrypoints/openai/api_server.py | 5 +++-- vllm/entrypoints/openai/cli_args.py | 10 ++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/vllm/entrypoints/openai/api_server.py b/vllm/entrypoints/openai/api_server.py index 9746d9697a66..f26af66685fa 100644 --- a/vllm/entrypoints/openai/api_server.py +++ b/vllm/entrypoints/openai/api_server.py @@ -41,7 +41,8 @@ resolve_mistral_chat_template) from vllm.entrypoints.launcher import serve_http from vllm.entrypoints.logger import RequestLogger -from vllm.entrypoints.openai.cli_args import (make_arg_parser, +from vllm.entrypoints.openai.cli_args import (log_non_default_args, + make_arg_parser, validate_parsed_serve_args) # yapf conflicts with isort for this block # yapf: disable @@ -1040,7 +1041,7 @@ def create_server_socket(addr: tuple[str, int]) -> socket.socket: async def run_server(args, **uvicorn_kwargs) -> None: logger.info("vLLM API server version %s", VLLM_VERSION) - logger.info("args: %s", args) + log_non_default_args(args, logger) if args.tool_parser_plugin and len(args.tool_parser_plugin) > 3: ToolParserManager.import_tool_parser(args.tool_parser_plugin) diff --git a/vllm/entrypoints/openai/cli_args.py b/vllm/entrypoints/openai/cli_args.py index a2639d374791..133792e0236f 100644 --- a/vllm/entrypoints/openai/cli_args.py +++ b/vllm/entrypoints/openai/cli_args.py @@ -17,6 +17,7 @@ from vllm.entrypoints.openai.serving_models import (LoRAModulePath, PromptAdapterPath) from vllm.entrypoints.openai.tool_parsers import ToolParserManager +from vllm.logger import _VllmLogger from vllm.utils import FlexibleArgumentParser @@ -285,6 +286,15 @@ def validate_parsed_serve_args(args: argparse.Namespace): "--tool-call-parser") +def log_non_default_args(args: argparse.Namespace, logger: _VllmLogger): + non_default_args = {} + parser = make_arg_parser(FlexibleArgumentParser()) + for arg, default in vars(parser.parse_args("")).items(): + if default != getattr(args, arg): + non_default_args[arg] = getattr(args, arg) + logger.info("non-default args: %s", non_default_args) + + def create_parser_for_docs() -> FlexibleArgumentParser: parser_for_docs = FlexibleArgumentParser( prog="-m vllm.entrypoints.openai.api_server") From e905af40c24d283be01e299e8a400e79e6843d8a Mon Sep 17 00:00:00 2001 From: Harry Mellor <19981378+hmellor@users.noreply.github.com> Date: Wed, 7 May 2025 17:23:39 +0200 Subject: [PATCH 2/3] Wrong type for default constructing args Signed-off-by: Harry Mellor <19981378+hmellor@users.noreply.github.com> --- vllm/entrypoints/openai/cli_args.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vllm/entrypoints/openai/cli_args.py b/vllm/entrypoints/openai/cli_args.py index 133792e0236f..3e7a8d2ca6c7 100644 --- a/vllm/entrypoints/openai/cli_args.py +++ b/vllm/entrypoints/openai/cli_args.py @@ -289,7 +289,7 @@ def validate_parsed_serve_args(args: argparse.Namespace): def log_non_default_args(args: argparse.Namespace, logger: _VllmLogger): non_default_args = {} parser = make_arg_parser(FlexibleArgumentParser()) - for arg, default in vars(parser.parse_args("")).items(): + for arg, default in vars(parser.parse_args([])).items(): if default != getattr(args, arg): non_default_args[arg] = getattr(args, arg) logger.info("non-default args: %s", non_default_args) From fb32e1960584acbb48c51f64dd0189a53adaca35 Mon Sep 17 00:00:00 2001 From: Harry Mellor <19981378+hmellor@users.noreply.github.com> Date: Wed, 7 May 2025 17:50:36 +0200 Subject: [PATCH 3/3] Don't pass the logger around Signed-off-by: Harry Mellor <19981378+hmellor@users.noreply.github.com> --- vllm/entrypoints/openai/api_server.py | 2 +- vllm/entrypoints/openai/cli_args.py | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/vllm/entrypoints/openai/api_server.py b/vllm/entrypoints/openai/api_server.py index f26af66685fa..af132481b1bd 100644 --- a/vllm/entrypoints/openai/api_server.py +++ b/vllm/entrypoints/openai/api_server.py @@ -1041,7 +1041,7 @@ def create_server_socket(addr: tuple[str, int]) -> socket.socket: async def run_server(args, **uvicorn_kwargs) -> None: logger.info("vLLM API server version %s", VLLM_VERSION) - log_non_default_args(args, logger) + log_non_default_args(args) if args.tool_parser_plugin and len(args.tool_parser_plugin) > 3: ToolParserManager.import_tool_parser(args.tool_parser_plugin) diff --git a/vllm/entrypoints/openai/cli_args.py b/vllm/entrypoints/openai/cli_args.py index 3e7a8d2ca6c7..d8cec2202134 100644 --- a/vllm/entrypoints/openai/cli_args.py +++ b/vllm/entrypoints/openai/cli_args.py @@ -17,9 +17,11 @@ from vllm.entrypoints.openai.serving_models import (LoRAModulePath, PromptAdapterPath) from vllm.entrypoints.openai.tool_parsers import ToolParserManager -from vllm.logger import _VllmLogger +from vllm.logger import init_logger from vllm.utils import FlexibleArgumentParser +logger = init_logger(__name__) + class LoRAParserAction(argparse.Action): @@ -286,7 +288,7 @@ def validate_parsed_serve_args(args: argparse.Namespace): "--tool-call-parser") -def log_non_default_args(args: argparse.Namespace, logger: _VllmLogger): +def log_non_default_args(args: argparse.Namespace): non_default_args = {} parser = make_arg_parser(FlexibleArgumentParser()) for arg, default in vars(parser.parse_args([])).items():