{"record":{"id":"c5888773ffbf52ff","repo":"sgl-project/sglang","slug":"config-text-config-architectures-0-is-not-imple","errorCode":null,"errorMessage":"{config.text_config.architectures[0]} is not implemented.","messagePattern":"(.+?) is not implemented\\.","errorType":"exception","errorClass":"NotImplementedError","httpStatus":null,"severity":"error","filePath":"python/sglang/srt/models/interns1.py","lineNumber":75,"sourceCode":"        )\n\n        logger.info(f\"num_image_token: {self.num_image_token}\")\n\n        self.vision_model = InternVisionModel(config.vision_config)\n        if config.text_config.architectures[0] == \"Qwen2ForCausalLM\":\n            self.language_model = Qwen2ForCausalLM(\n                config=config.text_config, quant_config=quant_config\n            )\n        elif config.text_config.architectures[0] == \"Qwen3MoeForCausalLM\":\n            self.language_model = Qwen3MoeForCausalLM(\n                config=config.text_config, quant_config=quant_config\n            )\n        elif config.text_config.architectures[0] == \"Qwen3ForCausalLM\":\n            self.language_model = Qwen3ForCausalLM(\n                config=config.text_config, quant_config=quant_config\n            )\n        else:\n            raise NotImplementedError(\n                f\"{config.text_config.architectures[0]} is not implemented.\"\n            )\n\n        vit_hidden_size = config.vision_config.hidden_size\n        llm_hidden_size = config.text_config.hidden_size\n\n        self.mlp1 = nn.Sequential(\n            nn.LayerNorm(vit_hidden_size * int(1 / self.downsample_ratio) ** 2),\n            nn.Linear(\n                vit_hidden_size * int(1 / self.downsample_ratio) ** 2, llm_hidden_size\n            ),\n            nn.GELU(),\n            nn.Linear(llm_hidden_size, llm_hidden_size),\n        )\n\n    def pixel_shuffle(self, x, scale_factor=0.5):\n        n, w, h, c = x.size()\n        # N, W, H, C --> N, W, H * scale, C // scale","sourceCodeStart":57,"sourceCodeEnd":93,"githubUrl":"https://github.com/sgl-project/sglang/blob/0132848349585cfe6aae51c4941cbae872505f8a/python/sglang/srt/models/interns1.py#L57-L93","documentation":"InternS1's language-model wrapper only instantiates InternLM2ForCausalLM or Qwen3ForCausalLM based on config.text_config.architectures[0]; any other architecture string hits NotImplementedError.","triggerScenarios":"Loading an InternS1 multimodal checkpoint whose text_config.architectures[0] is not 'InternLM2ForCausalLM' or 'Qwen3ForCausalLM'.","commonSituations":"Community finetune swapping in a different text backbone; config.json edited or generated with a renamed architecture string.","solutions":["Check config.text_config.architectures and align it to a supported backbone","Use the matching standalone model class if the text model is neither InternLM2 nor Qwen3"],"exampleFix":"# before\n\"text_config\": {\"architectures\": [\"LlamaForCausalLM\"]}\n# after\n\"text_config\": {\"architectures\": [\"InternLM2ForCausalLM\"]}","handlingStrategy":"validation","validationCode":"SUPPORTED = {'InternLM2ForCausalLM', 'Qwen3ForCausalLM'}\nassert config.text_config.architectures[0] in SUPPORTED","typeGuard":"def is_supported_interns1_text_arch(config) -> bool:\n    return config.text_config.architectures[0] in {'InternLM2ForCausalLM', 'Qwen3ForCausalLM'}","tryCatchPattern":null,"preventionTips":["Check architectures before instantiating multimodal wrappers"],"tags":["multimodal","architecture-not-supported","config-mismatch","interns1"],"backgroundTag":"unsupported-architecture","analyzedSha":"0132848349585cfe6aae51c4941cbae872505f8a","analyzedAt":"2026-08-28T05:10:05.995Z","schemaVersion":2},"datasetVersion":"2026-08-28T06:17:29.519Z"}