add weightless qk norm to RMSNorm interface for Llama 4 (#12813)
Co-authored-by: Brayden Zhong <b8zhong@users.noreply.github.com>
This commit is contained in:
@@ -84,14 +84,19 @@ class RMSNorm(MultiPlatformOp):
|
|||||||
var_hidden_size: Optional[int] = None,
|
var_hidden_size: Optional[int] = None,
|
||||||
cast_x_before_out_mul: bool = False,
|
cast_x_before_out_mul: bool = False,
|
||||||
fp32_residual: bool = False,
|
fp32_residual: bool = False,
|
||||||
|
has_weight: bool = True,
|
||||||
weight_dtype: Optional = None,
|
weight_dtype: Optional = None,
|
||||||
override_orig_dtype: Optional = None,
|
override_orig_dtype: Optional = None,
|
||||||
) -> None:
|
) -> None:
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
self.has_weight = has_weight
|
||||||
self.cast_x_before_out_mul = cast_x_before_out_mul
|
self.cast_x_before_out_mul = cast_x_before_out_mul
|
||||||
self.fp32_residual = fp32_residual
|
self.fp32_residual = fp32_residual
|
||||||
self.override_orig_dtype = override_orig_dtype
|
self.override_orig_dtype = override_orig_dtype
|
||||||
self.weight = nn.Parameter(torch.ones(hidden_size, dtype=weight_dtype))
|
if self.has_weight:
|
||||||
|
self.weight = nn.Parameter(torch.ones(hidden_size, dtype=weight_dtype))
|
||||||
|
else:
|
||||||
|
self.weight = torch.ones(hidden_size, dtype=weight_dtype)
|
||||||
self.variance_epsilon = eps
|
self.variance_epsilon = eps
|
||||||
self.hidden_size = hidden_size
|
self.hidden_size = hidden_size
|
||||||
self.variance_size_override = (
|
self.variance_size_override = (
|
||||||
@@ -351,7 +356,7 @@ class LayerNorm(MultiPlatformOp):
|
|||||||
return F.layer_norm(
|
return F.layer_norm(
|
||||||
x,
|
x,
|
||||||
(self.hidden_size,),
|
(self.hidden_size,),
|
||||||
weight=self.weight,
|
weight=weight,
|
||||||
bias=bias,
|
bias=bias,
|
||||||
eps=self.variance_epsilon,
|
eps=self.variance_epsilon,
|
||||||
).to(orig_dtype)
|
).to(orig_dtype)
|
||||||
|
|||||||
@@ -242,6 +242,7 @@ class Llama4Attention(nn.Module):
|
|||||||
RMSNorm(
|
RMSNorm(
|
||||||
hidden_size=self.head_dim,
|
hidden_size=self.head_dim,
|
||||||
eps=config.rms_norm_eps,
|
eps=config.rms_norm_eps,
|
||||||
|
has_weight=False,
|
||||||
)
|
)
|
||||||
if self.use_qk_norm
|
if self.use_qk_norm
|
||||||
else None
|
else None
|
||||||
|
|||||||
Reference in New Issue
Block a user