demdecuong commited on
Commit
c2918b6
·
1 Parent(s): a3ad301

init commit

Browse files
README.md ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ This is finetune version of [SimCSE: Simple Contrastive Learning of Sentence Embeddings](https://arxiv.org/abs/2104.08821)
2
+ , train unsupervised on 100K triplet samples samples related to stroke from : stroke books, quora medical, quora's stroke and human annotates.
3
+
4
+ ### Extract sentence representation
5
+ ```
6
+ from transformers import AutoTokenizer, AutoModel
7
+ tokenizer = AutoTokenizer.from_pretrained("demdecuong/stroke_simcse")
8
+ model = AutoModel.from_pretrained("demdecuong/stroke_simcse")
9
+
10
+ text = "What are disease related to red stroke's causes?"
11
+ inputs = tokenizer(text, return_tensors='pt')
12
+ outputs = model(**inputs)[1]
13
+ ```
14
+ ### Build up embedding for database
15
+
16
+ ```
17
+ database = [
18
+ 'What is the daily checklist for stroke returning home',
19
+ 'What are some tips for stroke adapt new life',
20
+ 'What should I consider when using nursing-home care'
21
+ ]
22
+
23
+ embedding = torch.zeros((len(database),768))
24
+
25
+ for i in range(len(database)):
26
+ inputs = tokenizer(database[i], return_tensors="pt")
27
+ outputs = model(**inputs)[1]
28
+ embedding[i] = outputs
29
+
30
+ print(embedding.shape)
31
+ ```
32
+
33
+ ### Result
34
+ On our company's PoC project, the testset contains positive/negative pairs of matching question related to stroke from human-generation.
35
+
36
+ | Model | Top-1 Accuracy |
37
+ | ------------- | ------------- |
38
+ | SimCSE (supervised) | 75.83 |
39
+ | SimCSE unsupervised (ours) | 76.66 |
40
+ | SimCSE supervised (ours) | TBD |
config.json ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_name_or_path": "result/my-sup-simcse-bert-base-uncased",
3
+ "architectures": [
4
+ "BertModel"
5
+ ],
6
+ "attention_probs_dropout_prob": 0.1,
7
+ "gradient_checkpointing": false,
8
+ "hidden_act": "gelu",
9
+ "hidden_dropout_prob": 0.1,
10
+ "hidden_size": 768,
11
+ "initializer_range": 0.02,
12
+ "intermediate_size": 3072,
13
+ "layer_norm_eps": 1e-12,
14
+ "max_position_embeddings": 512,
15
+ "model_type": "bert",
16
+ "num_attention_heads": 12,
17
+ "num_hidden_layers": 12,
18
+ "pad_token_id": 0,
19
+ "position_embedding_type": "absolute",
20
+ "transformers_version": "4.2.1",
21
+ "type_vocab_size": 2,
22
+ "use_cache": true,
23
+ "vocab_size": 30522
24
+ }
eval_results.txt ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ epoch = 3.0
2
+ eval_CR = 89.02
3
+ eval_MPQA = 89.09
4
+ eval_MR = 83.33
5
+ eval_MRPC = 75.17
6
+ eval_SST2 = 85.67
7
+ eval_SUBJ = 99.65
8
+ eval_TREC = 82.72
9
+ eval_avg_sts = 0.8388995317355574
10
+ eval_avg_transfer = 86.37857142857142
11
+ eval_sickr_spearman = 0.8146857710857348
12
+ eval_stsb_spearman = 0.86311329238538
optimizer.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f877c353b81f010c67f366c2ab146aadc60349440f54c2b9e4ae87f38743bbe8
3
+ size 875982637
pytorch_model.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0988e26f9c1e96651f452af503bba057ef2c9cc9b9f364ef9ad28e26d9af9c59
3
+ size 438000759
scheduler.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f676bf30734a5585dd13ee674039589cb4b9ca0275c962b5e11a3b02a83586a6
3
+ size 623
special_tokens_map.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"unk_token": "[UNK]", "sep_token": "[SEP]", "pad_token": "[PAD]", "cls_token": "[CLS]", "mask_token": "[MASK]"}
tokenizer_config.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"do_lower_case": true, "unk_token": "[UNK]", "sep_token": "[SEP]", "pad_token": "[PAD]", "cls_token": "[CLS]", "mask_token": "[MASK]", "tokenize_chinese_chars": true, "strip_accents": null, "model_max_length": 512, "name_or_path": "princeton-nlp/sup-simcse-bert-base-uncased", "special_tokens_map_file": "/root/.cache/huggingface/transformers/8c406286308d13c3a53bc10c3d1a2d5113d4e46a34cb6ec5ee06e5d9762c462c.dd8bd9bfd3664b530ea4e645105f557769387b3da9f79bdb55ed556bdd80611d", "do_basic_tokenize": true, "never_split": null}
train_results.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ epoch = 3.0
2
+ train_runtime = 3382.225
3
+ train_samples_per_second = 0.716
trainer_state.json ADDED
@@ -0,0 +1,179 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "best_metric": 0.86311329238538,
3
+ "best_model_checkpoint": "result/my-sup-simcse-bert-base-uncased",
4
+ "epoch": 3.0,
5
+ "global_step": 2421,
6
+ "is_hyper_param_search": false,
7
+ "is_local_process_zero": true,
8
+ "is_world_process_zero": true,
9
+ "log_history": [
10
+ {
11
+ "epoch": 0.15,
12
+ "eval_avg_sts": 0.8388995317355574,
13
+ "eval_sickr_spearman": 0.8146857710857348,
14
+ "eval_stsb_spearman": 0.86311329238538,
15
+ "step": 125
16
+ },
17
+ {
18
+ "epoch": 0.31,
19
+ "eval_avg_sts": 0.8332486405485358,
20
+ "eval_sickr_spearman": 0.8082352902247991,
21
+ "eval_stsb_spearman": 0.8582619908722724,
22
+ "step": 250
23
+ },
24
+ {
25
+ "epoch": 0.46,
26
+ "eval_avg_sts": 0.8315926314982992,
27
+ "eval_sickr_spearman": 0.8008793270395521,
28
+ "eval_stsb_spearman": 0.8623059359570463,
29
+ "step": 375
30
+ },
31
+ {
32
+ "epoch": 0.62,
33
+ "learning_rate": 3.9673688558446925e-05,
34
+ "loss": 0.1625,
35
+ "step": 500
36
+ },
37
+ {
38
+ "epoch": 0.62,
39
+ "eval_avg_sts": 0.82902006063027,
40
+ "eval_sickr_spearman": 0.8009135732148775,
41
+ "eval_stsb_spearman": 0.8571265480456624,
42
+ "step": 500
43
+ },
44
+ {
45
+ "epoch": 0.77,
46
+ "eval_avg_sts": 0.8234837706323759,
47
+ "eval_sickr_spearman": 0.7913043269678645,
48
+ "eval_stsb_spearman": 0.8556632142968873,
49
+ "step": 625
50
+ },
51
+ {
52
+ "epoch": 0.93,
53
+ "eval_avg_sts": 0.8238431555715283,
54
+ "eval_sickr_spearman": 0.7974856415363409,
55
+ "eval_stsb_spearman": 0.8502006696067157,
56
+ "step": 750
57
+ },
58
+ {
59
+ "epoch": 1.08,
60
+ "eval_avg_sts": 0.8266718232644965,
61
+ "eval_sickr_spearman": 0.8003919554532598,
62
+ "eval_stsb_spearman": 0.8529516910757333,
63
+ "step": 875
64
+ },
65
+ {
66
+ "epoch": 1.24,
67
+ "learning_rate": 2.9347377116893847e-05,
68
+ "loss": 0.0815,
69
+ "step": 1000
70
+ },
71
+ {
72
+ "epoch": 1.24,
73
+ "eval_avg_sts": 0.819954267975217,
74
+ "eval_sickr_spearman": 0.7929691810059123,
75
+ "eval_stsb_spearman": 0.8469393549445217,
76
+ "step": 1000
77
+ },
78
+ {
79
+ "epoch": 1.39,
80
+ "eval_avg_sts": 0.8249139721135836,
81
+ "eval_sickr_spearman": 0.8003723587638729,
82
+ "eval_stsb_spearman": 0.8494555854632942,
83
+ "step": 1125
84
+ },
85
+ {
86
+ "epoch": 1.55,
87
+ "eval_avg_sts": 0.8211704289881193,
88
+ "eval_sickr_spearman": 0.794750558496049,
89
+ "eval_stsb_spearman": 0.8475902994801896,
90
+ "step": 1250
91
+ },
92
+ {
93
+ "epoch": 1.7,
94
+ "eval_avg_sts": 0.8210084871203903,
95
+ "eval_sickr_spearman": 0.7898188690936879,
96
+ "eval_stsb_spearman": 0.8521981051470927,
97
+ "step": 1375
98
+ },
99
+ {
100
+ "epoch": 1.86,
101
+ "learning_rate": 1.902106567534077e-05,
102
+ "loss": 0.0673,
103
+ "step": 1500
104
+ },
105
+ {
106
+ "epoch": 1.86,
107
+ "eval_avg_sts": 0.8244940569196582,
108
+ "eval_sickr_spearman": 0.7977014933062037,
109
+ "eval_stsb_spearman": 0.8512866205331128,
110
+ "step": 1500
111
+ },
112
+ {
113
+ "epoch": 2.01,
114
+ "eval_avg_sts": 0.819840729451552,
115
+ "eval_sickr_spearman": 0.789596437062928,
116
+ "eval_stsb_spearman": 0.850085021840176,
117
+ "step": 1625
118
+ },
119
+ {
120
+ "epoch": 2.17,
121
+ "eval_avg_sts": 0.8194523296306793,
122
+ "eval_sickr_spearman": 0.7900231453681041,
123
+ "eval_stsb_spearman": 0.8488815138932543,
124
+ "step": 1750
125
+ },
126
+ {
127
+ "epoch": 2.32,
128
+ "eval_avg_sts": 0.819201881270627,
129
+ "eval_sickr_spearman": 0.7891284700416165,
130
+ "eval_stsb_spearman": 0.8492752924996376,
131
+ "step": 1875
132
+ },
133
+ {
134
+ "epoch": 2.48,
135
+ "learning_rate": 8.694754233787691e-06,
136
+ "loss": 0.0613,
137
+ "step": 2000
138
+ },
139
+ {
140
+ "epoch": 2.48,
141
+ "eval_avg_sts": 0.8205549448908287,
142
+ "eval_sickr_spearman": 0.7917587011874689,
143
+ "eval_stsb_spearman": 0.8493511885941886,
144
+ "step": 2000
145
+ },
146
+ {
147
+ "epoch": 2.63,
148
+ "eval_avg_sts": 0.8199800089125161,
149
+ "eval_sickr_spearman": 0.7909771871359695,
150
+ "eval_stsb_spearman": 0.8489828306890627,
151
+ "step": 2125
152
+ },
153
+ {
154
+ "epoch": 2.79,
155
+ "eval_avg_sts": 0.8217889587200623,
156
+ "eval_sickr_spearman": 0.7920187896017563,
157
+ "eval_stsb_spearman": 0.8515591278383683,
158
+ "step": 2250
159
+ },
160
+ {
161
+ "epoch": 2.94,
162
+ "eval_avg_sts": 0.8220433030575918,
163
+ "eval_sickr_spearman": 0.7925120690135258,
164
+ "eval_stsb_spearman": 0.8515745371016578,
165
+ "step": 2375
166
+ },
167
+ {
168
+ "epoch": 3.0,
169
+ "step": 2421,
170
+ "train_runtime": 3382.225,
171
+ "train_samples_per_second": 0.716
172
+ }
173
+ ],
174
+ "max_steps": 2421,
175
+ "num_train_epochs": 3,
176
+ "total_flos": 19636662129721344,
177
+ "trial_name": null,
178
+ "trial_params": null
179
+ }
training_args.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c57010aba088aae779a723a1b3d42d330743938195c9820bfb96be9122bd6d03
3
+ size 2095
vocab.txt ADDED
The diff for this file is too large to render. See raw diff