Skip to content

Commit 1a03dd4

Browse files
[Bugfix] Fix dynamic rotary embedding (#20343)
Signed-off-by: DarkLight1337 <tlleungac@connect.ust.hk>
1 parent 27b8017 commit 1a03dd4

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

vllm/model_executor/layers/rotary_embedding.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1963,16 +1963,19 @@ def get_rope(
19631963
scaling_factor, dtype,
19641964
mixed_b)
19651965
elif scaling_type == "dynamic":
1966-
scaling_factor = rope_scaling["factor"]
1967-
scaling_alpha = rope_scaling["alpha"]
1968-
if scaling_alpha:
1966+
if "alpha" in rope_scaling:
1967+
scaling_alpha = rope_scaling["alpha"]
19691968
rotary_emb = DynamicNTKAlphaRotaryEmbedding(
19701969
head_size, rotary_dim, max_position, base, is_neox_style,
19711970
scaling_alpha, dtype)
1972-
else:
1971+
elif "factor" in rope_scaling:
1972+
scaling_factor = rope_scaling["factor"]
19731973
rotary_emb = DynamicNTKScalingRotaryEmbedding(
19741974
head_size, rotary_dim, max_position, base, is_neox_style,
19751975
scaling_factor, dtype)
1976+
else:
1977+
raise ValueError("Dynamic rope scaling must contain either "
1978+
"'alpha' or 'factor' field")
19761979
elif scaling_type == "yarn":
19771980
scaling_factor = rope_scaling["factor"]
19781981
original_max_position = rope_scaling[

0 commit comments

Comments
 (0)