kgrabko commited on
Commit
ceb5faa
Β·
verified Β·
1 Parent(s): 107712e

Update copy_weights.py

Browse files
Files changed (1) hide show
  1. copy_weights.py +14 -54
copy_weights.py CHANGED
@@ -1,5 +1,5 @@
1
  # =============================================================================
2
- # COPYRIGHT Β© 2025 Konstantin Vladimirovich Grabko. ALL RIGHTS RESERVED.
3
  # CMS Manhattan JiRack Technology β€” PATENT PENDING
4
  #
5
  # This code is proprietary.
@@ -18,24 +18,18 @@
18
  #
19
  # =============================================================================
20
 
 
21
  import torch
22
  from JiRackTernary_new import JiRackConfig, JiRackTernary1B
23
  from transformers import AutoTokenizer
 
24
  import os
25
 
26
  print("πŸš€ Copying embeddings and lm_head...")
27
 
28
  old_model_path = "."
29
- new_tokenizer_path = "./jirack_code_tokenimport torch"
30
- from JiRackTernary_new import JiRackConfig, JiRackTernary1B
31
- from transformers import AutoTokenizer
32
- import os
33
-
34
- print("πŸš€ Copying embeddings and lm_head...")
35
-
36
- old_model_path = "." ## curent model
37
- new_tokenizer_path = "./jirack_code_tokenizer" ## new JiRack tokenizer
38
- save_path = "./JiRack_init_model_with_new_vocab" ## new safe bank model
39
 
40
  os.makedirs(save_path, exist_ok=True)
41
 
@@ -43,57 +37,23 @@ os.makedirs(save_path, exist_ok=True)
43
  tokenizer = AutoTokenizer.from_pretrained(new_tokenizer_path)
44
  new_vocab_size = len(tokenizer)
45
 
46
- # Create new model with updated vocab size
47
- config = JiRackConfig()
48
- model = JiRackTernary1B(config)
49
-
50
- # Load old model weights
51
- old_state = torch.load(f"{old_model_path}/pytorch_model.bin", map_location="cpu")
52
-
53
- old_vocab_size = 128256
54
-
55
- with torch.no_grad():
56
- # Copy old weights
57
- model.token_emb.weight[:old_vocab_size] = old_state['token_emb.weight'][:old_vocab_size]
58
- model.lm_head.weight[:old_vocab_size] = old_state['lm_head.weight'][:old_vocab_size]
59
-
60
- # Initialize the new 3 tokens (FIM markers) with mean value
61
- mean_emb = old_state['token_emb.weight'].mean(dim=0)
62
- model.token_emb.weight[old_vocab_size:] = mean_emb
63
- model.lm_head.weight[old_vocab_size:] = mean_emb
64
-
65
- print(f"βœ… Copied {old_vocab_size} tokens")
66
- print(f"βœ… Initialized {new_vocab_size - old_vocab_size} new tokens")
67
-
68
- # Save
69
- torch.save(model.state_dict(), f"{save_path}/pytorch_model.bin")
70
- tokenizer.save_pretrained(save_path)
71
-
72
- print(f"\nπŸŽ‰ Done! New model saved to: {save_path}")
73
- print("Use this folder as the starting weights for training from scratch.")izer_fixed"
74
- save_path = "./JiRack_init_new_vocab"
75
-
76
- os.makedirs(save_path, exist_ok=True)
77
-
78
- # Load new tokenizer
79
- tokenizer = AutoTokenizer.from_pretrained(new_tokenizer_path)
80
- new_vocab_size = len(tokenizer)
81
 
82
- # Create new model with updated vocab size
83
  config = JiRackConfig()
84
  model = JiRackTernary1B(config)
85
 
86
- # Load old model weights
87
- old_state = torch.load(f"{old_model_path}/pytorch_model.bin", map_location="cpu")
88
 
89
  old_vocab_size = 128256
90
 
91
  with torch.no_grad():
92
  # Copy old weights
93
- model.token_emb.weight[:old_vocab_size] = old_state['token_emb.weight'][:old_vocab_size]
94
- model.lm_head.weight[:old_vocab_size] = old_state['lm_head.weight'][:old_vocab_size]
95
 
96
- # Initialize the new 3 tokens (FIM markers) with mean value
97
  mean_emb = old_state['token_emb.weight'].mean(dim=0)
98
  model.token_emb.weight[old_vocab_size:] = mean_emb
99
  model.lm_head.weight[old_vocab_size:] = mean_emb
@@ -101,8 +61,8 @@ with torch.no_grad():
101
  print(f"βœ… Copied {old_vocab_size} tokens")
102
  print(f"βœ… Initialized {new_vocab_size - old_vocab_size} new tokens")
103
 
104
- # Save
105
- torch.save(model.state_dict(), f"{save_path}/pytorch_model.bin")
106
  tokenizer.save_pretrained(save_path)
107
 
108
  print(f"\nπŸŽ‰ Done! New model saved to: {save_path}")
 
1
  # =============================================================================
2
+ # COPYRIGHT Β© 2025-2026 Konstantin Vladimirovich Grabko. ALL RIGHTS RESERVED.
3
  # CMS Manhattan JiRack Technology β€” PATENT PENDING
4
  #
5
  # This code is proprietary.
 
18
  #
19
  # =============================================================================
20
 
21
+
22
  import torch
23
  from JiRackTernary_new import JiRackConfig, JiRackTernary1B
24
  from transformers import AutoTokenizer
25
+ from safetensors.torch import load_file, save_file
26
  import os
27
 
28
  print("πŸš€ Copying embeddings and lm_head...")
29
 
30
  old_model_path = "."
31
+ new_tokenizer_path = "./jirack_code_tokenizer"
32
+ save_path = "./JiRack_init_model_with_new_vocab"
 
 
 
 
 
 
 
 
33
 
34
  os.makedirs(save_path, exist_ok=True)
35
 
 
37
  tokenizer = AutoTokenizer.from_pretrained(new_tokenizer_path)
38
  new_vocab_size = len(tokenizer)
39
 
40
+ print(f"New vocab size: {new_vocab_size}")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
41
 
42
+ # Create new model
43
  config = JiRackConfig()
44
  model = JiRackTernary1B(config)
45
 
46
+ # Load old model (SafeTensors)
47
+ old_state = load_file(f"{old_model_path}/model.safetensors")
48
 
49
  old_vocab_size = 128256
50
 
51
  with torch.no_grad():
52
  # Copy old weights
53
+ model.token_emb.weight[:old_vocab_size] = old_state['token_emb.weight'][:old_vocab_size].clone()
54
+ model.lm_head.weight[:old_vocab_size] = old_state['lm_head.weight'][:old_vocab_size].clone()
55
 
56
+ # Initialize new 3 tokens (FIM) with mean value
57
  mean_emb = old_state['token_emb.weight'].mean(dim=0)
58
  model.token_emb.weight[old_vocab_size:] = mean_emb
59
  model.lm_head.weight[old_vocab_size:] = mean_emb
 
61
  print(f"βœ… Copied {old_vocab_size} tokens")
62
  print(f"βœ… Initialized {new_vocab_size - old_vocab_size} new tokens")
63
 
64
+ # Save in SafeTensors
65
+ save_file(model.state_dict(), f"{save_path}/model.safetensors")
66
  tokenizer.save_pretrained(save_path)
67
 
68
  print(f"\nπŸŽ‰ Done! New model saved to: {save_path}")