PyTorch
Safetensors
mistral
davda54 commited on
Commit
4584147
·
verified ·
1 Parent(s): 41b59ba

Upload folder using huggingface_hub

Browse files
config.json ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "LlamaForCausalLM"
4
+ ],
5
+ "bos_token_id": 1,
6
+ "eos_token_id": 2,
7
+ "hidden_act": "silu",
8
+ "hidden_size": 2048,
9
+ "initializer_range": 0.02,
10
+ "intermediate_size": 5504,
11
+ "max_position_embeddings": 2048,
12
+ "model_type": "llama",
13
+ "num_attention_heads": 32,
14
+ "num_hidden_layers": 27,
15
+ "num_key_value_heads": 32,
16
+ "pretraining_tp": 1,
17
+ "rms_norm_eps": 1e-05,
18
+ "rope_scaling": null,
19
+ "tie_word_embeddings": false,
20
+ "torch_dtype": "bfloat16",
21
+ "transformers_version": "4.31.0.dev0",
22
+ "use_cache": true,
23
+ "vocab_size": 32768
24
+ }
convert_weights.py ADDED
@@ -0,0 +1,81 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import torch
2
+ from tqdm import tqdm
3
+
4
+
5
+ input_dir_path = "/scratch/project_465000144/dasamuel/looped-lm/mimir_core_cold/global_step64000"
6
+ output_dir_path = "/scratch/project_465000144/dasamuel/looped-lm/mimir_core_cold_hf"
7
+
8
+ n_hidden = 4096
9
+ n_ffn_hidden = 14336
10
+ n_heads = 32
11
+ n_kv_heads = 8
12
+ n_layers = 32
13
+ n_tp = 2
14
+
15
+
16
+ weights = {}
17
+
18
+ # embedding
19
+ embedding_weights = []
20
+ for i in range(n_tp):
21
+ path = f"{input_dir_path}/layer_01-model_0{i}-model_states.pt"
22
+ checkpoint = torch.load(path)
23
+
24
+ embedding_weights.append(checkpoint["word_embeddings.weight"].bfloat16())
25
+
26
+ weights[f"model.embed_tokens.weight"] = torch.cat(embedding_weights, dim=0)
27
+ del embedding_weights
28
+
29
+ lm_head_weights = []
30
+ for i in range(n_tp):
31
+ path = f"{input_dir_path}/layer_{n_layers + 5}-model_0{i}-model_states.pt"
32
+ checkpoint = torch.load(path)
33
+
34
+ lm_head_weights.append(checkpoint["lm_head.weight"].bfloat16())
35
+
36
+ weights[f"lm_head.weight"] = torch.cat(lm_head_weights, dim=0)
37
+ del lm_head_weights
38
+
39
+
40
+ # transformer layers
41
+ for layer in tqdm(range(n_layers)):
42
+ q_weights, k_weights, v_weights, o_weights = [], [], [], []
43
+ up_weights, gate_weights, down_weights = [], [], []
44
+
45
+ for i in range(n_tp):
46
+ path = f"{input_dir_path}/layer_{layer+3:02d}-model_0{i}-model_states.pt"
47
+ checkpoint = torch.load(path)
48
+
49
+ weights[f"model.layers.{layer}.input_layernorm.weight"] = checkpoint["input_layernorm.weight"].bfloat16()
50
+ weights[f"model.layers.{layer}.post_attention_layernorm.weight"] = checkpoint["post_attention_layernorm.weight"].bfloat16()
51
+
52
+ kv_weight = checkpoint["self_attention.key_value.weight"].bfloat16()
53
+ k_weight, v_weight = torch.chunk(kv_weight, 2, dim=0)
54
+ k_weights.append(k_weight)
55
+ v_weights.append(v_weight)
56
+
57
+ q_weights.append(checkpoint["self_attention.query.weight"].bfloat16())
58
+ o_weights.append(checkpoint["self_attention.dense.weight"].bfloat16())
59
+ down_weights.append(checkpoint["mlp.dense_4h_to_h.weight"].bfloat16())
60
+
61
+ up_gate_weight = checkpoint["mlp.dense_h_to_4h.weight"].bfloat16()
62
+ up_weight, gate_weight = torch.chunk(up_gate_weight, 2, dim=0)
63
+ up_weights.append(up_weight)
64
+ gate_weights.append(gate_weight)
65
+
66
+ weights[f"model.layers.{layer}.self_attn.q_proj.weight"] = torch.cat(q_weights, dim=0)
67
+ weights[f"model.layers.{layer}.self_attn.k_proj.weight"] = torch.cat(k_weights, dim=0)
68
+ weights[f"model.layers.{layer}.self_attn.v_proj.weight"] = torch.cat(v_weights, dim=0)
69
+ weights[f"model.layers.{layer}.self_attn.o_proj.weight"] = torch.cat(o_weights, dim=1)
70
+ weights[f"model.layers.{layer}.mlp.up_proj.weight"] = torch.cat(up_weights, dim=0)
71
+ weights[f"model.layers.{layer}.mlp.gate_proj.weight"] = torch.cat(gate_weights, dim=0)
72
+ weights[f"model.layers.{layer}.mlp.down_proj.weight"] = torch.cat(down_weights, dim=1)
73
+
74
+
75
+ # output layer norm
76
+ path = f"{input_dir_path}/layer_{n_layers + 4}-model_00-model_states.pt"
77
+ checkpoint = torch.load(path)
78
+
79
+ weights[f"model.norm.weight"] = checkpoint["weight"].bfloat16()
80
+
81
+ torch.save(weights, f"{output_dir_path}/pytorch_model.bin")
pytorch_model.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:33e72a1eb422f5a2770d4718149ce61365f6aff1b92597964be9ec3b8f78ad19
3
+ size 14496143545
special_tokens_map.json ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ {
2
+ "bos_token": "<s>",
3
+ "eos_token": "</s>",
4
+ "pad_token": "<pad>",
5
+ "unk_token": "<unk>"
6
+ }
tokenizer.json ADDED
The diff for this file is too large to render. See raw diff
 
tokenizer_config.json ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "add_bos_token": true,
3
+ "add_eos_token": false,
4
+ "added_tokens_decoder": {
5
+ "0": {
6
+ "content": "<unk>",
7
+ "lstrip": false,
8
+ "normalized": false,
9
+ "rstrip": false,
10
+ "single_word": false,
11
+ "special": true
12
+ },
13
+ "1": {
14
+ "content": "<s>",
15
+ "lstrip": false,
16
+ "normalized": false,
17
+ "rstrip": false,
18
+ "single_word": false,
19
+ "special": true
20
+ },
21
+ "2": {
22
+ "content": "</s>",
23
+ "lstrip": false,
24
+ "normalized": false,
25
+ "rstrip": false,
26
+ "single_word": false,
27
+ "special": true
28
+ },
29
+ "3": {
30
+ "content": "<pad>",
31
+ "lstrip": false,
32
+ "normalized": false,
33
+ "rstrip": false,
34
+ "single_word": false,
35
+ "special": true
36
+ }
37
+ },
38
+ "bos_token": "<s>",
39
+ "bos_token_id": 1,
40
+ "clean_up_tokenization_spaces": false,
41
+ "eos_token": "</s>",
42
+ "eos_token_id": 2,
43
+ "model_max_length": 1000000000000000019884624838656,
44
+ "pad_token": "<pad>",
45
+ "pad_token_id": 3,
46
+ "padding_side": "right",
47
+ "tokenizer_class": "LlamaTokenizer",
48
+ "unk_token": "<unk>",
49
+ "unk_token_id": 0,
50
+ "use_default_system_prompt": false
51
+ }