fix: use get_rope_config() to support models without rope_parameters (#21135)

This commit is contained in:
shuwenn
2026-03-26 11:22:12 -07:00
committed by GitHub
parent 0906e45cec
commit 646573e4e8
18 changed files with 44 additions and 42 deletions
+2 -1
View File
@@ -48,6 +48,7 @@ from sglang.srt.layers.vocab_parallel_embedding import (
from sglang.srt.model_executor.forward_batch_info import ForwardBatch from sglang.srt.model_executor.forward_batch_info import ForwardBatch
from sglang.srt.model_loader.weight_utils import default_weight_loader from sglang.srt.model_loader.weight_utils import default_weight_loader
from sglang.srt.utils import add_prefix, is_npu from sglang.srt.utils import add_prefix, is_npu
from sglang.srt.utils.hf_transformers_utils import get_rope_config
_is_npu = is_npu() _is_npu = is_npu()
@@ -229,7 +230,7 @@ class BaiChuanDecoderLayer(nn.Module):
): ):
super().__init__() super().__init__()
self.hidden_size = config.hidden_size self.hidden_size = config.hidden_size
rope_theta = config.rope_parameters["rope_theta"] rope_theta, _ = get_rope_config(config)
max_position_embeddings = getattr(config, "max_position_embeddings", 8192) max_position_embeddings = getattr(config, "max_position_embeddings", 8192)
self.self_attn = BaiChuanAttention( self.self_attn = BaiChuanAttention(
hidden_size=self.hidden_size, hidden_size=self.hidden_size,
+2 -2
View File
@@ -49,6 +49,7 @@ from sglang.srt.layers.vocab_parallel_embedding import (
from sglang.srt.model_executor.forward_batch_info import ForwardBatch from sglang.srt.model_executor.forward_batch_info import ForwardBatch
from sglang.srt.model_loader.weight_utils import default_weight_loader from sglang.srt.model_loader.weight_utils import default_weight_loader
from sglang.srt.utils import add_prefix, cpu_has_amx_support, is_cpu from sglang.srt.utils import add_prefix, cpu_has_amx_support, is_cpu
from sglang.srt.utils.hf_transformers_utils import get_rope_config
_is_cpu_amx_available = cpu_has_amx_support() _is_cpu_amx_available = cpu_has_amx_support()
_is_cpu = is_cpu() _is_cpu = is_cpu()
@@ -310,8 +311,7 @@ class DeepseekDecoderLayer(nn.Module):
) -> None: ) -> None:
super().__init__() super().__init__()
self.hidden_size = config.hidden_size self.hidden_size = config.hidden_size
rope_theta = config.rope_parameters["rope_theta"] rope_theta, rope_scaling = get_rope_config(config)
rope_scaling = config.rope_parameters
max_position_embeddings = getattr(config, "max_position_embeddings", 8192) max_position_embeddings = getattr(config, "max_position_embeddings", 8192)
self.self_attn = DeepseekAttention( self.self_attn = DeepseekAttention(
hidden_size=self.hidden_size, hidden_size=self.hidden_size,
+2 -2
View File
@@ -43,6 +43,7 @@ from sglang.srt.model_loader.weight_utils import default_weight_loader
from sglang.srt.models.deepseek_v2 import DeepseekV2MLP as Ernie4MLP from sglang.srt.models.deepseek_v2 import DeepseekV2MLP as Ernie4MLP
from sglang.srt.models.llama import LlamaAttention as Ernie4Attention from sglang.srt.models.llama import LlamaAttention as Ernie4Attention
from sglang.srt.utils import add_prefix, make_layers from sglang.srt.utils import add_prefix, make_layers
from sglang.srt.utils.hf_transformers_utils import get_rope_config
class MoEGate(nn.Module): class MoEGate(nn.Module):
@@ -155,8 +156,7 @@ class Ernie4DecoderLayer(nn.Module):
is_mtp: bool = False, is_mtp: bool = False,
): ):
super().__init__() super().__init__()
rope_theta = config.rope_parameters["rope_theta"] rope_theta, rope_scaling = get_rope_config(config)
rope_scaling = config.rope_parameters
rope_is_neox_style = getattr(config, "rope_is_neox_style", False) rope_is_neox_style = getattr(config, "rope_is_neox_style", False)
# Self attention. # Self attention.
self.self_attn = Ernie4Attention( self.self_attn = Ernie4Attention(
+2 -2
View File
@@ -40,6 +40,7 @@ from sglang.srt.layers.vocab_parallel_embedding import (
from sglang.srt.model_executor.forward_batch_info import ForwardBatch from sglang.srt.model_executor.forward_batch_info import ForwardBatch
from sglang.srt.model_loader.weight_utils import default_weight_loader from sglang.srt.model_loader.weight_utils import default_weight_loader
from sglang.srt.utils import add_prefix from sglang.srt.utils import add_prefix
from sglang.srt.utils.hf_transformers_utils import get_rope_config
class ExaoneGatedMLP(nn.Module): class ExaoneGatedMLP(nn.Module):
@@ -182,8 +183,7 @@ class ExaoneDecoderLayer(nn.Module):
) -> None: ) -> None:
super().__init__() super().__init__()
self.hidden_size = config.hidden_size self.hidden_size = config.hidden_size
rope_theta = config.rope_parameters["rope_theta"] rope_theta, rope_scaling = get_rope_config(config)
rope_scaling = config.rope_parameters
if rope_scaling is not None and getattr( if rope_scaling is not None and getattr(
config, "original_max_position_embeddings", None config, "original_max_position_embeddings", None
): ):
+5 -3
View File
@@ -52,6 +52,7 @@ from sglang.srt.model_loader.weight_utils import (
kv_cache_scales_loader, kv_cache_scales_loader,
) )
from sglang.srt.utils import add_prefix, make_layers from sglang.srt.utils import add_prefix, make_layers
from sglang.srt.utils.hf_transformers_utils import get_rope_config
Glm4Config = None Glm4Config = None
@@ -217,9 +218,10 @@ class Glm4DecoderLayer(nn.Module):
) -> None: ) -> None:
super().__init__() super().__init__()
self.hidden_size = config.hidden_size self.hidden_size = config.hidden_size
rope_theta = config.rope_parameters["rope_theta"] rope_theta, rope_scaling = get_rope_config(config)
rope_scaling = config.rope_parameters partial_rotary_factor = (rope_scaling or {}).get("partial_rotary_factor")
partial_rotary_factor = config.rope_parameters.get("partial_rotary_factor", 0.5) if partial_rotary_factor is None:
partial_rotary_factor = getattr(config, "partial_rotary_factor", 0.5)
bias = getattr(config, "attention_bias", True) bias = getattr(config, "attention_bias", True)
max_position_embeddings = getattr(config, "max_position_embeddings", 32768) max_position_embeddings = getattr(config, "max_position_embeddings", 32768)
head_dim = getattr(config, "head_dim", None) head_dim = getattr(config, "head_dim", None)
+5 -5
View File
@@ -94,6 +94,7 @@ from sglang.srt.utils import (
log_info_on_rank0, log_info_on_rank0,
make_layers, make_layers,
) )
from sglang.srt.utils.hf_transformers_utils import get_rope_config
_is_hip = is_hip() _is_hip = is_hip()
_is_cuda = is_cuda() _is_cuda = is_cuda()
@@ -684,11 +685,10 @@ class Glm4MoeDecoderLayer(nn.Module):
nn.Module.__init__(self) nn.Module.__init__(self)
self.hidden_size = config.hidden_size self.hidden_size = config.hidden_size
self.config = config self.config = config
rope_theta = config.rope_parameters["rope_theta"] rope_theta, rope_scaling = get_rope_config(config)
rope_scaling = config.rope_parameters partial_rotary_factor = (rope_scaling or {}).get("partial_rotary_factor")
partial_rotary_factor = getattr( if partial_rotary_factor is None:
getattr(config, "rope_parameters", None), "partial_rotary_factor", None partial_rotary_factor = getattr(config, "partial_rotary_factor", 0.5)
) or getattr(config, "partial_rotary_factor", 0.5)
max_position_embeddings = getattr(config, "max_position_embeddings", 8192) max_position_embeddings = getattr(config, "max_position_embeddings", 8192)
head_dim = getattr( head_dim = getattr(
config, "head_dim", config.hidden_size // config.num_attention_heads config, "head_dim", config.hidden_size // config.num_attention_heads
+2 -5
View File
@@ -61,6 +61,7 @@ from sglang.srt.model_executor.forward_batch_info import ForwardBatch
from sglang.srt.model_loader.loader import DefaultModelLoader from sglang.srt.model_loader.loader import DefaultModelLoader
from sglang.srt.model_loader.weight_utils import default_weight_loader from sglang.srt.model_loader.weight_utils import default_weight_loader
from sglang.srt.utils import add_prefix, is_npu from sglang.srt.utils import add_prefix, is_npu
from sglang.srt.utils.hf_transformers_utils import get_rope_config
_is_npu = is_npu() _is_npu = is_npu()
@@ -477,11 +478,7 @@ class Grok1DecoderLayer(nn.Module):
self.layer_id = layer_id self.layer_id = layer_id
self.alt_stream = alt_stream or torch.cuda.Stream() self.alt_stream = alt_stream or torch.cuda.Stream()
rope_params = getattr(config, "rope_parameters", None) rope_theta, _ = get_rope_config(config)
if rope_params and "rope_theta" in rope_params:
rope_theta = rope_params["rope_theta"]
else:
rope_theta = getattr(config, "rope_theta", 10000)
self.self_attn = Grok1Attention( self.self_attn = Grok1Attention(
config=config, config=config,
hidden_size=self.hidden_size, hidden_size=self.hidden_size,
+2 -2
View File
@@ -53,6 +53,7 @@ from sglang.srt.model_loader.weight_utils import (
maybe_remap_kv_scale_name, maybe_remap_kv_scale_name,
) )
from sglang.srt.utils import is_hip from sglang.srt.utils import is_hip
from sglang.srt.utils.hf_transformers_utils import get_rope_config
expert_distribution_recorder = ExpertDistributionRecorder() expert_distribution_recorder = ExpertDistributionRecorder()
@@ -402,8 +403,7 @@ class HunYuanDecoderLayer(nn.Module):
if isinstance(config.intermediate_size, int) if isinstance(config.intermediate_size, int)
else config.intermediate_size[layer_id] else config.intermediate_size[layer_id]
) )
rope_theta = config.rope_parameters["rope_theta"] rope_theta, rope_scaling = get_rope_config(config)
rope_scaling = config.rope_parameters
if rope_scaling is not None and getattr( if rope_scaling is not None and getattr(
config, "original_max_position_embeddings", None config, "original_max_position_embeddings", None
): ):
+2 -2
View File
@@ -39,6 +39,7 @@ from sglang.srt.model_executor.forward_batch_info import ForwardBatch
from sglang.srt.model_loader.weight_utils import default_weight_loader from sglang.srt.model_loader.weight_utils import default_weight_loader
from sglang.srt.models.llama import LlamaMLP as LoopCoderMLP from sglang.srt.models.llama import LlamaMLP as LoopCoderMLP
from sglang.srt.utils import add_prefix, make_layers from sglang.srt.utils import add_prefix, make_layers
from sglang.srt.utils.hf_transformers_utils import get_rope_config
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@@ -166,8 +167,7 @@ class LoopCoderAttention(nn.Module):
prefix=add_prefix("o_proj", prefix), prefix=add_prefix("o_proj", prefix),
) )
rope_theta = config.rope_parameters["rope_theta"] rope_theta, rope_scaling = get_rope_config(config)
rope_scaling = config.rope_parameters
max_position_embeddings = getattr( max_position_embeddings = getattr(
config, "max_position_embeddings", max_position config, "max_position_embeddings", max_position
) )
+4 -2
View File
@@ -84,6 +84,7 @@ from sglang.srt.utils import (
is_npu, is_npu,
make_layers, make_layers,
) )
from sglang.srt.utils.hf_transformers_utils import get_rope_config
LoraConfig = None LoraConfig = None
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@@ -486,12 +487,13 @@ class LLaDA2MoeAttention(nn.Module):
self.rotary_dim = config.rotary_dim self.rotary_dim = config.rotary_dim
else: else:
self.rotary_dim = self.head_dim self.rotary_dim = self.head_dim
rope_theta, rope_scaling = get_rope_config(config)
self.rotary_emb = get_rope( self.rotary_emb = get_rope(
self.head_dim, self.head_dim,
rotary_dim=self.rotary_dim, rotary_dim=self.rotary_dim,
max_position=config.max_position_embeddings, max_position=config.max_position_embeddings,
base=config.rope_parameters["rope_theta"], base=rope_theta,
rope_scaling=config.rope_parameters, rope_scaling=rope_scaling,
) )
self.attn = RadixAttention( self.attn = RadixAttention(
+2 -2
View File
@@ -38,6 +38,7 @@ from sglang.srt.layers.vocab_parallel_embedding import (
from sglang.srt.model_executor.forward_batch_info import ForwardBatch from sglang.srt.model_executor.forward_batch_info import ForwardBatch
from sglang.srt.model_loader.weight_utils import default_weight_loader from sglang.srt.model_loader.weight_utils import default_weight_loader
from sglang.srt.utils import add_prefix from sglang.srt.utils import add_prefix
from sglang.srt.utils.hf_transformers_utils import get_rope_config
class MiniCPMMLP(nn.Module): class MiniCPMMLP(nn.Module):
@@ -176,8 +177,7 @@ class MiniCPMDecoderLayer(nn.Module):
super().__init__() super().__init__()
self.config = config self.config = config
self.hidden_size = config.hidden_size self.hidden_size = config.hidden_size
rope_theta = config.rope_parameters["rope_theta"] rope_theta, rope_scaling = get_rope_config(config)
rope_scaling = config.rope_parameters
max_position_embeddings = getattr(config, "max_position_embeddings", 8192) max_position_embeddings = getattr(config, "max_position_embeddings", 8192)
self.self_attn = MiniCPMAttention( self.self_attn = MiniCPMAttention(
hidden_size=self.hidden_size, hidden_size=self.hidden_size,
+2 -2
View File
@@ -40,6 +40,7 @@ from sglang.srt.layers.vocab_parallel_embedding import (
from sglang.srt.model_executor.forward_batch_info import ForwardBatch from sglang.srt.model_executor.forward_batch_info import ForwardBatch
from sglang.srt.model_loader.weight_utils import default_weight_loader from sglang.srt.model_loader.weight_utils import default_weight_loader
from sglang.srt.utils import add_prefix, is_cuda from sglang.srt.utils import add_prefix, is_cuda
from sglang.srt.utils.hf_transformers_utils import get_rope_config
if is_cuda(): if is_cuda():
from sgl_kernel import bmm_fp8 as _raw_bmm_fp8 from sgl_kernel import bmm_fp8 as _raw_bmm_fp8
@@ -305,8 +306,7 @@ class MiniCPM3DecoderLayer(nn.Module):
super().__init__() super().__init__()
self.config = config self.config = config
self.hidden_size = config.hidden_size self.hidden_size = config.hidden_size
rope_theta = config.rope_parameters["rope_theta"] rope_theta, rope_scaling = get_rope_config(config)
rope_scaling = config.rope_parameters
max_position_embeddings = getattr(config, "max_position_embeddings", 8192) max_position_embeddings = getattr(config, "max_position_embeddings", 8192)
self.self_attn = MiniCPM3AttentionMLA( self.self_attn = MiniCPM3AttentionMLA(
config=config, config=config,
+2 -2
View File
@@ -35,6 +35,7 @@ from sglang.srt.layers.vocab_parallel_embedding import (
from sglang.srt.model_executor.forward_batch_info import ForwardBatch, PPProxyTensors from sglang.srt.model_executor.forward_batch_info import ForwardBatch, PPProxyTensors
from sglang.srt.model_loader.weight_utils import default_weight_loader from sglang.srt.model_loader.weight_utils import default_weight_loader
from sglang.srt.utils import add_prefix, make_layers from sglang.srt.utils import add_prefix, make_layers
from sglang.srt.utils.hf_transformers_utils import get_rope_config
class OrionMLP(nn.Module): class OrionMLP(nn.Module):
@@ -165,8 +166,7 @@ class OrionDecoderLayer(nn.Module):
) -> None: ) -> None:
super().__init__() super().__init__()
self.hidden_size = config.hidden_size self.hidden_size = config.hidden_size
rope_theta = config.rope_parameters["rope_theta"] rope_theta, rope_scaling = get_rope_config(config)
rope_scaling = config.rope_parameters
max_position_embeddings = getattr(config, "max_position_embeddings", 8192) max_position_embeddings = getattr(config, "max_position_embeddings", 8192)
self.self_attn = OrionAttention( self.self_attn = OrionAttention(
hidden_size=self.hidden_size, hidden_size=self.hidden_size,
+2 -2
View File
@@ -40,6 +40,7 @@ from sglang.srt.layers.vocab_parallel_embedding import (
from sglang.srt.model_executor.forward_batch_info import ForwardBatch from sglang.srt.model_executor.forward_batch_info import ForwardBatch
from sglang.srt.model_loader.weight_utils import default_weight_loader from sglang.srt.model_loader.weight_utils import default_weight_loader
from sglang.srt.utils import add_prefix from sglang.srt.utils import add_prefix
from sglang.srt.utils.hf_transformers_utils import get_rope_config
class QWenMLP(nn.Module): class QWenMLP(nn.Module):
@@ -162,8 +163,7 @@ class QWenBlock(nn.Module):
super().__init__() super().__init__()
self.ln_1 = RMSNorm(config.hidden_size, eps=config.layer_norm_epsilon) self.ln_1 = RMSNorm(config.hidden_size, eps=config.layer_norm_epsilon)
rope_theta = config.rope_parameters["rope_theta"] rope_theta, rope_scaling = get_rope_config(config)
rope_scaling = config.rope_parameters
self.attn = QWenAttention( self.attn = QWenAttention(
config.hidden_size, config.hidden_size,
config.num_attention_heads, config.num_attention_heads,
+2 -2
View File
@@ -55,6 +55,7 @@ from sglang.srt.model_loader.weight_utils import (
kv_cache_scales_loader, kv_cache_scales_loader,
) )
from sglang.srt.utils import add_prefix, make_layers from sglang.srt.utils import add_prefix, make_layers
from sglang.srt.utils.hf_transformers_utils import get_rope_config
class SolarMLP(nn.Module): class SolarMLP(nn.Module):
@@ -194,8 +195,7 @@ class SolarDecoderLayer(nn.Module):
) -> None: ) -> None:
super().__init__() super().__init__()
self.hidden_size = config.hidden_size self.hidden_size = config.hidden_size
rope_theta = config.rope_parameters["rope_theta"] rope_theta, rope_scaling = get_rope_config(config)
rope_scaling = config.rope_parameters
if rope_scaling is not None and getattr( if rope_scaling is not None and getattr(
config, "original_max_position_embeddings", None config, "original_max_position_embeddings", None
+2 -2
View File
@@ -61,6 +61,7 @@ from sglang.srt.managers.schedule_batch import (
from sglang.srt.model_executor.forward_batch_info import ForwardBatch from sglang.srt.model_executor.forward_batch_info import ForwardBatch
from sglang.srt.model_loader.weight_utils import default_weight_loader from sglang.srt.model_loader.weight_utils import default_weight_loader
from sglang.srt.utils import add_prefix, log_info_on_rank0, make_layers from sglang.srt.utils import add_prefix, log_info_on_rank0, make_layers
from sglang.srt.utils.hf_transformers_utils import get_rope_config
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@@ -290,8 +291,7 @@ class Step3TextDecoderLayer(nn.Module):
) -> None: ) -> None:
super().__init__() super().__init__()
self.hidden_size = config.hidden_size self.hidden_size = config.hidden_size
rope_theta = config.rope_parameters["rope_theta"] rope_theta, rope_scaling = get_rope_config(config)
rope_scaling = config.rope_parameters
max_position_embeddings = getattr(config, "max_position_embeddings", 8192) max_position_embeddings = getattr(config, "max_position_embeddings", 8192)
head_dim = getattr( head_dim = getattr(
config, "head_dim", config.hidden_size // config.num_attention_heads config, "head_dim", config.hidden_size // config.num_attention_heads
+2 -2
View File
@@ -41,6 +41,7 @@ from sglang.srt.layers.vocab_parallel_embedding import (
from sglang.srt.model_executor.model_runner import ForwardBatch from sglang.srt.model_executor.model_runner import ForwardBatch
from sglang.srt.model_loader.weight_utils import default_weight_loader from sglang.srt.model_loader.weight_utils import default_weight_loader
from sglang.srt.utils import add_prefix from sglang.srt.utils import add_prefix
from sglang.srt.utils.hf_transformers_utils import get_rope_config
class XverseMLP(nn.Module): class XverseMLP(nn.Module):
@@ -181,8 +182,7 @@ class XverseDecoderLayer(nn.Module):
) -> None: ) -> None:
super().__init__() super().__init__()
self.hidden_size = config.hidden_size self.hidden_size = config.hidden_size
rope_theta = config.rope_parameters["rope_theta"] rope_theta, rope_scaling = get_rope_config(config)
rope_scaling = config.rope_parameters
if rope_scaling is not None and getattr( if rope_scaling is not None and getattr(
config, "original_max_position_embeddings", None config, "original_max_position_embeddings", None
): ):
+2 -2
View File
@@ -49,6 +49,7 @@ from sglang.srt.layers.vocab_parallel_embedding import (
from sglang.srt.model_executor.forward_batch_info import ForwardBatch from sglang.srt.model_executor.forward_batch_info import ForwardBatch
from sglang.srt.model_loader.weight_utils import default_weight_loader from sglang.srt.model_loader.weight_utils import default_weight_loader
from sglang.srt.utils import add_prefix, is_npu from sglang.srt.utils import add_prefix, is_npu
from sglang.srt.utils.hf_transformers_utils import get_rope_config
class XverseMLP(nn.Module): class XverseMLP(nn.Module):
@@ -291,8 +292,7 @@ class XverseDecoderLayer(nn.Module):
) -> None: ) -> None:
super().__init__() super().__init__()
self.hidden_size = config.hidden_size self.hidden_size = config.hidden_size
rope_theta = config.rope_parameters["rope_theta"] rope_theta, rope_scaling = get_rope_config(config)
rope_scaling = config.rope_parameters
max_position_embeddings = getattr(config, "max_position_embeddings", 8192) max_position_embeddings = getattr(config, "max_position_embeddings", 8192)
num_key_value_heads = getattr( num_key_value_heads = getattr(
config, "num_key_value_heads", config.num_attention_heads config, "num_key_value_heads", config.num_attention_heads