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_loader.weight_utils import default_weight_loader
from sglang.srt.utils import add_prefix, is_npu
from sglang.srt.utils.hf_transformers_utils import get_rope_config
_is_npu = is_npu()
@@ -229,7 +230,7 @@ class BaiChuanDecoderLayer(nn.Module):
):
super().__init__()
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)
self.self_attn = BaiChuanAttention(
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_loader.weight_utils import default_weight_loader
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 = is_cpu()
@@ -310,8 +311,7 @@ class DeepseekDecoderLayer(nn.Module):
) -> None:
super().__init__()
self.hidden_size = config.hidden_size
rope_theta = config.rope_parameters["rope_theta"]
rope_scaling = config.rope_parameters
rope_theta, rope_scaling = get_rope_config(config)
max_position_embeddings = getattr(config, "max_position_embeddings", 8192)
self.self_attn = DeepseekAttention(
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.llama import LlamaAttention as Ernie4Attention
from sglang.srt.utils import add_prefix, make_layers
from sglang.srt.utils.hf_transformers_utils import get_rope_config
class MoEGate(nn.Module):
@@ -155,8 +156,7 @@ class Ernie4DecoderLayer(nn.Module):
is_mtp: bool = False,
):
super().__init__()
rope_theta = config.rope_parameters["rope_theta"]
rope_scaling = config.rope_parameters
rope_theta, rope_scaling = get_rope_config(config)
rope_is_neox_style = getattr(config, "rope_is_neox_style", False)
# Self attention.
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_loader.weight_utils import default_weight_loader
from sglang.srt.utils import add_prefix
from sglang.srt.utils.hf_transformers_utils import get_rope_config
class ExaoneGatedMLP(nn.Module):
@@ -182,8 +183,7 @@ class ExaoneDecoderLayer(nn.Module):
) -> None:
super().__init__()
self.hidden_size = config.hidden_size
rope_theta = config.rope_parameters["rope_theta"]
rope_scaling = config.rope_parameters
rope_theta, rope_scaling = get_rope_config(config)
if rope_scaling is not None and getattr(
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,
)
from sglang.srt.utils import add_prefix, make_layers
from sglang.srt.utils.hf_transformers_utils import get_rope_config
Glm4Config = None
@@ -217,9 +218,10 @@ class Glm4DecoderLayer(nn.Module):
) -> None:
super().__init__()
self.hidden_size = config.hidden_size
rope_theta = config.rope_parameters["rope_theta"]
rope_scaling = config.rope_parameters
partial_rotary_factor = config.rope_parameters.get("partial_rotary_factor", 0.5)
rope_theta, rope_scaling = get_rope_config(config)
partial_rotary_factor = (rope_scaling or {}).get("partial_rotary_factor")
if partial_rotary_factor is None:
partial_rotary_factor = getattr(config, "partial_rotary_factor", 0.5)
bias = getattr(config, "attention_bias", True)
max_position_embeddings = getattr(config, "max_position_embeddings", 32768)
head_dim = getattr(config, "head_dim", None)
+5 -5
View File
@@ -94,6 +94,7 @@ from sglang.srt.utils import (
log_info_on_rank0,
make_layers,
)
from sglang.srt.utils.hf_transformers_utils import get_rope_config
_is_hip = is_hip()
_is_cuda = is_cuda()
@@ -684,11 +685,10 @@ class Glm4MoeDecoderLayer(nn.Module):
nn.Module.__init__(self)
self.hidden_size = config.hidden_size
self.config = config
rope_theta = config.rope_parameters["rope_theta"]
rope_scaling = config.rope_parameters
partial_rotary_factor = getattr(
getattr(config, "rope_parameters", None), "partial_rotary_factor", None
) or getattr(config, "partial_rotary_factor", 0.5)
rope_theta, rope_scaling = get_rope_config(config)
partial_rotary_factor = (rope_scaling or {}).get("partial_rotary_factor")
if partial_rotary_factor is None:
partial_rotary_factor = getattr(config, "partial_rotary_factor", 0.5)
max_position_embeddings = getattr(config, "max_position_embeddings", 8192)
head_dim = getattr(
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.weight_utils import default_weight_loader
from sglang.srt.utils import add_prefix, is_npu
from sglang.srt.utils.hf_transformers_utils import get_rope_config
_is_npu = is_npu()
@@ -477,11 +478,7 @@ class Grok1DecoderLayer(nn.Module):
self.layer_id = layer_id
self.alt_stream = alt_stream or torch.cuda.Stream()
rope_params = getattr(config, "rope_parameters", None)
if rope_params and "rope_theta" in rope_params:
rope_theta = rope_params["rope_theta"]
else:
rope_theta = getattr(config, "rope_theta", 10000)
rope_theta, _ = get_rope_config(config)
self.self_attn = Grok1Attention(
config=config,
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,
)
from sglang.srt.utils import is_hip
from sglang.srt.utils.hf_transformers_utils import get_rope_config
expert_distribution_recorder = ExpertDistributionRecorder()
@@ -402,8 +403,7 @@ class HunYuanDecoderLayer(nn.Module):
if isinstance(config.intermediate_size, int)
else config.intermediate_size[layer_id]
)
rope_theta = config.rope_parameters["rope_theta"]
rope_scaling = config.rope_parameters
rope_theta, rope_scaling = get_rope_config(config)
if rope_scaling is not None and getattr(
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.models.llama import LlamaMLP as LoopCoderMLP
from sglang.srt.utils import add_prefix, make_layers
from sglang.srt.utils.hf_transformers_utils import get_rope_config
logger = logging.getLogger(__name__)
@@ -166,8 +167,7 @@ class LoopCoderAttention(nn.Module):
prefix=add_prefix("o_proj", prefix),
)
rope_theta = config.rope_parameters["rope_theta"]
rope_scaling = config.rope_parameters
rope_theta, rope_scaling = get_rope_config(config)
max_position_embeddings = getattr(
config, "max_position_embeddings", max_position
)
+4 -2
View File
@@ -84,6 +84,7 @@ from sglang.srt.utils import (
is_npu,
make_layers,
)
from sglang.srt.utils.hf_transformers_utils import get_rope_config
LoraConfig = None
logger = logging.getLogger(__name__)
@@ -486,12 +487,13 @@ class LLaDA2MoeAttention(nn.Module):
self.rotary_dim = config.rotary_dim
else:
self.rotary_dim = self.head_dim
rope_theta, rope_scaling = get_rope_config(config)
self.rotary_emb = get_rope(
self.head_dim,
rotary_dim=self.rotary_dim,
max_position=config.max_position_embeddings,
base=config.rope_parameters["rope_theta"],
rope_scaling=config.rope_parameters,
base=rope_theta,
rope_scaling=rope_scaling,
)
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_loader.weight_utils import default_weight_loader
from sglang.srt.utils import add_prefix
from sglang.srt.utils.hf_transformers_utils import get_rope_config
class MiniCPMMLP(nn.Module):
@@ -176,8 +177,7 @@ class MiniCPMDecoderLayer(nn.Module):
super().__init__()
self.config = config
self.hidden_size = config.hidden_size
rope_theta = config.rope_parameters["rope_theta"]
rope_scaling = config.rope_parameters
rope_theta, rope_scaling = get_rope_config(config)
max_position_embeddings = getattr(config, "max_position_embeddings", 8192)
self.self_attn = MiniCPMAttention(
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_loader.weight_utils import default_weight_loader
from sglang.srt.utils import add_prefix, is_cuda
from sglang.srt.utils.hf_transformers_utils import get_rope_config
if is_cuda():
from sgl_kernel import bmm_fp8 as _raw_bmm_fp8
@@ -305,8 +306,7 @@ class MiniCPM3DecoderLayer(nn.Module):
super().__init__()
self.config = config
self.hidden_size = config.hidden_size
rope_theta = config.rope_parameters["rope_theta"]
rope_scaling = config.rope_parameters
rope_theta, rope_scaling = get_rope_config(config)
max_position_embeddings = getattr(config, "max_position_embeddings", 8192)
self.self_attn = MiniCPM3AttentionMLA(
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_loader.weight_utils import default_weight_loader
from sglang.srt.utils import add_prefix, make_layers
from sglang.srt.utils.hf_transformers_utils import get_rope_config
class OrionMLP(nn.Module):
@@ -165,8 +166,7 @@ class OrionDecoderLayer(nn.Module):
) -> None:
super().__init__()
self.hidden_size = config.hidden_size
rope_theta = config.rope_parameters["rope_theta"]
rope_scaling = config.rope_parameters
rope_theta, rope_scaling = get_rope_config(config)
max_position_embeddings = getattr(config, "max_position_embeddings", 8192)
self.self_attn = OrionAttention(
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_loader.weight_utils import default_weight_loader
from sglang.srt.utils import add_prefix
from sglang.srt.utils.hf_transformers_utils import get_rope_config
class QWenMLP(nn.Module):
@@ -162,8 +163,7 @@ class QWenBlock(nn.Module):
super().__init__()
self.ln_1 = RMSNorm(config.hidden_size, eps=config.layer_norm_epsilon)
rope_theta = config.rope_parameters["rope_theta"]
rope_scaling = config.rope_parameters
rope_theta, rope_scaling = get_rope_config(config)
self.attn = QWenAttention(
config.hidden_size,
config.num_attention_heads,
+2 -2
View File
@@ -55,6 +55,7 @@ from sglang.srt.model_loader.weight_utils import (
kv_cache_scales_loader,
)
from sglang.srt.utils import add_prefix, make_layers
from sglang.srt.utils.hf_transformers_utils import get_rope_config
class SolarMLP(nn.Module):
@@ -194,8 +195,7 @@ class SolarDecoderLayer(nn.Module):
) -> None:
super().__init__()
self.hidden_size = config.hidden_size
rope_theta = config.rope_parameters["rope_theta"]
rope_scaling = config.rope_parameters
rope_theta, rope_scaling = get_rope_config(config)
if rope_scaling is not None and getattr(
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_loader.weight_utils import default_weight_loader
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__)
@@ -290,8 +291,7 @@ class Step3TextDecoderLayer(nn.Module):
) -> None:
super().__init__()
self.hidden_size = config.hidden_size
rope_theta = config.rope_parameters["rope_theta"]
rope_scaling = config.rope_parameters
rope_theta, rope_scaling = get_rope_config(config)
max_position_embeddings = getattr(config, "max_position_embeddings", 8192)
head_dim = getattr(
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_loader.weight_utils import default_weight_loader
from sglang.srt.utils import add_prefix
from sglang.srt.utils.hf_transformers_utils import get_rope_config
class XverseMLP(nn.Module):
@@ -181,8 +182,7 @@ class XverseDecoderLayer(nn.Module):
) -> None:
super().__init__()
self.hidden_size = config.hidden_size
rope_theta = config.rope_parameters["rope_theta"]
rope_scaling = config.rope_parameters
rope_theta, rope_scaling = get_rope_config(config)
if rope_scaling is not None and getattr(
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_loader.weight_utils import default_weight_loader
from sglang.srt.utils import add_prefix, is_npu
from sglang.srt.utils.hf_transformers_utils import get_rope_config
class XverseMLP(nn.Module):
@@ -291,8 +292,7 @@ class XverseDecoderLayer(nn.Module):
) -> None:
super().__init__()
self.hidden_size = config.hidden_size
rope_theta = config.rope_parameters["rope_theta"]
rope_scaling = config.rope_parameters
rope_theta, rope_scaling = get_rope_config(config)
max_position_embeddings = getattr(config, "max_position_embeddings", 8192)
num_key_value_heads = getattr(
config, "num_key_value_heads", config.num_attention_heads