main
py 37 lines 1.21 KB
Raw
1 # SPDX-License-Identifier: Apache-2.0
2 # SPDX-FileCopyrightText: Copyright contributors to the vLLM project
3
4 # Adapted from
5 # https://github.com/modelscope/ms-swift/blob/v2.4.2/swift/utils/module_mapping.py
6
7 from dataclasses import dataclass, field
8
9
10 @dataclass
11 class MultiModelKeys:
12 language_model: list[str] = field(default_factory=list)
13 connector: list[str] = field(default_factory=list)
14 # vision tower and audio tower
15 tower_model: list[str] = field(default_factory=list)
16 generator: list[str] = field(default_factory=list)
17
18 @staticmethod
19 def from_string_field(
20 language_model: str | list[str] | None = None,
21 connector: str | list[str] | None = None,
22 tower_model: str | list[str] | None = None,
23 generator: str | list[str] | None = None,
24 **kwargs,
25 ) -> "MultiModelKeys":
26 def to_list(value):
27 if value is None:
28 return []
29 return [value] if isinstance(value, str) else list(value)
30
31 return MultiModelKeys(
32 language_model=to_list(language_model),
33 connector=to_list(connector),
34 tower_model=to_list(tower_model),
35 generator=to_list(generator),
36 **kwargs,
37 )