ryousuf569 commited on
Commit
440bdf5
·
verified ·
1 Parent(s): 2da6946

Upload folder using huggingface_hub

Browse files
Files changed (7) hide show
  1. README.md +165 -0
  2. config.json +40 -0
  3. model.safetensors +3 -0
  4. run.json +110 -0
  5. seed_replication.json +380 -0
  6. tokenizer.json +0 -0
  7. tokenizer_config.json +15 -0
README.md ADDED
@@ -0,0 +1,165 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ language: en
3
+ license: cc-by-nc-sa-4.0
4
+ base_model: ProsusAI/finbert
5
+ pipeline_tag: text-classification
6
+ tags:
7
+ - finance
8
+ - financial-nlp
9
+ - sentiment-analysis
10
+ - macroeconomics
11
+ - bert
12
+ metrics:
13
+ - f1
14
+ - accuracy
15
+ ---
16
+
17
+ # finbert-macro
18
+
19
+ FinBERT fine-tuned to read macroeconomic headlines by their effect on equities, without losing the
20
+ base model's grip on company news.
21
+
22
+ ProsusAI/finbert scores 39.0 macro-F1 on the macro test set, which is near chance for three classes.
23
+ This checkpoint scores 68.8, and corporate news improves at the same time, 70.2 to 84.0.
24
+
25
+ ## Labels
26
+
27
+ `0 = positive`, `1 = negative`, `2 = neutral`, the same ids as the base model.
28
+
29
+ On macro text the label is market impact, not tone. Dovish maps to positive, hawkish maps to
30
+ negative. A hot CPI print or a strong payrolls number comes back `negative` here because it implies
31
+ tighter policy. If you want literal sentiment, use ProsusAI/finbert instead.
32
+
33
+ ## Usage
34
+
35
+ ```python
36
+ from transformers import AutoTokenizer, AutoModelForSequenceClassification
37
+ import torch
38
+
39
+ name = "ryousuf569/finbert-macro"
40
+ tok = AutoTokenizer.from_pretrained(name)
41
+ model = AutoModelForSequenceClassification.from_pretrained(name).eval()
42
+
43
+ texts = ["Powell signals rate cuts are coming as price pressures ease",
44
+ "Payrolls blow past forecasts, wage growth accelerates",
45
+ "GDP growth unchanged from prior quarter"]
46
+ with torch.no_grad():
47
+ logits = model(**tok(texts, padding=True, truncation=True,
48
+ max_length=64, return_tensors="pt")).logits
49
+ for t, p in zip(texts, logits.argmax(-1).tolist()):
50
+ print(model.config.id2label[p], "|", t)
51
+
52
+ # positive | Powell signals rate cuts are coming as price pressures ease
53
+ # negative | Payrolls blow past forecasts, wage growth accelerates
54
+ # neutral | GDP growth unchanged from prior quarter
55
+ ```
56
+
57
+ "Jobless claims rise, cooling a tight labor market" also comes back positive, which is the mapping
58
+ working as intended rather than a bug.
59
+
60
+ ## Results
61
+
62
+ Macro and corporate are always reported separately. Averaging them would hide a macro gain paid for
63
+ by forgetting corporate news.
64
+
65
+ | model | macro acc | macro F1 | corporate acc | corporate F1 |
66
+ |---|---|---|---|---|
67
+ | ProsusAI/finbert | 38.06 | 39.03 | 71.60 | 70.24 |
68
+ | finbert-macro | 68.89 | 68.82 | 85.03 | 83.97 |
69
+ | change | +30.83 | +29.79 | +13.43 | +13.73 |
70
+
71
+ Macro test set is 6,101 real held-out rows, corporate is 4,169. No class collapsed on either set.
72
+ Lowest per-class F1 is 65.9 on macro, 81.3 on corporate.
73
+
74
+ ## Seed replication
75
+
76
+ One seed cannot separate a real gap from run-to-run noise, so the winning configuration (u6@32k: 6
77
+ unfrozen encoder blocks, 32,000 training rows) and the runner-up (u4@20k: 4 blocks, 20,000 rows)
78
+ were each retrained from scratch at seeds 42, 1 and 2.
79
+
80
+ **u6@32k beats u4@20k by 1.87 points of macro-F1 and 1.67 points of corporate F1. Both gaps survive
81
+ the change of seed, and both domains improve at once, so this is not a macro-for-corporate trade.**
82
+
83
+ | config | seed 42 | seed 1 | seed 2 | mean | std | min to max |
84
+ |---|---|---|---|---|---|---|
85
+ | macro-F1, u4@20k | 67.59 | 67.29 | 67.41 | 67.43 | 0.15 | 67.29 to 67.59 |
86
+ | macro-F1, u6@32k | 68.82 | 69.34 | 69.73 | 69.30 | 0.46 | 68.82 to 69.73 |
87
+ | corporate F1, u4@20k | 81.39 | 82.06 | 82.32 | 81.92 | 0.48 | 81.39 to 82.32 |
88
+ | corporate F1, u6@32k | 83.97 | 82.66 | 84.16 | 83.60 | 0.82 | 82.66 to 84.16 |
89
+
90
+ The macro gap of 1.87 points is wider than the widest seed range of 0.91, and the corporate gap of
91
+ 1.67 is wider than its widest range of 1.50. Every u6@32k seed beats every u4@20k seed on both
92
+ metrics. Three seeds gives a range, not a significance test, so there is no p-value here and none
93
+ should be inferred.
94
+
95
+ The published weights are the seed 42 run, the seed fixed before the replication study. Seed 2
96
+ scored higher at 69.73, but picking it would be selecting a checkpoint on the test set.
97
+
98
+ ## What did not replicate
99
+
100
+ Four other metrics moved more between seeds than between configurations, so they were dropped from
101
+ the decision and are listed here only as description.
102
+
103
+ | metric | gap between configs | widest seed range |
104
+ |---|---|---|
105
+ | probe accuracy (48 probes) | 8.33 | 14.58 |
106
+ | minimal pairs solved (of 18) | 1.67 | 7.00 |
107
+ | polarity-agreeing probe accuracy (14 probes) | 7.14 | 7.14 |
108
+ | Financial PhraseBank F1 | 12.31 | 13.29 |
109
+
110
+ The probe suite is small enough that this is structural. With 14 polarity-agreeing probes, one probe
111
+ changing its answer is worth 7.14 points, which is the entire gap. More probes would fix this. More
112
+ seeds would not.
113
+
114
+ ## Limitations
115
+
116
+ The PhraseBank comparison is not clean. This model gets 73.1 PhraseBank macro-F1 against the base
117
+ model's 96.3, but ProsusAI/finbert was itself fine-tuned on Financial PhraseBank, so 96.3 is close
118
+ to its training score. PhraseBank was never trained on here and every pool was filtered against it
119
+ for leakage. Read 73.1 as retained company-level ability rather than a 23-point regression.
120
+
121
+ Two things changed at once between u6@32k and u4@20k, unfreeze depth and training rows. The gain is
122
+ real and repeatable, but this experiment cannot say which of the two produced it.
123
+
124
+ 1,817 of the 20,800 macro training rows are synthetic templates. They are scored as a separate
125
+ evaluation set and never folded into the reported macro number, but they are in the training mix.
126
+
127
+ Scope is short English headlines and policy sentences, 64 tokens. Central-bank language from 1996 to
128
+ 2024 dominates the macro side. Not built for filings, transcripts, long documents or other
129
+ languages. The output is a text label, not a market forecast.
130
+
131
+ ## Training
132
+
133
+ 32,000 rows, 20,800 macro and 11,200 corporate, sampled without replacement. The corporate share is
134
+ an anchor against forgetting. Everything is frozen except the top 6 encoder blocks, the pooler and
135
+ the head, since full fine-tuning is the fastest way to lose corporate competence. Cross-entropy with
136
+ inverse-frequency class weights, lr 2e-5, weight decay 0.01, warmup 0.1, batch 32, fp16.
137
+
138
+ Both a macro and a corporate validation set are scored each epoch. The selected epoch maximizes
139
+ macro-F1 while corporate validation F1 stays within 0.01 of the base checkpoint. Epoch 5 of 7 won
140
+ and its weights were restored, against a ceiling of 16 epochs with early stopping. Training took 145
141
+ minutes on one GTX 1660 Ti (6 GB, Turing).
142
+
143
+ On that card `torch.cuda.is_bf16_supported()` returns True but counts emulated bf16, which is
144
+ unusably slow, so this was trained in fp16.
145
+
146
+ ## Data and license
147
+
148
+ Macro pool: World Central Banks, 16,870 rows, CC BY-NC-SA 4.0. FOMC / Trillion Dollar Words, 1,660
149
+ rows, CC BY-NC 4.0. FinMarBa headlines, 749 rows, MIT. Synthetic templates, 1,848 rows.
150
+
151
+ Corporate pool: SEntFiN, Twitter financial news and FiQA, 14,591 rows, all MIT.
152
+
153
+ Splits are date-blocked per source where dates exist and grouped-random otherwise.
154
+
155
+ The largest macro source is CC BY-NC-SA 4.0, so this model is released under CC BY-NC-SA 4.0,
156
+ non-commercial and share-alike. That is stricter than the base model's Apache-2.0 licence, and the
157
+ restriction comes from the training data.
158
+
159
+ ## Reproducing the seed study
160
+
161
+ ```bash
162
+ python seed_rep.py --criterion macro_floored --seeds 42 1 2 \
163
+ --config "u4@20k:unfreeze=4,total=20000" \
164
+ --config "u6@32k:unfreeze=6,total=32000" --yes
165
+ ```
config.json ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "add_cross_attention": false,
3
+ "architectures": [
4
+ "BertForSequenceClassification"
5
+ ],
6
+ "attention_probs_dropout_prob": 0.1,
7
+ "bos_token_id": null,
8
+ "classifier_dropout": null,
9
+ "dtype": "float32",
10
+ "eos_token_id": null,
11
+ "gradient_checkpointing": false,
12
+ "hidden_act": "gelu",
13
+ "hidden_dropout_prob": 0.1,
14
+ "hidden_size": 768,
15
+ "id2label": {
16
+ "0": "positive",
17
+ "1": "negative",
18
+ "2": "neutral"
19
+ },
20
+ "initializer_range": 0.02,
21
+ "intermediate_size": 3072,
22
+ "is_decoder": false,
23
+ "label2id": {
24
+ "negative": 1,
25
+ "neutral": 2,
26
+ "positive": 0
27
+ },
28
+ "layer_norm_eps": 1e-12,
29
+ "max_position_embeddings": 512,
30
+ "model_type": "bert",
31
+ "num_attention_heads": 12,
32
+ "num_hidden_layers": 12,
33
+ "pad_token_id": 0,
34
+ "position_embedding_type": "absolute",
35
+ "tie_word_embeddings": true,
36
+ "transformers_version": "5.14.1",
37
+ "type_vocab_size": 2,
38
+ "use_cache": false,
39
+ "vocab_size": 30522
40
+ }
model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e4f123018d76a4f6a0227298b27e7c7f684c4d603f4850d72c27bb4dca00de14
3
+ size 437961724
run.json ADDED
@@ -0,0 +1,110 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "tag": "mix65_unfreeze6_full32k",
3
+ "model_dir": "models\\mix65_unfreeze6_full32k",
4
+ "macro_share": 0.65,
5
+ "unfreeze_top_layers": 6,
6
+ "seed": 42,
7
+ "epochs_ceiling": 16,
8
+ "epochs_run": 7,
9
+ "criterion": "macro_floored",
10
+ "tolerance": 0.01,
11
+ "mix": {
12
+ "macro_share": 0.65,
13
+ "policy": "fixed_total",
14
+ "total": 32000,
15
+ "n_macro": 20800,
16
+ "n_corporate": 11200,
17
+ "macro_upsample": 1.0,
18
+ "corporate_upsample": 1.0,
19
+ "n_macro_synthetic": 1817,
20
+ "label_counts": {
21
+ "2": 13584,
22
+ "0": 10537,
23
+ "1": 7879
24
+ }
25
+ },
26
+ "precision": {
27
+ "fp16": true,
28
+ "bf16": false,
29
+ "reason": "NVIDIA GeForce GTX 1660 Ti sm_75 no native bf16"
30
+ },
31
+ "selection": {
32
+ "criterion": "macro_floored",
33
+ "corporate_floor": 0.712656632790316,
34
+ "best_score": 1.715931047218585,
35
+ "best_epoch": 5.0,
36
+ "history": [
37
+ {
38
+ "epoch": 1.0,
39
+ "step": 1000,
40
+ "macro_val_acc": 0.6313853698406212,
41
+ "macro_val_f1": 0.6331539523789201,
42
+ "corporate_val_acc": 0.8095009596928983,
43
+ "corporate_val_f1": 0.797987307011303,
44
+ "score": 1.6331539523789202,
45
+ "is_best": true
46
+ },
47
+ {
48
+ "epoch": 2.0,
49
+ "step": 2000,
50
+ "macro_val_acc": 0.6947282386595831,
51
+ "macro_val_f1": 0.6940865713786276,
52
+ "corporate_val_acc": 0.8406909788867563,
53
+ "corporate_val_f1": 0.8312950922765591,
54
+ "score": 1.6940865713786275,
55
+ "is_best": true
56
+ },
57
+ {
58
+ "epoch": 3.0,
59
+ "step": 3000,
60
+ "macro_val_acc": 0.7151614221495709,
61
+ "macro_val_f1": 0.7150946803506621,
62
+ "corporate_val_acc": 0.8522072936660269,
63
+ "corporate_val_f1": 0.8468924856094882,
64
+ "score": 1.7150946803506621,
65
+ "is_best": true
66
+ },
67
+ {
68
+ "epoch": 4.0,
69
+ "step": 4000,
70
+ "macro_val_acc": 0.7131181038005722,
71
+ "macro_val_f1": 0.7131539477621897,
72
+ "corporate_val_acc": 0.8574856046065259,
73
+ "corporate_val_f1": 0.8496864160901788,
74
+ "score": 1.7131539477621898,
75
+ "is_best": false
76
+ },
77
+ {
78
+ "epoch": 5.0,
79
+ "step": 5000,
80
+ "macro_val_acc": 0.7151614221495709,
81
+ "macro_val_f1": 0.7159310472185848,
82
+ "corporate_val_acc": 0.8555662188099808,
83
+ "corporate_val_f1": 0.8467967784591366,
84
+ "score": 1.715931047218585,
85
+ "is_best": true
86
+ },
87
+ {
88
+ "epoch": 6.0,
89
+ "step": 6000,
90
+ "macro_val_acc": 0.6975888843481814,
91
+ "macro_val_f1": 0.6972553572452421,
92
+ "corporate_val_acc": 0.8459692898272553,
93
+ "corporate_val_f1": 0.8387254784627061,
94
+ "score": 1.697255357245242,
95
+ "is_best": false
96
+ },
97
+ {
98
+ "epoch": 7.0,
99
+ "step": 7000,
100
+ "macro_val_acc": 0.7024928483857785,
101
+ "macro_val_f1": 0.7025371437055846,
102
+ "corporate_val_acc": 0.8550863723608445,
103
+ "corporate_val_f1": 0.8473720194671822,
104
+ "score": 1.7025371437055847,
105
+ "is_best": false
106
+ }
107
+ ]
108
+ },
109
+ "minutes": 144.56
110
+ }
seed_replication.json ADDED
@@ -0,0 +1,380 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "generated": "2026-08-20 11:17:21",
3
+ "rule": "macro and corporate are carried side by side as separate columns and are NEVER averaged",
4
+ "note": "Ranges over a handful of seeds. No significance test, no p-value.",
5
+ "seeds": [
6
+ 42,
7
+ 1,
8
+ 2
9
+ ],
10
+ "tolerance": 0.01,
11
+ "precision": {
12
+ "fp16": true,
13
+ "bf16": false,
14
+ "reason": "NVIDIA GeForce GTX 1660 Ti sm_75 no native bf16"
15
+ },
16
+ "metrics": {
17
+ "macro_f1": {
18
+ "name": "macro real held-out F1",
19
+ "units": "pts",
20
+ "scale": 100.0
21
+ },
22
+ "corp_f1": {
23
+ "name": "corporate F1",
24
+ "units": "pts",
25
+ "scale": 100.0
26
+ },
27
+ "probe_acc": {
28
+ "name": "probe accuracy",
29
+ "units": "pts",
30
+ "scale": 100.0
31
+ },
32
+ "pairs_solved": {
33
+ "name": "minimal pairs solved",
34
+ "units": "pairs",
35
+ "scale": 1.0
36
+ },
37
+ "agree_acc": {
38
+ "name": "polarity-agreeing probe acc",
39
+ "units": "pts",
40
+ "scale": 100.0
41
+ },
42
+ "pb_f1": {
43
+ "name": "PhraseBank F1",
44
+ "units": "pts",
45
+ "scale": 100.0
46
+ }
47
+ },
48
+ "configs": [
49
+ {
50
+ "name": "u4@20k",
51
+ "macro_share": 0.65,
52
+ "unfreeze": 4,
53
+ "total": 20000,
54
+ "epochs": 16,
55
+ "criterion": "macro_floored",
56
+ "mix_policy": "fixed_total"
57
+ },
58
+ {
59
+ "name": "u6@32k",
60
+ "macro_share": 0.65,
61
+ "unfreeze": 6,
62
+ "total": 32000,
63
+ "epochs": 16,
64
+ "criterion": "macro_floored",
65
+ "mix_policy": "fixed_total"
66
+ }
67
+ ],
68
+ "per_seed": [
69
+ {
70
+ "config": "u4@20k",
71
+ "seed": 42,
72
+ "status": "LOADED",
73
+ "dir": "models/mix65_unfreeze4_macro_floored_s42",
74
+ "how": "run.json match in mix65_unfreeze4_macro_floored_s42",
75
+ "metrics": {
76
+ "macro_f1": 67.59165949395553,
77
+ "corp_f1": 81.38670066473745,
78
+ "probe_acc": 79.16666666666666,
79
+ "pairs_solved": 12.0,
80
+ "agree_acc": 57.14285714285714,
81
+ "pb_f1": 86.91964125668869
82
+ }
83
+ },
84
+ {
85
+ "config": "u4@20k",
86
+ "seed": 1,
87
+ "status": "TRAINED",
88
+ "dir": "models/rep_u4_20k_s1",
89
+ "how": "trained by this script, 102.94 min",
90
+ "metrics": {
91
+ "macro_f1": 67.28569186992823,
92
+ "corp_f1": 82.06353062408495,
93
+ "probe_acc": 70.83333333333334,
94
+ "pairs_solved": 7.0,
95
+ "agree_acc": 50.0,
96
+ "pb_f1": 85.065296617682
97
+ }
98
+ },
99
+ {
100
+ "config": "u4@20k",
101
+ "seed": 2,
102
+ "status": "TRAINED",
103
+ "dir": "models/rep_u4_20k_s2",
104
+ "how": "trained by this script, 136.91 min",
105
+ "metrics": {
106
+ "macro_f1": 67.41373179920018,
107
+ "corp_f1": 82.31776419246067,
108
+ "probe_acc": 64.58333333333334,
109
+ "pairs_solved": 5.0,
110
+ "agree_acc": 57.14285714285714,
111
+ "pb_f1": 73.63131856850693
112
+ }
113
+ },
114
+ {
115
+ "config": "u6@32k",
116
+ "seed": 42,
117
+ "status": "LOADED",
118
+ "dir": "models/mix65_unfreeze6_full32k",
119
+ "how": "run.json match in mix65_unfreeze6_full32k",
120
+ "metrics": {
121
+ "macro_f1": 68.81987346760383,
122
+ "corp_f1": 83.97251903033337,
123
+ "probe_acc": 77.08333333333334,
124
+ "pairs_solved": 8.0,
125
+ "agree_acc": 64.28571428571429,
126
+ "pb_f1": 73.07008355119325
127
+ }
128
+ },
129
+ {
130
+ "config": "u6@32k",
131
+ "seed": 1,
132
+ "status": "TRAINED",
133
+ "dir": "models/rep_u6_32k_s1",
134
+ "how": "trained by this script, 205.69 min",
135
+ "metrics": {
136
+ "macro_f1": 69.3386664919747,
137
+ "corp_f1": 82.66029840632898,
138
+ "probe_acc": 81.25,
139
+ "pairs_solved": 11.0,
140
+ "agree_acc": 57.14285714285714,
141
+ "pb_f1": 65.74260663190499
142
+ }
143
+ },
144
+ {
145
+ "config": "u6@32k",
146
+ "seed": 2,
147
+ "status": "TRAINED",
148
+ "dir": "models/rep_u6_32k_s2",
149
+ "how": "trained by this script, 246.78 min",
150
+ "metrics": {
151
+ "macro_f1": 69.728009428257,
152
+ "corp_f1": 84.15625933222256,
153
+ "probe_acc": 81.25,
154
+ "pairs_solved": 10.0,
155
+ "agree_acc": 64.28571428571429,
156
+ "pb_f1": 69.87313438147625
157
+ }
158
+ }
159
+ ],
160
+ "vanilla": {
161
+ "macro_f1": 39.03300821786394,
162
+ "corp_f1": 70.23790161183014,
163
+ "probe_acc": 41.66666666666667,
164
+ "pairs_solved": 6.0,
165
+ "agree_acc": 71.42857142857143,
166
+ "pb_f1": 96.24820403323632
167
+ },
168
+ "aggregate": {
169
+ "u4@20k": {
170
+ "macro_f1": {
171
+ "n": 3,
172
+ "mean": 67.43036105436131,
173
+ "std": 0.15366016345702269,
174
+ "min": 67.28569186992823,
175
+ "max": 67.59165949395553,
176
+ "range": 0.3059676240273035
177
+ },
178
+ "corp_f1": {
179
+ "n": 3,
180
+ "mean": 81.9226651604277,
181
+ "std": 0.4812505920023736,
182
+ "min": 81.38670066473745,
183
+ "max": 82.31776419246067,
184
+ "range": 0.9310635277232251
185
+ },
186
+ "probe_acc": {
187
+ "n": 3,
188
+ "mean": 71.52777777777779,
189
+ "std": 7.316426217258837,
190
+ "min": 64.58333333333334,
191
+ "max": 79.16666666666666,
192
+ "range": 14.583333333333314
193
+ },
194
+ "pairs_solved": {
195
+ "n": 3,
196
+ "mean": 8.0,
197
+ "std": 3.605551275463989,
198
+ "min": 5.0,
199
+ "max": 12.0,
200
+ "range": 7.0
201
+ },
202
+ "agree_acc": {
203
+ "n": 3,
204
+ "mean": 54.76190476190476,
205
+ "std": 4.12393049421161,
206
+ "min": 50.0,
207
+ "max": 57.14285714285714,
208
+ "range": 7.142857142857139
209
+ },
210
+ "pb_f1": {
211
+ "n": 3,
212
+ "mean": 81.8720854809592,
213
+ "std": 7.196688682239868,
214
+ "min": 73.63131856850693,
215
+ "max": 86.91964125668869,
216
+ "range": 13.288322688181765
217
+ }
218
+ },
219
+ "u6@32k": {
220
+ "macro_f1": {
221
+ "n": 3,
222
+ "mean": 69.29551646261184,
223
+ "std": 0.4556030888101787,
224
+ "min": 68.81987346760383,
225
+ "max": 69.728009428257,
226
+ "range": 0.9081359606531691
227
+ },
228
+ "corp_f1": {
229
+ "n": 3,
230
+ "mean": 83.59635892296164,
231
+ "std": 0.815841340417078,
232
+ "min": 82.66029840632898,
233
+ "max": 84.15625933222256,
234
+ "range": 1.4959609258935842
235
+ },
236
+ "probe_acc": {
237
+ "n": 3,
238
+ "mean": 79.86111111111111,
239
+ "std": 2.405626121623435,
240
+ "min": 77.08333333333334,
241
+ "max": 81.25,
242
+ "range": 4.166666666666657
243
+ },
244
+ "pairs_solved": {
245
+ "n": 3,
246
+ "mean": 9.666666666666666,
247
+ "std": 1.5275252316519468,
248
+ "min": 8.0,
249
+ "max": 11.0,
250
+ "range": 3.0
251
+ },
252
+ "agree_acc": {
253
+ "n": 3,
254
+ "mean": 61.904761904761905,
255
+ "std": 4.123930494211619,
256
+ "min": 57.14285714285714,
257
+ "max": 64.28571428571429,
258
+ "range": 7.142857142857153
259
+ },
260
+ "pb_f1": {
261
+ "n": 3,
262
+ "mean": 69.56194152152483,
263
+ "std": 3.673637195986982,
264
+ "min": 65.74260663190499,
265
+ "max": 73.07008355119325,
266
+ "range": 7.327476919288259
267
+ }
268
+ }
269
+ },
270
+ "comparisons": [
271
+ {
272
+ "a": "u4@20k",
273
+ "b": "u6@32k",
274
+ "metric": "macro_f1",
275
+ "units": "pts",
276
+ "gap": 1.86515540825053,
277
+ "spread": 0.9081359606531691,
278
+ "half_spread": 0.4540679803265846,
279
+ "n_seeds": 3,
280
+ "leader": "u6@32k",
281
+ "ranges_overlap": false,
282
+ "verdict": "RESOLVED",
283
+ "a_min": 67.28569186992823,
284
+ "a_max": 67.59165949395553,
285
+ "b_min": 68.81987346760383,
286
+ "b_max": 69.728009428257
287
+ },
288
+ {
289
+ "a": "u4@20k",
290
+ "b": "u6@32k",
291
+ "metric": "corp_f1",
292
+ "units": "pts",
293
+ "gap": 1.6736937625339436,
294
+ "spread": 1.4959609258935842,
295
+ "half_spread": 0.7479804629467921,
296
+ "n_seeds": 3,
297
+ "leader": "u6@32k",
298
+ "ranges_overlap": false,
299
+ "verdict": "RESOLVED",
300
+ "a_min": 81.38670066473745,
301
+ "a_max": 82.31776419246067,
302
+ "b_min": 82.66029840632898,
303
+ "b_max": 84.15625933222256
304
+ },
305
+ {
306
+ "a": "u4@20k",
307
+ "b": "u6@32k",
308
+ "metric": "probe_acc",
309
+ "units": "pts",
310
+ "gap": 8.333333333333329,
311
+ "spread": 14.583333333333314,
312
+ "half_spread": 7.291666666666657,
313
+ "n_seeds": 3,
314
+ "leader": null,
315
+ "ranges_overlap": true,
316
+ "verdict": "NOT resolved",
317
+ "a_min": 64.58333333333334,
318
+ "a_max": 79.16666666666666,
319
+ "b_min": 77.08333333333334,
320
+ "b_max": 81.25
321
+ },
322
+ {
323
+ "a": "u4@20k",
324
+ "b": "u6@32k",
325
+ "metric": "pairs_solved",
326
+ "units": "pairs",
327
+ "gap": 1.666666666666666,
328
+ "spread": 7.0,
329
+ "half_spread": 3.5,
330
+ "n_seeds": 3,
331
+ "leader": null,
332
+ "ranges_overlap": true,
333
+ "verdict": "NOT resolved",
334
+ "a_min": 5.0,
335
+ "a_max": 12.0,
336
+ "b_min": 8.0,
337
+ "b_max": 11.0
338
+ },
339
+ {
340
+ "a": "u4@20k",
341
+ "b": "u6@32k",
342
+ "metric": "agree_acc",
343
+ "units": "pts",
344
+ "gap": 7.142857142857146,
345
+ "spread": 7.142857142857153,
346
+ "half_spread": 3.5714285714285765,
347
+ "n_seeds": 3,
348
+ "leader": null,
349
+ "ranges_overlap": true,
350
+ "verdict": "NOT resolved",
351
+ "a_min": 50.0,
352
+ "a_max": 57.14285714285714,
353
+ "b_min": 57.14285714285714,
354
+ "b_max": 64.28571428571429
355
+ },
356
+ {
357
+ "a": "u4@20k",
358
+ "b": "u6@32k",
359
+ "metric": "pb_f1",
360
+ "units": "pts",
361
+ "gap": 12.31014395943437,
362
+ "spread": 13.288322688181765,
363
+ "half_spread": 6.644161344090882,
364
+ "n_seeds": 3,
365
+ "leader": null,
366
+ "ranges_overlap": false,
367
+ "verdict": "NOT resolved",
368
+ "a_min": 73.63131856850693,
369
+ "a_max": 86.91964125668869,
370
+ "b_min": 65.74260663190499,
371
+ "b_max": 73.07008355119325
372
+ }
373
+ ],
374
+ "unrankable_metrics": [
375
+ "probe_acc",
376
+ "pairs_solved",
377
+ "agree_acc",
378
+ "pb_f1"
379
+ ]
380
+ }
tokenizer.json ADDED
The diff for this file is too large to render. See raw diff
 
tokenizer_config.json ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "backend": "tokenizers",
3
+ "cls_token": "[CLS]",
4
+ "do_lower_case": true,
5
+ "is_local": false,
6
+ "local_files_only": false,
7
+ "mask_token": "[MASK]",
8
+ "model_max_length": 512,
9
+ "pad_token": "[PAD]",
10
+ "sep_token": "[SEP]",
11
+ "strip_accents": null,
12
+ "tokenize_chinese_chars": true,
13
+ "tokenizer_class": "BertTokenizer",
14
+ "unk_token": "[UNK]"
15
+ }