sgl-project/sglang · error · NotImplementedError
Not support merge_type: {self.merge_type}
Error message
Not support merge_type: {self.merge_type} What it means
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.
Source
Thrown at python/sglang/srt/models/kimi_k3_vl.py:741
rope_freqs_cis,
attention,
forward_metadata.use_fused_rope,
forward_metadata.selected_attention_backend,
)
return self.final_layernorm(hidden_states)
class KimiK3VisionTower(nn.Module):
def __init__(self, vision_config, **kwargs):
super().__init__()
config = vision_config
self.config = config
self.merge_kernel_size = tuple(config.merge_kernel_size)
self.patch_size = config.patch_size
self.merge_type = config.merge_type
if self.merge_type != "sd2_tpool":
raise NotImplementedError(f"Not support merge_type: {self.merge_type}")
hidden_size = getattr(config, "vt_hidden_size", None) or config.hidden_size
num_heads = (
getattr(config, "vt_num_attention_heads", None)
or config.num_attention_heads
)
num_layers = (
getattr(config, "vt_num_hidden_layers", None) or config.num_hidden_layers
)
intermediate_size = (
getattr(config, "vt_intermediate_size", None) or config.intermediate_size
)
self.patch_embed = MoonVision3dPatchEmbed(
out_dim=hidden_size,
patch_size=config.patch_size,
pos_emb_height=config.init_pos_emb_height,
pos_emb_width=config.init_pos_emb_width,View on GitHub (pinned to 0132848349)
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
Defensive patterns
Strategy: validation
Validate before calling
assert cfg.vision_config.merge_type == "sd2_tpool"
Prevention
- Pin model revisions; validate config enums before launch
When it happens
Trigger: Loading a Kimi-K3 checkpoint whose vision_config.merge_type differs from "sd2_tpool" (e.g. a video variant using "spatial_temporal" or "plain").
Common situations: New model revisions that change the patch-merge scheme; community finetunes with modified vision towers; mismatched config.json pulled from a different model.
Related errors
- Not support pos_emb_type: {pos_emb_type}
- Not support norm_type: {norm_type}
- Not support activation_func: {activation_func}
- Norm type {self.norm_type} not implemented
- Kimi K3 uses its model-native structural tag implementation
AI-assisted analysis of sgl-project/sglang@0132848349 (2026-08-28).
Data as JSON: /api/errors/6a2206fefc83fb1a.
Report an issue: GitHub.