anthonym21 commited on
Commit
3bcd5f6
·
verified ·
1 Parent(s): 3c5c4db

Add configuration_eve.py from base model

Browse files
Files changed (1) hide show
  1. configuration_eve.py +72 -50
configuration_eve.py CHANGED
@@ -1,50 +1,72 @@
1
- # configuration_eve.py
2
- from __future__ import annotations
3
-
4
- from typing import Any, Optional
5
- from transformers import PretrainedConfig
6
-
7
-
8
- class EveConfig(PretrainedConfig):
9
- model_type = "eve_moe"
10
- attribute_map = {
11
- "num_hidden_layers": "n_layer",
12
- "num_attention_heads": "n_head",
13
- "hidden_size": "n_embd",
14
- "max_position_embeddings": "block_size",
15
- }
16
-
17
- def __init__(
18
- self,
19
- vocab_size: int = 50304,
20
- n_layer: int = 12,
21
- n_embd: int = 512,
22
- n_head: int = 8,
23
- head_dim: int = 64,
24
- block_size: int = 2048,
25
- num_experts: int = 8,
26
- top_k: int = 2,
27
- expert_intermediate_size: int = 1408,
28
- shared_expert_intermediate_size: int = 1408,
29
- router_aux_loss_coef: float = 0.01,
30
- use_checkpointing: bool = False,
31
- rope_theta: float = 10000.0,
32
- **kwargs: Any,
33
- ):
34
- super().__init__(**kwargs)
35
- self.vocab_size = vocab_size
36
- self.n_layer = n_layer
37
- self.n_embd = n_embd
38
- self.n_head = n_head
39
- self.head_dim = head_dim
40
- self.block_size = block_size
41
- self.num_experts = num_experts
42
- self.top_k = top_k
43
- self.expert_intermediate_size = expert_intermediate_size
44
- self.shared_expert_intermediate_size = shared_expert_intermediate_size
45
- self.router_aux_loss_coef = router_aux_loss_coef
46
- self.use_checkpointing = use_checkpointing
47
- self.rope_theta = rope_theta
48
-
49
-
50
- __all__ = ["EveConfig"]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """
2
+ Eve-2-MoE Configuration
3
+ ========================
4
+ HuggingFace-compatible configuration for the Eve-2-MoE architecture.
5
+
6
+ Usage:
7
+ from transformers import AutoConfig
8
+ config = AutoConfig.from_pretrained("anthonym21/Eve-2-MoE-272M", trust_remote_code=True)
9
+ """
10
+
11
+ from transformers import PretrainedConfig
12
+
13
+
14
+ class EveConfig(PretrainedConfig):
15
+ """Configuration for the Eve-2-MoE model.
16
+
17
+ This is a DeepSeek-V3 style Mixture of Experts architecture with a shared
18
+ expert, top-k routed experts, RoPE positional encoding, and SwiGLU activations.
19
+
20
+ Args:
21
+ vocab_size: Vocabulary size (padded for efficiency). Default: 50304.
22
+ n_layer: Number of transformer blocks. Default: 12.
23
+ n_embd: Hidden dimension / embedding size. Default: 512.
24
+ n_head: Number of attention heads. Default: 8.
25
+ head_dim: Dimension per attention head. Default: 64.
26
+ block_size: Maximum sequence length (context window). Default: 2048.
27
+ num_experts: Number of routed MoE experts. Default: 8.
28
+ top_k: Number of experts activated per token. Default: 2.
29
+ expert_intermediate_size: FFN hidden dim for each expert (SwiGLU). Default: 1408.
30
+ shared_expert_intermediate_size: FFN hidden dim for the shared expert. Default: 1408.
31
+ router_aux_loss_coef: Weight of the load-balancing auxiliary loss. Default: 0.01.
32
+ rope_theta: Base frequency for RoPE. Default: 10000.0.
33
+ use_checkpointing: Enable gradient checkpointing to save VRAM. Default: False.
34
+ """
35
+
36
+ model_type = "eve-moe"
37
+
38
+ def __init__(
39
+ self,
40
+ vocab_size: int = 50304,
41
+ n_layer: int = 12,
42
+ n_embd: int = 512,
43
+ n_head: int = 8,
44
+ head_dim: int = 64,
45
+ block_size: int = 2048,
46
+ num_experts: int = 8,
47
+ top_k: int = 2,
48
+ expert_intermediate_size: int = 1408,
49
+ shared_expert_intermediate_size: int = 1408,
50
+ router_aux_loss_coef: float = 0.01,
51
+ rope_theta: float = 10000.0,
52
+ use_checkpointing: bool = False,
53
+ **kwargs,
54
+ ):
55
+ self.vocab_size = vocab_size
56
+ self.n_layer = n_layer
57
+ self.n_embd = n_embd
58
+ self.n_head = n_head
59
+ self.head_dim = head_dim
60
+ self.block_size = block_size
61
+ self.num_experts = num_experts
62
+ self.top_k = top_k
63
+ self.expert_intermediate_size = expert_intermediate_size
64
+ self.shared_expert_intermediate_size = shared_expert_intermediate_size
65
+ self.router_aux_loss_coef = router_aux_loss_coef
66
+ self.rope_theta = rope_theta
67
+ self.use_checkpointing = use_checkpointing
68
+
69
+ # Default tie_word_embeddings to True (Eve-2 ties embedding + lm_head)
70
+ kwargs.setdefault("tie_word_embeddings", True)
71
+
72
+ super().__init__(**kwargs)