[model] support MiniCPM-o-4.5 (#10163)

Co-authored-by: Yaowei Zheng <hiyouga@buaa.edu.cn>
This commit is contained in:
Hertz
2026-02-04 23:21:27 +08:00
committed by GitHub
parent 1a02717fa8
commit 8bedfafa4e
7 changed files with 22 additions and 18 deletions

View File

@@ -13,14 +13,14 @@
# limitations under the License.
import time
from enum import Enum, unique
from enum import StrEnum, unique
from typing import Any, Literal
from pydantic import BaseModel, Field
@unique
class Role(str, Enum):
class Role(StrEnum):
USER = "user"
ASSISTANT = "assistant"
SYSTEM = "system"
@@ -29,7 +29,7 @@ class Role(str, Enum):
@unique
class Finish(str, Enum):
class Finish(StrEnum):
STOP = "stop"
LENGTH = "length"
TOOL = "tool_calls"

View File

@@ -13,7 +13,7 @@
# limitations under the License.
import json
from enum import Enum, unique
from enum import StrEnum, unique
from typing import TYPE_CHECKING, Any, Optional, TypedDict, Union
import fsspec
@@ -35,7 +35,7 @@ SLOTS = list[Union[str, set[str], dict[str, str]]]
@unique
class Role(str, Enum):
class Role(StrEnum):
USER = "user"
ASSISTANT = "assistant"
SYSTEM = "system"

View File

@@ -14,7 +14,7 @@
import os
from collections import OrderedDict, defaultdict
from enum import Enum, unique
from enum import StrEnum, unique
from peft.utils import SAFETENSORS_WEIGHTS_NAME as SAFE_ADAPTER_WEIGHTS_NAME
from peft.utils import WEIGHTS_NAME as ADAPTER_WEIGHTS_NAME
@@ -110,7 +110,7 @@ V_HEAD_WEIGHTS_NAME = "value_head.bin"
V_HEAD_SAFE_WEIGHTS_NAME = "value_head.safetensors"
class AttentionFunction(str, Enum):
class AttentionFunction(StrEnum):
AUTO = "auto"
DISABLED = "disabled"
SDPA = "sdpa"
@@ -118,21 +118,21 @@ class AttentionFunction(str, Enum):
FA3 = "fa3"
class EngineName(str, Enum):
class EngineName(StrEnum):
HF = "huggingface"
VLLM = "vllm"
SGLANG = "sglang"
KT = "ktransformers"
class DownloadSource(str, Enum):
class DownloadSource(StrEnum):
DEFAULT = "hf"
MODELSCOPE = "ms"
OPENMIND = "om"
@unique
class QuantizationMethod(str, Enum):
class QuantizationMethod(StrEnum):
r"""Borrowed from `transformers.utils.quantization_config.QuantizationMethod`."""
BNB = "bnb"
@@ -146,7 +146,7 @@ class QuantizationMethod(str, Enum):
FP8 = "fp8"
class RopeScaling(str, Enum):
class RopeScaling(StrEnum):
LINEAR = "linear"
DYNAMIC = "dynamic"
YARN = "yarn"
@@ -1840,6 +1840,10 @@ register_model_group(
DownloadSource.DEFAULT: "openbmb/MiniCPM-o-2_6",
DownloadSource.MODELSCOPE: "OpenBMB/MiniCPM-o-2_6",
},
"MiniCPM-o-4_5": {
DownloadSource.DEFAULT: "openbmb/MiniCPM-o-4_5",
DownloadSource.MODELSCOPE: "OpenBMB/MiniCPM-o-4_5",
},
},
template="minicpm_o",
multimodal=True,

View File

@@ -27,7 +27,7 @@ Including:
import os
from collections.abc import Callable
from contextlib import contextmanager
from enum import Enum, unique
from enum import StrEnum, unique
from functools import lru_cache, wraps
from typing import Optional
@@ -39,7 +39,7 @@ from ..utils.types import ProcessGroup, Tensor, TensorLike
@unique
class DeviceType(str, Enum):
class DeviceType(StrEnum):
CPU = "cpu"
CUDA = "cuda"
META = "meta"
@@ -49,7 +49,7 @@ class DeviceType(str, Enum):
@unique
class ReduceOp(str, Enum):
class ReduceOp(StrEnum):
SUM = "sum"
MEAN = "mean"
MAX = "max"

View File

@@ -28,7 +28,7 @@ And data parallelism types:
from dataclasses import dataclass
from datetime import timedelta
from enum import Enum
from enum import StrEnum
from typing import Any, Optional
from torch.distributed import barrier, destroy_process_group, init_process_group
@@ -42,7 +42,7 @@ from . import helper
logger = logging.get_logger(__name__)
class Dim(str, Enum):
class Dim(StrEnum):
"""Dimension names."""
MP_REPLICATE = "mp_replicate"