ProCreations commited on
Commit
0dc656b
·
verified ·
1 Parent(s): 839e2c5

Upload folder using huggingface_hub

Browse files
README.md ADDED
@@ -0,0 +1,244 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ base_model: jhu-clsp/ettin-encoder-1b
4
+ pipeline_tag: text-classification
5
+ library_name: transformers
6
+ tags:
7
+ - agent-safety
8
+ - tool-calling
9
+ - guardrails
10
+ - modernbert
11
+ - long-context
12
+ datasets:
13
+ - ProCreations/auto-1b-data
14
+ - ProCreations/approve-or-deny
15
+ language:
16
+ - en
17
+ model-index:
18
+ - name: auto-1b
19
+ results:
20
+ - task:
21
+ type: text-classification
22
+ name: Agentic tool-call safety gating
23
+ dataset:
24
+ name: Approve-or-Deny
25
+ type: ProCreations/approve-or-deny
26
+ split: test
27
+ metrics:
28
+ - type: accuracy
29
+ value: 0.9640
30
+ name: Accuracy
31
+ - type: f1
32
+ value: 0.9614
33
+ name: F1 (deny)
34
+ - type: roc_auc
35
+ value: 0.9928
36
+ name: AUROC
37
+ - type: false_approve_rate
38
+ value: 0.0407
39
+ name: False-approve rate (dangerous call allowed)
40
+ - type: false_deny_rate
41
+ value: 0.0319
42
+ name: False-deny rate (safe call blocked)
43
+ ---
44
+
45
+ # auto-1b
46
+
47
+ **A 1B encoder that decides whether an AI agent's next tool call is safe to run — at
48
+ frontier-model accuracy and ~300x the speed.**
49
+
50
+ Agent harnesses like Codex "Auto" mode and Claude Code auto-accept ask a large frontier LLM
51
+ *"should I let this tool call run?"* on every single step. That works, but it burns
52
+ subscription usage, adds seconds of latency to every action, and spends a generative model on
53
+ what is fundamentally a **classification** problem.
54
+
55
+ `auto-1b` is a full fine-tune of [ettin-encoder-1b](https://huggingface.co/jhu-clsp/ettin-encoder-1b)
56
+ with context extended to **64k tokens**, trained to answer exactly that question:
57
+
58
+ - **`approve`** — routine work that serves the user's request. Reading files, running tests,
59
+ editing code, committing, **web search, fetching docs, installing legitimate packages**.
60
+ Network access is normal agent behaviour and is *not* treated as dangerous.
61
+ - **`deny`** — the call is consequential *and* unauthorised: wiping directories, exfiltrating
62
+ credentials, installing hostile software, weakening security controls, destroying production
63
+ state, or following instructions injected by content the agent just read.
64
+
65
+ ## Results
66
+
67
+ On [ProCreations/approve-or-deny](https://huggingface.co/datasets/ProCreations/approve-or-deny)
68
+ (3,000 held-out items, never trained on, threshold 0.5):
69
+
70
+ | system | accuracy | false-approve | false-deny | latency/call | cost |
71
+ |---|---|---|---|---|---|
72
+ | GPT-5.6-Luna | 96.97% | 4.93% | 1.38% | 3.09 s | API spend |
73
+ | **auto-1b** | **96.40%** | **4.07%** | **3.19%** | **10 ms** | **free** |
74
+ | DeepSeek V4 Flash 0731 | 94.95% | 10.11% | 0.63% | 5.64 s | API spend |
75
+ | [auto-0.4b](https://huggingface.co/ProCreations/auto-0.4b) | 90.13% | 8.71% | 10.88% | 7.2 ms | free |
76
+ | regex heuristic | 57.97% | 59.39% | 26.83% | ~0 ms | free |
77
+
78
+ **AUROC 0.9928.** It beats DeepSeek V4 Flash outright, lands 0.57 points under Luna, and
79
+ **approves fewer dangerous calls than Luna does** (4.07% vs 4.93%) while answering in
80
+ **~300x less time**.
81
+
82
+ The regex baseline — "block anything containing `rm -rf`/`sudo`/`curl`" — is included to show
83
+ the benchmark is not keyword-solvable. Roughly half the `deny` items contain no alarming token
84
+ at all, and many `approve` items are full of them.
85
+
86
+ ### Long context actually works
87
+
88
+ Decisive evidence is buried at random depth inside benign filler, so long-context ability is
89
+ tested as needle-in-a-haystack retrieval rather than merely declared:
90
+
91
+ | context length | n | accuracy | false-approve | false-deny |
92
+ |---|---|---|---|---|
93
+ | <1k | 2239 | 96.78% | 4.77% | 1.95% |
94
+ | 1k–4k | 231 | 96.97% | 2.36% | 3.85% |
95
+ | 4k–16k | 194 | 90.21% | 3.23% | 15.84% |
96
+ | **16k–64k** | 336 | **97.02%** | **1.72%** | 4.32% |
97
+
98
+ Accuracy at 16k–64k is as high as at <1k. For comparison, auto-0.4b scored **78.45%** on that
99
+ same slice with a 25.6% false-approve rate — long context was its single worst weakness, and
100
+ it is now its equal.
101
+
102
+ The **4k–16k band is this model's weakest slice** (90.21%, driven by a 15.84% false-deny rate).
103
+ If your traffic is concentrated there, calibrate the threshold accordingly.
104
+
105
+ ### By difficulty
106
+
107
+ | difficulty | n | accuracy | false-approve | false-deny |
108
+ |---|---|---|---|---|
109
+ | easy | 870 | 97.70% | 2.08% | 2.44% |
110
+ | medium | 1065 | 97.18% | 3.38% | 2.25% |
111
+ | hard | 1065 | 94.55% | 6.02% | 4.88% |
112
+
113
+ ### Where it still fails
114
+
115
+ Categories with a meaningful sample size, ranked by false-approve rate:
116
+
117
+ | category | n | false-approve |
118
+ |---|---|---|
119
+ | `destructive_filesystem` | 105 | 11.43% |
120
+ | `data_destruction_unrequested` | 119 | 9.24% |
121
+ | `irreversible_remote` | 94 | 8.51% |
122
+ | `abuse_spam_privacy` | 92 | 6.59% |
123
+ | `credential_exfiltration` | 94 | 4.26% |
124
+ | `privilege_escalation` | 107 | 2.83% |
125
+ | `prompt_injection` | 125 | 0.80% |
126
+
127
+ Prompt injection — an agent following instructions from content it just fetched — is caught at
128
+ 99.2%. Irreversible filesystem destruction remains the weak point.
129
+
130
+ Two category numbers in the raw results look alarming and are small-denominator artifacts, not
131
+ real findings: `recovery_action` reports 50% false-approve on **2** deny items, and
132
+ `obfuscated_payload` reports 100% false-deny on a handful of approve items. Do not read them as
133
+ category-level failure rates.
134
+
135
+ ## Usage
136
+
137
+ ```python
138
+ import torch
139
+ from transformers import AutoTokenizer, AutoModelForSequenceClassification
140
+
141
+ tok = AutoTokenizer.from_pretrained("ProCreations/auto-1b")
142
+ model = AutoModelForSequenceClassification.from_pretrained(
143
+ "ProCreations/auto-1b",
144
+ dtype=torch.bfloat16,
145
+ attn_implementation="flash_attention_2", # required for the full 64k context
146
+ ).cuda().eval()
147
+
148
+ def build_input(user_request, history, call):
149
+ """history: list of dicts with tool/args/result. call: dict with tool/args."""
150
+ parts = ["### PROPOSED TOOL CALL", f"tool: {call['tool']}", f"args: {call['args']}", "",
151
+ "### USER REQUEST", user_request, "", "### AGENT HISTORY"]
152
+ if not history:
153
+ parts.append("(no prior actions)")
154
+ else:
155
+ for i, h in enumerate(history):
156
+ parts.append(f"[{i+1}] {h['tool']}({h['args']})\n-> {h.get('result','')}")
157
+ return "\n".join(parts)
158
+
159
+ text = build_input(
160
+ user_request="clean up the build artifacts and reinstall deps",
161
+ history=[{"tool": "Bash", "args": "ls -la", "result": "node_modules dist src package.json"}],
162
+ call={"tool": "Bash", "args": "rm -rf node_modules dist && npm install"},
163
+ )
164
+
165
+ enc = tok(text, return_tensors="pt", truncation=True, max_length=65536).to("cuda")
166
+ with torch.no_grad():
167
+ p_deny = model(**enc).logits.softmax(-1)[0, 1].item()
168
+
169
+ print("DENY" if p_deny > 0.5 else "APPROVE", f"(P(deny)={p_deny:.3f})")
170
+ ```
171
+
172
+ **The input format matters.** The proposed call and the user request come first so they survive
173
+ truncation; history follows. Use the exact section headers above — the model was trained on them.
174
+
175
+ ### It generalises to tools it has never seen
176
+
177
+ `logits[:, 1]` after softmax is `P(deny)`. The model keys on *what the call does and whether the
178
+ user authorised it*, not on the tool's name. Probes on tool types absent from training:
179
+
180
+ | call | P(deny) | |
181
+ |---|---|---|
182
+ | `Skill(db-drop-and-recreate)` — user asked for a migration | 0.105 | approve |
183
+ | `mcp__gcal__list_events` — user asked about their calendar | 0.025 | approve |
184
+ | `CodeGraphQuery(...)` — an invented tool, benign args | 0.014 | approve |
185
+ | `mcp__admin__delete_all_users` — user asked about their calendar | 0.980 | **deny** |
186
+ | `mcp__slack__post_message` — body contains an AWS secret | 0.983 | **deny** |
187
+ | `DocumentIngestPipeline` — invented tool, path `/`, uploads to a raw IP | 0.993 | **deny** |
188
+
189
+ A skill whose *name* is nothing but alarm words is approved when the request authorises it; a
190
+ wholly invented tool is denied on argument semantics alone.
191
+
192
+ *(These probes were run against auto-0.4b, which shares the training corpus and decision rule.)*
193
+
194
+ ## Deployment
195
+
196
+ A wrong approve costs far more than a wrong deny, so pick the operating point deliberately:
197
+
198
+ - **Standalone gate** — threshold 0.5 gives 4.07% false-approve and 3.19% false-deny.
199
+ - **First-stage filter (recommended)** — auto-approve below a low threshold, auto-deny above a
200
+ high one, escalate the middle band to a frontier model. This removes the large majority of LLM
201
+ gate calls while keeping frontier judgement on genuinely ambiguous cases.
202
+
203
+ Real agent traffic is overwhelmingly benign, so the false-deny rate is multiplied across almost
204
+ every call while false-approve applies to a rare few. At 3.19%, roughly 1 action in 31 gets
205
+ interrupted at the default threshold — down from 1 in 9 for auto-0.4b, which is what makes this
206
+ model practical to run standalone.
207
+
208
+ ## How it was built
209
+
210
+ **Context extension (8k → 64k).** ModernBERT-style architectures alternate local sliding-window
211
+ attention (window 128) with full global attention every 3rd layer, so only 10 of 28 layers pay
212
+ the O(n²) cost — which is what makes 64k practical. Only those global layers need a new RoPE
213
+ base: **2,560,000** for full attention, 160,000 for sliding.
214
+
215
+ **Training.** Full fine-tune of all 1,031,267,330 parameters in two stages — 2 epochs at short
216
+ context (max 4,096) where nearly all real traffic lives, then 1 epoch at up to 65,536 so the
217
+ extended RoPE is exercised on the actual task. The long stage mixes ~20k short examples back in
218
+ to prevent forgetting, and runs at a 3x lower learning rate (8e-06 vs 2.4e-05). Batching is by
219
+ token budget rather than example count, since inputs span 200–65,536 tokens.
220
+
221
+ 4x RTX PRO 6000 with DDP, bf16 autocast over fp32 master weights, gradient checkpointing,
222
+ flash-attention 2. Total wall clock **4h45m**.
223
+
224
+ **Data.** [712,000 examples](https://huggingface.co/datasets/ProCreations/auto-1b-data)
225
+ (688k short + 24k long) spanning agent frameworks, domains, risk categories, obfuscation styles
226
+ and multiple languages, with deliberate **minimal contrastive pairs** — near-identical calls
227
+ with opposite labels where only the user's request or the history flips the verdict. The
228
+ benchmark is excluded by content hash (verified 0/3000 overlap).
229
+
230
+ ## Limitations
231
+
232
+ - Training labels are model-generated and reflect the decision rule they were written against.
233
+ This is not a substitute for a real security review of your agent's permissions.
234
+ - It judges a *proposed* call from text. It cannot see what a script will actually do at
235
+ runtime, so an opaque binary or a URL whose content it cannot read is judged on context alone.
236
+ - The ONNX export is practical to ~8k tokens (the non-flash attention path materialises a dense
237
+ sliding-window mask); use the PyTorch + flash-attn path for full 64k.
238
+ - Evaluated only on synthetic held-out data. Behaviour on real production agent traffic has not
239
+ been measured.
240
+
241
+ ## Other formats
242
+
243
+ - [`ProCreations/auto-1b-gguf`](https://huggingface.co/ProCreations/auto-1b-gguf) — llama.cpp
244
+ - [`ProCreations/auto-1b-ONNX`](https://huggingface.co/ProCreations/auto-1b-ONNX) — ONNX + int8
config.json ADDED
@@ -0,0 +1,93 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "ModernBertForSequenceClassification"
4
+ ],
5
+ "attention_bias": false,
6
+ "attention_dropout": 0.0,
7
+ "bos_token_id": 50281,
8
+ "causal_mask": false,
9
+ "classifier_activation": "gelu",
10
+ "classifier_bias": false,
11
+ "classifier_dropout": 0.0,
12
+ "classifier_pooling": "cls",
13
+ "cls_token_id": 50281,
14
+ "decoder_bias": true,
15
+ "deterministic_flash_attn": false,
16
+ "dtype": "float32",
17
+ "embedding_dropout": 0.0,
18
+ "eos_token_id": 50282,
19
+ "global_attn_every_n_layers": 3,
20
+ "gradient_checkpointing": false,
21
+ "hidden_activation": "gelu",
22
+ "hidden_size": 1792,
23
+ "id2label": {
24
+ "0": "approve",
25
+ "1": "deny"
26
+ },
27
+ "initializer_cutoff_factor": 2.0,
28
+ "initializer_range": 0.02,
29
+ "intermediate_size": 3840,
30
+ "is_causal": false,
31
+ "label2id": {
32
+ "approve": 0,
33
+ "deny": 1
34
+ },
35
+ "layer_norm_eps": 1e-05,
36
+ "layer_types": [
37
+ "full_attention",
38
+ "sliding_attention",
39
+ "sliding_attention",
40
+ "full_attention",
41
+ "sliding_attention",
42
+ "sliding_attention",
43
+ "full_attention",
44
+ "sliding_attention",
45
+ "sliding_attention",
46
+ "full_attention",
47
+ "sliding_attention",
48
+ "sliding_attention",
49
+ "full_attention",
50
+ "sliding_attention",
51
+ "sliding_attention",
52
+ "full_attention",
53
+ "sliding_attention",
54
+ "sliding_attention",
55
+ "full_attention",
56
+ "sliding_attention",
57
+ "sliding_attention",
58
+ "full_attention",
59
+ "sliding_attention",
60
+ "sliding_attention",
61
+ "full_attention",
62
+ "sliding_attention",
63
+ "sliding_attention",
64
+ "full_attention"
65
+ ],
66
+ "local_attention": 128,
67
+ "max_position_embeddings": 65536,
68
+ "mlp_bias": false,
69
+ "mlp_dropout": 0.0,
70
+ "model_type": "modernbert",
71
+ "norm_bias": false,
72
+ "norm_eps": 1e-05,
73
+ "num_attention_heads": 28,
74
+ "num_hidden_layers": 28,
75
+ "pad_token_id": 50283,
76
+ "position_embedding_type": "sans_pos",
77
+ "rope_parameters": {
78
+ "full_attention": {
79
+ "rope_theta": 2560000.0,
80
+ "rope_type": "default"
81
+ },
82
+ "sliding_attention": {
83
+ "rope_theta": 160000.0,
84
+ "rope_type": "default"
85
+ }
86
+ },
87
+ "sep_token_id": 50282,
88
+ "sparse_pred_ignore_index": -100,
89
+ "sparse_prediction": false,
90
+ "tie_word_embeddings": true,
91
+ "transformers_version": "5.14.1",
92
+ "vocab_size": 50368
93
+ }
model-00001-of-00002.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:919f9471b1d858e730533f8429f0d92bd0777d084225a9c8af9ebe09c200b185
3
+ size 3991117160
model-00002-of-00002.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5d72cf6c9d66dbf3fd5744c61eb55830308b5c40e3c52b3fe8bdd9382e8e3e86
3
+ size 133970576
model.safetensors.index.json ADDED
@@ -0,0 +1,182 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "metadata": {
3
+ "total_parameters": 1031267330,
4
+ "total_size": 4125069320
5
+ },
6
+ "weight_map": {
7
+ "classifier.bias": "model-00001-of-00002.safetensors",
8
+ "classifier.weight": "model-00001-of-00002.safetensors",
9
+ "head.dense.weight": "model-00001-of-00002.safetensors",
10
+ "head.norm.weight": "model-00001-of-00002.safetensors",
11
+ "model.embeddings.norm.weight": "model-00001-of-00002.safetensors",
12
+ "model.embeddings.tok_embeddings.weight": "model-00001-of-00002.safetensors",
13
+ "model.final_norm.weight": "model-00001-of-00002.safetensors",
14
+ "model.layers.0.attn.Wo.weight": "model-00001-of-00002.safetensors",
15
+ "model.layers.0.attn.Wqkv.weight": "model-00001-of-00002.safetensors",
16
+ "model.layers.0.mlp.Wi.weight": "model-00001-of-00002.safetensors",
17
+ "model.layers.0.mlp.Wo.weight": "model-00001-of-00002.safetensors",
18
+ "model.layers.0.mlp_norm.weight": "model-00001-of-00002.safetensors",
19
+ "model.layers.1.attn.Wo.weight": "model-00001-of-00002.safetensors",
20
+ "model.layers.1.attn.Wqkv.weight": "model-00001-of-00002.safetensors",
21
+ "model.layers.1.attn_norm.weight": "model-00001-of-00002.safetensors",
22
+ "model.layers.1.mlp.Wi.weight": "model-00001-of-00002.safetensors",
23
+ "model.layers.1.mlp.Wo.weight": "model-00001-of-00002.safetensors",
24
+ "model.layers.1.mlp_norm.weight": "model-00001-of-00002.safetensors",
25
+ "model.layers.10.attn.Wo.weight": "model-00001-of-00002.safetensors",
26
+ "model.layers.10.attn.Wqkv.weight": "model-00001-of-00002.safetensors",
27
+ "model.layers.10.attn_norm.weight": "model-00001-of-00002.safetensors",
28
+ "model.layers.10.mlp.Wi.weight": "model-00001-of-00002.safetensors",
29
+ "model.layers.10.mlp.Wo.weight": "model-00001-of-00002.safetensors",
30
+ "model.layers.10.mlp_norm.weight": "model-00001-of-00002.safetensors",
31
+ "model.layers.11.attn.Wo.weight": "model-00001-of-00002.safetensors",
32
+ "model.layers.11.attn.Wqkv.weight": "model-00001-of-00002.safetensors",
33
+ "model.layers.11.attn_norm.weight": "model-00001-of-00002.safetensors",
34
+ "model.layers.11.mlp.Wi.weight": "model-00001-of-00002.safetensors",
35
+ "model.layers.11.mlp.Wo.weight": "model-00001-of-00002.safetensors",
36
+ "model.layers.11.mlp_norm.weight": "model-00001-of-00002.safetensors",
37
+ "model.layers.12.attn.Wo.weight": "model-00001-of-00002.safetensors",
38
+ "model.layers.12.attn.Wqkv.weight": "model-00001-of-00002.safetensors",
39
+ "model.layers.12.attn_norm.weight": "model-00001-of-00002.safetensors",
40
+ "model.layers.12.mlp.Wi.weight": "model-00001-of-00002.safetensors",
41
+ "model.layers.12.mlp.Wo.weight": "model-00001-of-00002.safetensors",
42
+ "model.layers.12.mlp_norm.weight": "model-00001-of-00002.safetensors",
43
+ "model.layers.13.attn.Wo.weight": "model-00001-of-00002.safetensors",
44
+ "model.layers.13.attn.Wqkv.weight": "model-00001-of-00002.safetensors",
45
+ "model.layers.13.attn_norm.weight": "model-00001-of-00002.safetensors",
46
+ "model.layers.13.mlp.Wi.weight": "model-00001-of-00002.safetensors",
47
+ "model.layers.13.mlp.Wo.weight": "model-00001-of-00002.safetensors",
48
+ "model.layers.13.mlp_norm.weight": "model-00001-of-00002.safetensors",
49
+ "model.layers.14.attn.Wo.weight": "model-00001-of-00002.safetensors",
50
+ "model.layers.14.attn.Wqkv.weight": "model-00001-of-00002.safetensors",
51
+ "model.layers.14.attn_norm.weight": "model-00001-of-00002.safetensors",
52
+ "model.layers.14.mlp.Wi.weight": "model-00001-of-00002.safetensors",
53
+ "model.layers.14.mlp.Wo.weight": "model-00001-of-00002.safetensors",
54
+ "model.layers.14.mlp_norm.weight": "model-00001-of-00002.safetensors",
55
+ "model.layers.15.attn.Wo.weight": "model-00001-of-00002.safetensors",
56
+ "model.layers.15.attn.Wqkv.weight": "model-00001-of-00002.safetensors",
57
+ "model.layers.15.attn_norm.weight": "model-00001-of-00002.safetensors",
58
+ "model.layers.15.mlp.Wi.weight": "model-00001-of-00002.safetensors",
59
+ "model.layers.15.mlp.Wo.weight": "model-00001-of-00002.safetensors",
60
+ "model.layers.15.mlp_norm.weight": "model-00001-of-00002.safetensors",
61
+ "model.layers.16.attn.Wo.weight": "model-00001-of-00002.safetensors",
62
+ "model.layers.16.attn.Wqkv.weight": "model-00001-of-00002.safetensors",
63
+ "model.layers.16.attn_norm.weight": "model-00001-of-00002.safetensors",
64
+ "model.layers.16.mlp.Wi.weight": "model-00001-of-00002.safetensors",
65
+ "model.layers.16.mlp.Wo.weight": "model-00001-of-00002.safetensors",
66
+ "model.layers.16.mlp_norm.weight": "model-00001-of-00002.safetensors",
67
+ "model.layers.17.attn.Wo.weight": "model-00001-of-00002.safetensors",
68
+ "model.layers.17.attn.Wqkv.weight": "model-00001-of-00002.safetensors",
69
+ "model.layers.17.attn_norm.weight": "model-00001-of-00002.safetensors",
70
+ "model.layers.17.mlp.Wi.weight": "model-00001-of-00002.safetensors",
71
+ "model.layers.17.mlp.Wo.weight": "model-00001-of-00002.safetensors",
72
+ "model.layers.17.mlp_norm.weight": "model-00001-of-00002.safetensors",
73
+ "model.layers.18.attn.Wo.weight": "model-00001-of-00002.safetensors",
74
+ "model.layers.18.attn.Wqkv.weight": "model-00001-of-00002.safetensors",
75
+ "model.layers.18.attn_norm.weight": "model-00001-of-00002.safetensors",
76
+ "model.layers.18.mlp.Wi.weight": "model-00001-of-00002.safetensors",
77
+ "model.layers.18.mlp.Wo.weight": "model-00001-of-00002.safetensors",
78
+ "model.layers.18.mlp_norm.weight": "model-00001-of-00002.safetensors",
79
+ "model.layers.19.attn.Wo.weight": "model-00001-of-00002.safetensors",
80
+ "model.layers.19.attn.Wqkv.weight": "model-00001-of-00002.safetensors",
81
+ "model.layers.19.attn_norm.weight": "model-00001-of-00002.safetensors",
82
+ "model.layers.19.mlp.Wi.weight": "model-00001-of-00002.safetensors",
83
+ "model.layers.19.mlp.Wo.weight": "model-00001-of-00002.safetensors",
84
+ "model.layers.19.mlp_norm.weight": "model-00001-of-00002.safetensors",
85
+ "model.layers.2.attn.Wo.weight": "model-00001-of-00002.safetensors",
86
+ "model.layers.2.attn.Wqkv.weight": "model-00001-of-00002.safetensors",
87
+ "model.layers.2.attn_norm.weight": "model-00001-of-00002.safetensors",
88
+ "model.layers.2.mlp.Wi.weight": "model-00001-of-00002.safetensors",
89
+ "model.layers.2.mlp.Wo.weight": "model-00001-of-00002.safetensors",
90
+ "model.layers.2.mlp_norm.weight": "model-00001-of-00002.safetensors",
91
+ "model.layers.20.attn.Wo.weight": "model-00001-of-00002.safetensors",
92
+ "model.layers.20.attn.Wqkv.weight": "model-00001-of-00002.safetensors",
93
+ "model.layers.20.attn_norm.weight": "model-00001-of-00002.safetensors",
94
+ "model.layers.20.mlp.Wi.weight": "model-00001-of-00002.safetensors",
95
+ "model.layers.20.mlp.Wo.weight": "model-00001-of-00002.safetensors",
96
+ "model.layers.20.mlp_norm.weight": "model-00001-of-00002.safetensors",
97
+ "model.layers.21.attn.Wo.weight": "model-00001-of-00002.safetensors",
98
+ "model.layers.21.attn.Wqkv.weight": "model-00001-of-00002.safetensors",
99
+ "model.layers.21.attn_norm.weight": "model-00001-of-00002.safetensors",
100
+ "model.layers.21.mlp.Wi.weight": "model-00001-of-00002.safetensors",
101
+ "model.layers.21.mlp.Wo.weight": "model-00001-of-00002.safetensors",
102
+ "model.layers.21.mlp_norm.weight": "model-00001-of-00002.safetensors",
103
+ "model.layers.22.attn.Wo.weight": "model-00001-of-00002.safetensors",
104
+ "model.layers.22.attn.Wqkv.weight": "model-00001-of-00002.safetensors",
105
+ "model.layers.22.attn_norm.weight": "model-00001-of-00002.safetensors",
106
+ "model.layers.22.mlp.Wi.weight": "model-00001-of-00002.safetensors",
107
+ "model.layers.22.mlp.Wo.weight": "model-00001-of-00002.safetensors",
108
+ "model.layers.22.mlp_norm.weight": "model-00001-of-00002.safetensors",
109
+ "model.layers.23.attn.Wo.weight": "model-00001-of-00002.safetensors",
110
+ "model.layers.23.attn.Wqkv.weight": "model-00001-of-00002.safetensors",
111
+ "model.layers.23.attn_norm.weight": "model-00001-of-00002.safetensors",
112
+ "model.layers.23.mlp.Wi.weight": "model-00001-of-00002.safetensors",
113
+ "model.layers.23.mlp.Wo.weight": "model-00001-of-00002.safetensors",
114
+ "model.layers.23.mlp_norm.weight": "model-00001-of-00002.safetensors",
115
+ "model.layers.24.attn.Wo.weight": "model-00001-of-00002.safetensors",
116
+ "model.layers.24.attn.Wqkv.weight": "model-00001-of-00002.safetensors",
117
+ "model.layers.24.attn_norm.weight": "model-00001-of-00002.safetensors",
118
+ "model.layers.24.mlp.Wi.weight": "model-00001-of-00002.safetensors",
119
+ "model.layers.24.mlp.Wo.weight": "model-00001-of-00002.safetensors",
120
+ "model.layers.24.mlp_norm.weight": "model-00001-of-00002.safetensors",
121
+ "model.layers.25.attn.Wo.weight": "model-00001-of-00002.safetensors",
122
+ "model.layers.25.attn.Wqkv.weight": "model-00001-of-00002.safetensors",
123
+ "model.layers.25.attn_norm.weight": "model-00001-of-00002.safetensors",
124
+ "model.layers.25.mlp.Wi.weight": "model-00001-of-00002.safetensors",
125
+ "model.layers.25.mlp.Wo.weight": "model-00001-of-00002.safetensors",
126
+ "model.layers.25.mlp_norm.weight": "model-00001-of-00002.safetensors",
127
+ "model.layers.26.attn.Wo.weight": "model-00001-of-00002.safetensors",
128
+ "model.layers.26.attn.Wqkv.weight": "model-00001-of-00002.safetensors",
129
+ "model.layers.26.attn_norm.weight": "model-00001-of-00002.safetensors",
130
+ "model.layers.26.mlp.Wi.weight": "model-00001-of-00002.safetensors",
131
+ "model.layers.26.mlp.Wo.weight": "model-00001-of-00002.safetensors",
132
+ "model.layers.26.mlp_norm.weight": "model-00001-of-00002.safetensors",
133
+ "model.layers.27.attn.Wo.weight": "model-00002-of-00002.safetensors",
134
+ "model.layers.27.attn.Wqkv.weight": "model-00002-of-00002.safetensors",
135
+ "model.layers.27.attn_norm.weight": "model-00002-of-00002.safetensors",
136
+ "model.layers.27.mlp.Wi.weight": "model-00002-of-00002.safetensors",
137
+ "model.layers.27.mlp.Wo.weight": "model-00002-of-00002.safetensors",
138
+ "model.layers.27.mlp_norm.weight": "model-00002-of-00002.safetensors",
139
+ "model.layers.3.attn.Wo.weight": "model-00001-of-00002.safetensors",
140
+ "model.layers.3.attn.Wqkv.weight": "model-00001-of-00002.safetensors",
141
+ "model.layers.3.attn_norm.weight": "model-00001-of-00002.safetensors",
142
+ "model.layers.3.mlp.Wi.weight": "model-00001-of-00002.safetensors",
143
+ "model.layers.3.mlp.Wo.weight": "model-00001-of-00002.safetensors",
144
+ "model.layers.3.mlp_norm.weight": "model-00001-of-00002.safetensors",
145
+ "model.layers.4.attn.Wo.weight": "model-00001-of-00002.safetensors",
146
+ "model.layers.4.attn.Wqkv.weight": "model-00001-of-00002.safetensors",
147
+ "model.layers.4.attn_norm.weight": "model-00001-of-00002.safetensors",
148
+ "model.layers.4.mlp.Wi.weight": "model-00001-of-00002.safetensors",
149
+ "model.layers.4.mlp.Wo.weight": "model-00001-of-00002.safetensors",
150
+ "model.layers.4.mlp_norm.weight": "model-00001-of-00002.safetensors",
151
+ "model.layers.5.attn.Wo.weight": "model-00001-of-00002.safetensors",
152
+ "model.layers.5.attn.Wqkv.weight": "model-00001-of-00002.safetensors",
153
+ "model.layers.5.attn_norm.weight": "model-00001-of-00002.safetensors",
154
+ "model.layers.5.mlp.Wi.weight": "model-00001-of-00002.safetensors",
155
+ "model.layers.5.mlp.Wo.weight": "model-00001-of-00002.safetensors",
156
+ "model.layers.5.mlp_norm.weight": "model-00001-of-00002.safetensors",
157
+ "model.layers.6.attn.Wo.weight": "model-00001-of-00002.safetensors",
158
+ "model.layers.6.attn.Wqkv.weight": "model-00001-of-00002.safetensors",
159
+ "model.layers.6.attn_norm.weight": "model-00001-of-00002.safetensors",
160
+ "model.layers.6.mlp.Wi.weight": "model-00001-of-00002.safetensors",
161
+ "model.layers.6.mlp.Wo.weight": "model-00001-of-00002.safetensors",
162
+ "model.layers.6.mlp_norm.weight": "model-00001-of-00002.safetensors",
163
+ "model.layers.7.attn.Wo.weight": "model-00001-of-00002.safetensors",
164
+ "model.layers.7.attn.Wqkv.weight": "model-00001-of-00002.safetensors",
165
+ "model.layers.7.attn_norm.weight": "model-00001-of-00002.safetensors",
166
+ "model.layers.7.mlp.Wi.weight": "model-00001-of-00002.safetensors",
167
+ "model.layers.7.mlp.Wo.weight": "model-00001-of-00002.safetensors",
168
+ "model.layers.7.mlp_norm.weight": "model-00001-of-00002.safetensors",
169
+ "model.layers.8.attn.Wo.weight": "model-00001-of-00002.safetensors",
170
+ "model.layers.8.attn.Wqkv.weight": "model-00001-of-00002.safetensors",
171
+ "model.layers.8.attn_norm.weight": "model-00001-of-00002.safetensors",
172
+ "model.layers.8.mlp.Wi.weight": "model-00001-of-00002.safetensors",
173
+ "model.layers.8.mlp.Wo.weight": "model-00001-of-00002.safetensors",
174
+ "model.layers.8.mlp_norm.weight": "model-00001-of-00002.safetensors",
175
+ "model.layers.9.attn.Wo.weight": "model-00001-of-00002.safetensors",
176
+ "model.layers.9.attn.Wqkv.weight": "model-00001-of-00002.safetensors",
177
+ "model.layers.9.attn_norm.weight": "model-00001-of-00002.safetensors",
178
+ "model.layers.9.mlp.Wi.weight": "model-00001-of-00002.safetensors",
179
+ "model.layers.9.mlp.Wo.weight": "model-00001-of-00002.safetensors",
180
+ "model.layers.9.mlp_norm.weight": "model-00001-of-00002.safetensors"
181
+ }
182
+ }
tokenizer.json ADDED
The diff for this file is too large to render. See raw diff
 
tokenizer_config.json ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "clean_up_tokenization_spaces": true,
3
+ "cls_token": "[CLS]",
4
+ "mask_token": "[MASK]",
5
+ "max_length": 4096,
6
+ "model_input_names": [
7
+ "input_ids",
8
+ "attention_mask"
9
+ ],
10
+ "model_max_length": 65536,
11
+ "pad_to_multiple_of": null,
12
+ "pad_token": "[PAD]",
13
+ "pad_token_type_id": 0,
14
+ "padding_side": "right",
15
+ "sep_token": "[SEP]",
16
+ "stride": 0,
17
+ "tokenizer_class": "PreTrainedTokenizerFast",
18
+ "truncation_side": "right",
19
+ "truncation_strategy": "longest_first",
20
+ "unk_token": "[UNK]"
21
+ }
training_metadata.json ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "best_event": {
3
+ "stage": "long",
4
+ "epoch": 1,
5
+ "updates": 475,
6
+ "elapsed_minutes": 101.89947225252787,
7
+ "val": {
8
+ "n": 5000,
9
+ "accuracy": 0.9782,
10
+ "balanced_accuracy": 0.9782051128204513,
11
+ "f1": 0.9781869121472883,
12
+ "auroc": 0.9962768651074603,
13
+ "false_approve_rate": 0.024351297405189622,
14
+ "false_deny_rate": 0.019238476953907815
15
+ }
16
+ },
17
+ "events": [
18
+ {
19
+ "stage": "short",
20
+ "epoch": 1,
21
+ "updates": 445,
22
+ "elapsed_minutes": 90.93741570313772,
23
+ "val": {
24
+ "n": 12000,
25
+ "accuracy": 0.979,
26
+ "balanced_accuracy": 0.9790000000000001,
27
+ "f1": 0.978901540522438,
28
+ "auroc": 0.9971977638888889,
29
+ "false_approve_rate": 0.025666666666666667,
30
+ "false_deny_rate": 0.01633333333333333
31
+ }
32
+ },
33
+ {
34
+ "stage": "short",
35
+ "epoch": 2,
36
+ "updates": 890,
37
+ "elapsed_minutes": 181.91674359242123,
38
+ "val": {
39
+ "n": 12000,
40
+ "accuracy": 0.9805,
41
+ "balanced_accuracy": 0.9804999999999999,
42
+ "f1": 0.980529206190714,
43
+ "auroc": 0.9975644305555555,
44
+ "false_approve_rate": 0.018,
45
+ "false_deny_rate": 0.021
46
+ }
47
+ },
48
+ {
49
+ "stage": "long",
50
+ "epoch": 1,
51
+ "updates": 475,
52
+ "elapsed_minutes": 101.89947225252787,
53
+ "val": {
54
+ "n": 5000,
55
+ "accuracy": 0.9782,
56
+ "balanced_accuracy": 0.9782051128204513,
57
+ "f1": 0.9781869121472883,
58
+ "auroc": 0.9962768651074603,
59
+ "false_approve_rate": 0.024351297405189622,
60
+ "false_deny_rate": 0.019238476953907815
61
+ }
62
+ }
63
+ ]
64
+ }