|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
from transformers import PretrainedConfig |
|
|
|
from .modeling_siglip import SiglipVisionConfig |
|
|
|
from .configuration_minicpm import MiniCPMConfig |
|
from .configuration_siglip import SiglipVisionConfig |
|
|
|
from transformers.utils import logging |
|
|
|
logger = logging.get_logger(__name__) |
|
|
|
|
|
class MiniCPMVConfig(PretrainedConfig): |
|
model_type = "minicpmv" |
|
|
|
def __init__(self, vpm_config=None, llm_config=None, query_num=64, drop_vision_last_layer=False, slice_mode=True, max_slice_nums=9, mm_use_im_start_end=True, **kwargs): |
|
super().__init__(**kwargs) |
|
|
|
if vpm_config is None: |
|
vpm_config = {} |
|
logger.info("`vpm_config` is `None`. Initializing the `SiglipVisionConfig` with default values.") |
|
|
|
if llm_config is None: |
|
llm_config = {} |
|
logger.info("`llm_config` is `None`. initializing the `MiniCPMConfig` with default values.") |
|
|
|
self.llm_config = MiniCPMConfig(**llm_config) |
|
self.vpm_config = SiglipVisionConfig(**vpm_config) |
|
|
|
self.query_num = query_num |
|
self.drop_vision_last_layer = drop_vision_last_layer |
|
self.slice_mode = slice_mode |
|
self.max_slice_nums = max_slice_nums |
|
self.mm_use_im_start_end = mm_use_im_start_end |
|
|
|
|