DoppelApp commited on
Commit
ef62250
·
verified ·
1 Parent(s): 0221553

GLiNER-Relex base v1.0 CoreML (FP16, two-pass contract, 12/12 parity)

Browse files
GLiNERRelexBase.mlmodelc/analytics/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4fca3ff909bfe582309824ca6fb3aeb90bce25d3cd43badaa14c5ec6ae3ecdce
3
+ size 243
GLiNERRelexBase.mlmodelc/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3c16ad119bbb2c82c57dd9706e72b212319633c210c84399c3c7916e7480b808
3
+ size 482
GLiNERRelexBase.mlmodelc/metadata.json ADDED
@@ -0,0 +1,144 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "metadataOutputVersion" : "3.0",
4
+ "storagePrecision" : "Mixed (Float16, Int32, UInt16)",
5
+ "outputSchema" : [
6
+ {
7
+ "hasShapeFlexibility" : "0",
8
+ "isOptional" : "0",
9
+ "dataType" : "Float32",
10
+ "formattedType" : "MultiArray (Float32 1 × 320 × 12 × 3)",
11
+ "shortDescription" : "",
12
+ "shape" : "[1, 320, 12, 3]",
13
+ "name" : "logits",
14
+ "type" : "MultiArray"
15
+ },
16
+ {
17
+ "hasShapeFlexibility" : "0",
18
+ "isOptional" : "0",
19
+ "dataType" : "Float32",
20
+ "formattedType" : "MultiArray (Float32 1 × 240 × 8)",
21
+ "shortDescription" : "",
22
+ "shape" : "[1, 240, 8]",
23
+ "name" : "rel_logits",
24
+ "type" : "MultiArray"
25
+ }
26
+ ],
27
+ "modelParameters" : [
28
+
29
+ ],
30
+ "specificationVersion" : 9,
31
+ "mlProgramOperationTypeHistogram" : {
32
+ "Ios18.expandDims" : 11,
33
+ "Ios18.softmax" : 12,
34
+ "Ios18.mul" : 44,
35
+ "Ios18.matmul" : 52,
36
+ "Ios18.logicalNot" : 1,
37
+ "Ios18.equal" : 5,
38
+ "Ios18.gatherAlongAxis" : 28,
39
+ "Select" : 12,
40
+ "Tile" : 6,
41
+ "Ios18.gather" : 3,
42
+ "Ios18.add" : 48,
43
+ "Ios18.layerNorm" : 25,
44
+ "Ios18.reshape" : 122,
45
+ "Ios18.linear" : 86,
46
+ "Ios18.gelu" : 12,
47
+ "Ios18.lstm" : 2,
48
+ "Ios18.sub" : 2,
49
+ "Ios18.transpose" : 78,
50
+ "Ios18.cast" : 19,
51
+ "Ios18.clip" : 1,
52
+ "Ios18.concat" : 4,
53
+ "Ios18.relu" : 7,
54
+ "Ios18.squeeze" : 1,
55
+ "Ios16.cumsum" : 2,
56
+ "Ios18.sliceByIndex" : 6
57
+ },
58
+ "computePrecision" : "Mixed (Float16, Float32, Int16, Int32, UInt16)",
59
+ "isUpdatable" : "0",
60
+ "stateSchema" : [
61
+
62
+ ],
63
+ "availability" : {
64
+ "macOS" : "15.0",
65
+ "tvOS" : "18.0",
66
+ "visionOS" : "2.0",
67
+ "watchOS" : "11.0",
68
+ "iOS" : "18.0",
69
+ "macCatalyst" : "18.0"
70
+ },
71
+ "modelType" : {
72
+ "name" : "MLModelType_mlProgram"
73
+ },
74
+ "userDefinedMetadata" : {
75
+ "com.github.apple.coremltools.version" : "8.3.0",
76
+ "com.github.apple.coremltools.source" : "torch==2.10.0",
77
+ "com.github.apple.coremltools.source_dialect" : "TorchScript"
78
+ },
79
+ "inputSchema" : [
80
+ {
81
+ "hasShapeFlexibility" : "0",
82
+ "isOptional" : "0",
83
+ "dataType" : "Int32",
84
+ "formattedType" : "MultiArray (Int32 1 × 512)",
85
+ "shortDescription" : "",
86
+ "shape" : "[1, 512]",
87
+ "name" : "input_ids",
88
+ "type" : "MultiArray"
89
+ },
90
+ {
91
+ "hasShapeFlexibility" : "0",
92
+ "isOptional" : "0",
93
+ "dataType" : "Int32",
94
+ "formattedType" : "MultiArray (Int32 1 × 512)",
95
+ "shortDescription" : "",
96
+ "shape" : "[1, 512]",
97
+ "name" : "attention_mask",
98
+ "type" : "MultiArray"
99
+ },
100
+ {
101
+ "hasShapeFlexibility" : "0",
102
+ "isOptional" : "0",
103
+ "dataType" : "Int32",
104
+ "formattedType" : "MultiArray (Int32 1 × 512)",
105
+ "shortDescription" : "",
106
+ "shape" : "[1, 512]",
107
+ "name" : "words_mask",
108
+ "type" : "MultiArray"
109
+ },
110
+ {
111
+ "hasShapeFlexibility" : "0",
112
+ "isOptional" : "0",
113
+ "dataType" : "Int32",
114
+ "formattedType" : "MultiArray (Int32 1 × 1)",
115
+ "shortDescription" : "",
116
+ "shape" : "[1, 1]",
117
+ "name" : "text_lengths",
118
+ "type" : "MultiArray"
119
+ },
120
+ {
121
+ "hasShapeFlexibility" : "0",
122
+ "isOptional" : "0",
123
+ "dataType" : "Int32",
124
+ "formattedType" : "MultiArray (Int32 1 × 16 × 2)",
125
+ "shortDescription" : "",
126
+ "shape" : "[1, 16, 2]",
127
+ "name" : "span_idx",
128
+ "type" : "MultiArray"
129
+ },
130
+ {
131
+ "hasShapeFlexibility" : "0",
132
+ "isOptional" : "0",
133
+ "dataType" : "Int32",
134
+ "formattedType" : "MultiArray (Int32 1 × 16)",
135
+ "shortDescription" : "",
136
+ "shape" : "[1, 16]",
137
+ "name" : "span_mask",
138
+ "type" : "MultiArray"
139
+ }
140
+ ],
141
+ "generatedClassName" : "GLiNERRelexBase",
142
+ "method" : "predict"
143
+ }
144
+ ]
GLiNERRelexBase.mlmodelc/model.mil ADDED
The diff for this file is too large to render. See raw diff
 
