Penguin-VL-2B / configuration_penguinvl.py
lkeab's picture
Transfer from pg-team/pg-vl-2b-hf
a10fac4 verified
raw
history blame
1.73 kB
"""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