manu-specific commited on
Commit
aef4ff7
·
verified ·
1 Parent(s): cea9e1d

Upload 16 files

Browse files
.gitattributes CHANGED
@@ -33,3 +33,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ bert-base-only.gguf filter=lfs diff=lfs merge=lfs -text
LICENSE ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Specific AI Inc.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
README.md CHANGED
@@ -1,3 +1,150 @@
1
  ---
2
  license: mit
 
 
 
 
 
 
 
 
 
 
 
 
3
  ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  ---
2
  license: mit
3
+ language:
4
+ - en
5
+ library_name: transformers
6
+ pipeline_tag: text-classification
7
+ tags:
8
+ - email
9
+ - phishing
10
+ - classification
11
+ - bert
12
+ - specific-ai
13
+ - gguf
14
+ base_model: google-bert/bert-base-uncased
15
  ---
16
+
17
+ # specific-AI/email-agent-phishing-detection
18
+
19
+ A compact **BERT** phishing detector distilled with **[Specific AI](https://specific.ai)**.
20
+ It classifies email content as phishing or not, for use in email agents and
21
+ security-aware inbox workflows.
22
+
23
+ | | |
24
+ |---|---|
25
+ | **Task** | Single-label text classification |
26
+ | **Base model** | `bert-base-uncased` |
27
+ | **Training data** | ~15,000 examples |
28
+ | **License** | MIT |
29
+
30
+ ## Input format
31
+
32
+ Examples were trained on emails formatted as plain text with `From`, `Subject`,
33
+ and body (blank line between the headers and the body):
34
+
35
+ ```text
36
+ From: <from>
37
+ Subject: <subject>
38
+
39
+ <body>
40
+ ```
41
+
42
+ Pass inputs in this same shape at inference time for best results.
43
+
44
+ ## Labels
45
+
46
+ | Label | Meaning |
47
+ |---|---|
48
+ | **True** | Phishing detected |
49
+ | **False** | Phishing was not detected |
50
+
51
+ ## Evaluation
52
+
53
+ Compared against **gpt-5.4-mini** as a teacher / baseline on the same evaluation set:
54
+
55
+ | Metric | gpt-5.4-mini | SpecificAI |
56
+ |---|---:|---:|
57
+ | Accuracy | 0.971 | **0.975** |
58
+ | Precision | 0.976 | 0.975 |
59
+ | Recall | 0.971 | **0.975** |
60
+ | F1 score | 0.972 | **0.975** |
61
+
62
+ ## Repository contents
63
+
64
+ This card ships both a full Hugging Face checkpoint and GGUF-ready artifacts:
65
+
66
+ - Full `BertForSequenceClassification` weights (`model.safetensors`) + tokenizer
67
+ - Head layers as NumPy files (`pooler_*.npy`, `classifier_*.npy`) for GGUF / Lemonade fusion
68
+ - Encoder GGUF: `bert-base-only.gguf` (CLS pooling; use with raw / unnormalized embeddings)
69
+
70
+ ## Quick start — Transformers
71
+
72
+ ```python
73
+ from transformers import AutoTokenizer, AutoModelForSequenceClassification
74
+ import torch
75
+
76
+ model_id = "specific-AI/email-agent-phishing-detection"
77
+ tokenizer = AutoTokenizer.from_pretrained(model_id)
78
+ model = AutoModelForSequenceClassification.from_pretrained(model_id)
79
+ model.eval()
80
+
81
+ text = """From: security@paypa1-support.com
82
+ Subject: Your account will be locked
83
+
84
+ Verify your password at http://example-phish.test/login to keep access."""
85
+ inputs = tokenizer(text, return_tensors="pt", truncation=True)
86
+ with torch.no_grad():
87
+ logits = model(**inputs).logits
88
+ pred = model.config.id2label[int(logits.argmax(-1))]
89
+ print(pred) # "True" or "False"
90
+ ```
91
+
92
+ ## Quick start — Lemonade + specific-ai-tools
93
+
94
+ When running the GGUF encoder through Lemonade Server:
95
+
96
+ ```bash
97
+ pip install specific-ai-tools
98
+ ```
99
+
100
+ ```python
101
+ from specific_ai_tools.embedding_heads import LemonadeEmbeddingClassifier
102
+
103
+ classifier = LemonadeEmbeddingClassifier(
104
+ lemonade_model_name="user.email-agent-phishing-detection",
105
+ checkpoint="specific-AI/email-agent-phishing-detection:bert-base-only.gguf",
106
+ lemonade_base_url="http://localhost:13305",
107
+ )
108
+
109
+ text = """From: noreply@secure-mail-alert.com
110
+ Subject: Reset your password now
111
+
112
+ Click here to reset your password immediately."""
113
+ result = classifier.predict_one(text)
114
+ print(result.predicted_labels, result.predicted_confidences)
115
+ ```
116
+
117
+ See the Specific AI toolkit docs for llama-cpp and other embedding backends.
118
+
119
+ ## Intended use
120
+
121
+ - Email / inbox agents that need a fast on-device or CPU phishing signal
122
+ - Pre-filter or assistive scoring alongside other security controls
123
+
124
+ **Out of scope:** sole authority for blocking, quarantine, or legal determinations.
125
+ Treat outputs as a high-throughput classifier signal and keep human / policy review
126
+ in the loop for high-impact actions.
127
+
128
+ ## About Us
129
+
130
+ **[Specific AI](https://specific.ai)** is the automatic SLM distillation platform
131
+ that turns task prompts into production-grade small language models in days —
132
+ not weeks — so your subject matter experts can ship models without waiting on
133
+ scarce data-science bandwidth.
134
+
135
+ We help enterprises move agentic AI from prototype to production with SLMs that
136
+ are typically **1,000×–10,000× smaller** than teacher LLMs, run in
137
+ **milliseconds** on CPUs or edge devices, and deliver the same or better
138
+ task quality at a fraction of the cost — self-hosted on your cloud or
139
+ downloaded for your own inference stack.
140
+
141
+ **Prompt → Distill → Deploy.** Bring your prompt and data, drop them into
142
+ Specific AI, and get a validated small model ready to test and ship.
143
+
144
+ Ready to create SLMs at scale? Visit **[specific.ai](https://specific.ai)**.
145
+
146
+ ## License
147
+
148
+ MIT — see [LICENSE](LICENSE).
149
+
150
+ Copyright (C) 2026 Specific AI Inc. All rights reserved.
bert-base-only.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1adb1a65d1169a8ea677c8ba9dbb1aef69eae988a6e68f04bea6ba2f16bc9090
3
+ size 436208736
classifier_b.npy ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:dd59364bee2cee762147077cd9aba242977b9f32eb58e3dfd222680b54c2e228
3
+ size 136
classifier_w.npy ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:336985753d38c35011b4ee6bec704290c37c7937520d016e472b1c3d1e23bcf9
3
+ size 6272
config.json ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "BertForSequenceClassification"
4
+ ],
5
+ "attention_probs_dropout_prob": 0.1,
6
+ "classifier_dropout": null,
7
+ "dtype": "float32",
8
+ "gradient_checkpointing": false,
9
+ "hidden_act": "gelu",
10
+ "hidden_dropout_prob": 0.1,
11
+ "hidden_size": 768,
12
+ "id2label": {
13
+ "0": "False",
14
+ "1": "True"
15
+ },
16
+ "initializer_range": 0.02,
17
+ "intermediate_size": 3072,
18
+ "label2id": {
19
+ "False": 0,
20
+ "True": 1
21
+ },
22
+ "layer_norm_eps": 1e-12,
23
+ "max_position_embeddings": 512,
24
+ "model_type": "bert",
25
+ "num_attention_heads": 12,
26
+ "num_hidden_layers": 12,
27
+ "pad_token_id": 0,
28
+ "position_embedding_type": "absolute",
29
+ "problem_type": "single_label_classification",
30
+ "transformers_version": "4.57.3",
31
+ "type_vocab_size": 2,
32
+ "use_cache": true,
33
+ "vocab_size": 30522
34
+ }
metadata.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"task_type": "ClassificationResponse", "label_names": ["False", "True"], "client_id": "40b3a00e282ee2db1338c3bba881b99125fc3ba1d7f5c29232ce1ad63fab1e75", "llm_usecase_id": "6a59bb32de331510eb8ffe24", "distillation_event_id": "6a5e4188194ffc4db094fefc", "tokenizer_files": ["tokenizer_config.json", "special_tokens_map.json", "vocab.txt", "added_tokens.json", "tokenizer.json"], "model_name": "bert-base-uncased", "input_names": ["input_ids", "attention_mask", "token_type_ids"]}
model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9a62ec1ba6341895747b4ab71efdb0e162cbed09c7615a71057f7304c0a8327c
3
+ size 437958648
pooler_b.npy ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4f0642cc5fbc74d7f49f4d0a6e580885bb930082cef47883b2c3beb0d15d3bd2
3
+ size 3200
pooler_w.npy ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8c72e03198eb5e45d958ccc9c0b5b261935ab3c0736a9d7b93c4b7340f1c5ac8
3
+ size 2359424
special_tokens_map.json ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ {
2
+ "cls_token": "[CLS]",
3
+ "mask_token": "[MASK]",
4
+ "pad_token": "[PAD]",
5
+ "sep_token": "[SEP]",
6
+ "unk_token": "[UNK]"
7
+ }
tokenizer.json ADDED
The diff for this file is too large to render. See raw diff
 
