MCPcopy Create free account
hub / github.com/OpenSparseLLMs/Linear-MoE / compute_weight_and_optimizer_memory

Function compute_weight_and_optimizer_memory

linear_moe/utils.py:22–132  ·  view source on GitHub ↗
(args, verbose=False)

Source from the content-addressed store, hash-verified

20 return wrapper
21
22def compute_weight_and_optimizer_memory(args, verbose=False):
23 # Attention projection size.
24 query_projection_size = args.kv_channels * args.num_attention_heads
25 query_projection_to_hidden_size_ratio = query_projection_size / args.hidden_size
26 # Group Query Attention.
27 if not args.group_query_attention:
28 args.num_query_groups = args.num_attention_heads
29 # MoE.
30 num_experts = 1 if args.num_experts is None else args.num_experts
31 gated_linear_multiplier = 3 / 2 if args.swiglu else 1
32
33 # Fine-grained Experts + Shared Experts
34 if args.moe_ffn_hidden_size is not None:
35 intermediate_hidden_size = args.moe_ffn_hidden_size
36 else:
37 intermediate_hidden_size = args.ffn_hidden_size
38
39 shared_moe_ffn_hidden_size = args.shared_moe_ffn_hidden_size if args.shared_moe_ffn_hidden_size else 0
40
41 num_parameters_in_transformer_layers = (
42 2
43 * args.num_layers
44 * args.hidden_size
45 * args.hidden_size
46 * (
47 # Attention.
48 (
49 (1 + (args.num_query_groups / args.num_attention_heads))
50 * query_projection_to_hidden_size_ratio
51 )
52 # MLP.
53 + ((intermediate_hidden_size / args.hidden_size) * num_experts * gated_linear_multiplier + (shared_moe_ffn_hidden_size / args.hidden_size) * gated_linear_multiplier)
54 # Transformer layernorms.
55 + (2 / args.hidden_size)
56 # Final layernorm.
57 + (1 / (args.num_layers * args.hidden_size))
58 )
59 )
60 num_parameters_in_transformer_moe_act_layers = (
61 2
62 * args.num_layers
63 * args.hidden_size
64 * args.hidden_size
65 * (
66 # Attention.
67 (
68 (1 + (args.num_query_groups / args.num_attention_heads))
69 * query_projection_to_hidden_size_ratio
70 )
71 # MLP.
72 + ((intermediate_hidden_size / args.hidden_size) * args.moe_router_topk * gated_linear_multiplier + (shared_moe_ffn_hidden_size / args.hidden_size) * gated_linear_multiplier)
73 # Transformer layernorms.
74 + (2 / args.hidden_size)
75 # Final layernorm.
76 + (1 / (args.num_layers * args.hidden_size))
77 )
78 )
79

Callers 2

model_providerFunction · 0.90
model_providerFunction · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected