from dataclasses import dataclass, field @dataclass class VLMConfig: vit_hidden_dim: int = 768 vit_inter_dim: int = 4 * vit_hidden_dim vit_patch_size: int = 16 vit_img_size: int = 512 vit_n_heads: int = 12 vit_dropout: float = 0.0 vit_n_blocks: int = 12 vit_ln_eps: float = 1e-6 vit_cls_flag: bool = False vit_model_type: str = 'google/siglip2-base-patch16-512' lm_hidden_dim: int = 960 lm_inter_dim: int = 2560 lm_rms_eps: float = 1e-5 lm_re_base: int = 100000 lm_max_position_embeddings: int = 8192 lm_base_vocab_size: int = 49152 extra_token_amount: int = 66 lm_vocab_size: int = lm_base_vocab_size + extra_token_amount lm_n_heads: int = 15 lm_n_kv_heads: int = 5 lm_dropout: float = 0.0 lm_n_blocks: int = 32 lm_attn_scaling: float = 1.0 lm_max_length: int = 4096 lm_use_tokens: bool = False lm_tie_weights: bool = True lm_model_type: str = 'HuggingFaceTB/SmolLM2-360M-Instruct' lm_tokenizer: str = 'HuggingFaceTB/SmolLM2-360M-Instruct' lm_chat_template: str = "{% for message in messages %}{{'<|im_start|>' + message['role'] + '\n' + message['content'] + '<|im_end|>' + '\n'}}{% endfor %}{% if add_generation_prompt %}{{ '<|im_start|>assistant\n' }}{% endif %}" mp_pixel_shuffle_factor: int = 4 mp_image_token_length: int = 64 max_img_size: int = 2048 resize_to_max_side_len: bool = True resize_min_side_len: int | None = None inference_max_img_size: int | None = None vlm_extra_tokens: dict[str, str] = field(default_factory=lambda: {"image_token": "<|image|>", "global_image_token": "<|global_image|>", "r1c1": "", "r1c2": "", "r1c3": "", "r1c4": "", "r1c5": "", "r1c6": "", "r1c7": "", "r1c8": "", "r2c1": "", "r2c2": "", "r2c3": "", "r2c4": "", "r2c5": "", "r2c6": "", "r2c7": "", "r2c8": "", "r3c1": "", "r3c2": "", "r3c3": "", "r3c4": "", "r3c5": "", "r3c6": "", "r3c7": "", "r3c8": "", "r4c1": "", "r4c2": "", "r4c3": "", "r4c4": "", "r4c5": "", "r4c6": "", "r4c7": "", "r4c8": "", "r5c1": "", "r5c2": "", "r5c3": "", "r5c4": "", "r5c5": "", "r5c6": "", "r5c7": "", "r5c8": "", "r6c1": "", "r6c2": "", "r6c3": "", "r6c4": "", "r6c5": "", "r6c6": "", "r6c7": "", "r6c8": "", "r7c1": "", "r7c2": "", "r7c3": "", "r7c4": "", "r7c5": "", "r7c6": "", "r7c7": "", "r7c8": "", "r8c1": "", "r8c2": "", "r8c3": "", "r8c4": "", "r8c5": "", "r8c6": "", "r8c7": "", "r8c8": ""}) vlm_load_backbone_weights: bool = True vlm_checkpoint_path: str = 'checkpoints' hf_repo_name: str = 'qvac/VisionPsy-Nano-460M' compile_inference: bool = True compile_inference_mode: str = 'reduce-overhead' cuda_graphs_cache_quantum: int = 128 eos_check_interval: int = 16