Kernels
danieldk HF Staff commited on
Commit
3c64348
·
1 Parent(s): ef18c25

Fix Llama expert layout

Browse files
Files changed (1) hide show
  1. torch-ext/moe/layers.py +10 -0
torch-ext/moe/layers.py CHANGED
@@ -16,6 +16,14 @@ def _llama4_topk(
16
  return topk_weights, topk_ids
17
 
18
 
 
 
 
 
 
 
 
 
19
  class Llama4TextMoe(nn.Module):
20
  experts: nn.Module
21
  router: nn.Linear
@@ -25,6 +33,8 @@ class Llama4TextMoe(nn.Module):
25
  def forward(self, hidden_states: torch.Tensor) -> torch.Tensor:
26
  hidden_states = hidden_states.reshape(-1, hidden_states.shape[-1])
27
 
 
 
28
  router_logits = self.router(hidden_states)
29
  out = fused_moe(
30
  hidden_states,
 
16
  return topk_weights, topk_ids
17
 
18
 
19
+ def _fix_llama4_experts(hidden_states: torch.Tensor, experts: nn.Module):
20
+ if experts.gate_up_proj.shape[-1] != hidden_states.shape[-1]:
21
+ experts.gate_up_proj = nn.Parameter(
22
+ experts.gate_up_proj.transpose(1, 2).contiguous()
23
+ )
24
+ experts.down_proj = nn.Parameter(experts.down_proj.transpose(1, 2).contiguous())
25
+
26
+
27
  class Llama4TextMoe(nn.Module):
28
  experts: nn.Module
29
  router: nn.Linear
 
33
  def forward(self, hidden_states: torch.Tensor) -> torch.Tensor:
34
  hidden_states = hidden_states.reshape(-1, hidden_states.shape[-1])
35
 
36
+ _fix_llama4_experts(hidden_states, self.experts)
37
+
38
  router_logits = self.router(hidden_states)
39
  out = fused_moe(
40
  hidden_states,