Compare commits
1 Commits
d8e66b034b
...
c86e25bae7
| Author | SHA1 | Date |
|---|---|---|
|
|
c86e25bae7 |
|
|
@ -91,7 +91,4 @@ def main():
|
||||||
print(f'\n[Speed]: {gen_tokens / (time.time() - st):.2f} tokens/s\n\n') if args.show_speed else print('\n\n')
|
print(f'\n[Speed]: {gen_tokens / (time.time() - st):.2f} tokens/s\n\n') if args.show_speed else print('\n\n')
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
try:
|
main()
|
||||||
main()
|
|
||||||
except (EOFError, KeyboardInterrupt):
|
|
||||||
print()
|
|
||||||
|
|
@ -158,12 +158,7 @@ class MOEFeedForward(nn.Module):
|
||||||
x_flat = x.view(-1, hidden_dim)
|
x_flat = x.view(-1, hidden_dim)
|
||||||
scores = F.softmax(self.gate(x_flat), dim=-1)
|
scores = F.softmax(self.gate(x_flat), dim=-1)
|
||||||
topk_weight, topk_idx = torch.topk(scores, k=self.config.num_experts_per_tok, dim=-1, sorted=False)
|
topk_weight, topk_idx = torch.topk(scores, k=self.config.num_experts_per_tok, dim=-1, sorted=False)
|
||||||
if self.config.norm_topk_prob:
|
if self.config.norm_topk_prob: topk_weight = topk_weight / (topk_weight.sum(dim=-1, keepdim=True) + 1e-20)
|
||||||
if self.config.num_experts_per_tok > 1:
|
|
||||||
topk_weight = topk_weight / (topk_weight.sum(dim=-1, keepdim=True) + 1e-20)
|
|
||||||
else:
|
|
||||||
top1 = torch.topk(F.softmax(self.gate(x_flat.detach()), dim=-1), k=1, dim=-1, sorted=False)[0]
|
|
||||||
topk_weight = top1 - top1.detach() + 1.0 # k=1: 1.0 forward on purpose, gradient via straight-through
|
|
||||||
y = torch.zeros_like(x_flat)
|
y = torch.zeros_like(x_flat)
|
||||||
for i, expert in enumerate(self.experts):
|
for i, expert in enumerate(self.experts):
|
||||||
mask = (topk_idx == i)
|
mask = (topk_idx == i)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue