File size: 2,461 Bytes
7464c91
 
 
 
 
 
 
 
820d4e9
 
7464c91
 
 
 
820d4e9
 
7464c91
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
{
  "model": "fastino/GLiNER2.5-Decide",
  "revision": "7ee5da4c2415e32259bcdc0b1a7367c32ce8d6f6",
  "dtype": "float16",
  "MMAX": 32,
  "shapes": [
    {
      "S": 256,
      "bundle": "gliner25-decide_float16_s256_m32.aimodel",
      "bytes": 872988957,
      "reference": "reference_s256.json"
    },
    {
      "S": 512,
      "bundle": "gliner25-decide_float16_s512_m32.aimodel",
      "bytes": 874561440,
      "reference": "reference_s512.json"
    }
  ],
  "host_shape_rule": "use the smallest S in `shapes` with len(input_ids) <= S; longer inputs are outside these bundles (gliner2's classify_text_long chunks such text on the host)",
  "graph": {
    "relative_position": "bucket table baked at export (S fixed); coreai-torch 0.4.1 lowers aten.div.Tensor(int,int) to integer division — logs/diag_div_probe.log"
  },
  "inputs": {
    "input_ids": [
      "int32",
      [
        1,
        "S"
      ]
    ],
    "attention_mask": [
      "int32",
      [
        1,
        "S"
      ]
    ],
    "label_idx": [
      "int32",
      [
        1,
        32
      ]
    ]
  },
  "outputs": {
    "logits": [
      "float32",
      [
        1,
        32
      ]
    ]
  },
  "marker_ids": {
    "[MASK]": 128000,
    "[SEP_STRUCT]": 128001,
    "[SEP_TEXT]": 128002,
    "[P]": 128003,
    "[C]": 128004,
    "[E]": 128005,
    "[R]": 128006,
    "[L]": 128007,
    "[EXAMPLE]": 128008,
    "[OUTPUT]": 128009,
    "[DESCRIPTION]": 128010
  },
  "pad": {
    "input_ids": 0,
    "attention_mask": "1 for real tokens, 0 for padding",
    "label_idx": "unused slots repeat the first [L] position (host never reads them)"
  },
  "label_idx": "the [L] marker positions of every task, concatenated in task order; the host keeps each task's slice",
  "layout": "( [P] <task>[: <prompt>][ [DESCRIPTION] <label>: <desc>]* ( [L] <label> [L] <label> ... ) ) [SEP_STRUCT] ( ... ) [SEP_TEXT] <text words>; every piece tokenized with tokenizer.tokenize(piece) on its own, no CLS/SEP",
  "text": "append '.' unless the text ends with . ! ? (empty -> '.'); split with gliner2 WhitespaceTokenSplitter regex (URL | email | @handle | \\w+(?:[-_]\\w+)* | \\S, IGNORECASE); lowercase the word values only; schema strings keep their case",
  "decision": {
    "single_label": "softmax over the task's logits, argmax",
    "multi_label": "sigmoid, every label with prob >= cls_threshold; none -> argmax",
    "cls_threshold_default": 0.5,
    "temperature": 1.0
  }
}