"""PenguinVL model configuration.""" import importlib.util import os.path as osp from typing import Optional, Dict, Any from transformers import PretrainedConfig, Qwen3Config try: from .configuration_penguinvl_encoder import PenguinVLVisionEncoderConfig except ModuleNotFoundError: spec = importlib.util.spec_from_file_location( "configuration_penguinvl_encoder", osp.join(osp.dirname(__file__), "configuration_penguinvl_encoder.py"), ) configuration_penguinvl_encoder = importlib.util.module_from_spec(spec) spec.loader.exec_module(configuration_penguinvl_encoder) PenguinVLVisionEncoderConfig = getattr( configuration_penguinvl_encoder, "PenguinVLVisionEncoderConfig", ) class PenguinVLQwen3Config(Qwen3Config): model_type = "penguinvl_qwen3" sub_configs = {"vision_encoder_config": PenguinVLVisionEncoderConfig} def __init__( self, vision_encoder: Optional[str] = None, vision_encoder_config: Dict[str, Any] = {}, vision_projector_type: str = "mlp2x_gelu", use_token_compression: bool = True, image_token_index: int = -1, **kwargs, ): super().__init__(**kwargs) self.model_type = "penguinvl_qwen3" self.vision_encoder = vision_encoder if vision_encoder_config is not None and not isinstance(vision_encoder_config, PretrainedConfig): vision_encoder_config = PenguinVLVisionEncoderConfig(**vision_encoder_config) self.vision_encoder_config = vision_encoder_config self.vision_projector_type = vision_projector_type self.use_token_compression = use_token_compression self.image_token_index = image_token_index