GLiNERRelexBase.mlmodelc/weights/weight.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b077002b6c414adcfc2de2b615bc10b224b88fb740b7a735e9b9a921fcfae196
3
+ size 480854528
GLiNERRelexBase.mlpackage/Data/com.apple.CoreML/model.mlmodel ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1cdbd638ca8fa62f41f0da645c784d4225d9e56eb824c2839cf371d5b5230115
3
+ size 241691
GLiNERRelexBase.mlpackage/Data/com.apple.CoreML/weights/weight.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b077002b6c414adcfc2de2b615bc10b224b88fb740b7a735e9b9a921fcfae196
3
+ size 480854528
GLiNERRelexBase.mlpackage/Manifest.json ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "fileFormatVersion": "1.0.0",
3
+ "itemInfoEntries": {
4
+ "96B523BA-C87B-4940-9EA0-1943A27C03A9": {
5
+ "author": "com.apple.CoreML",
6
+ "description": "CoreML Model Specification",
7
+ "name": "model.mlmodel",
8
+ "path": "com.apple.CoreML/model.mlmodel"
9
+ },
10
+ "C89FC83E-0FD9-49B7-A95D-339E328C1CFA": {
11
+ "author": "com.apple.CoreML",
12
+ "description": "CoreML Model Weights",
13
+ "name": "weights",
14
+ "path": "com.apple.CoreML/weights"
15
+ }
16
+ },
17
+ "rootModelIdentifier": "96B523BA-C87B-4940-9EA0-1943A27C03A9"
18
+ }
README.md ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ base_model: knowledgator/gliner-relex-base-v1.0
4
+ pipeline_tag: token-classification
5
+ tags:
6
+ - coreml
7
+ - named-entity-recognition
8
+ - relation-extraction
9
+ - zero-shot
10
+ - gliner
11
+ - apple-silicon
12
+ ---
13
+
14
+ # GLiNER-Relex Base — Core ML
15
+
16
+ Core ML (FP16 mlprogram, macOS 15+) conversion of
17
+ [knowledgator/gliner-relex-base-v1.0](https://huggingface.co/knowledgator/gliner-relex-base-v1.0)
18
+ — zero-shot joint named-entity recognition and relation extraction on a
19
+ DeBERTa-v3-base backbone (~0.2B params). Converted for on-device use in
20
+ [Doppel](https://github.com/jacobwarren) on Apple Silicon.
21
+
22
+ ## Contents
23
+
24
+ | File | Purpose |
25
+ |---|---|
26
+ | `GLiNERRelexBase.mlpackage` | FP16 mlprogram (computeUnits: all) |
27
+ | `GLiNERRelexBase.mlmodelc` | pre-compiled model bundle |
28
+ | `metadata.json` | **The runtime contract** — prompt layout, tensor shapes/semantics, two-pass protocol, full decode algorithm, pair-slot formula |
29
+ | `goldens.json` | 12 parity sentences with expected entities/relations for runtime validation |
30
+ | `report.md` | conversion notes, parity numbers, latency |
31
+ | `tokenizer.json`, `tokenizer_config.json`, `added_tokens.json`, `special_tokens_map.json` | DeBERTa-v3 SentencePiece-unigram tokenizer (works with swift-transformers `UnigramTokenizer`) |
32
+
33
+ ## Runtime protocol (summary — see `metadata.json` for the full contract)
34
+
35
+ Token-level BIO architecture with relations over extracted spans, exported as
36
+ a **two-pass** graph with static shapes (batch 1, 512 subtokens, 320 words,
37
+ ≤12 entity labels, ≤8 relation labels, 16 candidate-span slots):
38
+
39
+ 1. **Pass 1** — prompt `[<<ENT>> label … <<SEP>> <<REL>> rel … <<SEP>> words]`,
40
+ span inputs zeroed → `logits` `[1, 320, 12, 3]` (per-word start/end/inside,
41
+ sigmoid + threshold outside the graph).
42
+ 2. Runtime extracts candidate spans (min-score BIO pairing, greedy
43
+ nested-overlap filtering) and fills up to 16 span slots.
44
+ 3. **Pass 2** — same inputs plus `span_idx`/`span_mask` → `rel_logits`
45
+ `[1, 240, 8]` over ordered slot pairs,
46
+ `slot(i, j) = i * 15 + (j if j < i else j - 1)`.
47
+
48
+ ## Fidelity & performance
49
+
50
+ - Parity gate vs. the original PyTorch checkpoint: **12/12 sentences decode
51
+ structurally identical** (entities @0.4, relations @0.7); max FP16 logit
52
+ delta 0.080 (token) / 0.084 (relation); max decoded-score delta 0.007.
53
+ - Latency (Apple Silicon, 512 tokens): median **~70 ms per forward**;
54
+ full two-pass extraction ~130 ms steady-state.
55
+ - Class-slot columns beyond the provided label count contain garbage and must
56
+ be masked (see `limits` in `metadata.json`).
57
+
58
+ ## License & attribution
59
+
60
+ Apache-2.0, same as the
61
+ [original model](https://huggingface.co/knowledgator/gliner-relex-base-v1.0)
62
+ by [Knowledgator](https://huggingface.co/knowledgator), built on the
63
+ [GLiNER](https://github.com/urchade/GLiNER) architecture (Zaratiana et al.)
64
+ and its Relex extension. This repository redistributes converted weights
65
+ unchanged in precision-reduced (FP16) form plus the original tokenizer files.
goldens.json ADDED
@@ -0,0 +1,3751 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "format_version": 1,
3
+ "thresholds": {
4
+ "entity": 0.4,
5
+ "relation": 0.7,
6
+ "flat_ner": false,
7
+ "multi_label": false
8
+ },
9
+ "labels": [
10
+ "person",
11
+ "company",
12
+ "place",
13
+ "software library",
14
+ "developer tool",
15
+ "programming language",
16
+ "product",
17
+ "file or code identifier"
18
+ ],
19
+ "relation_types": [
20
+ "works at",
21
+ "located in",
22
+ "depends on",
23
+ "reviewed by"
24
+ ],
25
+ "cases": [
26
+ {
27
+ "text": "We migrated the Phoenix app to Oban for background jobs",
28
+ "labels": [
29
+ "person",
30
+ "company",
31
+ "place",
32
+ "software library",
33
+ "developer tool",
34
+ "programming language",
35
+ "product",
36
+ "file or code identifier"
37
+ ],
38
+ "relations": [
39
+ "works at",
40
+ "located in",
41
+ "depends on",
42
+ "reviewed by"
43
+ ],
44
+ "words": [
45
+ "We",
46
+ "migrated",
47
+ "the",
48
+ "Phoenix",
49
+ "app",
50
+ "to",
51
+ "Oban",
52
+ "for",
53
+ "background",
54
+ "jobs"
55
+ ],
56
+ "input_summary": {
57
+ "natural_seq_len": 48,
58
+ "text_length": 10,
59
+ "input_ids_prefix": [
60
+ 1,
61
+ 128001,
62
+ 604,
63
+ 128001,
64
+ 483,
65
+ 128001,
66
+ 470,
67
+ 128001,
68
+ 1036,
69
+ 2634,
70
+ 128001,
71
+ 5010,
72
+ 1637,
73
+ 128001,
74
+ 4050,
75
+ 1402,
76
+ 128001,
77
+ 714,
78
+ 128001,
79
+ 1092,
80
+ 289,
81
+ 1197,
82
+ 20114,
83
+ 128002,
84
+ 128003,
85
+ 885,
86
+ 288,
87
+ 128003,
88
+ 1137,
89
+ 267,
90
+ 128003,
91
+ 3898,
92
+ 277,
93
+ 128003,
94
+ 5383,
95
+ 293,
96
+ 128002,
97
+ 345,
98
+ 25418,
99
+ 262,
100
+ 6760,
101
+ 1410,
102
+ 264,
103
+ 91639,
104
+ 270,
105
+ 2008,
106
+ 1851,
107
+ 2
108
+ ],
109
+ "input_ids_sha256": "49f8bc4d7039585c9d0d65c777f283b7ee74b104d75ab7d411d76e6cddc433c1",
110
+ "words_mask_nonzero": 10,
111
+ "pass2_span_idx": [
112
+ [
113
+ 3,
114
+ 3
115
+ ],
116
+ [
117
+ 3,
118
+ 4
119
+ ],
120
+ [
121
+ 3,
122
+ 3
123
+ ],
124
+ [
125
+ 3,
126
+ 3
127
+ ],
128
+ [
129
+ 3,
130
+ 4
131
+ ],
132
+ [
133
+ 4,
134
+ 4
135
+ ],
136
+ [
137
+ 4,
138
+ 4
139
+ ],
140
+ [
141
+ 6,
142
+ 6
143
+ ]
144
+ ]
145
+ },
146
+ "expected_entities": [
147
+ {
148
+ "start": 16,
149
+ "end": 27,
150
+ "text": "Phoenix app",
151
+ "label": "product",
152
+ "score": 0.6481323579824042
153
+ },
154
+ {
155
+ "start": 16,
156
+ "end": 23,
157
+ "text": "Phoenix",
158
+ "label": "developer tool",
159
+ "score": 0.530342917830248
160
+ },
161
+ {
162
+ "start": 24,
163
+ "end": 27,
164
+ "text": "app",
165
+ "label": "product",
166
+ "score": 0.5267079532922733
167
+ },
168
+ {
169
+ "start": 31,
170
+ "end": 35,
171
+ "text": "Oban",
172
+ "label": "company",
173
+ "score": 0.9887987866239217
174
+ }
175
+ ],
176
+ "expected_relations": [],
177
+ "pytorch_entities": [
178
+ {
179
+ "start": 16,
180
+ "end": 27,
181
+ "text": "Phoenix app",
182
+ "label": "product",
183
+ "score": 0.6466528177261353
184
+ },
185
+ {
186
+ "start": 16,
187
+ "end": 23,
188
+ "text": "Phoenix",
189
+ "label": "developer tool",
190
+ "score": 0.5301585793495178
191
+ },
192
+ {
193
+ "start": 24,
194
+ "end": 27,
195
+ "text": "app",
196
+ "label": "product",
197
+ "score": 0.5279324650764465
198
+ },
199
+ {
200
+ "start": 31,
201
+ "end": 35,
202
+ "text": "Oban",
203
+ "label": "company",
204
+ "score": 0.9888604283332825
205
+ }
206
+ ],
207
+ "pytorch_relations": []
208
+ },
209
+ {
210
+ "text": "Crowdin and Lokalise sync the translations",
211
+ "labels": [
212
+ "person",
213
+ "company",
214
+ "place",
215
+ "software library",
216
+ "developer tool",
217
+ "programming language",
218
+ "product",
219
+ "file or code identifier"
220
+ ],
221
+ "relations": [
222
+ "works at",
223
+ "located in",
224
+ "depends on",
225
+ "reviewed by"
226
+ ],
227
+ "words": [
228
+ "Crowdin",
229
+ "and",
230
+ "Lokalise",
231
+ "sync",
232
+ "the",
233
+ "translations"
234
+ ],
235
+ "input_summary": {
236
+ "natural_seq_len": 47,
237
+ "text_length": 6,
238
+ "input_ids_prefix": [
239
+ 1,
240
+ 128001,
241
+ 604,
242
+ 128001,
243
+ 483,
244
+ 128001,
245
+ 470,
246
+ 128001,
247
+ 1036,
248
+ 2634,
249
+ 128001,
250
+ 5010,
251
+ 1637,
252
+ 128001,
253
+ 4050,
254
+ 1402,
255
+ 128001,
256
+ 714,
257
+ 128001,
258
+ 1092,
259
+ 289,
260
+ 1197,
261
+ 20114,
262
+ 128002,
263
+ 128003,
264
+ 885,
265
+ 288,
266
+ 128003,
267
+ 1137,
268
+ 267,
269
+ 128003,
270
+ 3898,
271
+ 277,
272
+ 128003,
273
+ 5383,
274
+ 293,
275
+ 128002,
276
+ 25036,
277
+ 547,
278
+ 263,
279
+ 19654,
280
+ 1544,
281
+ 6617,
282
+ 11024,
283
+ 262,
284
+ 16014,
285
+ 2,
286
+ 0
287
+ ],
288
+ "input_ids_sha256": "8a79f4252db1f70ea3f097595b896d3eb9a855b523c3dfc1ca6e881e2a29a516",
289
+ "words_mask_nonzero": 6,
290
+ "pass2_span_idx": [
291
+ [
292
+ 0,
293
+ 0
294
+ ],
295
+ [
296
+ 2,
297
+ 2
298
+ ],
299
+ [
300
+ 5,
301
+ 5
302
+ ]
303
+ ]
304
+ },
305
+ "expected_entities": [
306
+ {
307
+ "start": 0,
308
+ "end": 7,
309
+ "text": "Crowdin",
310
+ "label": "developer tool",
311
+ "score": 0.9244152093213263
312
+ },
313
+ {
314
+ "start": 12,
315
+ "end": 20,
316
+ "text": "Lokalise",
317
+ "label": "developer tool",
318
+ "score": 0.9567959640765575
319
+ },
320
+ {
321
+ "start": 30,
322
+ "end": 42,
323
+ "text": "translations",
324
+ "label": "file or code identifier",
325
+ "score": 0.6171089068287672
326
+ }
327
+ ],
328
+ "expected_relations": [
329
+ {
330
+ "head": {
331
+ "start": 0,
332
+ "end": 7,
333
+ "text": "Crowdin",
334
+ "type": "developer tool",
335
+ "entity_idx": 0
336
+ },
337
+ "tail": {
338
+ "start": 30,
339
+ "end": 42,
340
+ "text": "translations",
341
+ "type": "file or code identifier",
342
+ "entity_idx": 2
343
+ },
344
+ "relation": "depends on",
345
+ "score": 0.8164063773658039
346
+ },
347
+ {
348
+ "head": {
349
+ "start": 12,
350
+ "end": 20,
351
+ "text": "Lokalise",
352
+ "type": "developer tool",
353
+ "entity_idx": 1
354
+ },
355
+ "tail": {
356
+ "start": 30,
357
+ "end": 42,
358
+ "text": "translations",
359
+ "type": "file or code identifier",
360
+ "entity_idx": 2
361
+ },
362
+ "relation": "depends on",
363
+ "score": 0.7774688630389935
364
+ }
365
+ ],
366
+ "pytorch_entities": [
367
+ {
368
+ "start": 0,
369
+ "end": 7,
370
+ "text": "Crowdin",
371
+ "label": "developer tool",
372
+ "score": 0.9227948784828186
373
+ },
374
+ {
375
+ "start": 12,
376
+ "end": 20,
377
+ "text": "Lokalise",
378
+ "label": "developer tool",
379
+ "score": 0.9563585519790649
380
+ },
381
+ {
382
+ "start": 30,
383
+ "end": 42,
384
+ "text": "translations",
385
+ "label": "file or code identifier",
386
+ "score": 0.6166636943817139
387
+ }
388
+ ],
389
+ "pytorch_relations": [
390
+ {
391
+ "head": {
392
+ "start": 0,
393
+ "end": 7,
394
+ "text": "Crowdin",
395
+ "type": "developer tool",
396
+ "entity_idx": 0
397
+ },
398
+ "tail": {
399
+ "start": 30,
400
+ "end": 42,
401
+ "text": "translations",
402
+ "type": "file or code identifier",
403
+ "entity_idx": 2
404
+ },
405
+ "relation": "depends on",
406
+ "score": 0.8167405128479004
407
+ },
408
+ {
409
+ "head": {
410
+ "start": 12,
411
+ "end": 20,
412
+ "text": "Lokalise",
413
+ "type": "developer tool",
414
+ "entity_idx": 1
415
+ },
416
+ "tail": {
417
+ "start": 30,
418
+ "end": 42,
419
+ "text": "translations",
420
+ "type": "file or code identifier",
421
+ "entity_idx": 2
422
+ },
423
+ "relation": "depends on",
424
+ "score": 0.7780425548553467
425
+ }
426
+ ]
427
+ },
428
+ {
429
+ "text": "The JWT is validated by the API gateway",
430
+ "labels": [
431
+ "person",
432
+ "company",
433
+ "place",
434
+ "software library",
435
+ "developer tool",
436
+ "programming language",
437
+ "product",
438
+ "file or code identifier"
439
+ ],
440
+ "relations": [
441
+ "works at",
442
+ "located in",
443
+ "depends on",
444
+ "reviewed by"
445
+ ],
446
+ "words": [
447
+ "The",
448
+ "JWT",
449
+ "is",
450
+ "validated",
451
+ "by",
452
+ "the",
453
+ "API",
454
+ "gateway"
455
+ ],
456
+ "input_summary": {
457
+ "natural_seq_len": 46,
458
+ "text_length": 8,
459
+ "input_ids_prefix": [
460
+ 1,
461
+ 128001,
462
+ 604,
463
+ 128001,
464
+ 483,
465
+ 128001,
466
+ 470,
467
+ 128001,
468
+ 1036,
469
+ 2634,
470
+ 128001,
471
+ 5010,
472
+ 1637,
473
+ 128001,
474
+ 4050,
475
+ 1402,
476
+ 128001,
477
+ 714,
478
+ 128001,
479
+ 1092,
480
+ 289,
481
+ 1197,
482
+ 20114,
483
+ 128002,
484
+ 128003,
485
+ 885,
486
+ 288,
487
+ 128003,
488
+ 1137,
489
+ 267,
490
+ 128003,
491
+ 3898,
492
+ 277,
493
+ 128003,
494
+ 5383,
495
+ 293,
496
+ 128002,
497
+ 279,
498
+ 110998,
499
+ 269,
500
+ 17023,
501
+ 293,
502
+ 262,
503
+ 5804,
504
+ 12017,
505
+ 2,
506
+ 0,
507
+ 0
508
+ ],
509
+ "input_ids_sha256": "7c8041c6c98c96ace33a0a71894d2405083d95a110e3f67565fb2c3cc214bd98",
510
+ "words_mask_nonzero": 8,
511
+ "pass2_span_idx": [
512
+ [
513
+ 1,
514
+ 1
515
+ ],
516
+ [
517
+ 6,
518
+ 6
519
+ ],
520
+ [
521
+ 6,
522
+ 6
523
+ ],
524
+ [
525
+ 6,
526
+ 7
527
+ ],
528
+ [
529
+ 7,
530
+ 7
531
+ ]
532
+ ]
533
+ },
534
+ "expected_entities": [
535
+ {
536
+ "start": 4,
537
+ "end": 7,
538
+ "text": "JWT",
539
+ "label": "file or code identifier",
540
+ "score": 0.9289263306198166
541
+ },
542
+ {
543
+ "start": 28,
544
+ "end": 39,
545
+ "text": "API gateway",
546
+ "label": "developer tool",
547
+ "score": 0.7744128267591711
548
+ },
549
+ {
550
+ "start": 28,
551
+ "end": 31,
552
+ "text": "API",
553
+ "label": "company",
554
+ "score": 0.7595822589677163
555
+ },
556
+ {
557
+ "start": 32,
558
+ "end": 39,
559
+ "text": "gateway",
560
+ "label": "developer tool",
561
+ "score": 0.792624809164082
562
+ }
563
+ ],
564
+ "expected_relations": [],
565
+ "pytorch_entities": [
566
+ {
567
+ "start": 4,
568
+ "end": 7,
569
+ "text": "JWT",
570
+ "label": "file or code identifier",
571
+ "score": 0.9286322593688965
572
+ },
573
+ {
574
+ "start": 28,
575
+ "end": 39,
576
+ "text": "API gateway",
577
+ "label": "developer tool",
578
+ "score": 0.7683987617492676
579
+ },
580
+ {
581
+ "start": 28,
582
+ "end": 31,
583
+ "text": "API",
584
+ "label": "company",
585
+ "score": 0.764356791973114
586
+ },
587
+ {
588
+ "start": 32,
589
+ "end": 39,
590
+ "text": "gateway",
591
+ "label": "developer tool",
592
+ "score": 0.7900506258010864
593
+ }
594
+ ],
595
+ "pytorch_relations": []
596
+ },
597
+ {
598
+ "text": "Sarah reviewed the pull request from Marcus",
599
+ "labels": [
600
+ "person",
601
+ "company",
602
+ "place",
603
+ "software library",
604
+ "developer tool",
605
+ "programming language",
606
+ "product",
607
+ "file or code identifier"
608
+ ],
609
+ "relations": [
610
+ "works at",
611
+ "located in",
612
+ "depends on",
613
+ "reviewed by"
614
+ ],
615
+ "words": [
616
+ "Sarah",
617
+ "reviewed",
618
+ "the",
619
+ "pull",
620
+ "request",
621
+ "from",
622
+ "Marcus"
623
+ ],
624
+ "input_summary": {
625
+ "natural_seq_len": 45,
626
+ "text_length": 7,
627
+ "input_ids_prefix": [
628
+ 1,
629
+ 128001,
630
+ 604,
631
+ 128001,
632
+ 483,
633
+ 128001,
634
+ 470,
635
+ 128001,
636
+ 1036,
637
+ 2634,
638
+ 128001,
639
+ 5010,
640
+ 1637,
641
+ 128001,
642
+ 4050,
643
+ 1402,
644
+ 128001,
645
+ 714,
646
+ 128001,
647
+ 1092,
648
+ 289,
649
+ 1197,
650
+ 20114,
651
+ 128002,
652
+ 128003,
653
+ 885,
654
+ 288,
655
+ 128003,
656
+ 1137,
657
+ 267,
658
+ 128003,
659
+ 3898,
660
+ 277,
661
+ 128003,
662
+ 5383,
663
+ 293,
664
+ 128002,
665
+ 4537,
666
+ 5383,
667
+ 262,
668
+ 2647,
669
+ 1409,
670
+ 292,
671
+ 10817,
672
+ 2,
673
+ 0,
674
+ 0,
675
+ 0
676
+ ],
677
+ "input_ids_sha256": "cf4cea0a66bdb445915e7fb828cbf228e617e2febb846f39757db0cea5b84950",
678
+ "words_mask_nonzero": 7,
679
+ "pass2_span_idx": [
680
+ [
681
+ 0,
682
+ 0
683
+ ],
684
+ [
685
+ 3,
686
+ 4
687
+ ],
688
+ [
689
+ 3,
690
+ 4
691
+ ],
692
+ [
693
+ 3,
694
+ 4
695
+ ],
696
+ [
697
+ 6,
698
+ 6
699
+ ]
700
+ ]
701
+ },
702
+ "expected_entities": [
703
+ {
704
+ "start": 0,
705
+ "end": 5,
706
+ "text": "Sarah",
707
+ "label": "person",
708
+ "score": 0.998451238905712
709
+ },
710
+ {
711
+ "start": 19,
712
+ "end": 31,
713
+ "text": "pull request",
714
+ "label": "developer tool",
715
+ "score": 0.7123322507714482
716
+ },
717
+ {
718
+ "start": 37,
719
+ "end": 43,
720
+ "text": "Marcus",
721
+ "label": "person",
722
+ "score": 0.995784840378813
723
+ }
724
+ ],
725
+ "expected_relations": [
726
+ {
727
+ "head": {
728
+ "start": 19,
729
+ "end": 31,
730
+ "text": "pull request",
731
+ "type": "developer tool",
732
+ "entity_idx": 1
733
+ },
734
+ "tail": {
735
+ "start": 37,
736
+ "end": 43,
737
+ "text": "Marcus",
738
+ "type": "person",
739
+ "entity_idx": 2
740
+ },
741
+ "relation": "reviewed by",
742
+ "score": 0.7433543601649092
743
+ },
744
+ {
745
+ "head": {
746
+ "start": 19,
747
+ "end": 31,
748
+ "text": "pull request",
749
+ "type": "developer tool",
750
+ "entity_idx": 1
751
+ },
752
+ "tail": {
753
+ "start": 37,
754
+ "end": 43,
755
+ "text": "Marcus",
756
+ "type": "person",
757
+ "entity_idx": 2
758
+ },
759
+ "relation": "reviewed by",
760
+ "score": 0.7433543601649092
761
+ },
762
+ {
763
+ "head": {
764
+ "start": 19,
765
+ "end": 31,
766
+ "text": "pull request",
767
+ "type": "developer tool",
768
+ "entity_idx": 1
769
+ },
770
+ "tail": {
771
+ "start": 37,
772
+ "end": 43,
773
+ "text": "Marcus",
774
+ "type": "person",
775
+ "entity_idx": 2
776
+ },
777
+ "relation": "reviewed by",
778
+ "score": 0.7433543601649092
779
+ }
780
+ ],
781
+ "pytorch_entities": [
782
+ {
783
+ "start": 0,
784
+ "end": 5,
785
+ "text": "Sarah",
786
+ "label": "person",
787
+ "score": 0.9984424710273743
788
+ },
789
+ {
790
+ "start": 19,
791
+ "end": 31,
792
+ "text": "pull request",
793
+ "label": "developer tool",
794
+ "score": 0.709196150302887
795
+ },
796
+ {
797
+ "start": 37,
798
+ "end": 43,
799
+ "text": "Marcus",
800
+ "label": "person",
801
+ "score": 0.9957764744758606
802
+ }
803
+ ],
804
+ "pytorch_relations": [
805
+ {
806
+ "head": {
807
+ "start": 19,
808
+ "end": 31,
809
+ "text": "pull request",
810
+ "type": "developer tool",
811
+ "entity_idx": 1
812
+ },
813
+ "tail": {
814
+ "start": 37,
815
+ "end": 43,
816
+ "text": "Marcus",
817
+ "type": "person",
818
+ "entity_idx": 2
819
+ },
820
+ "relation": "reviewed by",
821
+ "score": 0.7393874526023865
822
+ },
823
+ {
824
+ "head": {
825
+ "start": 19,
826
+ "end": 31,
827
+ "text": "pull request",
828
+ "type": "developer tool",
829
+ "entity_idx": 1
830
+ },
831
+ "tail": {
832
+ "start": 37,
833
+ "end": 43,
834
+ "text": "Marcus",
835
+ "type": "person",
836
+ "entity_idx": 2
837
+ },
838
+ "relation": "reviewed by",
839
+ "score": 0.7393874526023865
840
+ },
841
+ {
842
+ "head": {
843
+ "start": 19,
844
+ "end": 31,
845
+ "text": "pull request",
846
+ "type": "developer tool",
847
+ "entity_idx": 1
848
+ },
849
+ "tail": {
850
+ "start": 37,
851
+ "end": 43,
852
+ "text": "Marcus",
853
+ "type": "person",
854
+ "entity_idx": 2
855
+ },
856
+ "relation": "reviewed by",
857
+ "score": 0.7393874526023865
858
+ }
859
+ ]
860
+ },
861
+ {
862
+ "text": "The Eiffel Tower, located in Paris, France, was designed by engineer Gustave Eiffel and completed in 1889.",
863
+ "labels": [
864
+ "person",
865
+ "company",
866
+ "place",
867
+ "software library",
868
+ "developer tool",
869
+ "programming language",
870
+ "product",
871
+ "file or code identifier"
872
+ ],
873
+ "relations": [
874
+ "works at",
875
+ "located in",
876
+ "depends on",
877
+ "reviewed by"
878
+ ],
879
+ "words": [
880
+ "The",
881
+ "Eiffel",
882
+ "Tower",
883
+ ",",
884
+ "located",
885
+ "in",
886
+ "Paris",
887
+ ",",
888
+ "France",
889
+ ",",
890
+ "was",
891
+ "designed",
892
+ "by",
893
+ "engineer",
894
+ "Gustave",
895
+ "Eiffel",
896
+ "and",
897
+ "completed",
898
+ "in",
899
+ "1889",
900
+ "."
901
+ ],
902
+ "input_summary": {
903
+ "natural_seq_len": 59,
904
+ "text_length": 21,
905
+ "input_ids_prefix": [
906
+ 1,
907
+ 128001,
908
+ 604,
909
+ 128001,
910
+ 483,
911
+ 128001,
912
+ 470,
913
+ 128001,
914
+ 1036,
915
+ 2634,
916
+ 128001,
917
+ 5010,
918
+ 1637,
919
+ 128001,
920
+ 4050,
921
+ 1402,
922
+ 128001,
923
+ 714,
924
+ 128001,
925
+ 1092,
926
+ 289,
927
+ 1197,
928
+ 20114,
929
+ 128002,
930
+ 128003,
931
+ 885,
932
+ 288,
933
+ 128003,
934
+ 1137,
935
+ 267,
936
+ 128003,
937
+ 3898,
938
+ 277,
939
+ 128003,
940
+ 5383,
941
+ 293,
942
+ 128002,
943
+ 279,
944
+ 36726,
945
+ 6962,
946
+ 366,
947
+ 1137,
948
+ 267,
949
+ 3045,
950
+ 366,
951
+ 2378,
952
+ 366,
953
+ 284
954
+ ],
955
+ "input_ids_sha256": "cd08cbabc325853a0be84d07269764fc861fbeb948c0c36219a4e38c98fa7b63",
956
+ "words_mask_nonzero": 21,
957
+ "pass2_span_idx": [
958
+ [
959
+ 1,
960
+ 2
961
+ ],
962
+ [
963
+ 6,
964
+ 6
965
+ ],
966
+ [
967
+ 8,
968
+ 8
969
+ ],
970
+ [
971
+ 14,
972
+ 15
973
+ ]
974
+ ]
975
+ },
976
+ "expected_entities": [
977
+ {
978
+ "start": 4,
979
+ "end": 16,
980
+ "text": "Eiffel Tower",
981
+ "label": "place",
982
+ "score": 0.9560634664484897
983
+ },
984
+ {
985
+ "start": 29,
986
+ "end": 34,
987
+ "text": "Paris",
988
+ "label": "place",
989
+ "score": 0.999706345366684
990
+ },
991
+ {
992
+ "start": 36,
993
+ "end": 42,
994
+ "text": "France",
995
+ "label": "place",
996
+ "score": 0.997556113374818
997
+ },
998
+ {
999
+ "start": 69,
1000
+ "end": 83,
1001
+ "text": "Gustave Eiffel",
1002
+ "label": "person",
1003
+ "score": 0.9973785590538324
1004
+ }
1005
+ ],
1006
+ "expected_relations": [
1007
+ {
1008
+ "head": {
1009
+ "start": 4,
1010
+ "end": 16,
1011
+ "text": "Eiffel Tower",
1012
+ "type": "place",
1013
+ "entity_idx": 0
1014
+ },
1015
+ "tail": {
1016
+ "start": 29,
1017
+ "end": 34,
1018
+ "text": "Paris",
1019
+ "type": "place",
1020
+ "entity_idx": 1
1021
+ },
1022
+ "relation": "located in",
1023
+ "score": 0.9938310050773187
1024
+ },
1025
+ {
1026
+ "head": {
1027
+ "start": 4,
1028
+ "end": 16,
1029
+ "text": "Eiffel Tower",
1030
+ "type": "place",
1031
+ "entity_idx": 0
1032
+ },
1033
+ "tail": {
1034
+ "start": 36,
1035
+ "end": 42,
1036
+ "text": "France",
1037
+ "type": "place",
1038
+ "entity_idx": 2
1039
+ },
1040
+ "relation": "located in",
1041
+ "score": 0.9202179865359069
1042
+ }
1043
+ ],
1044
+ "pytorch_entities": [
1045
+ {
1046
+ "start": 4,
1047
+ "end": 16,
1048
+ "text": "Eiffel Tower",
1049
+ "label": "place",
1050
+ "score": 0.956135630607605
1051
+ },
1052
+ {
1053
+ "start": 29,
1054
+ "end": 34,
1055
+ "text": "Paris",
1056
+ "label": "place",
1057
+ "score": 0.999701201915741
1058
+ },
1059
+ {
1060
+ "start": 36,
1061
+ "end": 42,
1062
+ "text": "France",
1063
+ "label": "place",
1064
+ "score": 0.9975093603134155
1065
+ },
1066
+ {
1067
+ "start": 69,
1068
+ "end": 83,
1069
+ "text": "Gustave Eiffel",
1070
+ "label": "person",
1071
+ "score": 0.9973853230476379
1072
+ }
1073
+ ],
1074
+ "pytorch_relations": [
1075
+ {
1076
+ "head": {
1077
+ "start": 4,
1078
+ "end": 16,
1079
+ "text": "Eiffel Tower",
1080
+ "type": "place",
1081
+ "entity_idx": 0
1082
+ },
1083
+ "tail": {
1084
+ "start": 29,
1085
+ "end": 34,
1086
+ "text": "Paris",
1087
+ "type": "place",
1088
+ "entity_idx": 1
1089
+ },
1090
+ "relation": "located in",
1091
+ "score": 0.9937644004821777
1092
+ },
1093
+ {
1094
+ "head": {
1095
+ "start": 4,
1096
+ "end": 16,
1097
+ "text": "Eiffel Tower",
1098
+ "type": "place",
1099
+ "entity_idx": 0
1100
+ },
1101
+ "tail": {
1102
+ "start": 36,
1103
+ "end": 42,
1104
+ "text": "France",
1105
+ "type": "place",
1106
+ "entity_idx": 2
1107
+ },
1108
+ "relation": "located in",
1109
+ "score": 0.9189815521240234
1110
+ }
1111
+ ]
1112
+ },
1113
+ {
1114
+ "text": "Maria Kowalski joined Acme Corporation as a staff engineer in Berlin.",
1115
+ "labels": [
1116
+ "person",
1117
+ "company",
1118
+ "place",
1119
+ "software library",
1120
+ "developer tool",
1121
+ "programming language",
1122
+ "product",
1123
+ "file or code identifier"
1124
+ ],
1125
+ "relations": [
1126
+ "works at",
1127
+ "located in",
1128
+ "depends on",
1129
+ "reviewed by"
1130
+ ],
1131
+ "words": [
1132
+ "Maria",
1133
+ "Kowalski",
1134
+ "joined",
1135
+ "Acme",
1136
+ "Corporation",
1137
+ "as",
1138
+ "a",
1139
+ "staff",
1140
+ "engineer",
1141
+ "in",
1142
+ "Berlin",
1143
+ "."
1144
+ ],
1145
+ "input_summary": {
1146
+ "natural_seq_len": 50,
1147
+ "text_length": 12,
1148
+ "input_ids_prefix": [
1149
+ 1,
1150
+ 128001,
1151
+ 604,
1152
+ 128001,
1153
+ 483,
1154
+ 128001,
1155
+ 470,
1156
+ 128001,
1157
+ 1036,
1158
+ 2634,
1159
+ 128001,
1160
+ 5010,
1161
+ 1637,
1162
+ 128001,
1163
+ 4050,
1164
+ 1402,
1165
+ 128001,
1166
+ 714,
1167
+ 128001,
1168
+ 1092,
1169
+ 289,
1170
+ 1197,
1171
+ 20114,
1172
+ 128002,
1173
+ 128003,
1174
+ 885,
1175
+ 288,
1176
+ 128003,
1177
+ 1137,
1178
+ 267,
1179
+ 128003,
1180
+ 3898,
1181
+ 277,
1182
+ 128003,
1183
+ 5383,
1184
+ 293,
1185
+ 128002,
1186
+ 6564,
1187
+ 89886,
1188
+ 2280,
1189
+ 63290,
1190
+ 4363,
1191
+ 283,
1192
+ 266,
1193
+ 979,
1194
+ 6247,
1195
+ 267,
1196
+ 5842
1197
+ ],
1198
+ "input_ids_sha256": "d47696208ee2ab86ddc94db05328e455d146a326ef1160c22f99476cfcdbe471",
1199
+ "words_mask_nonzero": 12,
1200
+ "pass2_span_idx": [
1201
+ [
1202
+ 0,
1203
+ 1
1204
+ ],
1205
+ [
1206
+ 3,
1207
+ 4
1208
+ ],
1209
+ [
1210
+ 10,
1211
+ 10
1212
+ ]
1213
+ ]
1214
+ },
1215
+ "expected_entities": [
1216
+ {
1217
+ "start": 0,
1218
+ "end": 14,
1219
+ "text": "Maria Kowalski",
1220
+ "label": "person",
1221
+ "score": 0.9999124970023934
1222
+ },
1223
+ {
1224
+ "start": 22,
1225
+ "end": 38,
1226
+ "text": "Acme Corporation",
1227
+ "label": "company",
1228
+ "score": 0.9999620683777022
1229
+ },
1230
+ {
1231
+ "start": 62,
1232
+ "end": 68,
1233
+ "text": "Berlin",
1234
+ "label": "place",
1235
+ "score": 0.9997901169117969
1236
+ }
1237
+ ],
1238
+ "expected_relations": [
1239
+ {
1240
+ "head": {
1241
+ "start": 0,
1242
+ "end": 14,
1243
+ "text": "Maria Kowalski",
1244
+ "type": "person",
1245
+ "entity_idx": 0
1246
+ },
1247
+ "tail": {
1248
+ "start": 22,
1249
+ "end": 38,
1250
+ "text": "Acme Corporation",
1251
+ "type": "company",
1252
+ "entity_idx": 1
1253
+ },
1254
+ "relation": "works at",
1255
+ "score": 0.9990600561193372
1256
+ }
1257
+ ],
1258
+ "pytorch_entities": [
1259
+ {
1260
+ "start": 0,
1261
+ "end": 14,
1262
+ "text": "Maria Kowalski",
1263
+ "label": "person",
1264
+ "score": 0.9999109506607056
1265
+ },
1266
+ {
1267
+ "start": 22,
1268
+ "end": 38,
1269
+ "text": "Acme Corporation",
1270
+ "label": "company",
1271
+ "score": 0.999962329864502
1272
+ },
1273
+ {
1274
+ "start": 62,
1275
+ "end": 68,
1276
+ "text": "Berlin",
1277
+ "label": "place",
1278
+ "score": 0.999789297580719
1279
+ }
1280
+ ],
1281
+ "pytorch_relations": [
1282
+ {
1283
+ "head": {
1284
+ "start": 0,
1285
+ "end": 14,
1286
+ "text": "Maria Kowalski",
1287
+ "type": "person",
1288
+ "entity_idx": 0
1289
+ },
1290
+ "tail": {
1291
+ "start": 22,
1292
+ "end": 38,
1293
+ "text": "Acme Corporation",
1294
+ "type": "company",
1295
+ "entity_idx": 1
1296
+ },
1297
+ "relation": "works at",
1298
+ "score": 0.9990606904029846
1299
+ }
1300
+ ]
1301
+ },
1302
+ {
1303
+ "text": "The quarterly review meeting with Dataworks is scheduled in the Denver office.",
1304
+ "labels": [
1305
+ "person",
1306
+ "company",
1307
+ "place",
1308
+ "software library",
1309
+ "developer tool",
1310
+ "programming language",
1311
+ "product",
1312
+ "file or code identifier"
1313
+ ],
1314
+ "relations": [
1315
+ "works at",
1316
+ "located in",
1317
+ "depends on",
1318
+ "reviewed by"
1319
+ ],
1320
+ "words": [
1321
+ "The",
1322
+ "quarterly",
1323
+ "review",
1324
+ "meeting",
1325
+ "with",
1326
+ "Dataworks",
1327
+ "is",
1328
+ "scheduled",
1329
+ "in",
1330
+ "the",
1331
+ "Denver",
1332
+ "office",
1333
+ "."
1334
+ ],
1335
+ "input_summary": {
1336
+ "natural_seq_len": 52,
1337
+ "text_length": 13,
1338
+ "input_ids_prefix": [
1339
+ 1,
1340
+ 128001,
1341
+ 604,
1342
+ 128001,
1343
+ 483,
1344
+ 128001,
1345
+ 470,
1346
+ 128001,
1347
+ 1036,
1348
+ 2634,
1349
+ 128001,
1350
+ 5010,
1351
+ 1637,
1352
+ 128001,
1353
+ 4050,
1354
+ 1402,
1355
+ 128001,
1356
+ 714,
1357
+ 128001,
1358
+ 1092,
1359
+ 289,
1360
+ 1197,
1361
+ 20114,
1362
+ 128002,
1363
+ 128003,
1364
+ 885,
1365
+ 288,
1366
+ 128003,
1367
+ 1137,
1368
+ 267,
1369
+ 128003,
1370
+ 3898,
1371
+ 277,
1372
+ 128003,
1373
+ 5383,
1374
+ 293,
1375
+ 128002,
1376
+ 279,
1377
+ 9539,
1378
+ 1078,
1379
+ 1122,
1380
+ 275,
1381
+ 2493,
1382
+ 11559,
1383
+ 269,
1384
+ 3170,
1385
+ 267,
1386
+ 262
1387
+ ],
1388
+ "input_ids_sha256": "dad74655f95f59803d1652ac7bd5a0ea9d0d89fb50b9ce7904302558ac3affd8",
1389
+ "words_mask_nonzero": 13,
1390
+ "pass2_span_idx": [
1391
+ [
1392
+ 5,
1393
+ 5
1394
+ ],
1395
+ [
1396
+ 10,
1397
+ 10
1398
+ ],
1399
+ [
1400
+ 10,
1401
+ 11
1402
+ ],
1403
+ [
1404
+ 11,
1405
+ 11
1406
+ ]
1407
+ ]
1408
+ },
1409
+ "expected_entities": [
1410
+ {
1411
+ "start": 34,
1412
+ "end": 43,
1413
+ "text": "Dataworks",
1414
+ "label": "company",
1415
+ "score": 0.9983450757558759
1416
+ },
1417
+ {
1418
+ "start": 64,
1419
+ "end": 70,
1420
+ "text": "Denver",
1421
+ "label": "place",
1422
+ "score": 0.996378314521325
1423
+ },
1424
+ {
1425
+ "start": 64,
1426
+ "end": 77,
1427
+ "text": "Denver office",
1428
+ "label": "place",
1429
+ "score": 0.8624675338981391
1430
+ },
1431
+ {
1432
+ "start": 71,
1433
+ "end": 77,
1434
+ "text": "office",
1435
+ "label": "place",
1436
+ "score": 0.8274101873622409
1437
+ }
1438
+ ],
1439
+ "expected_relations": [
1440
+ {
1441
+ "head": {
1442
+ "start": 64,
1443
+ "end": 77,
1444
+ "text": "Denver office",
1445
+ "type": "place",
1446
+ "entity_idx": 2
1447
+ },
1448
+ "tail": {
1449
+ "start": 64,
1450
+ "end": 70,
1451
+ "text": "Denver",
1452
+ "type": "place",
1453
+ "entity_idx": 1
1454
+ },
1455
+ "relation": "located in",
1456
+ "score": 0.7414868640815749
1457
+ },
1458
+ {
1459
+ "head": {
1460
+ "start": 64,
1461
+ "end": 77,
1462
+ "text": "Denver office",
1463
+ "type": "place",
1464
+ "entity_idx": 2
1465
+ },
1466
+ "tail": {
1467
+ "start": 71,
1468
+ "end": 77,
1469
+ "text": "office",
1470
+ "type": "place",
1471
+ "entity_idx": 3
1472
+ },
1473
+ "relation": "located in",
1474
+ "score": 0.7228205970230486
1475
+ }
1476
+ ],
1477
+ "pytorch_entities": [
1478
+ {
1479
+ "start": 34,
1480
+ "end": 43,
1481
+ "text": "Dataworks",
1482
+ "label": "company",
1483
+ "score": 0.9983343482017517
1484
+ },
1485
+ {
1486
+ "start": 64,
1487
+ "end": 70,
1488
+ "text": "Denver",
1489
+ "label": "place",
1490
+ "score": 0.996368408203125
1491
+ },
1492
+ {
1493
+ "start": 64,
1494
+ "end": 77,
1495
+ "text": "Denver office",
1496
+ "label": "place",
1497
+ "score": 0.860258162021637
1498
+ },
1499
+ {
1500
+ "start": 71,
1501
+ "end": 77,
1502
+ "text": "office",
1503
+ "label": "place",
1504
+ "score": 0.8252872228622437
1505
+ }
1506
+ ],
1507
+ "pytorch_relations": [
1508
+ {
1509
+ "head": {
1510
+ "start": 64,
1511
+ "end": 77,
1512
+ "text": "Denver office",
1513
+ "type": "place",
1514
+ "entity_idx": 2
1515
+ },
1516
+ "tail": {
1517
+ "start": 64,
1518
+ "end": 70,
1519
+ "text": "Denver",
1520
+ "type": "place",
1521
+ "entity_idx": 1
1522
+ },
1523
+ "relation": "located in",
1524
+ "score": 0.741705596446991
1525
+ },
1526
+ {
1527
+ "head": {
1528
+ "start": 64,
1529
+ "end": 77,
1530
+ "text": "Denver office",
1531
+ "type": "place",
1532
+ "entity_idx": 2
1533
+ },
1534
+ "tail": {
1535
+ "start": 71,
1536
+ "end": 77,
1537
+ "text": "office",
1538
+ "type": "place",
1539
+ "entity_idx": 3
1540
+ },
1541
+ "relation": "located in",
1542
+ "score": 0.7239383459091187
1543
+ }
1544
+ ]
1545
+ },
1546
+ {
1547
+ "text": "John from finance approved the budget for the Madrid offsite.",
1548
+ "labels": [
1549
+ "person",
1550
+ "company",
1551
+ "place",
1552
+ "software library",
1553
+ "developer tool",
1554
+ "programming language",
1555
+ "product",
1556
+ "file or code identifier"
1557
+ ],
1558
+ "relations": [
1559
+ "works at",
1560
+ "located in",
1561
+ "depends on",
1562
+ "reviewed by"
1563
+ ],
1564
+ "words": [
1565
+ "John",
1566
+ "from",
1567
+ "finance",
1568
+ "approved",
1569
+ "the",
1570
+ "budget",
1571
+ "for",
1572
+ "the",
1573
+ "Madrid",
1574
+ "offsite",
1575
+ "."
1576
+ ],
1577
+ "input_summary": {
1578
+ "natural_seq_len": 49,
1579
+ "text_length": 11,
1580
+ "input_ids_prefix": [
1581
+ 1,
1582
+ 128001,
1583
+ 604,
1584
+ 128001,
1585
+ 483,
1586
+ 128001,
1587
+ 470,
1588
+ 128001,
1589
+ 1036,
1590
+ 2634,
1591
+ 128001,
1592
+ 5010,
1593
+ 1637,
1594
+ 128001,
1595
+ 4050,
1596
+ 1402,
1597
+ 128001,
1598
+ 714,
1599
+ 128001,
1600
+ 1092,
1601
+ 289,
1602
+ 1197,
1603
+ 20114,
1604
+ 128002,
1605
+ 128003,
1606
+ 885,
1607
+ 288,
1608
+ 128003,
1609
+ 1137,
1610
+ 267,
1611
+ 128003,
1612
+ 3898,
1613
+ 277,
1614
+ 128003,
1615
+ 5383,
1616
+ 293,
1617
+ 128002,
1618
+ 918,
1619
+ 292,
1620
+ 3769,
1621
+ 2664,
1622
+ 262,
1623
+ 1753,
1624
+ 270,
1625
+ 262,
1626
+ 8202,
1627
+ 51109,
1628
+ 323
1629
+ ],
1630
+ "input_ids_sha256": "0a07ea889e684659a717eb93c5e8cff467e48f31b5206aa8c15b4017eea3e406",
1631
+ "words_mask_nonzero": 11,
1632
+ "pass2_span_idx": [
1633
+ [
1634
+ 0,
1635
+ 0
1636
+ ],
1637
+ [
1638
+ 2,
1639
+ 2
1640
+ ],
1641
+ [
1642
+ 5,
1643
+ 5
1644
+ ],
1645
+ [
1646
+ 8,
1647
+ 8
1648
+ ],
1649
+ [
1650
+ 8,
1651
+ 9
1652
+ ],
1653
+ [
1654
+ 9,
1655
+ 9
1656
+ ]
1657
+ ]
1658
+ },
1659
+ "expected_entities": [
1660
+ {
1661
+ "start": 0,
1662
+ "end": 4,
1663
+ "text": "John",
1664
+ "label": "person",
1665
+ "score": 0.9998579763597699
1666
+ },
1667
+ {
1668
+ "start": 10,
1669
+ "end": 17,
1670
+ "text": "finance",
1671
+ "label": "company",
1672
+ "score": 0.9960545931933981
1673
+ },
1674
+ {
1675
+ "start": 31,
1676
+ "end": 37,
1677
+ "text": "budget",
1678
+ "label": "product",
1679
+ "score": 0.7958168298924412
1680
+ },
1681
+ {
1682
+ "start": 46,
1683
+ "end": 52,
1684
+ "text": "Madrid",
1685
+ "label": "place",
1686
+ "score": 0.9839091258071755
1687
+ },
1688
+ {
1689
+ "start": 46,
1690
+ "end": 60,
1691
+ "text": "Madrid offsite",
1692
+ "label": "place",
1693
+ "score": 0.7231139840929408
1694
+ },
1695
+ {
1696
+ "start": 53,
1697
+ "end": 60,
1698
+ "text": "offsite",
1699
+ "label": "place",
1700
+ "score": 0.5453159812403523
1701
+ }
1702
+ ],
1703
+ "expected_relations": [
1704
+ {
1705
+ "head": {
1706
+ "start": 0,
1707
+ "end": 4,
1708
+ "text": "John",
1709
+ "type": "person",
1710
+ "entity_idx": 0
1711
+ },
1712
+ "tail": {
1713
+ "start": 10,
1714
+ "end": 17,
1715
+ "text": "finance",
1716
+ "type": "company",
1717
+ "entity_idx": 1
1718
+ },
1719
+ "relation": "works at",
1720
+ "score": 0.997730531345513
1721
+ },
1722
+ {
1723
+ "head": {
1724
+ "start": 31,
1725
+ "end": 37,
1726
+ "text": "budget",
1727
+ "type": "product",
1728
+ "entity_idx": 2
1729
+ },
1730
+ "tail": {
1731
+ "start": 0,
1732
+ "end": 4,
1733
+ "text": "John",
1734
+ "type": "person",
1735
+ "entity_idx": 0
1736
+ },
1737
+ "relation": "reviewed by",
1738
+ "score": 0.9813464782682386
1739
+ },
1740
+ {
1741
+ "head": {
1742
+ "start": 31,
1743
+ "end": 37,
1744
+ "text": "budget",
1745
+ "type": "product",
1746
+ "entity_idx": 2
1747
+ },
1748
+ "tail": {
1749
+ "start": 46,
1750
+ "end": 52,
1751
+ "text": "Madrid",
1752
+ "type": "place",
1753
+ "entity_idx": 3
1754
+ },
1755
+ "relation": "located in",
1756
+ "score": 0.8750414377695188
1757
+ },
1758
+ {
1759
+ "head": {
1760
+ "start": 31,
1761
+ "end": 37,
1762
+ "text": "budget",
1763
+ "type": "product",
1764
+ "entity_idx": 2
1765
+ },
1766
+ "tail": {
1767
+ "start": 46,
1768
+ "end": 60,
1769
+ "text": "Madrid offsite",
1770
+ "type": "place",
1771
+ "entity_idx": 4
1772
+ },
1773
+ "relation": "located in",
1774
+ "score": 0.8127187235801289
1775
+ },
1776
+ {
1777
+ "head": {
1778
+ "start": 46,
1779
+ "end": 52,
1780
+ "text": "Madrid",
1781
+ "type": "place",
1782
+ "entity_idx": 3
1783
+ },
1784
+ "tail": {
1785
+ "start": 46,
1786
+ "end": 60,
1787
+ "text": "Madrid offsite",
1788
+ "type": "place",
1789
+ "entity_idx": 4
1790
+ },
1791
+ "relation": "located in",
1792
+ "score": 0.7283620485086241
1793
+ },
1794
+ {
1795
+ "head": {
1796
+ "start": 46,
1797
+ "end": 60,
1798
+ "text": "Madrid offsite",
1799
+ "type": "place",
1800
+ "entity_idx": 4
1801
+ },
1802
+ "tail": {
1803
+ "start": 46,
1804
+ "end": 52,
1805
+ "text": "Madrid",
1806
+ "type": "place",
1807
+ "entity_idx": 3
1808
+ },
1809
+ "relation": "located in",
1810
+ "score": 0.85256760954532
1811
+ },
1812
+ {
1813
+ "head": {
1814
+ "start": 46,
1815
+ "end": 60,
1816
+ "text": "Madrid offsite",
1817
+ "type": "place",
1818
+ "entity_idx": 4
1819
+ },
1820
+ "tail": {
1821
+ "start": 53,
1822
+ "end": 60,
1823
+ "text": "offsite",
1824
+ "type": "place",
1825
+ "entity_idx": 5
1826
+ },
1827
+ "relation": "located in",
1828
+ "score": 0.7245780412576364
1829
+ },
1830
+ {
1831
+ "head": {
1832
+ "start": 53,
1833
+ "end": 60,
1834
+ "text": "offsite",
1835
+ "type": "place",
1836
+ "entity_idx": 5
1837
+ },
1838
+ "tail": {
1839
+ "start": 46,
1840
+ "end": 52,
1841
+ "text": "Madrid",
1842
+ "type": "place",
1843
+ "entity_idx": 3
1844
+ },
1845
+ "relation": "located in",
1846
+ "score": 0.8006920020959544
1847
+ },
1848
+ {
1849
+ "head": {
1850
+ "start": 53,
1851
+ "end": 60,
1852
+ "text": "offsite",
1853
+ "type": "place",
1854
+ "entity_idx": 5
1855
+ },
1856
+ "tail": {
1857
+ "start": 46,
1858
+ "end": 60,
1859
+ "text": "Madrid offsite",
1860
+ "type": "place",
1861
+ "entity_idx": 4
1862
+ },
1863
+ "relation": "located in",
1864
+ "score": 0.7713271657644393
1865
+ }
1866
+ ],
1867
+ "pytorch_entities": [
1868
+ {
1869
+ "start": 0,
1870
+ "end": 4,
1871
+ "text": "John",
1872
+ "label": "person",
1873
+ "score": 0.9998573064804077
1874
+ },
1875
+ {
1876
+ "start": 10,
1877
+ "end": 17,
1878
+ "text": "finance",
1879
+ "label": "company",
1880
+ "score": 0.9959328770637512
1881
+ },
1882
+ {
1883
+ "start": 31,
1884
+ "end": 37,
1885
+ "text": "budget",
1886
+ "label": "product",
1887
+ "score": 0.7921240329742432
1888
+ },
1889
+ {
1890
+ "start": 46,
1891
+ "end": 52,
1892
+ "text": "Madrid",
1893
+ "label": "place",
1894
+ "score": 0.9836980104446411
1895
+ },
1896
+ {
1897
+ "start": 46,
1898
+ "end": 60,
1899
+ "text": "Madrid offsite",
1900
+ "label": "place",
1901
+ "score": 0.7247708439826965
1902
+ },
1903
+ {
1904
+ "start": 53,
1905
+ "end": 60,
1906
+ "text": "offsite",
1907
+ "label": "place",
1908
+ "score": 0.5478425621986389
1909
+ }
1910
+ ],
1911
+ "pytorch_relations": [
1912
+ {
1913
+ "head": {
1914
+ "start": 0,
1915
+ "end": 4,
1916
+ "text": "John",
1917
+ "type": "person",
1918
+ "entity_idx": 0
1919
+ },
1920
+ "tail": {
1921
+ "start": 10,
1922
+ "end": 17,
1923
+ "text": "finance",
1924
+ "type": "company",
1925
+ "entity_idx": 1
1926
+ },
1927
+ "relation": "works at",
1928
+ "score": 0.9977059364318848
1929
+ },
1930
+ {
1931
+ "head": {
1932
+ "start": 31,
1933
+ "end": 37,
1934
+ "text": "budget",
1935
+ "type": "product",
1936
+ "entity_idx": 2
1937
+ },
1938
+ "tail": {
1939
+ "start": 0,
1940
+ "end": 4,
1941
+ "text": "John",
1942
+ "type": "person",
1943
+ "entity_idx": 0
1944
+ },
1945
+ "relation": "reviewed by",
1946
+ "score": 0.9811720848083496
1947
+ },
1948
+ {
1949
+ "head": {
1950
+ "start": 31,
1951
+ "end": 37,
1952
+ "text": "budget",
1953
+ "type": "product",
1954
+ "entity_idx": 2
1955
+ },
1956
+ "tail": {
1957
+ "start": 46,
1958
+ "end": 52,
1959
+ "text": "Madrid",
1960
+ "type": "place",
1961
+ "entity_idx": 3
1962
+ },
1963
+ "relation": "located in",
1964
+ "score": 0.8733073472976685
1965
+ },
1966
+ {
1967
+ "head": {
1968
+ "start": 31,
1969
+ "end": 37,
1970
+ "text": "budget",
1971
+ "type": "product",
1972
+ "entity_idx": 2
1973
+ },
1974
+ "tail": {
1975
+ "start": 46,
1976
+ "end": 60,
1977
+ "text": "Madrid offsite",
1978
+ "type": "place",
1979
+ "entity_idx": 4
1980
+ },
1981
+ "relation": "located in",
1982
+ "score": 0.8101670145988464
1983
+ },
1984
+ {
1985
+ "head": {
1986
+ "start": 46,
1987
+ "end": 52,
1988
+ "text": "Madrid",
1989
+ "type": "place",
1990
+ "entity_idx": 3
1991
+ },
1992
+ "tail": {
1993
+ "start": 46,
1994
+ "end": 60,
1995
+ "text": "Madrid offsite",
1996
+ "type": "place",
1997
+ "entity_idx": 4
1998
+ },
1999
+ "relation": "located in",
2000
+ "score": 0.7252994179725647
2001
+ },
2002
+ {
2003
+ "head": {
2004
+ "start": 46,
2005
+ "end": 60,
2006
+ "text": "Madrid offsite",
2007
+ "type": "place",
2008
+ "entity_idx": 4
2009
+ },
2010
+ "tail": {
2011
+ "start": 46,
2012
+ "end": 52,
2013
+ "text": "Madrid",
2014
+ "type": "place",
2015
+ "entity_idx": 3
2016
+ },
2017
+ "relation": "located in",
2018
+ "score": 0.852307140827179
2019
+ },
2020
+ {
2021
+ "head": {
2022
+ "start": 46,
2023
+ "end": 60,
2024
+ "text": "Madrid offsite",
2025
+ "type": "place",
2026
+ "entity_idx": 4
2027
+ },
2028
+ "tail": {
2029
+ "start": 53,
2030
+ "end": 60,
2031
+ "text": "offsite",
2032
+ "type": "place",
2033
+ "entity_idx": 5
2034
+ },
2035
+ "relation": "located in",
2036
+ "score": 0.7200937867164612
2037
+ },
2038
+ {
2039
+ "head": {
2040
+ "start": 53,
2041
+ "end": 60,
2042
+ "text": "offsite",
2043
+ "type": "place",
2044
+ "entity_idx": 5
2045
+ },
2046
+ "tail": {
2047
+ "start": 46,
2048
+ "end": 52,
2049
+ "text": "Madrid",
2050
+ "type": "place",
2051
+ "entity_idx": 3
2052
+ },
2053
+ "relation": "located in",
2054
+ "score": 0.8019633293151855
2055
+ },
2056
+ {
2057
+ "head": {
2058
+ "start": 53,
2059
+ "end": 60,
2060
+ "text": "offsite",
2061
+ "type": "place",
2062
+ "entity_idx": 5
2063
+ },
2064
+ "tail": {
2065
+ "start": 46,
2066
+ "end": 60,
2067
+ "text": "Madrid offsite",
2068
+ "type": "place",
2069
+ "entity_idx": 4
2070
+ },
2071
+ "relation": "located in",
2072
+ "score": 0.7710193991661072
2073
+ }
2074
+ ]
2075
+ },
2076
+ {
2077
+ "text": "Our checkout service depends on the Stripe SDK and Redis.",
2078
+ "labels": [
2079
+ "person",
2080
+ "company",
2081
+ "place",
2082
+ "software library",
2083
+ "developer tool",
2084
+ "programming language",
2085
+ "product",
2086
+ "file or code identifier"
2087
+ ],
2088
+ "relations": [
2089
+ "works at",
2090
+ "located in",
2091
+ "depends on",
2092
+ "reviewed by"
2093
+ ],
2094
+ "words": [
2095
+ "Our",
2096
+ "checkout",
2097
+ "service",
2098
+ "depends",
2099
+ "on",
2100
+ "the",
2101
+ "Stripe",
2102
+ "SDK",
2103
+ "and",
2104
+ "Redis",
2105
+ "."
2106
+ ],
2107
+ "input_summary": {
2108
+ "natural_seq_len": 49,
2109
+ "text_length": 11,
2110
+ "input_ids_prefix": [
2111
+ 1,
2112
+ 128001,
2113
+ 604,
2114
+ 128001,
2115
+ 483,
2116
+ 128001,
2117
+ 470,
2118
+ 128001,
2119
+ 1036,
2120
+ 2634,
2121
+ 128001,
2122
+ 5010,
2123
+ 1637,
2124
+ 128001,
2125
+ 4050,
2126
+ 1402,
2127
+ 128001,
2128
+ 714,
2129
+ 128001,
2130
+ 1092,
2131
+ 289,
2132
+ 1197,
2133
+ 20114,
2134
+ 128002,
2135
+ 128003,
2136
+ 885,
2137
+ 288,
2138
+ 128003,
2139
+ 1137,
2140
+ 267,
2141
+ 128003,
2142
+ 3898,
2143
+ 277,
2144
+ 128003,
2145
+ 5383,
2146
+ 293,
2147
+ 128002,
2148
+ 581,
2149
+ 9623,
2150
+ 506,
2151
+ 3898,
2152
+ 277,
2153
+ 262,
2154
+ 29084,
2155
+ 21192,
2156
+ 263,
2157
+ 63213,
2158
+ 323
2159
+ ],
2160
+ "input_ids_sha256": "ee5117c3fef9de94c7fbdd3b22fb4d727d393883359f5ccec006b776ce47cc17",
2161
+ "words_mask_nonzero": 11,
2162
+ "pass2_span_idx": [
2163
+ [
2164
+ 0,
2165
+ 2
2166
+ ],
2167
+ [
2168
+ 1,
2169
+ 2
2170
+ ],
2171
+ [
2172
+ 6,
2173
+ 6
2174
+ ],
2175
+ [
2176
+ 7,
2177
+ 7
2178
+ ],
2179
+ [
2180
+ 9,
2181
+ 9
2182
+ ],
2183
+ [
2184
+ 9,
2185
+ 9
2186
+ ]
2187
+ ]
2188
+ },
2189
+ "expected_entities": [
2190
+ {
2191
+ "start": 0,
2192
+ "end": 20,
2193
+ "text": "Our checkout service",
2194
+ "label": "product",
2195
+ "score": 0.5574839629624853
2196
+ },
2197
+ {
2198
+ "start": 4,
2199
+ "end": 20,
2200
+ "text": "checkout service",
2201
+ "label": "product",
2202
+ "score": 0.9261702888986721
2203
+ },
2204
+ {
2205
+ "start": 36,
2206
+ "end": 42,
2207
+ "text": "Stripe",
2208
+ "label": "company",
2209
+ "score": 0.9789151588631022
2210
+ },
2211
+ {
2212
+ "start": 43,
2213
+ "end": 46,
2214
+ "text": "SDK",
2215
+ "label": "software library",
2216
+ "score": 0.7382918730797098
2217
+ },
2218
+ {
2219
+ "start": 51,
2220
+ "end": 56,
2221
+ "text": "Redis",
2222
+ "label": "developer tool",
2223
+ "score": 0.6870003678787455
2224
+ }
2225
+ ],
2226
+ "expected_relations": [
2227
+ {
2228
+ "head": {
2229
+ "start": 0,
2230
+ "end": 20,
2231
+ "text": "Our checkout service",
2232
+ "type": "product",
2233
+ "entity_idx": 0
2234
+ },
2235
+ "tail": {
2236
+ "start": 36,
2237
+ "end": 42,
2238
+ "text": "Stripe",
2239
+ "type": "company",
2240
+ "entity_idx": 2
2241
+ },
2242
+ "relation": "depends on",
2243
+ "score": 0.9586926962069957
2244
+ },
2245
+ {
2246
+ "head": {
2247
+ "start": 0,
2248
+ "end": 20,
2249
+ "text": "Our checkout service",
2250
+ "type": "product",
2251
+ "entity_idx": 0
2252
+ },
2253
+ "tail": {
2254
+ "start": 43,
2255
+ "end": 46,
2256
+ "text": "SDK",
2257
+ "type": "software library",
2258
+ "entity_idx": 3
2259
+ },
2260
+ "relation": "depends on",
2261
+ "score": 0.992767236196521
2262
+ },
2263
+ {
2264
+ "head": {
2265
+ "start": 0,
2266
+ "end": 20,
2267
+ "text": "Our checkout service",
2268
+ "type": "product",
2269
+ "entity_idx": 0
2270
+ },
2271
+ "tail": {
2272
+ "start": 51,
2273
+ "end": 56,
2274
+ "text": "Redis",
2275
+ "type": "developer tool",
2276
+ "entity_idx": 4
2277
+ },
2278
+ "relation": "depends on",
2279
+ "score": 0.9675331855246277
2280
+ },
2281
+ {
2282
+ "head": {
2283
+ "start": 0,
2284
+ "end": 20,
2285
+ "text": "Our checkout service",
2286
+ "type": "product",
2287
+ "entity_idx": 0
2288
+ },
2289
+ "tail": {
2290
+ "start": 51,
2291
+ "end": 56,
2292
+ "text": "Redis",
2293
+ "type": "developer tool",
2294
+ "entity_idx": 4
2295
+ },
2296
+ "relation": "depends on",
2297
+ "score": 0.9675331855246277
2298
+ },
2299
+ {
2300
+ "head": {
2301
+ "start": 4,
2302
+ "end": 20,
2303
+ "text": "checkout service",
2304
+ "type": "product",
2305
+ "entity_idx": 1
2306
+ },
2307
+ "tail": {
2308
+ "start": 36,
2309
+ "end": 42,
2310
+ "text": "Stripe",
2311
+ "type": "company",
2312
+ "entity_idx": 2
2313
+ },
2314
+ "relation": "depends on",
2315
+ "score": 0.9486324916130384
2316
+ },
2317
+ {
2318
+ "head": {
2319
+ "start": 4,
2320
+ "end": 20,
2321
+ "text": "checkout service",
2322
+ "type": "product",
2323
+ "entity_idx": 1
2324
+ },
2325
+ "tail": {
2326
+ "start": 43,
2327
+ "end": 46,
2328
+ "text": "SDK",
2329
+ "type": "software library",
2330
+ "entity_idx": 3
2331
+ },
2332
+ "relation": "depends on",
2333
+ "score": 0.9930423911926235
2334
+ },
2335
+ {
2336
+ "head": {
2337
+ "start": 4,
2338
+ "end": 20,
2339
+ "text": "checkout service",
2340
+ "type": "product",
2341
+ "entity_idx": 1
2342
+ },
2343
+ "tail": {
2344
+ "start": 51,
2345
+ "end": 56,
2346
+ "text": "Redis",
2347
+ "type": "developer tool",
2348
+ "entity_idx": 4
2349
+ },
2350
+ "relation": "depends on",
2351
+ "score": 0.969670743015721
2352
+ },
2353
+ {
2354
+ "head": {
2355
+ "start": 4,
2356
+ "end": 20,
2357
+ "text": "checkout service",
2358
+ "type": "product",
2359
+ "entity_idx": 1
2360
+ },
2361
+ "tail": {
2362
+ "start": 51,
2363
+ "end": 56,
2364
+ "text": "Redis",
2365
+ "type": "developer tool",
2366
+ "entity_idx": 4
2367
+ },
2368
+ "relation": "depends on",
2369
+ "score": 0.969670743015721
2370
+ }
2371
+ ],
2372
+ "pytorch_entities": [
2373
+ {
2374
+ "start": 0,
2375
+ "end": 20,
2376
+ "text": "Our checkout service",
2377
+ "label": "product",
2378
+ "score": 0.5582244992256165
2379
+ },
2380
+ {
2381
+ "start": 4,
2382
+ "end": 20,
2383
+ "text": "checkout service",
2384
+ "label": "product",
2385
+ "score": 0.9260125756263733
2386
+ },
2387
+ {
2388
+ "start": 36,
2389
+ "end": 42,
2390
+ "text": "Stripe",
2391
+ "label": "company",
2392
+ "score": 0.9787701368331909
2393
+ },
2394
+ {
2395
+ "start": 43,
2396
+ "end": 46,
2397
+ "text": "SDK",
2398
+ "label": "software library",
2399
+ "score": 0.7342071533203125
2400
+ },
2401
+ {
2402
+ "start": 51,
2403
+ "end": 56,
2404
+ "text": "Redis",
2405
+ "label": "developer tool",
2406
+ "score": 0.6800125241279602
2407
+ }
2408
+ ],
2409
+ "pytorch_relations": [
2410
+ {
2411
+ "head": {
2412
+ "start": 0,
2413
+ "end": 20,
2414
+ "text": "Our checkout service",
2415
+ "type": "product",
2416
+ "entity_idx": 0
2417
+ },
2418
+ "tail": {
2419
+ "start": 36,
2420
+ "end": 42,
2421
+ "text": "Stripe",
2422
+ "type": "company",
2423
+ "entity_idx": 2
2424
+ },
2425
+ "relation": "depends on",
2426
+ "score": 0.9582000970840454
2427
+ },
2428
+ {
2429
+ "head": {
2430
+ "start": 0,
2431
+ "end": 20,
2432
+ "text": "Our checkout service",
2433
+ "type": "product",
2434
+ "entity_idx": 0
2435
+ },
2436
+ "tail": {
2437
+ "start": 43,
2438
+ "end": 46,
2439
+ "text": "SDK",
2440
+ "type": "software library",
2441
+ "entity_idx": 3
2442
+ },
2443
+ "relation": "depends on",
2444
+ "score": 0.9927593469619751
2445
+ },
2446
+ {
2447
+ "head": {
2448
+ "start": 0,
2449
+ "end": 20,
2450
+ "text": "Our checkout service",
2451
+ "type": "product",
2452
+ "entity_idx": 0
2453
+ },
2454
+ "tail": {
2455
+ "start": 51,
2456
+ "end": 56,
2457
+ "text": "Redis",
2458
+ "type": "developer tool",
2459
+ "entity_idx": 4
2460
+ },
2461
+ "relation": "depends on",
2462
+ "score": 0.967242419719696
2463
+ },
2464
+ {
2465
+ "head": {
2466
+ "start": 0,
2467
+ "end": 20,
2468
+ "text": "Our checkout service",
2469
+ "type": "product",
2470
+ "entity_idx": 0
2471
+ },
2472
+ "tail": {
2473
+ "start": 51,
2474
+ "end": 56,
2475
+ "text": "Redis",
2476
+ "type": "developer tool",
2477
+ "entity_idx": 4
2478
+ },
2479
+ "relation": "depends on",
2480
+ "score": 0.967242419719696
2481
+ },
2482
+ {
2483
+ "head": {
2484
+ "start": 4,
2485
+ "end": 20,
2486
+ "text": "checkout service",
2487
+ "type": "product",
2488
+ "entity_idx": 1
2489
+ },
2490
+ "tail": {
2491
+ "start": 36,
2492
+ "end": 42,
2493
+ "text": "Stripe",
2494
+ "type": "company",
2495
+ "entity_idx": 2
2496
+ },
2497
+ "relation": "depends on",
2498
+ "score": 0.948430597782135
2499
+ },
2500
+ {
2501
+ "head": {
2502
+ "start": 4,
2503
+ "end": 20,
2504
+ "text": "checkout service",
2505
+ "type": "product",
2506
+ "entity_idx": 1
2507
+ },
2508
+ "tail": {
2509
+ "start": 43,
2510
+ "end": 46,
2511
+ "text": "SDK",
2512
+ "type": "software library",
2513
+ "entity_idx": 3
2514
+ },
2515
+ "relation": "depends on",
2516
+ "score": 0.9930495023727417
2517
+ },
2518
+ {
2519
+ "head": {
2520
+ "start": 4,
2521
+ "end": 20,
2522
+ "text": "checkout service",
2523
+ "type": "product",
2524
+ "entity_idx": 1
2525
+ },
2526
+ "tail": {
2527
+ "start": 51,
2528
+ "end": 56,
2529
+ "text": "Redis",
2530
+ "type": "developer tool",
2531
+ "entity_idx": 4
2532
+ },
2533
+ "relation": "depends on",
2534
+ "score": 0.9695157408714294
2535
+ },
2536
+ {
2537
+ "head": {
2538
+ "start": 4,
2539
+ "end": 20,
2540
+ "text": "checkout service",
2541
+ "type": "product",
2542
+ "entity_idx": 1
2543
+ },
2544
+ "tail": {
2545
+ "start": 51,
2546
+ "end": 56,
2547
+ "text": "Redis",
2548
+ "type": "developer tool",
2549
+ "entity_idx": 4
2550
+ },
2551
+ "relation": "depends on",
2552
+ "score": 0.9695157408714294
2553
+ }
2554
+ ]
2555
+ },
2556
+ {
2557
+ "text": "Elena merged the fix into main.py after Priya reviewed it.",
2558
+ "labels": [
2559
+ "person",
2560
+ "company",
2561
+ "place",
2562
+ "software library",
2563
+ "developer tool",
2564
+ "programming language",
2565
+ "product",
2566
+ "file or code identifier"
2567
+ ],
2568
+ "relations": [
2569
+ "works at",
2570
+ "located in",
2571
+ "depends on",
2572
+ "reviewed by"
2573
+ ],
2574
+ "words": [
2575
+ "Elena",
2576
+ "merged",
2577
+ "the",
2578
+ "fix",
2579
+ "into",
2580
+ "main",
2581
+ ".",
2582
+ "py",
2583
+ "after",
2584
+ "Priya",
2585
+ "reviewed",
2586
+ "it",
2587
+ "."
2588
+ ],
2589
+ "input_summary": {
2590
+ "natural_seq_len": 51,
2591
+ "text_length": 13,
2592
+ "input_ids_prefix": [
2593
+ 1,
2594
+ 128001,
2595
+ 604,
2596
+ 128001,
2597
+ 483,
2598
+ 128001,
2599
+ 470,
2600
+ 128001,
2601
+ 1036,
2602
+ 2634,
2603
+ 128001,
2604
+ 5010,
2605
+ 1637,
2606
+ 128001,
2607
+ 4050,
2608
+ 1402,
2609
+ 128001,
2610
+ 714,
2611
+ 128001,
2612
+ 1092,
2613
+ 289,
2614
+ 1197,
2615
+ 20114,
2616
+ 128002,
2617
+ 128003,
2618
+ 885,
2619
+ 288,
2620
+ 128003,
2621
+ 1137,
2622
+ 267,
2623
+ 128003,
2624
+ 3898,
2625
+ 277,
2626
+ 128003,
2627
+ 5383,
2628
+ 293,
2629
+ 128002,
2630
+ 23002,
2631
+ 15085,
2632
+ 262,
2633
+ 2760,
2634
+ 352,
2635
+ 872,
2636
+ 323,
2637
+ 35512,
2638
+ 385,
2639
+ 51602,
2640
+ 5383
2641
+ ],
2642
+ "input_ids_sha256": "91ab63a46e3cc23159c53adab191dbff9c76aebc52618baaa7b23718b42a9d42",
2643
+ "words_mask_nonzero": 13,
2644
+ "pass2_span_idx": [
2645
+ [
2646
+ 0,
2647
+ 0
2648
+ ],
2649
+ [
2650
+ 5,
2651
+ 7
2652
+ ],
2653
+ [
2654
+ 5,
2655
+ 7
2656
+ ],
2657
+ [
2658
+ 9,
2659
+ 9
2660
+ ]
2661
+ ]
2662
+ },
2663
+ "expected_entities": [
2664
+ {
2665
+ "start": 0,
2666
+ "end": 5,
2667
+ "text": "Elena",
2668
+ "label": "person",
2669
+ "score": 0.9895916858989275
2670
+ },
2671
+ {
2672
+ "start": 26,
2673
+ "end": 33,
2674
+ "text": "main.py",
2675
+ "label": "file or code identifier",
2676
+ "score": 0.6621413773969629
2677
+ },
2678
+ {
2679
+ "start": 40,
2680
+ "end": 45,
2681
+ "text": "Priya",
2682
+ "label": "person",
2683
+ "score": 0.9997834559501049
2684
+ }
2685
+ ],
2686
+ "expected_relations": [
2687
+ {
2688
+ "head": {
2689
+ "start": 26,
2690
+ "end": 33,
2691
+ "text": "main.py",
2692
+ "type": "file or code identifier",
2693
+ "entity_idx": 1
2694
+ },
2695
+ "tail": {
2696
+ "start": 40,
2697
+ "end": 45,
2698
+ "text": "Priya",
2699
+ "type": "person",
2700
+ "entity_idx": 2
2701
+ },
2702
+ "relation": "reviewed by",
2703
+ "score": 0.8998277813740775
2704
+ },
2705
+ {
2706
+ "head": {
2707
+ "start": 26,
2708
+ "end": 33,
2709
+ "text": "main.py",
2710
+ "type": "file or code identifier",
2711
+ "entity_idx": 1
2712
+ },
2713
+ "tail": {
2714
+ "start": 40,
2715
+ "end": 45,
2716
+ "text": "Priya",
2717
+ "type": "person",
2718
+ "entity_idx": 2
2719
+ },
2720
+ "relation": "reviewed by",
2721
+ "score": 0.8998277813740775
2722
+ }
2723
+ ],
2724
+ "pytorch_entities": [
2725
+ {
2726
+ "start": 0,
2727
+ "end": 5,
2728
+ "text": "Elena",
2729
+ "label": "person",
2730
+ "score": 0.9896588921546936
2731
+ },
2732
+ {
2733
+ "start": 26,
2734
+ "end": 33,
2735
+ "text": "main.py",
2736
+ "label": "file or code identifier",
2737
+ "score": 0.6659788489341736
2738
+ },
2739
+ {
2740
+ "start": 40,
2741
+ "end": 45,
2742
+ "text": "Priya",
2743
+ "label": "person",
2744
+ "score": 0.999785840511322
2745
+ }
2746
+ ],
2747
+ "pytorch_relations": [
2748
+ {
2749
+ "head": {
2750
+ "start": 26,
2751
+ "end": 33,
2752
+ "text": "main.py",
2753
+ "type": "file or code identifier",
2754
+ "entity_idx": 1
2755
+ },
2756
+ "tail": {
2757
+ "start": 40,
2758
+ "end": 45,
2759
+ "text": "Priya",
2760
+ "type": "person",
2761
+ "entity_idx": 2
2762
+ },
2763
+ "relation": "reviewed by",
2764
+ "score": 0.900896430015564
2765
+ },
2766
+ {
2767
+ "head": {
2768
+ "start": 26,
2769
+ "end": 33,
2770
+ "text": "main.py",
2771
+ "type": "file or code identifier",
2772
+ "entity_idx": 1
2773
+ },
2774
+ "tail": {
2775
+ "start": 40,
2776
+ "end": 45,
2777
+ "text": "Priya",
2778
+ "type": "person",
2779
+ "entity_idx": 2
2780
+ },
2781
+ "relation": "reviewed by",
2782
+ "score": 0.900896430015564
2783
+ }
2784
+ ]
2785
+ },
2786
+ {
2787
+ "text": "The staging cluster runs PostgreSQL behind PgBouncer on the Frankfurt nodes.",
2788
+ "labels": [
2789
+ "person",
2790
+ "company",
2791
+ "place",
2792
+ "software library",
2793
+ "developer tool",
2794
+ "programming language",
2795
+ "product",
2796
+ "file or code identifier"
2797
+ ],
2798
+ "relations": [
2799
+ "works at",
2800
+ "located in",
2801
+ "depends on",
2802
+ "reviewed by"
2803
+ ],
2804
+ "words": [
2805
+ "The",
2806
+ "staging",
2807
+ "cluster",
2808
+ "runs",
2809
+ "PostgreSQL",
2810
+ "behind",
2811
+ "PgBouncer",
2812
+ "on",
2813
+ "the",
2814
+ "Frankfurt",
2815
+ "nodes",
2816
+ "."
2817
+ ],
2818
+ "input_summary": {
2819
+ "natural_seq_len": 53,
2820
+ "text_length": 12,
2821
+ "input_ids_prefix": [
2822
+ 1,
2823
+ 128001,
2824
+ 604,
2825
+ 128001,
2826
+ 483,
2827
+ 128001,
2828
+ 470,
2829
+ 128001,
2830
+ 1036,
2831
+ 2634,
2832
+ 128001,
2833
+ 5010,
2834
+ 1637,
2835
+ 128001,
2836
+ 4050,
2837
+ 1402,
2838
+ 128001,
2839
+ 714,
2840
+ 128001,
2841
+ 1092,
2842
+ 289,
2843
+ 1197,
2844
+ 20114,
2845
+ 128002,
2846
+ 128003,
2847
+ 885,
2848
+ 288,
2849
+ 128003,
2850
+ 1137,
2851
+ 267,
2852
+ 128003,
2853
+ 3898,
2854
+ 277,
2855
+ 128003,
2856
+ 5383,
2857
+ 293,
2858
+ 128002,
2859
+ 279,
2860
+ 15614,
2861
+ 8207,
2862
+ 2131,
2863
+ 51261,
2864
+ 931,
2865
+ 66597,
2866
+ 983,
2867
+ 26946,
2868
+ 834,
2869
+ 277
2870
+ ],
2871
+ "input_ids_sha256": "b07461903c8606ae84b96a7ac8d300a4263edf26681bde706ed96bf42ae72758",
2872
+ "words_mask_nonzero": 12,
2873
+ "pass2_span_idx": [
2874
+ [
2875
+ 1,
2876
+ 2
2877
+ ],
2878
+ [
2879
+ 4,
2880
+ 4
2881
+ ],
2882
+ [
2883
+ 6,
2884
+ 6
2885
+ ],
2886
+ [
2887
+ 6,
2888
+ 6
2889
+ ],
2890
+ [
2891
+ 9,
2892
+ 9
2893
+ ],
2894
+ [
2895
+ 9,
2896
+ 10
2897
+ ]
2898
+ ]
2899
+ },
2900
+ "expected_entities": [
2901
+ {
2902
+ "start": 4,
2903
+ "end": 19,
2904
+ "text": "staging cluster",
2905
+ "label": "company",
2906
+ "score": 0.510305852185405
2907
+ },
2908
+ {
2909
+ "start": 25,
2910
+ "end": 35,
2911
+ "text": "PostgreSQL",
2912
+ "label": "programming language",
2913
+ "score": 0.978093633973752
2914
+ },
2915
+ {
2916
+ "start": 43,
2917
+ "end": 52,
2918
+ "text": "PgBouncer",
2919
+ "label": "software library",
2920
+ "score": 0.9194980766039683
2921
+ },
2922
+ {
2923
+ "start": 60,
2924
+ "end": 69,
2925
+ "text": "Frankfurt",
2926
+ "label": "place",
2927
+ "score": 0.9672250161000435
2928
+ },
2929
+ {
2930
+ "start": 60,
2931
+ "end": 75,
2932
+ "text": "Frankfurt nodes",
2933
+ "label": "place",
2934
+ "score": 0.6056241231520547
2935
+ }
2936
+ ],
2937
+ "expected_relations": [
2938
+ {
2939
+ "head": {
2940
+ "start": 4,
2941
+ "end": 19,
2942
+ "text": "staging cluster",
2943
+ "type": "company",
2944
+ "entity_idx": 0
2945
+ },
2946
+ "tail": {
2947
+ "start": 25,
2948
+ "end": 35,
2949
+ "text": "PostgreSQL",
2950
+ "type": "programming language",
2951
+ "entity_idx": 1
2952
+ },
2953
+ "relation": "depends on",
2954
+ "score": 0.8045595196708155
2955
+ },
2956
+ {
2957
+ "head": {
2958
+ "start": 4,
2959
+ "end": 19,
2960
+ "text": "staging cluster",
2961
+ "type": "company",
2962
+ "entity_idx": 0
2963
+ },
2964
+ "tail": {
2965
+ "start": 43,
2966
+ "end": 52,
2967
+ "text": "PgBouncer",
2968
+ "type": "software library",
2969
+ "entity_idx": 2
2970
+ },
2971
+ "relation": "depends on",
2972
+ "score": 0.8719117516553389
2973
+ },
2974
+ {
2975
+ "head": {
2976
+ "start": 4,
2977
+ "end": 19,
2978
+ "text": "staging cluster",
2979
+ "type": "company",
2980
+ "entity_idx": 0
2981
+ },
2982
+ "tail": {
2983
+ "start": 43,
2984
+ "end": 52,
2985
+ "text": "PgBouncer",
2986
+ "type": "software library",
2987
+ "entity_idx": 2
2988
+ },
2989
+ "relation": "depends on",
2990
+ "score": 0.8719117516553389
2991
+ },
2992
+ {
2993
+ "head": {
2994
+ "start": 25,
2995
+ "end": 35,
2996
+ "text": "PostgreSQL",
2997
+ "type": "programming language",
2998
+ "entity_idx": 1
2999
+ },
3000
+ "tail": {
3001
+ "start": 43,
3002
+ "end": 52,
3003
+ "text": "PgBouncer",
3004
+ "type": "software library",
3005
+ "entity_idx": 2
3006
+ },
3007
+ "relation": "depends on",
3008
+ "score": 0.7823300652229036
3009
+ },
3010
+ {
3011
+ "head": {
3012
+ "start": 25,
3013
+ "end": 35,
3014
+ "text": "PostgreSQL",
3015
+ "type": "programming language",
3016
+ "entity_idx": 1
3017
+ },
3018
+ "tail": {
3019
+ "start": 43,
3020
+ "end": 52,
3021
+ "text": "PgBouncer",
3022
+ "type": "software library",
3023
+ "entity_idx": 2
3024
+ },
3025
+ "relation": "depends on",
3026
+ "score": 0.7823300652229036
3027
+ },
3028
+ {
3029
+ "head": {
3030
+ "start": 43,
3031
+ "end": 52,
3032
+ "text": "PgBouncer",
3033
+ "type": "software library",
3034
+ "entity_idx": 2
3035
+ },
3036
+ "tail": {
3037
+ "start": 60,
3038
+ "end": 69,
3039
+ "text": "Frankfurt",
3040
+ "type": "place",
3041
+ "entity_idx": 3
3042
+ },
3043
+ "relation": "located in",
3044
+ "score": 0.7331653714055038
3045
+ },
3046
+ {
3047
+ "head": {
3048
+ "start": 43,
3049
+ "end": 52,
3050
+ "text": "PgBouncer",
3051
+ "type": "software library",
3052
+ "entity_idx": 2
3053
+ },
3054
+ "tail": {
3055
+ "start": 60,
3056
+ "end": 75,
3057
+ "text": "Frankfurt nodes",
3058
+ "type": "place",
3059
+ "entity_idx": 4
3060
+ },
3061
+ "relation": "located in",
3062
+ "score": 0.7237001829732717
3063
+ },
3064
+ {
3065
+ "head": {
3066
+ "start": 43,
3067
+ "end": 52,
3068
+ "text": "PgBouncer",
3069
+ "type": "software library",
3070
+ "entity_idx": 2
3071
+ },
3072
+ "tail": {
3073
+ "start": 60,
3074
+ "end": 69,
3075
+ "text": "Frankfurt",
3076
+ "type": "place",
3077
+ "entity_idx": 3
3078
+ },
3079
+ "relation": "located in",
3080
+ "score": 0.7331653714055038
3081
+ },
3082
+ {
3083
+ "head": {
3084
+ "start": 43,
3085
+ "end": 52,
3086
+ "text": "PgBouncer",
3087
+ "type": "software library",
3088
+ "entity_idx": 2
3089
+ },
3090
+ "tail": {
3091
+ "start": 60,
3092
+ "end": 75,
3093
+ "text": "Frankfurt nodes",
3094
+ "type": "place",
3095
+ "entity_idx": 4
3096
+ },
3097
+ "relation": "located in",
3098
+ "score": 0.7237001829732717
3099
+ },
3100
+ {
3101
+ "head": {
3102
+ "start": 60,
3103
+ "end": 69,
3104
+ "text": "Frankfurt",
3105
+ "type": "place",
3106
+ "entity_idx": 3
3107
+ },
3108
+ "tail": {
3109
+ "start": 60,
3110
+ "end": 75,
3111
+ "text": "Frankfurt nodes",
3112
+ "type": "place",
3113
+ "entity_idx": 4
3114
+ },
3115
+ "relation": "located in",
3116
+ "score": 0.8006920020959544
3117
+ },
3118
+ {
3119
+ "head": {
3120
+ "start": 60,
3121
+ "end": 75,
3122
+ "text": "Frankfurt nodes",
3123
+ "type": "place",
3124
+ "entity_idx": 4
3125
+ },
3126
+ "tail": {
3127
+ "start": 60,
3128
+ "end": 69,
3129
+ "text": "Frankfurt",
3130
+ "type": "place",
3131
+ "entity_idx": 3
3132
+ },
3133
+ "relation": "located in",
3134
+ "score": 0.8178655971938159
3135
+ }
3136
+ ],
3137
+ "pytorch_entities": [
3138
+ {
3139
+ "start": 4,
3140
+ "end": 19,
3141
+ "text": "staging cluster",
3142
+ "label": "company",
3143
+ "score": 0.5087636113166809
3144
+ },
3145
+ {
3146
+ "start": 25,
3147
+ "end": 35,
3148
+ "text": "PostgreSQL",
3149
+ "label": "programming language",
3150
+ "score": 0.9776372909545898
3151
+ },
3152
+ {
3153
+ "start": 43,
3154
+ "end": 52,
3155
+ "text": "PgBouncer",
3156
+ "label": "software library",
3157
+ "score": 0.9203832745552063
3158
+ },
3159
+ {
3160
+ "start": 60,
3161
+ "end": 69,
3162
+ "text": "Frankfurt",
3163
+ "label": "place",
3164
+ "score": 0.9672631621360779
3165
+ },
3166
+ {
3167
+ "start": 60,
3168
+ "end": 75,
3169
+ "text": "Frankfurt nodes",
3170
+ "label": "place",
3171
+ "score": 0.6078311800956726
3172
+ }
3173
+ ],
3174
+ "pytorch_relations": [
3175
+ {
3176
+ "head": {
3177
+ "start": 4,
3178
+ "end": 19,
3179
+ "text": "staging cluster",
3180
+ "type": "company",
3181
+ "entity_idx": 0
3182
+ },
3183
+ "tail": {
3184
+ "start": 25,
3185
+ "end": 35,
3186
+ "text": "PostgreSQL",
3187
+ "type": "programming language",
3188
+ "entity_idx": 1
3189
+ },
3190
+ "relation": "depends on",
3191
+ "score": 0.8094502091407776
3192
+ },
3193
+ {
3194
+ "head": {
3195
+ "start": 4,
3196
+ "end": 19,
3197
+ "text": "staging cluster",
3198
+ "type": "company",
3199
+ "entity_idx": 0
3200
+ },
3201
+ "tail": {
3202
+ "start": 43,
3203
+ "end": 52,
3204
+ "text": "PgBouncer",
3205
+ "type": "software library",
3206
+ "entity_idx": 2
3207
+ },
3208
+ "relation": "depends on",
3209
+ "score": 0.8748233914375305
3210
+ },
3211
+ {
3212
+ "head": {
3213
+ "start": 4,
3214
+ "end": 19,
3215
+ "text": "staging cluster",
3216
+ "type": "company",
3217
+ "entity_idx": 0
3218
+ },
3219
+ "tail": {
3220
+ "start": 43,
3221
+ "end": 52,
3222
+ "text": "PgBouncer",
3223
+ "type": "software library",
3224
+ "entity_idx": 2
3225
+ },
3226
+ "relation": "depends on",
3227
+ "score": 0.8748233914375305
3228
+ },
3229
+ {
3230
+ "head": {
3231
+ "start": 25,
3232
+ "end": 35,
3233
+ "text": "PostgreSQL",
3234
+ "type": "programming language",
3235
+ "entity_idx": 1
3236
+ },
3237
+ "tail": {
3238
+ "start": 43,
3239
+ "end": 52,
3240
+ "text": "PgBouncer",
3241
+ "type": "software library",
3242
+ "entity_idx": 2
3243
+ },
3244
+ "relation": "depends on",
3245
+ "score": 0.7839727997779846
3246
+ },
3247
+ {
3248
+ "head": {
3249
+ "start": 25,
3250
+ "end": 35,
3251
+ "text": "PostgreSQL",
3252
+ "type": "programming language",
3253
+ "entity_idx": 1
3254
+ },
3255
+ "tail": {
3256
+ "start": 43,
3257
+ "end": 52,
3258
+ "text": "PgBouncer",
3259
+ "type": "software library",
3260
+ "entity_idx": 2
3261
+ },
3262
+ "relation": "depends on",
3263
+ "score": 0.7839727997779846
3264
+ },
3265
+ {
3266
+ "head": {
3267
+ "start": 43,
3268
+ "end": 52,
3269
+ "text": "PgBouncer",
3270
+ "type": "software library",
3271
+ "entity_idx": 2
3272
+ },
3273
+ "tail": {
3274
+ "start": 60,
3275
+ "end": 69,
3276
+ "text": "Frankfurt",
3277
+ "type": "place",
3278
+ "entity_idx": 3
3279
+ },
3280
+ "relation": "located in",
3281
+ "score": 0.731270968914032
3282
+ },
3283
+ {
3284
+ "head": {
3285
+ "start": 43,
3286
+ "end": 52,
3287
+ "text": "PgBouncer",
3288
+ "type": "software library",
3289
+ "entity_idx": 2
3290
+ },
3291
+ "tail": {
3292
+ "start": 60,
3293
+ "end": 75,
3294
+ "text": "Frankfurt nodes",
3295
+ "type": "place",
3296
+ "entity_idx": 4
3297
+ },
3298
+ "relation": "located in",
3299
+ "score": 0.7223972678184509
3300
+ },
3301
+ {
3302
+ "head": {
3303
+ "start": 43,
3304
+ "end": 52,
3305
+ "text": "PgBouncer",
3306
+ "type": "software library",
3307
+ "entity_idx": 2
3308
+ },
3309
+ "tail": {
3310
+ "start": 60,
3311
+ "end": 69,
3312
+ "text": "Frankfurt",
3313
+ "type": "place",
3314
+ "entity_idx": 3
3315
+ },
3316
+ "relation": "located in",
3317
+ "score": 0.731270968914032
3318
+ },
3319
+ {
3320
+ "head": {
3321
+ "start": 43,
3322
+ "end": 52,
3323
+ "text": "PgBouncer",
3324
+ "type": "software library",
3325
+ "entity_idx": 2
3326
+ },
3327
+ "tail": {
3328
+ "start": 60,
3329
+ "end": 75,
3330
+ "text": "Frankfurt nodes",
3331
+ "type": "place",
3332
+ "entity_idx": 4
3333
+ },
3334
+ "relation": "located in",
3335
+ "score": 0.7223972678184509
3336
+ },
3337
+ {
3338
+ "head": {
3339
+ "start": 60,
3340
+ "end": 69,
3341
+ "text": "Frankfurt",
3342
+ "type": "place",
3343
+ "entity_idx": 3
3344
+ },
3345
+ "tail": {
3346
+ "start": 60,
3347
+ "end": 75,
3348
+ "text": "Frankfurt nodes",
3349
+ "type": "place",
3350
+ "entity_idx": 4
3351
+ },
3352
+ "relation": "located in",
3353
+ "score": 0.8020409941673279
3354
+ },
3355
+ {
3356
+ "head": {
3357
+ "start": 60,
3358
+ "end": 75,
3359
+ "text": "Frankfurt nodes",
3360
+ "type": "place",
3361
+ "entity_idx": 4
3362
+ },
3363
+ "tail": {
3364
+ "start": 60,
3365
+ "end": 69,
3366
+ "text": "Frankfurt",
3367
+ "type": "place",
3368
+ "entity_idx": 3
3369
+ },
3370
+ "relation": "located in",
3371
+ "score": 0.8181105852127075
3372
+ }
3373
+ ]
3374
+ },
3375
+ {
3376
+ "text": "Tom presented the Atlas roadmap at the Austin headquarters during the planning meeting.",
3377
+ "labels": [
3378
+ "person",
3379
+ "company",
3380
+ "place",
3381
+ "software library",
3382
+ "developer tool",
3383
+ "programming language",
3384
+ "product",
3385
+ "file or code identifier"
3386
+ ],
3387
+ "relations": [
3388
+ "works at",
3389
+ "located in",
3390
+ "depends on",
3391
+ "reviewed by"
3392
+ ],
3393
+ "words": [
3394
+ "Tom",
3395
+ "presented",
3396
+ "the",
3397
+ "Atlas",
3398
+ "roadmap",
3399
+ "at",
3400
+ "the",
3401
+ "Austin",
3402
+ "headquarters",
3403
+ "during",
3404
+ "the",
3405
+ "planning",
3406
+ "meeting",
3407
+ "."
3408
+ ],
3409
+ "input_summary": {
3410
+ "natural_seq_len": 52,
3411
+ "text_length": 14,
3412
+ "input_ids_prefix": [
3413
+ 1,
3414
+ 128001,
3415
+ 604,
3416
+ 128001,
3417
+ 483,
3418
+ 128001,
3419
+ 470,
3420
+ 128001,
3421
+ 1036,
3422
+ 2634,
3423
+ 128001,
3424
+ 5010,
3425
+ 1637,
3426
+ 128001,
3427
+ 4050,
3428
+ 1402,
3429
+ 128001,
3430
+ 714,
3431
+ 128001,
3432
+ 1092,
3433
+ 289,
3434
+ 1197,
3435
+ 20114,
3436
+ 128002,
3437
+ 128003,
3438
+ 885,
3439
+ 288,
3440
+ 128003,
3441
+ 1137,
3442
+ 267,
3443
+ 128003,
3444
+ 3898,
3445
+ 277,
3446
+ 128003,
3447
+ 5383,
3448
+ 293,
3449
+ 128002,
3450
+ 2790,
3451
+ 1992,
3452
+ 262,
3453
+ 14271,
3454
+ 20650,
3455
+ 288,
3456
+ 262,
3457
+ 5003,
3458
+ 7020,
3459
+ 482,
3460
+ 262
3461
+ ],
3462
+ "input_ids_sha256": "8538006495f46c0ff51e74c9fb0cab64d871c4ac182e13cd9687d24aa07201ae",
3463
+ "words_mask_nonzero": 14,
3464
+ "pass2_span_idx": [
3465
+ [
3466
+ 0,
3467
+ 0
3468
+ ],
3469
+ [
3470
+ 3,
3471
+ 3
3472
+ ],
3473
+ [
3474
+ 3,
3475
+ 4
3476
+ ],
3477
+ [
3478
+ 4,
3479
+ 4
3480
+ ],
3481
+ [
3482
+ 7,
3483
+ 7
3484
+ ],
3485
+ [
3486
+ 7,
3487
+ 8
3488
+ ],
3489
+ [
3490
+ 8,
3491
+ 8
3492
+ ],
3493
+ [
3494
+ 8,
3495
+ 8
3496
+ ]
3497
+ ]
3498
+ },
3499
+ "expected_entities": [
3500
+ {
3501
+ "start": 0,
3502
+ "end": 3,
3503
+ "text": "Tom",
3504
+ "label": "person",
3505
+ "score": 0.9992819702373881
3506
+ },
3507
+ {
3508
+ "start": 18,
3509
+ "end": 23,
3510
+ "text": "Atlas",
3511
+ "label": "company",
3512
+ "score": 0.834541775934969
3513
+ },
3514
+ {
3515
+ "start": 18,
3516
+ "end": 31,
3517
+ "text": "Atlas roadmap",
3518
+ "label": "product",
3519
+ "score": 0.7613611051229845
3520
+ },
3521
+ {
3522
+ "start": 24,
3523
+ "end": 31,
3524
+ "text": "roadmap",
3525
+ "label": "product",
3526
+ "score": 0.541620993835761
3527
+ },
3528
+ {
3529
+ "start": 39,
3530
+ "end": 45,
3531
+ "text": "Austin",
3532
+ "label": "place",
3533
+ "score": 0.9973165601911425
3534
+ },
3535
+ {
3536
+ "start": 39,
3537
+ "end": 58,
3538
+ "text": "Austin headquarters",
3539
+ "label": "place",
3540
+ "score": 0.5130356805291558
3541
+ },
3542
+ {
3543
+ "start": 46,
3544
+ "end": 58,
3545
+ "text": "headquarters",
3546
+ "label": "company",
3547
+ "score": 0.5634380138870771
3548
+ }
3549
+ ],
3550
+ "expected_relations": [
3551
+ {
3552
+ "head": {
3553
+ "start": 18,
3554
+ "end": 31,
3555
+ "text": "Atlas roadmap",
3556
+ "type": "product",
3557
+ "entity_idx": 2
3558
+ },
3559
+ "tail": {
3560
+ "start": 0,
3561
+ "end": 3,
3562
+ "text": "Tom",
3563
+ "type": "person",
3564
+ "entity_idx": 0
3565
+ },
3566
+ "relation": "reviewed by",
3567
+ "score": 0.8513358776401587
3568
+ },
3569
+ {
3570
+ "head": {
3571
+ "start": 39,
3572
+ "end": 58,
3573
+ "text": "Austin headquarters",
3574
+ "type": "place",
3575
+ "entity_idx": 5
3576
+ },
3577
+ "tail": {
3578
+ "start": 39,
3579
+ "end": 45,
3580
+ "text": "Austin",
3581
+ "type": "place",
3582
+ "entity_idx": 4
3583
+ },
3584
+ "relation": "located in",
3585
+ "score": 0.8122723960432147
3586
+ },
3587
+ {
3588
+ "head": {
3589
+ "start": 46,
3590
+ "end": 58,
3591
+ "text": "headquarters",
3592
+ "type": "company",
3593
+ "entity_idx": 6
3594
+ },
3595
+ "tail": {
3596
+ "start": 39,
3597
+ "end": 45,
3598
+ "text": "Austin",
3599
+ "type": "place",
3600
+ "entity_idx": 4
3601
+ },
3602
+ "relation": "located in",
3603
+ "score": 0.8229018465610509
3604
+ },
3605
+ {
3606
+ "head": {
3607
+ "start": 46,
3608
+ "end": 58,
3609
+ "text": "headquarters",
3610
+ "type": "company",
3611
+ "entity_idx": 6
3612
+ },
3613
+ "tail": {
3614
+ "start": 39,
3615
+ "end": 45,
3616
+ "text": "Austin",
3617
+ "type": "place",
3618
+ "entity_idx": 4
3619
+ },
3620
+ "relation": "located in",
3621
+ "score": 0.8229018465610509
3622
+ }
3623
+ ],
3624
+ "pytorch_entities": [
3625
+ {
3626
+ "start": 0,
3627
+ "end": 3,
3628
+ "text": "Tom",
3629
+ "label": "person",
3630
+ "score": 0.9992780089378357
3631
+ },
3632
+ {
3633
+ "start": 18,
3634
+ "end": 23,
3635
+ "text": "Atlas",
3636
+ "label": "company",
3637
+ "score": 0.8322315216064453
3638
+ },
3639
+ {
3640
+ "start": 18,
3641
+ "end": 31,
3642
+ "text": "Atlas roadmap",
3643
+ "label": "product",
3644
+ "score": 0.7630090117454529
3645
+ },
3646
+ {
3647
+ "start": 24,
3648
+ "end": 31,
3649
+ "text": "roadmap",
3650
+ "label": "product",
3651
+ "score": 0.545695424079895
3652
+ },
3653
+ {
3654
+ "start": 39,
3655
+ "end": 45,
3656
+ "text": "Austin",
3657
+ "label": "place",
3658
+ "score": 0.9973090887069702
3659
+ },
3660
+ {
3661
+ "start": 39,
3662
+ "end": 58,
3663
+ "text": "Austin headquarters",
3664
+ "label": "place",
3665
+ "score": 0.5141105055809021
3666
+ },
3667
+ {
3668
+ "start": 46,
3669
+ "end": 58,
3670
+ "text": "headquarters",
3671
+ "label": "company",
3672
+ "score": 0.5635903477668762
3673
+ }
3674
+ ],
3675
+ "pytorch_relations": [
3676
+ {
3677
+ "head": {
3678
+ "start": 18,
3679
+ "end": 31,
3680
+ "text": "Atlas roadmap",
3681
+ "type": "product",
3682
+ "entity_idx": 2
3683
+ },
3684
+ "tail": {
3685
+ "start": 0,
3686
+ "end": 3,
3687
+ "text": "Tom",
3688
+ "type": "person",
3689
+ "entity_idx": 0
3690
+ },
3691
+ "relation": "reviewed by",
3692
+ "score": 0.8507423400878906
3693
+ },
3694
+ {
3695
+ "head": {
3696
+ "start": 39,
3697
+ "end": 58,
3698
+ "text": "Austin headquarters",
3699
+ "type": "place",
3700
+ "entity_idx": 5
3701
+ },
3702
+ "tail": {
3703
+ "start": 39,
3704
+ "end": 45,
3705
+ "text": "Austin",
3706
+ "type": "place",
3707
+ "entity_idx": 4
3708
+ },
3709
+ "relation": "located in",
3710
+ "score": 0.8125795125961304
3711
+ },
3712
+ {
3713
+ "head": {
3714
+ "start": 46,
3715
+ "end": 58,
3716
+ "text": "headquarters",
3717
+ "type": "company",
3718
+ "entity_idx": 6
3719
+ },
3720
+ "tail": {
3721
+ "start": 39,
3722
+ "end": 45,
3723
+ "text": "Austin",
3724
+ "type": "place",
3725
+ "entity_idx": 4
3726
+ },
3727
+ "relation": "located in",
3728
+ "score": 0.8233277201652527
3729
+ },
3730
+ {
3731
+ "head": {
3732
+ "start": 46,
3733
+ "end": 58,
3734
+ "text": "headquarters",
3735
+ "type": "company",
3736
+ "entity_idx": 6
3737
+ },
3738
+ "tail": {
3739
+ "start": 39,
3740
+ "end": 45,
3741
+ "text": "Austin",
3742
+ "type": "place",
3743
+ "entity_idx": 4
3744
+ },
3745
+ "relation": "located in",
3746
+ "score": 0.8233277201652527
3747
+ }
3748
+ ]
3749
+ }
3750
+ ]
3751
+ }
metadata.json ADDED
@@ -0,0 +1,167 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "format_version": 1,
3
+ "source_model": "/Users/jacobwarren/.rig/models/gliner-releax-base",
4
+ "architecture": "gliner UniEncoderTokenRelexGLiNER (deberta-v3-base, token_level BIO + all-pairs relations)",
5
+ "conversion": "torch.jit.trace -> coremltools mlprogram FP16, macOS15+, computeUnits=ALL",
6
+ "artifacts": {
7
+ "mlpackage": "GLiNERRelexBase.mlpackage",
8
+ "mlmodelc": "GLiNERRelexBase.mlmodelc"
9
+ },
10
+ "tokenizer": {
11
+ "type": "DebertaV2 (SentencePiece unigram), is_split_into_words semantics",
12
+ "files": {
13
+ "tokenizer_json": "tokenizer.json",
14
+ "sentencepiece_model": "spm.model",
15
+ "tokenizer_config": "tokenizer_config.json",
16
+ "added_tokens": "added_tokens.json",
17
+ "special_tokens_map": "special_tokens_map.json"
18
+ },
19
+ "special_token_ids": {
20
+ "pad": 0,
21
+ "cls": 1,
22
+ "sep": 2,
23
+ "unk": 3,
24
+ "mask": 128000,
25
+ "ent_prompt": 128001,
26
+ "sep_prompt": 128002,
27
+ "rel_prompt": 128003
28
+ }
29
+ },
30
+ "prompt_construction": {
31
+ "description": "Word-level prompt prepended to the whitespace-split text words, then tokenized as pre-split words ([CLS] + subtokens + [SEP], each word SentencePiece-encoded with a leading \u2581).",
32
+ "word_layout": "[<<ENT>>, label_1, <<ENT>>, label_2, ..., <<SEP>>, <<REL>>, relation_1, <<REL>>, relation_2, ..., <<SEP>>, text_word_1, ..., text_word_L]",
33
+ "words_splitter_regex": "\\w+(?:[-_]\\w+)*|\\S",
34
+ "notes": [
35
+ "Both <<SEP>> tokens are required: one closes the entity-label block, one closes the relation block.",
36
+ "Labels/relations must be deduplicated preserving order (dict.fromkeys semantics).",
37
+ "The k-th <<ENT>> token feeds entity-class slot k-1; the k-th <<REL>> token feeds relation-class slot k-1."
38
+ ]
39
+ },
40
+ "inputs": {
41
+ "input_ids": {
42
+ "shape": [
43
+ 1,
44
+ 512
45
+ ],
46
+ "dtype": "int32",
47
+ "semantics": "DeBERTa subtoken ids, [PAD]=0 right-padded"
48
+ },
49
+ "attention_mask": {
50
+ "shape": [
51
+ 1,
52
+ 512
53
+ ],
54
+ "dtype": "int32",
55
+ "semantics": "1 for real subtokens (incl. CLS/SEP), 0 for padding"
56
+ },
57
+ "words_mask": {
58
+ "shape": [
59
+ 1,
60
+ 512
61
+ ],
62
+ "dtype": "int32",
63
+ "semantics": "1-based text-word index on the FIRST subtoken of each text word; 0 on prompt words, special tokens, continuation subtokens and padding"
64
+ },
65
+ "text_lengths": {
66
+ "shape": [
67
+ 1,
68
+ 1
69
+ ],
70
+ "dtype": "int32",
71
+ "semantics": "number of text words L (excludes prompt words)"
72
+ },
73
+ "span_idx": {
74
+ "shape": [
75
+ 1,
76
+ 16,
77
+ 2
78
+ ],
79
+ "dtype": "int32",
80
+ "semantics": "word-level [start, end] (inclusive) of extracted candidate entities for the relation pass; zeros elsewhere"
81
+ },
82
+ "span_mask": {
83
+ "shape": [
84
+ 1,
85
+ 16
86
+ ],
87
+ "dtype": "int32",
88
+ "semantics": "1 for occupied entity slots, else 0"
89
+ }
90
+ },
91
+ "outputs": {
92
+ "logits": {
93
+ "shape": [
94
+ 1,
95
+ 320,
96
+ 12,
97
+ 3
98
+ ],
99
+ "dtype": "float32",
100
+ "axes": [
101
+ "batch",
102
+ "word position (only w < text_lengths valid)",
103
+ "entity class slot (only c < num_labels valid)",
104
+ "BIO component: 0=start, 1=end, 2=inside"
105
+ ],
106
+ "semantics": "raw token BIO logits; apply sigmoid before thresholding"
107
+ },
108
+ "rel_logits": {
109
+ "shape": [
110
+ 1,
111
+ 240,
112
+ 8
113
+ ],
114
+ "dtype": "float32",
115
+ "axes": [
116
+ "batch",
117
+ "ordered entity-slot pair",
118
+ "relation class slot (only r < num_relations valid)"
119
+ ],
120
+ "pair_slot_formula": "slot(i, j) = i * (MAX_ENT_SLOTS - 1) + (j if j < i else j - 1), i != j",
121
+ "semantics": "raw relation logits for pair (head=slot i, tail=slot j); apply sigmoid; only pairs with both slots valid in span_mask are meaningful"
122
+ }
123
+ },
124
+ "static_shapes": {
125
+ "seq_len": 512,
126
+ "max_words": 320,
127
+ "max_entity_types": 12,
128
+ "max_relation_types": 8,
129
+ "max_entity_slots": 16,
130
+ "num_pairs": 240,
131
+ "hidden_size": 768
132
+ },
133
+ "decode_algorithm": {
134
+ "protocol": "two-pass: pass1 span_idx/span_mask all zero -> logits; extract candidate spans; pass2 with spans -> rel_logits",
135
+ "entity_threshold": 0.4,
136
+ "relation_threshold": 0.7,
137
+ "flat_ner": false,
138
+ "multi_label": false,
139
+ "candidate_span_extraction": "For every (word, class) with sigmoid(start) > t and every (word', class) with sigmoid(end) > t, word <= word', keep (word, word') if sigmoid(inside) > t for the whole run. Iterate starts row-major (word-major) then ends; keep duplicates from different classes. These ordered spans fill span_idx slots 0..E-1.",
140
+ "entity_decoding": "Same start/end/inside pairing on sigmoid probabilities; span score = min(start, end, all inside); then greedy overlap filtering: sort by score desc (stable), keep spans that do not conflict (flat_ner=false allows nesting, identical boundaries conflict unless multi_label); finally sort by start (stable).",
141
+ "relation_decoding": "Map each candidate slot to the FIRST decoded entity with identical word boundaries (slots without a match are skipped). For each ordered pair (i, j), i != j, over slots 0..E-1 in row-major order, emit (head, relation_r, tail, sigmoid) for every relation class r with sigmoid(rel_logits[slot(i,j), r]) > relation_threshold. Duplicate-boundary slots intentionally emit duplicate relations (PyTorch decoder behavior)."
142
+ },
143
+ "limits": {
144
+ "max_text_words": 320,
145
+ "max_subtokens": 512,
146
+ "max_labels": 12,
147
+ "max_relations": 8,
148
+ "max_candidate_spans": 16,
149
+ "unused_class_columns": "logit columns for class slots beyond the provided label count contain garbage (zero prompt embeddings) and MUST be ignored"
150
+ },
151
+ "parity": {
152
+ "sentences": 12,
153
+ "max_token_logit_delta": 0.07953453063964844,
154
+ "max_rel_logit_delta": 0.08434486389160156,
155
+ "gate": "exact decoded match at 0.4/0.7, logit delta < 0.1"
156
+ },
157
+ "latency": {
158
+ "median_ms": 69.69516631215811,
159
+ "p90_ms": 109.92104094475508,
160
+ "min_ms": 62.50091688707471,
161
+ "runs": 30
162
+ },
163
+ "sha256": {
164
+ "mlpackage_tree": "9d948eb9e9c690ee5941ab28261361dad00ce74d70f997ca35ac9e09a6e4ab0a",
165
+ "mlmodelc_tree": "f700158783796a7b93e366708c8467899ac6d4c7e18da567537046e1dfa43a5f"
166
+ }
167
+ }
report.md ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # GLiNER-Relex Core ML conversion report
2
+
3
+ - Source: `/Users/jacobwarren/.rig/models/gliner-releax-base`
4
+ - Machine: macOS-26.4-arm64-arm-64bit (arm64)
5
+ - torch 2.10.0, coremltools 8.3.0
6
+ - Precision: FP16 mlprogram, macOS15+, computeUnits=ALL
7
+ - Static wrapper vs PyTorch core forward max |Δlogit|: 0.00000763
8
+
9
+ ## Parity (12 sentences, entities@0.4 / relations@0.7, flat_ner=false)
10
+
11
+ | # | sentence | match | ents | rels | max Δ token logit | max Δ rel logit | max Δ score |
12
+ |---|----------|-------|------|------|-------------------|-----------------|-------------|
13
+ | 1 | We migrated the Phoenix app to Oban for background j | yes | 4 | 0 | 0.0380 | 0.0365 | 0.0015 |
14
+ | 2 | Crowdin and Lokalise sync the translations | yes | 3 | 2 | 0.0418 | 0.0517 | 0.0016 |
15
+ | 3 | The JWT is validated by the API gateway | yes | 4 | 0 | 0.0727 | 0.0000 | 0.0060 |
16
+ | 4 | Sarah reviewed the pull request from Marcus | yes | 3 | 3 | 0.0243 | 0.0843 | 0.0040 |
17
+ | 5 | The Eiffel Tower, located in Paris, France, was desi | yes | 4 | 2 | 0.0795 | 0.0723 | 0.0012 |
18
+ | 6 | Maria Kowalski joined Acme Corporation as a staff en | yes | 3 | 1 | 0.0558 | 0.0470 | 0.0000 |
19
+ | 7 | The quarterly review meeting with Dataworks is sched | yes | 4 | 2 | 0.0570 | 0.0299 | 0.0022 |
20
+ | 8 | John from finance approved the budget for the Madrid | yes | 6 | 9 | 0.0794 | 0.0458 | 0.0045 |
21
+ | 9 | Our checkout service depends on the Stripe SDK and R | yes | 5 | 8 | 0.0782 | 0.0531 | 0.0070 |
22
+ | 10 | Elena merged the fix into main.py after Priya review | yes | 3 | 2 | 0.0703 | 0.0482 | 0.0038 |
23
+ | 11 | The staging cluster runs PostgreSQL behind PgBouncer | yes | 5 | 11 | 0.0452 | 0.0378 | 0.0049 |
24
+ | 12 | Tom presented the Atlas roadmap at the Austin headqu | yes | 7 | 4 | 0.0623 | 0.0649 | 0.0041 |
25
+
26
+ Aggregate: max token-logit delta 0.0795, max relation-logit delta 0.0843 (gate < 0.1).
27
+
28
+ ## Latency (single Core ML forward, batch 1, 512 tokens)
29
+
30
+ - median 69.7 ms, p90 109.9 ms, min 62.5 ms over 30 runs (after 5 warmup)
31
+ - Full extraction = 2 forwards (entity pass + relation pass) plus NumPy-style decoding.
32
+
33
+ ## Deviations from spec
34
+
35
+ - The spec suggested a 320x12 span grid (3840 spans) as model input. This checkpoint is the
36
+ token_level Relex variant: entity logits are per-word BIO logits (start/end/inside), not a
37
+ span grid, and the PyTorch forward extracts candidate spans from those logits *inside* the
38
+ model before scoring relations for pairs of extracted spans. Scoring relations for all
39
+ 3840^2 grid pairs is computationally impossible (~14.7M pairs), so the export keeps the
40
+ checkpoint's own contract with a fixed 16-slot span input and a two-pass
41
+ runtime protocol (pass 1 entities -> threshold outside the graph -> pass 2 relations).
42
+ Shapes remain fully static; no thresholding happens inside the graph.
43
+ - Entity-class capacity is 12 and relation capacity 8 (the eval
44
+ set uses 8/4). Unused class columns contain garbage and must be ignored by the runtime.
45
+ - `text_lengths` is (1, 1) to match the collator's column-vector layout.