tokenizer_config.json ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "added_tokens_decoder": {
3
+ "0": {
4
+ "content": "[PAD]",
5
+ "lstrip": false,
6
+ "normalized": false,
7
+ "rstrip": false,
8
+ "single_word": false,
9
+ "special": true
10
+ },
11
+ "100": {
12
+ "content": "[UNK]",
13
+ "lstrip": false,
14
+ "normalized": false,
15
+ "rstrip": false,
16
+ "single_word": false,
17
+ "special": true
18
+ },
19
+ "101": {
20
+ "content": "[CLS]",
21
+ "lstrip": false,
22
+ "normalized": false,
23
+ "rstrip": false,
24
+ "single_word": false,
25
+ "special": true
26
+ },
27
+ "102": {
28
+ "content": "[SEP]",
29
+ "lstrip": false,
30
+ "normalized": false,
31
+ "rstrip": false,
32
+ "single_word": false,
33
+ "special": true
34
+ },
35
+ "103": {
36
+ "content": "[MASK]",
37
+ "lstrip": false,
38
+ "normalized": false,
39
+ "rstrip": false,
40
+ "single_word": false,
41
+ "special": true
42
+ }
43
+ },
44
+ "clean_up_tokenization_spaces": false,
45
+ "cls_token": "[CLS]",
46
+ "do_lower_case": true,
47
+ "extra_special_tokens": {},
48
+ "mask_token": "[MASK]",
49
+ "model_max_length": 512,
50
+ "pad_token": "[PAD]",
51
+ "sep_token": "[SEP]",
52
+ "strip_accents": null,
53
+ "tokenize_chinese_chars": true,
54
+ "tokenizer_class": "BertTokenizer",
55
+ "truncation_side": "left",
56
+ "unk_token": "[UNK]"
57
+ }
trainer_state.json ADDED
@@ -0,0 +1,449 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "best_global_step": 7840,
3
+ "best_metric": 0.9680508203881729,
4
+ "best_model_checkpoint": "/app/checkpoints/checkpoint-7840",
5
+ "epoch": 5.0,
6
+ "eval_steps": 500,
7
+ "global_step": 7840,
8
+ "is_hyper_param_search": false,
9
+ "is_local_process_zero": true,
10
+ "is_world_process_zero": true,
11
+ "log_history": [
12
+ {
13
+ "epoch": 0,
14
+ "eval_accuracy": 0.38692185007974483,
15
+ "eval_class_metrics": {
16
+ "0": {
17
+ "accuracy": 0.38692185007974483,
18
+ "confusion_matrix": {
19
+ "fn": 1904,
20
+ "fp": 18,
21
+ "tn": 1187,
22
+ "tp": 26
23
+ },
24
+ "f_beta_score": 0.02634245187436677,
25
+ "precision": 0.5909090909090909,
26
+ "recall": 0.013471502590673576
27
+ },
28
+ "1": {
29
+ "accuracy": 0.38692185007974483,
30
+ "confusion_matrix": {
31
+ "fn": 18,
32
+ "fp": 1904,
33
+ "tn": 26,
34
+ "tp": 1187
35
+ },
36
+ "f_beta_score": 0.5526070763500931,
37
+ "precision": 0.38401811711420253,
38
+ "recall": 0.9850622406639005
39
+ }
40
+ },
41
+ "eval_confusion_matrix": {
42
+ "fn": 1922,
43
+ "fp": 1922,
44
+ "tn": 1213,
45
+ "tp": 1213
46
+ },
47
+ "eval_f_beta_score": 0.22862279397747687,
48
+ "eval_label_confusion_matrix": {
49
+ "labels": [
50
+ "False",
51
+ "True"
52
+ ],
53
+ "matrix": [
54
+ [
55
+ 26,
56
+ 1904
57
+ ],
58
+ [
59
+ 18,
60
+ 1187
61
+ ]
62
+ ]
63
+ },
64
+ "eval_loss": 0.6828452944755554,
65
+ "eval_precision": 0.5113864040118531,
66
+ "eval_recall": 0.38692185007974483,
67
+ "eval_runtime": 18.6915,
68
+ "eval_sample_size": 3135,
69
+ "eval_samples_per_second": 167.723,
70
+ "eval_steps_per_second": 20.972,
71
+ "step": 0
72
+ },
73
+ {
74
+ "epoch": 1.0,
75
+ "grad_norm": 0.09250472486019135,
76
+ "hard_loss": 0.19278878086653112,
77
+ "learning_rate": 1.1780364852141454e-05,
78
+ "loss": 0.1928,
79
+ "step": 1568
80
+ },
81
+ {
82
+ "epoch": 1.0,
83
+ "eval_accuracy": 0.9559808612440192,
84
+ "eval_class_metrics": {
85
+ "0": {
86
+ "accuracy": 0.9559808612440192,
87
+ "confusion_matrix": {
88
+ "fn": 94,
89
+ "fp": 44,
90
+ "tn": 1161,
91
+ "tp": 1836
92
+ },
93
+ "f_beta_score": 0.9637795275590552,
94
+ "precision": 0.9765957446808511,
95
+ "recall": 0.9512953367875647
96
+ },
97
+ "1": {
98
+ "accuracy": 0.9559808612440192,
99
+ "confusion_matrix": {
100
+ "fn": 44,
101
+ "fp": 94,
102
+ "tn": 1836,
103
+ "tp": 1161
104
+ },
105
+ "f_beta_score": 0.9439024390243902,
106
+ "precision": 0.9250996015936255,
107
+ "recall": 0.9634854771784233
108
+ }
109
+ },
110
+ "eval_confusion_matrix": {
111
+ "fn": 138,
112
+ "fp": 138,
113
+ "tn": 2997,
114
+ "tp": 2997
115
+ },
116
+ "eval_f_beta_score": 0.9561393707219671,
117
+ "eval_label_confusion_matrix": {
118
+ "labels": [
119
+ "False",
120
+ "True"
121
+ ],
122
+ "matrix": [
123
+ [
124
+ 1836,
125
+ 94
126
+ ],
127
+ [
128
+ 44,
129
+ 1161
130
+ ]
131
+ ]
132
+ },
133
+ "eval_loss": 0.20423130691051483,
134
+ "eval_precision": 0.956802171341104,
135
+ "eval_recall": 0.9559808612440192,
136
+ "eval_runtime": 18.3681,
137
+ "eval_sample_size": 3135,
138
+ "eval_samples_per_second": 170.676,
139
+ "eval_steps_per_second": 21.341,
140
+ "step": 1568
141
+ },
142
+ {
143
+ "epoch": 2.0,
144
+ "grad_norm": 0.2099187821149826,
145
+ "hard_loss": 0.14008313520248428,
146
+ "learning_rate": 1.1160366460299146e-05,
147
+ "loss": 0.1401,
148
+ "step": 3136
149
+ },
150
+ {
151
+ "epoch": 2.0,
152
+ "eval_accuracy": 0.9661881977671452,
153
+ "eval_class_metrics": {
154
+ "0": {
155
+ "accuracy": 0.9661881977671452,
156
+ "confusion_matrix": {
157
+ "fn": 45,
158
+ "fp": 61,
159
+ "tn": 1144,
160
+ "tp": 1885
161
+ },
162
+ "f_beta_score": 0.9726522187822497,
163
+ "precision": 0.9686536485097637,
164
+ "recall": 0.9766839378238342
165
+ },
166
+ "1": {
167
+ "accuracy": 0.9661881977671452,
168
+ "confusion_matrix": {
169
+ "fn": 61,
170
+ "fp": 45,
171
+ "tn": 1885,
172
+ "tp": 1144
173
+ },
174
+ "f_beta_score": 0.9557226399331662,
175
+ "precision": 0.9621530698065601,
176
+ "recall": 0.9493775933609958
177
+ }
178
+ },
179
+ "eval_confusion_matrix": {
180
+ "fn": 106,
181
+ "fp": 106,
182
+ "tn": 3029,
183
+ "tp": 3029
184
+ },
185
+ "eval_f_beta_score": 0.9661449962900183,
186
+ "eval_label_confusion_matrix": {
187
+ "labels": [
188
+ "False",
189
+ "True"
190
+ ],
191
+ "matrix": [
192
+ [
193
+ 1885,
194
+ 45
195
+ ],
196
+ [
197
+ 61,
198
+ 1144
199
+ ]
200
+ ]
201
+ },
202
+ "eval_loss": 0.14875319600105286,
203
+ "eval_precision": 0.9661550209699359,
204
+ "eval_recall": 0.9661881977671452,
205
+ "eval_runtime": 18.3189,
206
+ "eval_sample_size": 3135,
207
+ "eval_samples_per_second": 171.134,
208
+ "eval_steps_per_second": 21.399,
209
+ "step": 3136
210
+ },
211
+ {
212
+ "epoch": 3.0,
213
+ "grad_norm": 0.020211078226566315,
214
+ "hard_loss": 0.11091282128492301,
215
+ "learning_rate": 1.0540368068456843e-05,
216
+ "loss": 0.1109,
217
+ "step": 4704
218
+ },
219
+ {
220
+ "epoch": 3.0,
221
+ "eval_accuracy": 0.9665071770334929,
222
+ "eval_class_metrics": {
223
+ "0": {
224
+ "accuracy": 0.9665071770334929,
225
+ "confusion_matrix": {
226
+ "fn": 51,
227
+ "fp": 54,
228
+ "tn": 1151,
229
+ "tp": 1879
230
+ },
231
+ "f_beta_score": 0.9728190525498317,
232
+ "precision": 0.9720641489912054,
233
+ "recall": 0.9735751295336788
234
+ },
235
+ "1": {
236
+ "accuracy": 0.9665071770334929,
237
+ "confusion_matrix": {
238
+ "fn": 54,
239
+ "fp": 51,
240
+ "tn": 1879,
241
+ "tp": 1151
242
+ },
243
+ "f_beta_score": 0.9563772330702118,
244
+ "precision": 0.9575707154742097,
245
+ "recall": 0.9551867219917013
246
+ }
247
+ },
248
+ "eval_confusion_matrix": {
249
+ "fn": 105,
250
+ "fp": 105,
251
+ "tn": 3030,
252
+ "tp": 3030
253
+ },
254
+ "eval_f_beta_score": 0.9664993101342201,
255
+ "eval_label_confusion_matrix": {
256
+ "labels": [
257
+ "False",
258
+ "True"
259
+ ],
260
+ "matrix": [
261
+ [
262
+ 1879,
263
+ 51
264
+ ],
265
+ [
266
+ 54,
267
+ 1151
268
+ ]
269
+ ]
270
+ },
271
+ "eval_loss": 0.1719985455274582,
272
+ "eval_precision": 0.9664933077191225,
273
+ "eval_recall": 0.9665071770334929,
274
+ "eval_runtime": 18.5606,
275
+ "eval_sample_size": 3135,
276
+ "eval_samples_per_second": 168.906,
277
+ "eval_steps_per_second": 21.12,
278
+ "step": 4704
279
+ },
280
+ {
281
+ "epoch": 4.0,
282
+ "grad_norm": 0.007895365357398987,
283
+ "hard_loss": 0.07477579451819463,
284
+ "learning_rate": 9.920369676614537e-06,
285
+ "loss": 0.0748,
286
+ "step": 6272
287
+ },
288
+ {
289
+ "epoch": 4.0,
290
+ "eval_accuracy": 0.9559808612440192,
291
+ "eval_class_metrics": {
292
+ "0": {
293
+ "accuracy": 0.9559808612440192,
294
+ "confusion_matrix": {
295
+ "fn": 101,
296
+ "fp": 37,
297
+ "tn": 1168,
298
+ "tp": 1829
299
+ },
300
+ "f_beta_score": 0.9636459430979979,
301
+ "precision": 0.9801714898177921,
302
+ "recall": 0.9476683937823834
303
+ },
304
+ "1": {
305
+ "accuracy": 0.9559808612440192,
306
+ "confusion_matrix": {
307
+ "fn": 37,
308
+ "fp": 101,
309
+ "tn": 1829,
310
+ "tp": 1168
311
+ },
312
+ "f_beta_score": 0.9442198868229588,
313
+ "precision": 0.9204097714736013,
314
+ "recall": 0.9692946058091286
315
+ }
316
+ },
317
+ "eval_confusion_matrix": {
318
+ "fn": 138,
319
+ "fp": 138,
320
+ "tn": 2997,
321
+ "tp": 2997
322
+ },
323
+ "eval_f_beta_score": 0.9561791495377358,
324
+ "eval_label_confusion_matrix": {
325
+ "labels": [
326
+ "False",
327
+ "True"
328
+ ],
329
+ "matrix": [
330
+ [
331
+ 1829,
332
+ 101
333
+ ],
334
+ [
335
+ 37,
336
+ 1168
337
+ ]
338
+ ]
339
+ },
340
+ "eval_loss": 0.2560373842716217,
341
+ "eval_precision": 0.957200877184698,
342
+ "eval_recall": 0.9559808612440192,
343
+ "eval_runtime": 18.6002,
344
+ "eval_sample_size": 3135,
345
+ "eval_samples_per_second": 168.546,
346
+ "eval_steps_per_second": 21.075,
347
+ "step": 6272
348
+ },
349
+ {
350
+ "epoch": 5.0,
351
+ "grad_norm": 0.028711551800370216,
352
+ "hard_loss": 0.04914131778617753,
353
+ "learning_rate": 9.300371284772232e-06,
354
+ "loss": 0.0491,
355
+ "step": 7840
356
+ },
357
+ {
358
+ "epoch": 5.0,
359
+ "eval_accuracy": 0.9681020733652312,
360
+ "eval_class_metrics": {
361
+ "0": {
362
+ "accuracy": 0.9681020733652312,
363
+ "confusion_matrix": {
364
+ "fn": 40,
365
+ "fp": 60,
366
+ "tn": 1145,
367
+ "tp": 1890
368
+ },
369
+ "f_beta_score": 0.9742268041237113,
370
+ "precision": 0.9692307692307692,
371
+ "recall": 0.9792746113989638
372
+ },
373
+ "1": {
374
+ "accuracy": 0.9681020733652312,
375
+ "confusion_matrix": {
376
+ "fn": 60,
377
+ "fp": 40,
378
+ "tn": 1890,
379
+ "tp": 1145
380
+ },
381
+ "f_beta_score": 0.9581589958158996,
382
+ "precision": 0.9662447257383966,
383
+ "recall": 0.950207468879668
384
+ }
385
+ },
386
+ "eval_confusion_matrix": {
387
+ "fn": 100,
388
+ "fp": 100,
389
+ "tn": 3035,
390
+ "tp": 3035
391
+ },
392
+ "eval_f_beta_score": 0.9680508203881729,
393
+ "eval_label_confusion_matrix": {
394
+ "labels": [
395
+ "False",
396
+ "True"
397
+ ],
398
+ "matrix": [
399
+ [
400
+ 1890,
401
+ 40
402
+ ],
403
+ [
404
+ 60,
405
+ 1145
406
+ ]
407
+ ]
408
+ },
409
+ "eval_loss": 0.24635428190231323,
410
+ "eval_precision": 0.9680830236459818,
411
+ "eval_recall": 0.9681020733652312,
412
+ "eval_runtime": 18.3281,
413
+ "eval_sample_size": 3135,
414
+ "eval_samples_per_second": 171.049,
415
+ "eval_steps_per_second": 21.388,
416
+ "step": 7840
417
+ }
418
+ ],
419
+ "logging_steps": 500,
420
+ "max_steps": 31360,
421
+ "num_input_tokens_seen": 0,
422
+ "num_train_epochs": 20,
423
+ "save_steps": 500,
424
+ "stateful_callbacks": {
425
+ "EarlyStoppingCallback": {
426
+ "args": {
427
+ "early_stopping_patience": 3,
428
+ "early_stopping_threshold": 0.01
429
+ },
430
+ "attributes": {
431
+ "early_stopping_patience_counter": 3
432
+ }
433
+ },
434
+ "TrainerControl": {
435
+ "args": {
436
+ "should_epoch_stop": false,
437
+ "should_evaluate": false,
438
+ "should_log": false,
439
+ "should_save": true,
440
+ "should_training_stop": true
441
+ },
442
+ "attributes": {}
443
+ }
444
+ },
445
+ "total_flos": 1.494801327708096e+16,
446
+ "train_batch_size": 8,
447
+ "trial_name": null,
448
+ "trial_params": null
449
+ }
training_args.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5b3e8784bad28e4d48ad30e61a905f913cb182018f0244adf5b0a7e2bd4332d9
3
+ size 5905
vocab.txt ADDED
The diff for this file is too large to render. See raw diff