| 1 | # SPDX-License-Identifier: Apache-2.0 |
| 2 | # SPDX-FileCopyrightText: Copyright contributors to the vLLM project |
| 3 | # Adapted from https://huggingface.co/moonshotai/Kimi-VL-A3B-Instruct/blob/main/configuration_kimi_vl.py |
| 4 | |
| 5 | from transformers import DeepseekV2Config |
| 6 | from transformers.configuration_utils import PreTrainedConfig |
| 7 | |
| 8 | from vllm.transformers_utils.configs.moonvit import MoonViTConfig |
| 9 | |
| 10 | |
| 11 | class KimiVLConfig(PreTrainedConfig): |
| 12 | model_type = "kimi_vl" |
| 13 | |
| 14 | def __init__( |
| 15 | self, |
| 16 | vision_config: dict | MoonViTConfig | None = None, |
| 17 | text_config: dict | DeepseekV2Config | None = None, |
| 18 | ignore_index: int = -100, |
| 19 | media_placeholder_token_id: int = 163605, |
| 20 | pad_token_id: int = 0, |
| 21 | **kwargs, |
| 22 | ): |
| 23 | if vision_config is None: |
| 24 | vision_config = MoonViTConfig() |
| 25 | elif isinstance(vision_config, dict): |
| 26 | vision_config = MoonViTConfig(**vision_config) |
| 27 | self.vision_config = vision_config |
| 28 | |
| 29 | if text_config is None: |
| 30 | text_config = DeepseekV2Config() |
| 31 | elif isinstance(text_config, dict): |
| 32 | text_config = DeepseekV2Config(**text_config) |
| 33 | self.text_config: DeepseekV2Config = text_config |
| 34 | |
| 35 | self.ignore_index = ignore_index |
| 36 | self.media_placeholder_token_id = media_placeholder_token_id |
| 37 | |
| 38 | super().__init__(pad_token_id=pad_token_id, **kwargs) |