{"record":{"id":"78a888946f9e6007","repo":"sgl-project/sglang","slug":"only-absolute-position-embedding-type-is-support","errorCode":null,"errorMessage":"Only 'absolute' position_embedding_type is supported","messagePattern":"Only 'absolute' position_embedding_type is supported","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"critical","filePath":"python/sglang/srt/models/bert.py","lineNumber":47,"sourceCode":"        super().__init__()\n        self.size = config.hidden_size\n        self.word_embeddings = VocabParallelEmbedding(\n            config.vocab_size, config.hidden_size\n        )\n        self.position_embeddings = VocabParallelEmbedding(\n            config.max_position_embeddings, config.hidden_size\n        )\n        self.token_type_embeddings = VocabParallelEmbedding(\n            config.type_vocab_size, config.hidden_size\n        )\n        self.LayerNorm = nn.LayerNorm(config.hidden_size, eps=config.layer_norm_eps)\n        self.position_ids = nn.Parameter(\n            torch.empty((1, config.max_position_embeddings)),\n        )\n\n        self.position_embedding_type = config.position_embedding_type\n        if self.position_embedding_type != \"absolute\":\n            raise ValueError(\n                \"Only 'absolute' position_embedding_type\" + \" is supported\"\n            )\n\n    def forward(\n        self,\n        input_ids: torch.Tensor,\n        positions: torch.Tensor,\n        forward_batch: ForwardBatch,\n    ) -> torch.Tensor:\n        input_shape = input_ids.size()\n\n        # Input embeddings.\n        inputs_embeds = self.word_embeddings(input_ids)\n\n        # Position embeddings.\n        position_embeddings = self.position_embeddings(positions)\n\n        token_type_ids = forward_batch.token_type_ids","sourceCodeStart":29,"sourceCodeEnd":65,"githubUrl":"https://github.com/sgl-project/sglang/blob/0132848349585cfe6aae51c4941cbae872505f8a/python/sglang/srt/models/bert.py#L29-L65","documentation":"The BERT embeddings module only implements absolute position embeddings; config.position_embedding_type must be 'absolute'. Other types like sinusoidal or relative_key raise here.","triggerScenarios":"Loading a BERT config with position_embedding_type set to \"sinusoidal\", \"relative_key\", etc.","commonSituations":"Using a non-standard BERT variant checkpoint; configs produced by conversions that default to a different embedding type.","solutions":["Set \"position_embedding_type\": \"absolute\" in config.json","Use a BERT checkpoint that was trained with absolute position embeddings"],"exampleFix":"// before\n\"position_embedding_type\": \"sinusoidal\"\n// after\n\"position_embedding_type\": \"absolute\"","handlingStrategy":"validation","validationCode":"assert config.position_embedding_type == \"absolute\"","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Use absolute-position BERT checkpoints with this code path"],"tags":["bert","embeddings","config-validation"],"backgroundTag":"unsupported-config-value","analyzedSha":"0132848349585cfe6aae51c4941cbae872505f8a","analyzedAt":"2026-08-28T05:10:05.995Z","schemaVersion":2},"datasetVersion":"2026-08-28T11:17:15.048Z"}