rkazants commited on
Commit
3e51d74
·
verified ·
1 Parent(s): 7d7cf34

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +80 -3
README.md CHANGED
@@ -1,3 +1,80 @@
1
- ---
2
- license: apache-2.0
3
- ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ ---
4
+
5
+
6
+ ```python
7
+ """Create a tiny random Glm4Moe model for testing optimum-intel export."""
8
+
9
+ import torch
10
+ from transformers import AutoTokenizer
11
+ from transformers.models.glm4_moe.modeling_glm4_moe import Glm4MoeForCausalLM, Glm4MoeConfig
12
+
13
+
14
+ def create_tiny_glm4_moe():
15
+ config = Glm4MoeConfig(
16
+ vocab_size=1000,
17
+ hidden_size=64,
18
+ intermediate_size=128,
19
+ num_hidden_layers=2,
20
+ num_attention_heads=4,
21
+ num_key_value_heads=4,
22
+ hidden_act="silu",
23
+ max_position_embeddings=256,
24
+ rms_norm_eps=1e-5,
25
+ n_routed_experts=4,
26
+ n_shared_experts=1,
27
+ num_experts_per_tok=2,
28
+ moe_intermediate_size=32,
29
+ first_k_dense_replace=1,
30
+ n_group=1,
31
+ topk_group=1,
32
+ norm_topk_prob=True,
33
+ routed_scaling_factor=1.8,
34
+ topk_method="noaux_tc",
35
+ rope_theta=10000,
36
+ tie_word_embeddings=False,
37
+ )
38
+
39
+ model = Glm4MoeForCausalLM(config)
40
+ model.eval()
41
+
42
+ # Verify model works
43
+ input_ids = torch.randint(0, 1000, (1, 10))
44
+ with torch.no_grad():
45
+ outputs = model(input_ids)
46
+ print(f"Model output shape: {outputs.logits.shape}")
47
+ print(f"Num parameters: {sum(p.numel() for p in model.parameters()):,}")
48
+
49
+ # Save model
50
+ output_dir = "tiny-random-glm4-moe"
51
+ model.save_pretrained(output_dir)
52
+
53
+ # Create and save a simple tokenizer
54
+ from transformers import PreTrainedTokenizerFast
55
+ from tokenizers import Tokenizer, models, pre_tokenizers
56
+
57
+ tokenizer_model = models.WordPiece(
58
+ vocab={f"token_{i}": i for i in range(1000)},
59
+ unk_token="token_0",
60
+ )
61
+ base_tokenizer = Tokenizer(tokenizer_model)
62
+ base_tokenizer.pre_tokenizer = pre_tokenizers.Whitespace()
63
+
64
+ tokenizer = PreTrainedTokenizerFast(
65
+ tokenizer_object=base_tokenizer,
66
+ unk_token="token_0",
67
+ pad_token="token_0",
68
+ eos_token="token_1",
69
+ bos_token="token_2",
70
+ )
71
+ tokenizer.save_pretrained(output_dir)
72
+
73
+ print(f"Model saved to {output_dir}")
74
+ return model, config
75
+
76
+
77
+ if __name__ == "__main__":
78
+ create_tiny_glm4_moe()
79
+
80
+ ```