[Feature] Change vllm.py with pydantic validation (#26726)
Signed-off-by: Vladislav <vladislav.bronzov@gmail.com> Signed-off-by: Vladislav Bronzov <58587565+VladOS95-cyber@users.noreply.github.com> Co-authored-by: Harry Mellor <19981378+hmellor@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
9c4cb68339
commit
c715ba3735
@@ -7,13 +7,13 @@ import json
|
|||||||
import os
|
import os
|
||||||
import time
|
import time
|
||||||
from contextlib import contextmanager
|
from contextlib import contextmanager
|
||||||
from dataclasses import field, replace
|
from dataclasses import replace
|
||||||
from functools import lru_cache
|
from functools import lru_cache
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import TYPE_CHECKING, Any, TypeVar
|
from typing import TYPE_CHECKING, Any, TypeVar
|
||||||
|
|
||||||
import torch
|
import torch
|
||||||
from pydantic import ConfigDict
|
from pydantic import ConfigDict, Field
|
||||||
from pydantic.dataclasses import dataclass
|
from pydantic.dataclasses import dataclass
|
||||||
|
|
||||||
import vllm.envs as envs
|
import vllm.envs as envs
|
||||||
@@ -57,23 +57,23 @@ class VllmConfig:
|
|||||||
|
|
||||||
# TODO: use default_factory once default constructing ModelConfig doesn't
|
# TODO: use default_factory once default constructing ModelConfig doesn't
|
||||||
# try to download a model
|
# try to download a model
|
||||||
model_config: ModelConfig = None # type: ignore
|
model_config: ModelConfig = Field(default=None)
|
||||||
"""Model configuration."""
|
"""Model configuration."""
|
||||||
cache_config: CacheConfig = field(default_factory=CacheConfig)
|
cache_config: CacheConfig = Field(default_factory=CacheConfig)
|
||||||
"""Cache configuration."""
|
"""Cache configuration."""
|
||||||
parallel_config: ParallelConfig = field(default_factory=ParallelConfig)
|
parallel_config: ParallelConfig = Field(default_factory=ParallelConfig)
|
||||||
"""Parallel configuration."""
|
"""Parallel configuration."""
|
||||||
scheduler_config: SchedulerConfig = field(default_factory=SchedulerConfig)
|
scheduler_config: SchedulerConfig = Field(default_factory=SchedulerConfig)
|
||||||
"""Scheduler configuration."""
|
"""Scheduler configuration."""
|
||||||
device_config: DeviceConfig = field(default_factory=DeviceConfig)
|
device_config: DeviceConfig = Field(default_factory=DeviceConfig)
|
||||||
"""Device configuration."""
|
"""Device configuration."""
|
||||||
load_config: LoadConfig = field(default_factory=LoadConfig)
|
load_config: LoadConfig = Field(default_factory=LoadConfig)
|
||||||
"""Load configuration."""
|
"""Load configuration."""
|
||||||
lora_config: LoRAConfig | None = None
|
lora_config: LoRAConfig | None = None
|
||||||
"""LoRA configuration."""
|
"""LoRA configuration."""
|
||||||
speculative_config: SpeculativeConfig | None = None
|
speculative_config: SpeculativeConfig | None = None
|
||||||
"""Speculative decoding configuration."""
|
"""Speculative decoding configuration."""
|
||||||
structured_outputs_config: StructuredOutputsConfig = field(
|
structured_outputs_config: StructuredOutputsConfig = Field(
|
||||||
default_factory=StructuredOutputsConfig
|
default_factory=StructuredOutputsConfig
|
||||||
)
|
)
|
||||||
"""Structured outputs configuration."""
|
"""Structured outputs configuration."""
|
||||||
@@ -81,7 +81,7 @@ class VllmConfig:
|
|||||||
"""Observability configuration."""
|
"""Observability configuration."""
|
||||||
quant_config: QuantizationConfig | None = None
|
quant_config: QuantizationConfig | None = None
|
||||||
"""Quantization configuration."""
|
"""Quantization configuration."""
|
||||||
compilation_config: CompilationConfig = field(default_factory=CompilationConfig)
|
compilation_config: CompilationConfig = Field(default_factory=CompilationConfig)
|
||||||
"""`torch.compile` and cudagraph capture configuration for the model.
|
"""`torch.compile` and cudagraph capture configuration for the model.
|
||||||
|
|
||||||
As a shorthand, `-O<n>` can be used to directly specify the compilation
|
As a shorthand, `-O<n>` can be used to directly specify the compilation
|
||||||
@@ -103,7 +103,7 @@ class VllmConfig:
|
|||||||
# some opaque config, only used to provide additional information
|
# some opaque config, only used to provide additional information
|
||||||
# for the hash computation, mainly used for testing, debugging or out of
|
# for the hash computation, mainly used for testing, debugging or out of
|
||||||
# tree config registration.
|
# tree config registration.
|
||||||
additional_config: dict | SupportsHash = field(default_factory=dict)
|
additional_config: dict | SupportsHash = Field(default_factory=dict)
|
||||||
"""Additional config for specified platform. Different platforms may
|
"""Additional config for specified platform. Different platforms may
|
||||||
support different configs. Make sure the configs are valid for the platform
|
support different configs. Make sure the configs are valid for the platform
|
||||||
you are using. Contents must be hashable."""
|
you are using. Contents must be hashable."""
|
||||||
|
|||||||
Reference in New Issue
Block a user