professor3333 commited on
Commit
905ca6e
·
verified ·
1 Parent(s): abbffa5

Bundle scibert-uniform-negatives-s21-7dc7a1893e from a9087e98e6

Browse files
README.md ADDED
@@ -0,0 +1,186 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ language: en
4
+ library_name: pytorch
5
+ base_model: allenai/scibert_scivocab_cased
6
+ tags: [information-extraction, relation-extraction, named-entity-recognition, scientific-text, lab-protocols]
7
+ ---
8
+
9
+ # Model card: ProtocolLedger span-relation extractor
10
+
11
+ | | |
12
+ |---|---|
13
+ | Served model | `scibert-uniform-negatives-s21-7dc7a1893e` |
14
+ | Architecture | SpERT-style span and directed-relation classifier over a shared encoder (independent implementation of Eberts and Ulges, arXiv:1909.07755) |
15
+ | Encoder | `allenai/scibert_scivocab_cased` at revision `ddf0be025f8e432a1870e34811997ba6725bf04a` (Apache-2.0), fine-tuned |
16
+ | Training data | WNUT-2020 Wet Lab Protocols, cleaned **train** split (314 protocols); see the [dataset card](https://github.com/professor3333/ProtocolLedger/blob/main/docs/dataset_card.md) |
17
+ | Selection | dev end-to-end relation micro-F1; configuration chosen on a 3-seed mean, then the **median** seed served |
18
+ | Status | Evaluated once on the locked test split (2026-10-11) after targets were frozen |
19
+
20
+ ## Intended use
21
+
22
+ The model extracts actions, materials, quantities, equipment and locations, conditions,
23
+ and the directed relations between them, from English wet-lab protocol text. Its output
24
+ is a set of **suggested** preparation-sheet entries, each linked to its source
25
+ characters, which a reviewer confirms or corrects in the ProtocolLedger interface before
26
+ export.
27
+
28
+ ## Not for
29
+
30
+ - Judging whether a protocol is scientifically complete, correct or safe.
31
+ - Executing or automating protocols from unreviewed output.
32
+ - Using unreviewed results as final records.
33
+ - Filling in implicit arguments, or treating "not explicitly stated" as "not required".
34
+ The system never does this; downstream users should not either.
35
+ - Entity or relation types outside the 18-entity and 14-relation schema.
36
+ - Non-English text, or PDF / OCR input.
37
+ - Other domains or protocol sources without local validation.
38
+
39
+ ## Provenance
40
+
41
+ - **Encoder.** SciBERT cased, pinned by Hugging Face commit. Case preservation is forced
42
+ and checked at load time, because the cased checkpoint ships no tokenizer config and
43
+ would otherwise lowercase `mM` to `mm`.
44
+ - **Encoder view.** Characters the vocabulary cannot represent (for example the micro
45
+ sign in `µL`, which SciBERT maps to `[UNK]`) are substituted only in the text handed to
46
+ the encoder. Offsets always refer to the original text.
47
+ - **Heads.**
48
+ - A span is the max-pool of its words plus a width embedding.
49
+ - Entity logits come from the span concatenated with the CLS vector.
50
+ - Relation logits use both spans, the max-pooled words between them, both entity types
51
+ and a signed distance bucket.
52
+ - Relations are multilabel (sigmoid).
53
+ - **Training.**
54
+ - AdamW: encoder learning rate 2e-5, heads 1e-3, 10% warmup with linear decay.
55
+ - Batch size 16, at most 10 epochs, patience 3, mixed precision on one Tesla T4 (Kaggle).
56
+ - About 100 sampled negative spans and pairs per step, sampled uniformly.
57
+ - Seed 21; best epoch 9.
58
+ - **Reproducibility.** Code commit, split-manifest hash, encoder revision, checkpoint
59
+ hash and the selection-report hash are all recorded in the bundle's `bundle.json`. The
60
+ bundle was rebuilt on CPU and reproduces the GPU dev scores exactly (entity F1 0.8003,
61
+ relation F1 0.6389).
62
+
63
+ ## Training data and splits
64
+
65
+ The released WNUT-2020 splits were the starting point, with these changes:
66
+ - **Deduplication.** Exact and near-duplicate copies and revisions were removed by
67
+ document, always keeping the copy in the most protected split.
68
+ - **Correction ledger.** 291 whitespace-trimming corrections were applied identically to
69
+ every split.
70
+ - **Locked test.** `test_data_2020` is never used for any decision.
71
+
72
+ Cleaned sizes: train 314, dev 112, test 111 protocols.
73
+
74
+ ## Metrics (dev, 112 protocols)
75
+
76
+ | Metric | Selected configuration (3 seeds) | Served seed | CRF + logistic regression |
77
+ |---|---:|---:|---:|
78
+ | Strict entity micro-F1 | 0.800 | 0.800 | 0.756 |
79
+ | **End-to-end relation micro-F1** (primary) | **0.640 ± 0.004** | 0.639 [0.614, 0.665] | 0.582 |
80
+ | Relation F1 given gold entities | 0.826 | 0.830 | 0.812 |
81
+ | Quantity attachment accuracy | 0.758 | 0.757 | 0.708 |
82
+
83
+ **Proposed targets** (not yet frozen):
84
+ - Entity F1 ≥ 0.75: met.
85
+ - At least 5 points above the traditional baseline: met (+5.8).
86
+ - **End-to-end relation F1 ≥ 0.65: not met** (0.640).
87
+
88
+ **Confidence** (served seed, joint score P(relation) × P(head) × P(tail)):
89
+ - **Precision.** 0.920 at 30% coverage. 95% precision is reachable only at 18.7%
90
+ coverage, so the target of 95% precision at ≥ 30% coverage is not met.
91
+ - **Calibration.** Isotonic calibration, cross-fitted by document on dev, reduces the
92
+ expected calibration error from 0.183 to 0.009.
93
+
94
+ **Error profile** (served seed):
95
+ - **Correct:** 62.7% of gold relations.
96
+ - **Endpoint entity wrong:** 27.7%.
97
+ - **Missed:** 4.8%.
98
+ - **Genuine attachment errors:** 2.9%.
99
+ - **Wrong label:** 1.8%.
100
+
101
+ **Slices:**
102
+
103
+ | Slice | Served seed | CRF + logistic regression |
104
+ |---|---:|---:|
105
+ | Reagent recall, names unseen in train | 0.658 | 0.570 |
106
+ | Reagent recall, names seen in train | 0.903 | 0.873 |
107
+ | Relation recall, documents without a template sibling in train | 0.613 | 0.524 |
108
+ | Relation recall, documents with a template sibling in train | 0.740 | 0.719 |
109
+
110
+ **Reference point.** Duplicate copies of the same protocol in the corpus agree with each
111
+ other at entity F1 0.863 and relation F1 0.711.
112
+
113
+ ## Locked test results (evaluated once)
114
+
115
+ | Metric (cleaned `test_data_2020`, 111 protocols) | SciBERT (served) | CRF + logistic regression |
116
+ |---|---:|---:|
117
+ | Strict entity micro-F1 | 0.766 [0.748, 0.784] | 0.703 |
118
+ | **End-to-end relation micro-F1** | **0.580** [0.552, 0.606] | 0.504 |
119
+ | Relation F1 given gold entities | 0.787 | 0.768 |
120
+ | Quantity attachment accuracy | 0.699 | 0.629 |
121
+ | Reagent recall, names unseen in train | 0.762 | 0.631 |
122
+ | Precision at 30% coverage (joint score) | 0.905 | — |
123
+ | Coverage at 95% precision | 13.4% | — |
124
+ | ECE raw / with the dev-fitted calibrator | 0.172 / 0.021 | — |
125
+
126
+ Frozen targets on test:
127
+ - **Met:** entity F1 ≥ 0.75, at least 5 points above the traditional baseline (+7.6),
128
+ and robustness (−0.01).
129
+ - **Not met:** end-to-end relation F1 ≥ 0.65, and 95% precision at ≥ 30% coverage.
130
+
131
+ Test is harder than dev for every system. Full report:
132
+ [reports/test/locked-test.md](https://github.com/professor3333/ProtocolLedger/blob/main/reports/test/locked-test.md).
133
+
134
+ ## Inference performance
135
+
136
+ Measured on an Apple M1 (8 GB) with 4 inference threads: 200 sequential requests of dev
137
+ protocols up to 500 words, each runtime in a fresh process
138
+ ([report](https://github.com/professor3333/ProtocolLedger/blob/main/reports/performance/scibert-uniform-negatives-s21-7dc7a1893e-runtimes.md)).
139
+
140
+ | Runtime | Relation F1 | p50 | p95 | Peak RSS |
141
+ |---|---:|---:|---:|---:|
142
+ | **PyTorch FP32 (served)** | 0.6389 | 0.48 s | **2.07 s** | 938 MiB |
143
+ | ONNX Runtime FP32 | 0.6389 | 2.29 s | 6.94 s | 1,058 MiB |
144
+ | ONNX Runtime INT8 (dynamic) | 0.6361 | 0.93 s | 2.90 s | 918 MiB |
145
+
146
+ On this ARM machine PyTorch FP32 is the fastest runtime and loses no accuracy, so it is
147
+ served. INT8 stays within the 1-point accuracy gate but is slower here. Re-measure on the
148
+ deployment host (likely x86) with `scripts/optimize_bundle.py` before changing runtimes.
149
+
150
+ ## Known failure modes
151
+
152
+ - **Entity errors cascade into relations.** Most relation errors come from a wrong or
153
+ missed endpoint entity.
154
+ - **Open-vocabulary types are weakest.** Modifier, Method, Device and Generic-Measure
155
+ score lowest.
156
+ - **Unseen reagent names** are found less often than seen ones.
157
+ - **Rare relations** are unreliable: Commands (37 dev instances), Of-Type (26) and
158
+ Product.
159
+ - **Implicit references** such as "it", and cross-step coreference, are not resolved.
160
+ - **Negation, alternatives and conditional instructions** are not modelled.
161
+ - **Text glued together by table flattening** (for example `100 µlof`) cannot be
162
+ segmented.
163
+ - **Template overlap.** Protocols that share a vendor template with training data score
164
+ higher than the rest.
165
+
166
+ ## Release process
167
+
168
+ - **Selection.** Thresholds and the configuration are chosen on dev only, never on test.
169
+ - **Bundle.** Weights are stored as safetensors (no pickle). The encoder config and
170
+ tokenizer are included, and every file is hash-verified on load, so serving needs no
171
+ network access.
172
+ - **Release.** A release pins the image digest together with the bundle hash.
173
+ `scripts/release.py` smoke-tests each activation and restores the previous image and
174
+ bundle together if it fails.
175
+
176
+ ## Loading
177
+
178
+ This repository is a ProtocolLedger bundle (`bundle.json` lists every file with its SHA-256). Load it with the project's verified loader:
179
+
180
+ ```python
181
+ from pathlib import Path
182
+ from protocolledger.serve.bundle import load_bundle
183
+
184
+ bundle = load_bundle(Path('scibert-uniform-negatives-s21-7dc7a1893e'))
185
+ entities, relations = bundle.extractor.extract('Add 5 mL of water to the tube.')
186
+ ```
bundle.json ADDED
@@ -0,0 +1,577 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "bundle_format": 1,
3
+ "model_version": "scibert-uniform-negatives-s21-7dc7a1893e",
4
+ "system": "span-relation",
5
+ "preprocessing_version": "neural-1",
6
+ "neural_config": {
7
+ "neural_version": "1",
8
+ "encoder": "scibert",
9
+ "freeze_encoder": false,
10
+ "max_span_words": 10,
11
+ "width_embedding_dim": 25,
12
+ "type_embedding_dim": 25,
13
+ "distance_embedding_dim": 25,
14
+ "use_type_features": true,
15
+ "use_distance_features": true,
16
+ "dropout": 0.1,
17
+ "negative_spans": 100,
18
+ "negative_pairs": 100,
19
+ "hard_negatives": false,
20
+ "learning_rate": 2e-05,
21
+ "head_learning_rate": 0.001,
22
+ "weight_decay": 0.01,
23
+ "warmup_fraction": 0.1,
24
+ "batch_size": 16,
25
+ "grad_accumulation": 1,
26
+ "epochs": 10,
27
+ "patience": 3,
28
+ "relation_threshold": 0.5,
29
+ "restrict_type_pairs": true,
30
+ "max_subwords": 510,
31
+ "seed": 21,
32
+ "mixed_precision": true
33
+ },
34
+ "entity_labels": [
35
+ "Action",
36
+ "Amount",
37
+ "Concentration",
38
+ "Device",
39
+ "Generic-Measure",
40
+ "Location",
41
+ "Measure-Type",
42
+ "Mention",
43
+ "Method",
44
+ "Modifier",
45
+ "Numerical",
46
+ "Reagent",
47
+ "Seal",
48
+ "Size",
49
+ "Speed",
50
+ "Temperature",
51
+ "Time",
52
+ "pH"
53
+ ],
54
+ "relation_labels": [
55
+ "Acts-on",
56
+ "Commands",
57
+ "Coreference-Link",
58
+ "Count",
59
+ "Measure",
60
+ "Measure-Type-Link",
61
+ "Meronym",
62
+ "Mod-Link",
63
+ "Of-Type",
64
+ "Or",
65
+ "Product",
66
+ "Setting",
67
+ "Site",
68
+ "Using"
69
+ ],
70
+ "type_pairs": [
71
+ [
72
+ "Action",
73
+ "Action"
74
+ ],
75
+ [
76
+ "Action",
77
+ "Amount"
78
+ ],
79
+ [
80
+ "Action",
81
+ "Concentration"
82
+ ],
83
+ [
84
+ "Action",
85
+ "Device"
86
+ ],
87
+ [
88
+ "Action",
89
+ "Generic-Measure"
90
+ ],
91
+ [
92
+ "Action",
93
+ "Location"
94
+ ],
95
+ [
96
+ "Action",
97
+ "Measure-Type"
98
+ ],
99
+ [
100
+ "Action",
101
+ "Mention"
102
+ ],
103
+ [
104
+ "Action",
105
+ "Method"
106
+ ],
107
+ [
108
+ "Action",
109
+ "Modifier"
110
+ ],
111
+ [
112
+ "Action",
113
+ "Numerical"
114
+ ],
115
+ [
116
+ "Action",
117
+ "Reagent"
118
+ ],
119
+ [
120
+ "Action",
121
+ "Seal"
122
+ ],
123
+ [
124
+ "Action",
125
+ "Size"
126
+ ],
127
+ [
128
+ "Action",
129
+ "Speed"
130
+ ],
131
+ [
132
+ "Action",
133
+ "Temperature"
134
+ ],
135
+ [
136
+ "Action",
137
+ "Time"
138
+ ],
139
+ [
140
+ "Action",
141
+ "pH"
142
+ ],
143
+ [
144
+ "Amount",
145
+ "Amount"
146
+ ],
147
+ [
148
+ "Amount",
149
+ "Mention"
150
+ ],
151
+ [
152
+ "Amount",
153
+ "Modifier"
154
+ ],
155
+ [
156
+ "Amount",
157
+ "Numerical"
158
+ ],
159
+ [
160
+ "Amount",
161
+ "Reagent"
162
+ ],
163
+ [
164
+ "Concentration",
165
+ "Concentration"
166
+ ],
167
+ [
168
+ "Concentration",
169
+ "Modifier"
170
+ ],
171
+ [
172
+ "Concentration",
173
+ "Reagent"
174
+ ],
175
+ [
176
+ "Device",
177
+ "Amount"
178
+ ],
179
+ [
180
+ "Device",
181
+ "Concentration"
182
+ ],
183
+ [
184
+ "Device",
185
+ "Device"
186
+ ],
187
+ [
188
+ "Device",
189
+ "Generic-Measure"
190
+ ],
191
+ [
192
+ "Device",
193
+ "Location"
194
+ ],
195
+ [
196
+ "Device",
197
+ "Method"
198
+ ],
199
+ [
200
+ "Device",
201
+ "Modifier"
202
+ ],
203
+ [
204
+ "Device",
205
+ "Numerical"
206
+ ],
207
+ [
208
+ "Device",
209
+ "Reagent"
210
+ ],
211
+ [
212
+ "Device",
213
+ "Size"
214
+ ],
215
+ [
216
+ "Device",
217
+ "Speed"
218
+ ],
219
+ [
220
+ "Device",
221
+ "Temperature"
222
+ ],
223
+ [
224
+ "Device",
225
+ "Time"
226
+ ],
227
+ [
228
+ "Generic-Measure",
229
+ "Generic-Measure"
230
+ ],
231
+ [
232
+ "Generic-Measure",
233
+ "Measure-Type"
234
+ ],
235
+ [
236
+ "Generic-Measure",
237
+ "Modifier"
238
+ ],
239
+ [
240
+ "Location",
241
+ "Amount"
242
+ ],
243
+ [
244
+ "Location",
245
+ "Concentration"
246
+ ],
247
+ [
248
+ "Location",
249
+ "Device"
250
+ ],
251
+ [
252
+ "Location",
253
+ "Generic-Measure"
254
+ ],
255
+ [
256
+ "Location",
257
+ "Location"
258
+ ],
259
+ [
260
+ "Location",
261
+ "Mention"
262
+ ],
263
+ [
264
+ "Location",
265
+ "Modifier"
266
+ ],
267
+ [
268
+ "Location",
269
+ "Numerical"
270
+ ],
271
+ [
272
+ "Location",
273
+ "Reagent"
274
+ ],
275
+ [
276
+ "Location",
277
+ "Seal"
278
+ ],
279
+ [
280
+ "Location",
281
+ "Size"
282
+ ],
283
+ [
284
+ "Location",
285
+ "Temperature"
286
+ ],
287
+ [
288
+ "Location",
289
+ "Time"
290
+ ],
291
+ [
292
+ "Measure-Type",
293
+ "Amount"
294
+ ],
295
+ [
296
+ "Measure-Type",
297
+ "Measure-Type"
298
+ ],
299
+ [
300
+ "Measure-Type",
301
+ "Modifier"
302
+ ],
303
+ [
304
+ "Measure-Type",
305
+ "Reagent"
306
+ ],
307
+ [
308
+ "Mention",
309
+ "Action"
310
+ ],
311
+ [
312
+ "Mention",
313
+ "Amount"
314
+ ],
315
+ [
316
+ "Mention",
317
+ "Concentration"
318
+ ],
319
+ [
320
+ "Mention",
321
+ "Device"
322
+ ],
323
+ [
324
+ "Mention",
325
+ "Generic-Measure"
326
+ ],
327
+ [
328
+ "Mention",
329
+ "Location"
330
+ ],
331
+ [
332
+ "Mention",
333
+ "Mention"
334
+ ],
335
+ [
336
+ "Mention",
337
+ "Modifier"
338
+ ],
339
+ [
340
+ "Mention",
341
+ "Numerical"
342
+ ],
343
+ [
344
+ "Mention",
345
+ "Reagent"
346
+ ],
347
+ [
348
+ "Mention",
349
+ "pH"
350
+ ],
351
+ [
352
+ "Method",
353
+ "Device"
354
+ ],
355
+ [
356
+ "Method",
357
+ "Method"
358
+ ],
359
+ [
360
+ "Method",
361
+ "Modifier"
362
+ ],
363
+ [
364
+ "Modifier",
365
+ "Amount"
366
+ ],
367
+ [
368
+ "Modifier",
369
+ "Generic-Measure"
370
+ ],
371
+ [
372
+ "Modifier",
373
+ "Location"
374
+ ],
375
+ [
376
+ "Modifier",
377
+ "Modifier"
378
+ ],
379
+ [
380
+ "Modifier",
381
+ "Numerical"
382
+ ],
383
+ [
384
+ "Modifier",
385
+ "Reagent"
386
+ ],
387
+ [
388
+ "Modifier",
389
+ "Size"
390
+ ],
391
+ [
392
+ "Modifier",
393
+ "Speed"
394
+ ],
395
+ [
396
+ "Modifier",
397
+ "Temperature"
398
+ ],
399
+ [
400
+ "Modifier",
401
+ "Time"
402
+ ],
403
+ [
404
+ "Numerical",
405
+ "Measure-Type"
406
+ ],
407
+ [
408
+ "Numerical",
409
+ "Modifier"
410
+ ],
411
+ [
412
+ "Numerical",
413
+ "Numerical"
414
+ ],
415
+ [
416
+ "Reagent",
417
+ "Amount"
418
+ ],
419
+ [
420
+ "Reagent",
421
+ "Concentration"
422
+ ],
423
+ [
424
+ "Reagent",
425
+ "Device"
426
+ ],
427
+ [
428
+ "Reagent",
429
+ "Generic-Measure"
430
+ ],
431
+ [
432
+ "Reagent",
433
+ "Location"
434
+ ],
435
+ [
436
+ "Reagent",
437
+ "Measure-Type"
438
+ ],
439
+ [
440
+ "Reagent",
441
+ "Mention"
442
+ ],
443
+ [
444
+ "Reagent",
445
+ "Modifier"
446
+ ],
447
+ [
448
+ "Reagent",
449
+ "Numerical"
450
+ ],
451
+ [
452
+ "Reagent",
453
+ "Reagent"
454
+ ],
455
+ [
456
+ "Reagent",
457
+ "Seal"
458
+ ],
459
+ [
460
+ "Reagent",
461
+ "Size"
462
+ ],
463
+ [
464
+ "Reagent",
465
+ "pH"
466
+ ],
467
+ [
468
+ "Seal",
469
+ "Device"
470
+ ],
471
+ [
472
+ "Seal",
473
+ "Location"
474
+ ],
475
+ [
476
+ "Seal",
477
+ "Mention"
478
+ ],
479
+ [
480
+ "Seal",
481
+ "Modifier"
482
+ ],
483
+ [
484
+ "Seal",
485
+ "Numerical"
486
+ ],
487
+ [
488
+ "Seal",
489
+ "Seal"
490
+ ],
491
+ [
492
+ "Seal",
493
+ "Size"
494
+ ],
495
+ [
496
+ "Size",
497
+ "Modifier"
498
+ ],
499
+ [
500
+ "Size",
501
+ "Size"
502
+ ],
503
+ [
504
+ "Speed",
505
+ "Modifier"
506
+ ],
507
+ [
508
+ "Speed",
509
+ "Speed"
510
+ ],
511
+ [
512
+ "Temperature",
513
+ "Modifier"
514
+ ],
515
+ [
516
+ "Temperature",
517
+ "Temperature"
518
+ ],
519
+ [
520
+ "Time",
521
+ "Modifier"
522
+ ],
523
+ [
524
+ "Time",
525
+ "Time"
526
+ ],
527
+ [
528
+ "pH",
529
+ "Modifier"
530
+ ]
531
+ ],
532
+ "hidden_size": 768,
533
+ "files": {
534
+ "encoder/config.json": {
535
+ "path": "encoder/config.json",
536
+ "sha256": "4d08a96f73e258cd3fb48598f5ff887f402c9153a1101034b78b639bd49b2e6a"
537
+ },
538
+ "model.safetensors": {
539
+ "path": "model.safetensors",
540
+ "sha256": "117953d1d93aa6b737aba2b118b28efcc81112410d71c8dd887125da7048821a"
541
+ },
542
+ "tokenizer/tokenizer.json": {
543
+ "path": "tokenizer/tokenizer.json",
544
+ "sha256": "7d7f7f94ebc356bfdbfd1fc2dde4d5a9a15d24dc9dd38c642b6392e8c6cb7462"
545
+ },
546
+ "tokenizer/tokenizer_config.json": {
547
+ "path": "tokenizer/tokenizer_config.json",
548
+ "sha256": "4462f2399527c65c2eaaa75bf548f35fd0bf321f28c2d48e52b409767b6f4c86"
549
+ }
550
+ },
551
+ "runtime": {
552
+ "protocolledger": "0.0.1",
553
+ "python": "3.12.6",
554
+ "torch": "2.14.1"
555
+ },
556
+ "training": {
557
+ "run": "scibert-uniform-negatives-s21",
558
+ "report": "reports/neural/scibert-uniform-negatives-s21-dev.json",
559
+ "report_sha256": "d5a7a9e3363ab14ea1f31f542f4f940817d51e75de60e323c27b56a45c177d18",
560
+ "checkpoint_sha256": "7dc7a1893e1567293c27922ef25966e9ef9c6627a1f71ef386e8c0736b5513b7",
561
+ "best_epoch": 9,
562
+ "encoder": "allenai/scibert_scivocab_cased",
563
+ "encoder_revision": "ddf0be025f8e432a1870e34811997ba6725bf04a",
564
+ "splits_manifest_sha256": "e0136ae42662b7857cad7b25d4dc56a01eca4808b98e0544974624b0d1d1710c",
565
+ "code_commit": "95b2d5c2124e3f9146653dc78005d423b3df8d2a"
566
+ },
567
+ "evaluation": {
568
+ "split": "dev",
569
+ "device": "cpu",
570
+ "entity_f1": 0.8003,
571
+ "relation_f1_end_to_end": 0.6389,
572
+ "reported_gpu": {
573
+ "entity_f1": 0.8003,
574
+ "relation_f1_end_to_end": 0.6389
575
+ }
576
+ }
577
+ }
encoder/config.json ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "add_cross_attention": false,
3
+ "attention_probs_dropout_prob": 0.1,
4
+ "bos_token_id": null,
5
+ "classifier_dropout": null,
6
+ "eos_token_id": null,
7
+ "hidden_act": "gelu",
8
+ "hidden_dropout_prob": 0.1,
9
+ "hidden_size": 768,
10
+ "initializer_range": 0.02,
11
+ "intermediate_size": 3072,
12
+ "is_decoder": false,
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
+ "tie_word_embeddings": true,
20
+ "transformers_version": "5.19.0",
21
+ "type_vocab_size": 2,
22
+ "use_cache": true,
23
+ "vocab_size": 31116
24
+ }
model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:117953d1d93aa6b737aba2b118b28efcc81112410d71c8dd887125da7048821a
3
+ size 440041032
tokenizer/tokenizer.json ADDED
The diff for this file is too large to render. See raw diff
 
tokenizer/tokenizer_config.json ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "backend": "tokenizers",
3
+ "cls_token": "[CLS]",
4
+ "do_lower_case": false,
5
+ "is_local": false,
6
+ "local_files_only": false,
7
+ "mask_token": "[MASK]",
8
+ "model_max_length": 1000000000000000019884624838656,
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
+ }