Skip to content

Commit 9fb74c2

Browse files
[Core] Support configuration parsing plugin (#24277)
Signed-off-by: Xingyu Liu <charlotteliu12x@gmail.com> Signed-off-by: Xingyu Liu <38244988+charlotte12l@users.noreply.github.com> Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
1 parent 4032949 commit 9fb74c2

File tree

6 files changed

+237
-107
lines changed

6 files changed

+237
-107
lines changed

tests/transformers_utils/__init__.py

Whitespace-only changes.
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# SPDX-License-Identifier: Apache-2.0
2+
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
3+
4+
from pathlib import Path
5+
from typing import Optional, Union
6+
7+
import pytest
8+
from transformers import PretrainedConfig
9+
10+
from vllm.transformers_utils.config import (get_config_parser,
11+
register_config_parser)
12+
from vllm.transformers_utils.config_parser_base import ConfigParserBase
13+
14+
15+
@register_config_parser("custom_config_parser")
16+
class CustomConfigParser(ConfigParserBase):
17+
18+
def parse(self,
19+
model: Union[str, Path],
20+
trust_remote_code: bool,
21+
revision: Optional[str] = None,
22+
code_revision: Optional[str] = None,
23+
**kwargs) -> tuple[dict, PretrainedConfig]:
24+
raise NotImplementedError
25+
26+
27+
def test_register_config_parser():
28+
assert isinstance(get_config_parser("custom_config_parser"),
29+
CustomConfigParser)
30+
31+
32+
def test_invalid_config_parser():
33+
with pytest.raises(ValueError):
34+
35+
@register_config_parser("invalid_config_parser")
36+
class InvalidConfigParser:
37+
pass

vllm/config/__init__.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -419,7 +419,7 @@ class ModelConfig:
419419
`--media-io-kwargs '{"video": {"num_frames": 40} }'` """
420420
use_async_output_proc: bool = True
421421
"""Whether to use async output processor."""
422-
config_format: Union[str, ConfigFormat] = ConfigFormat.AUTO.value
422+
config_format: Union[str, ConfigFormat] = "auto"
423423
"""The format of the model config to load:\n
424424
- "auto" will try to load the config in hf format if available else it
425425
will try to load in mistral format.\n
@@ -624,9 +624,6 @@ def __post_init__(self) -> None:
624624
raise ValueError(
625625
"Sleep mode is not supported on current platform.")
626626

627-
if isinstance(self.config_format, str):
628-
self.config_format = ConfigFormat(self.config_format)
629-
630627
hf_config = get_config(self.hf_config_path or self.model,
631628
self.trust_remote_code,
632629
self.revision,

vllm/engine/arg_utils.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@
2222

2323
import vllm.envs as envs
2424
from vllm.config import (BlockSize, CacheConfig, CacheDType, CompilationConfig,
25-
ConfigFormat, ConfigType, ConvertOption,
26-
DecodingConfig, DetailedTraceModules, Device,
27-
DeviceConfig, DistributedExecutorBackend, EPLBConfig,
25+
ConfigType, ConvertOption, DecodingConfig,
26+
DetailedTraceModules, Device, DeviceConfig,
27+
DistributedExecutorBackend, EPLBConfig,
2828
GuidedDecodingBackend, HfOverrides, KVEventsConfig,
2929
KVTransferConfig, LoadConfig, LogprobsMode,
3030
LoRAConfig, MambaDType, MMEncoderTPMode, ModelConfig,
@@ -547,7 +547,6 @@ def add_cli_args(parser: FlexibleArgumentParser) -> FlexibleArgumentParser:
547547
help="Disable async output processing. This may result in "
548548
"lower performance.")
549549
model_group.add_argument("--config-format",
550-
choices=[f.value for f in ConfigFormat],
551550
**model_kwargs["config_format"])
552551
# This one is a special case because it can bool
553552
# or str. TODO: Handle this in get_kwargs

0 commit comments

Comments
 (0)