ryota39 commited on
Commit
f0dfae6
1 Parent(s): bf5b1b9

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +88 -11
README.md CHANGED
@@ -1,18 +1,87 @@
1
  ---
2
  license: apache-2.0
3
  ---
4
- ## Benchmark (Japanese MT bench)
5
 
6
- |model|category|score|ver|
7
- |:---|:---|:---|:---|
8
- |Tora-7B-v0.2|Writing|3.8|single-turn|
9
- |Tora-7B-v0.2|Roleplay|7.1|single-turn|
10
- |Tora-7B-v0.2|Reasoning|6.3|single-turn|
11
- |Tora-7B-v0.2|Math|3.0|single-turn|
12
- |Tora-7B-v0.2|Coding|2.2|single-turn|
13
- |Tora-7B-v0.2|Extraction|6.6|single-turn|
14
- |Tora-7B-v0.2|STEM|7.2|single-turn|
15
- |Tora-7B-v0.2|Humanities|8.2|single-turn|
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16
 
17
  |model|category|score|ver|
18
  |:---|:---|:---|:---|
@@ -26,3 +95,11 @@ license: apache-2.0
26
  |Tora-7B-v0.1|Humanities|8.5|single-turn|
27
 
28
  ![image/png](https://cdn-uploads.huggingface.co/production/uploads/651e3f30ca333f3c8df692b8/tuFTNH1t65lqgpnS3TuiA.png)
 
 
 
 
 
 
 
 
 
1
  ---
2
  license: apache-2.0
3
  ---
4
+ ## Chat Vector
5
 
6
+ ```
7
+ Tora-7B-v0.1 = NTQAI/chatntq-ja-7b-v1.0 + (openchat/openchat-3.5-0106 - mistralai/Mistral-7B-v0.1)
8
+ ```
9
+
10
+ ## 実装
11
+
12
+ @jovyan様の実装を参考に下記のコードでモデルを作成しました。
13
+
14
+ ```python
15
+ import torch
16
+ from transformers import AutoModelForCausalLM
17
+
18
+
19
+ def build_chat_vector_model(
20
+ base_model_name,
21
+ inst_model_name,
22
+ target_model_name,
23
+ skip_layers,
24
+ ):
25
+
26
+ base_model = AutoModelForCausalLM.from_pretrained(
27
+ base_model_name,
28
+ torch_dtype=torch.bfloat16,
29
+ device_map="cpu",
30
+ )
31
+ inst_model = AutoModelForCausalLM.from_pretrained(
32
+ inst_model_name,
33
+ torch_dtype=torch.bfloat16,
34
+ device_map="cpu",
35
+ )
36
+
37
+ target_model = AutoModelForCausalLM.from_pretrained(
38
+ target_model_name,
39
+ torch_dtype=torch.bfloat16,
40
+ device_map="cuda",
41
+ )
42
+
43
+ # 英語ベースモデル
44
+ for k, v in base_model.state_dict().items():
45
+ print(k, v.shape)
46
+
47
+ # 日本語継続事前学習モデル
48
+ for k, v in target_model.state_dict().items():
49
+ print(k, v.shape)
50
+
51
+ # 除外対象
52
+ skip_layers = ["model.embed_tokens.weight", "lm_head.weight"]
53
+
54
+ for k, v in target_model.state_dict().items():
55
+ # layernormも除外
56
+ if (k in skip_layers) or ("layernorm" in k):
57
+ continue
58
+ chat_vector = inst_model.state_dict()[k] - base_model.state_dict()[k]
59
+ new_v = v + chat_vector.to(v.device)
60
+ v.copy_(new_v)
61
+
62
+ target_model.save_pretrained("./chat_model")
63
+
64
+ return
65
+
66
+
67
+ if __name__ == '__main__':
68
+
69
+ base_model_name = "mistralai/Mistral-7B-v0.1"
70
+ inst_model_name = "openchat/openchat-3.5-0106"
71
+ target_model_name = "NTQAI/chatntq-ja-7b-v1.0"
72
+
73
+ skip_layers = ["model.embed_tokens.weight", "lm_head.weight"]
74
+
75
+ build_chat_vector_model(
76
+ base_model_name=base_model_name,
77
+ inst_model_name=inst_model_name,
78
+ target_model_name=target_model_name,
79
+ skip_layers=skip_layers
80
+ )
81
+
82
+ ```
83
+
84
+ ## ベンチマーク (Japanese MT bench)
85
 
86
  |model|category|score|ver|
87
  |:---|:---|:---|:---|
 
95
  |Tora-7B-v0.1|Humanities|8.5|single-turn|
96
 
97
  ![image/png](https://cdn-uploads.huggingface.co/production/uploads/651e3f30ca333f3c8df692b8/tuFTNH1t65lqgpnS3TuiA.png)
98
+
99
+ ## 謝辞
100
+
101
+ ChatVectorの記事を執筆してくださった@jovyan様に深くお礼申し上げます。
102
+
103
+ ## 参考
104
+
105
+ [Chat Vectorを使って日本語LLMをチャットモデルに改造する](https://qiita.com/jovyan/items/ee6affa5ee5bdaada6b4)