{"record":{"id":"6a2206fefc83fb1a","repo":"sgl-project/sglang","slug":"not-support-merge-type-self-merge-type","errorCode":null,"errorMessage":"Not support merge_type: {self.merge_type}","messagePattern":"Not support merge_type: (.+?)","errorType":"exception","errorClass":"NotImplementedError","httpStatus":null,"severity":"error","filePath":"python/sglang/srt/models/kimi_k3_vl.py","lineNumber":741,"sourceCode":"                rope_freqs_cis,\n                attention,\n                forward_metadata.use_fused_rope,\n                forward_metadata.selected_attention_backend,\n            )\n\n        return self.final_layernorm(hidden_states)\n\n\nclass KimiK3VisionTower(nn.Module):\n    def __init__(self, vision_config, **kwargs):\n        super().__init__()\n        config = vision_config\n        self.config = config\n        self.merge_kernel_size = tuple(config.merge_kernel_size)\n        self.patch_size = config.patch_size\n        self.merge_type = config.merge_type\n        if self.merge_type != \"sd2_tpool\":\n            raise NotImplementedError(f\"Not support merge_type: {self.merge_type}\")\n\n        hidden_size = getattr(config, \"vt_hidden_size\", None) or config.hidden_size\n        num_heads = (\n            getattr(config, \"vt_num_attention_heads\", None)\n            or config.num_attention_heads\n        )\n        num_layers = (\n            getattr(config, \"vt_num_hidden_layers\", None) or config.num_hidden_layers\n        )\n        intermediate_size = (\n            getattr(config, \"vt_intermediate_size\", None) or config.intermediate_size\n        )\n\n        self.patch_embed = MoonVision3dPatchEmbed(\n            out_dim=hidden_size,\n            patch_size=config.patch_size,\n            pos_emb_height=config.init_pos_emb_height,\n            pos_emb_width=config.init_pos_emb_width,","sourceCodeStart":723,"sourceCodeEnd":759,"githubUrl":"https://github.com/sgl-project/sglang/blob/0132848349585cfe6aae51c4941cbae872505f8a/python/sglang/srt/models/kimi_k3_vl.py#L723-L759","documentation":"The Kimi-K3 vision pixel-shuffle merger (kimi_k3_vl.py:741) only implements merge_type \"sd2_tpool\" (stable-diffusion-2-style temporal pooling). Any other merge_type in the vision config raises NotImplementedError at construction. The merger layout is hard-wired around that kernel size / temporal-pool scheme.","triggerScenarios":"Loading a Kimi-K3 checkpoint whose vision_config.merge_type differs from \"sd2_tpool\" (e.g. a video variant using \"spatial_temporal\" or \"plain\").","commonSituations":"New model revisions that change the patch-merge scheme; community finetunes with modified vision towers; mismatched config.json pulled from a different model.","solutions":["Verify vision_config.merge_type matches the official Kimi-K3 weights (sd2_tpool)","Use the config shipped with the checkpoint revision this code supports","If a new merge type is required, port the corresponding merger from upstream transformers Kimi code before this check"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"assert cfg.vision_config.merge_type == \"sd2_tpool\"","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Pin model revisions; validate config enums before launch"],"tags":["kimi-k3","vision","config-validation","not-implemented"],"backgroundTag":"unsupported-config-value","analyzedSha":"0132848349585cfe6aae51c4941cbae872505f8a","analyzedAt":"2026-08-28T05:10:05.995Z","schemaVersion":2},"datasetVersion":"2026-08-28T06:17:29.519Z"}