Text Classification
ONNX
glitext
text classification
nli
sentiment analysis
rpeel commited on
Commit
e48c52e
·
verified ·
1 Parent(s): 5a6abad

Update model card and security scan results

Browse files
Files changed (1) hide show
  1. README.md +168 -17
README.md CHANGED
@@ -1,8 +1,18 @@
1
  ---
2
- library_name: glitext
3
  license: apache-2.0
 
 
 
 
 
 
4
  tags:
 
 
 
5
  - glitext
 
 
6
  glitext:
7
  name: class-large
8
  label: GliText Classification (Accurate)
@@ -16,28 +26,159 @@ glitext:
16
  source_url: knowledgator/gliclass-large-v3.0
17
  ---
18
 
19
- # rpeel/glitext-class-large
20
 
21
- An efficient zero-shot text classification model tuned for high accuracy.
22
 
23
- ## Requirements
24
 
25
- To download this model to the SAS GLiText server:
26
 
27
- ```
28
- POST /v1/models/download?name=class-large
29
- ```
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30
 
31
- To download and load into memory in one step:
32
 
 
 
 
 
 
 
 
33
  ```
34
- PUT /v1/models?name=class-large
 
 
 
 
 
 
 
 
 
 
 
 
 
 
35
  ```
36
 
37
- ## Source Model
 
 
 
 
 
 
 
38
 
39
- Exported from [knowledgator/gliclass-large-v3.0](https://huggingface.co/knowledgator/gliclass-large-v3.0).
40
- See the [original model card](https://huggingface.co/knowledgator/gliclass-large-v3.0) for full architecture and training details.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
41
 
42
  ## ONNX Weights
43
 
@@ -45,6 +186,20 @@ ONNX weights added by SAS — converted from the upstream safetensors checkpoint
45
 
46
  File in this repo: `model.onnx`.
47
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
48
  ## Security Scan
49
 
50
  Scanned with [modelaudit](https://github.com/promptfoo/modelaudit) v0.2.40 on 2026-04-26. 16/16 checks passed. [Full results](modelaudit.json).
@@ -53,7 +208,3 @@ Scanned with [modelaudit](https://github.com/promptfoo/modelaudit) v0.2.40 on 20
53
  | File | Size | SHA-256 |
54
  |------|------|---------|
55
  | `model.onnx` | 1756.9 MB | `741d548cc1e6480c…` |
56
-
57
- ## License
58
-
59
- [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0). Derived from [knowledgator/gliclass-large-v3.0](https://huggingface.co/knowledgator/gliclass-large-v3.0) by [knowledgator](https://huggingface.co/knowledgator).
 
1
  ---
 
2
  license: apache-2.0
3
+ datasets:
4
+ - BioMike/formal-logic-reasoning-gliclass-2k
5
+ - knowledgator/gliclass-v3-logic-dataset
6
+ - tau/commonsense_qa
7
+ metrics:
8
+ - f1
9
  tags:
10
+ - text classification
11
+ - nli
12
+ - sentiment analysis
13
  - glitext
14
+ pipeline_tag: text-classification
15
+ library_name: glitext
16
  glitext:
17
  name: class-large
18
  label: GliText Classification (Accurate)
 
26
  source_url: knowledgator/gliclass-large-v3.0
27
  ---
28
 
29
+ ![image/png](https://cdn-uploads.huggingface.co/production/uploads/6405f62ba577649430be5124/I9RAQol7giilBHbbf2T7M.png)
30
 
31
+ # GLiClass: Generalist and Lightweight Model for Sequence Classification
32
 
33
+ This is an efficient zero-shot classifier inspired by [GLiNER](https://github.com/urchade/GLiNER/tree/main) work. It demonstrates the same performance as a cross-encoder while being more compute-efficient because classification is done at a single forward path.
34
 
35
+ It can be used for `topic classification`, `sentiment analysis`, and as a reranker in `RAG` pipelines.
36
 
37
+ The model was trained on logical tasks to induce reasoning. LoRa adapters were used to fine-tune the model without destroying the previous knowledge.
38
+
39
+ LoRA parameters:
40
+ | | [gliclass‑modern‑base‑v3.0](https://huggingface.co/knowledgator/gliclass-modern-base-v3.0) | [gliclass‑modern‑large‑v3.0](https://huggingface.co/knowledgator/gliclass-modern-large-v3.0) | [gliclass‑base‑v3.0](https://huggingface.co/knowledgator/gliclass-base-v3.0) | [gliclass‑large‑v3.0](https://huggingface.co/knowledgator/gliclass-large-v3.0) |
41
+ |----------------------|---------------------------------|----------------------------------|--------------------------------|---------------------------------|
42
+ | LoRa r | 512 | 768 | 384 | 384 |
43
+ | LoRa α | 1024 | 1536 | 768 | 768 |
44
+ | focal loss α | 0.7 | 0.7 | 0.7 | 0.7 |
45
+ | Target modules | "Wqkv", "Wo", "Wi", "linear_1", "linear_2" | "Wqkv", "Wo", "Wi", "linear_1", "linear_2" | "query_proj", "key_proj", "value_proj", "dense", "linear_1", "linear_2", mlp.0", "mlp.2", "mlp.4" | "query_proj", "key_proj", "value_proj", "dense", "linear_1", "linear_2", mlp.0", "mlp.2", "mlp.4" |
46
+
47
+ GLiClass-V3 Models:
48
+ Model name | Size | Params | Average Banchmark | Average Inference Speed (batch size = 1, a6000, examples/s)
49
+ |----------|------|--------|-------------------|---------------------------------------------------------|
50
+ [gliclass‑edge‑v3.0](https://huggingface.co/knowledgator/gliclass‑edge‑v3.0)| 131 MB | 32.7M | 0.4873 | 97.29 |
51
+ [gliclass‑modern‑base‑v3.0](https://huggingface.co/knowledgator/gliclass-modern-base-v3.0)| 606 MB | 151M | 0.5571 | 54.46 |
52
+ [gliclass‑modern‑large‑v3.0](https://huggingface.co/knowledgator/gliclass-modern-large-v3.0)| 1.6 GB | 399M | 0.6082 | 43.80 |
53
+ [gliclass‑base‑v3.0](https://huggingface.co/knowledgator/gliclass-base-v3.0)| 746 MB | 187M | 0.6556 | 51.61 |
54
+ [gliclass‑large‑v3.0](https://huggingface.co/knowledgator/gliclass-large-v3.0)| 1.75 GB | 439M | 0.7001 | 25.22 |
55
 
 
56
 
57
+ ![image/png](https://cdn-uploads.huggingface.co/production/uploads/6405f62ba577649430be5124/MvfWyOdG824KWWB4Hy-dG.png)
58
+
59
+ ### How to use:
60
+ First of all, you need to install GLiClass library:
61
+ ```bash
62
+ pip install gliclass
63
+ pip install -U transformers>=4.48.0
64
  ```
65
+
66
+ Then you need to initialize a model and a pipeline:
67
+ ```python
68
+ from gliclass import GLiClassModel, ZeroShotClassificationPipeline
69
+ from transformers import AutoTokenizer
70
+
71
+ model = GLiClassModel.from_pretrained("knowledgator/gliclass-large-v3.0")
72
+ tokenizer = AutoTokenizer.from_pretrained("knowledgator/gliclass-large-v3.0")
73
+ pipeline = ZeroShotClassificationPipeline(model, tokenizer, classification_type='multi-label', device='cuda:0')
74
+
75
+ text = "One day I will see the world!"
76
+ labels = ["travel", "dreams", "sport", "science", "politics"]
77
+ results = pipeline(text, labels, threshold=0.5)[0] #because we have one text
78
+ for result in results:
79
+ print(result["label"], "=>", result["score"])
80
  ```
81
 
82
+ If you want to use it for NLI type of tasks, we recommend representing your premise as a text and hypothesis as a label, you can put several hypotheses, but the model works best with a single input hypothesis.
83
+ ```python
84
+ # Initialize model and multi-label pipeline
85
+ text = "The cat slept on the windowsill all afternoon"
86
+ labels = ["The cat was awake and playing outside."]
87
+ results = pipeline(text, labels, threshold=0.0)[0]
88
+ print(results)
89
+ ```
90
 
91
+ ### Benchmarks:
92
+ Below, you can see the F1 score on several text classification datasets. All tested models were not fine-tuned on those datasets and were tested in a zero-shot setting.
93
+
94
+ GLiClass-V3:
95
+ | Dataset | [gliclass‑large‑v3.0](https://huggingface.co/knowledgator/gliclass-large-v3.0) | [gliclass‑base‑v3.0](https://huggingface.co/knowledgator/gliclass-base-v3.0) | [gliclass‑modern‑large‑v3.0](https://huggingface.co/knowledgator/gliclass-modern-large-v3.0) | [gliclass‑modern‑base‑v3.0](https://huggingface.co/knowledgator/gliclass-modern-base-v3.0) | [gliclass‑edge‑v3.0](https://huggingface.co/knowledgator/gliclass-edge-v3.0) |
96
+ |----------------------------|---------|---------|---------|---------|---------|
97
+ | CR | 0.9398 | 0.9127 | 0.8952 | 0.8902 | 0.8215 |
98
+ | sst2 | 0.9192 | 0.8959 | 0.9330 | 0.8959 | 0.8199 |
99
+ | sst5 | 0.4606 | 0.3376 | 0.4619 | 0.2756 | 0.2823 |
100
+ | 20_news_<br>groups | 0.5958 | 0.4759 | 0.3905 | 0.3433 | 0.2217 |
101
+ | spam | 0.7584 | 0.6760 | 0.5813 | 0.6398 | 0.5623 |
102
+ | financial_<br>phrasebank | 0.9000 | 0.8971 | 0.5929 | 0.4200 | 0.5004 |
103
+ | imdb | 0.9366 | 0.9251 | 0.9402 | 0.9158 | 0.8485 |
104
+ | ag_news | 0.7181 | 0.7279 | 0.7269 | 0.6663 | 0.6645 |
105
+ | emotion | 0.4506 | 0.4447 | 0.4517 | 0.4254 | 0.3851 |
106
+ | cap_sotu | 0.4589 | 0.4614 | 0.4072 | 0.3625 | 0.2583 |
107
+ | rotten_<br>tomatoes | 0.8411 | 0.7943 | 0.7664 | 0.7070 | 0.7024 |
108
+ | massive | 0.5649 | 0.5040 | 0.3905 | 0.3442 | 0.2414 |
109
+ | banking | 0.5574 | 0.4698 | 0.3683 | 0.3561 | 0.0272 |
110
+ | snips | 0.9692 | 0.9474 | 0.7707 | 0.5663 | 0.5257 |
111
+ | **AVERAGE** | **0.7193** | **0.6764** | **0.6197** | **0.5577** | **0.4900** |
112
+
113
+ Previous GLiClass models:
114
+ | Dataset | [gliclass‑large‑v1.0‑lw](https://huggingface.co/knowledgator/gliclass-large-v1.0-lw) | [gliclass‑base‑v1.0‑lw](https://huggingface.co/knowledgator/gliclass-base-v1.0-lw) | [gliclass‑modern‑large‑v2.0](https://huggingface.co/knowledgator/gliclass-modern-large-v2.0) | [gliclass‑modern‑base‑v2.0](https://huggingface.co/knowledgator/gliclass-modern-base-v2.0) |
115
+ |----------------------------|---------------------------------|--------------------------------|----------------------------------|---------------------------------|
116
+ | CR | 0.9226 | 0.9097 | 0.9154 | 0.8977 |
117
+ | sst2 | 0.9247 | 0.8987 | 0.9308 | 0.8524 |
118
+ | sst5 | 0.2891 | 0.3779 | 0.2152 | 0.2346 |
119
+ | 20_news_<br>groups | 0.4083 | 0.3953 | 0.3813 | 0.3857 |
120
+ | spam | 0.3642 | 0.5126 | 0.6603 | 0.4608 |
121
+ | financial_<br>phrasebank | 0.9044 | 0.8880 | 0.3152 | 0.3465 |
122
+ | imdb | 0.9429 | 0.9351 | 0.9449 | 0.9188 |
123
+ | ag_news | 0.7559 | 0.6985 | 0.6999 | 0.6836 |
124
+ | emotion | 0.3951 | 0.3516 | 0.4341 | 0.3926 |
125
+ | cap_sotu | 0.4749 | 0.4643 | 0.4095 | 0.3588 |
126
+ | rotten_<br>tomatoes | 0.8807 | 0.8429 | 0.7386 | 0.6066 |
127
+ | massive | 0.5606 | 0.4635 | 0.2394 | 0.3458 |
128
+ | banking | 0.3317 | 0.4396 | 0.1355 | 0.2907 |
129
+ | snips | 0.9707 | 0.9572 | 0.8468 | 0.7378 |
130
+ | **AVERAGE** | **0.6518** | **0.6525** | **0.5619** | **0.5366** |
131
+
132
+
133
+ Cross-Encoders:
134
+ | Dataset | [deberta‑v3‑large‑zeroshot‑v2.0](https://huggingface.co/MoritzLaurer/deberta-v3-large-zeroshot-v2.0) | [deberta‑v3‑base‑zeroshot‑v2.0](https://huggingface.co/MoritzLaurer/deberta-v3-base-zeroshot-v2.0) | [roberta‑large‑zeroshot‑v2.0‑c](https://huggingface.co/MoritzLaurer/roberta-large-zeroshot-v2.0-c) | [comprehend_it‑base](https://huggingface.co/knowledgator/comprehend_it-base) |
135
+ |------------------------------------|--------|--------|--------|--------|
136
+ | CR | 0.9134 | 0.9051 | 0.9141 | 0.8936 |
137
+ | sst2 | 0.9272 | 0.9176 | 0.8573 | 0.9006 |
138
+ | sst5 | 0.3861 | 0.3848 | 0.4159 | 0.4140 |
139
+ | enron_<br>spam | 0.5970 | 0.4640 | 0.5040 | 0.3637 |
140
+ | financial_<br>phrasebank | 0.5820 | 0.6690 | 0.4550 | 0.4695 |
141
+ | imdb | 0.9180 | 0.8990 | 0.9040 | 0.4644 |
142
+ | ag_news | 0.7710 | 0.7420 | 0.7450 | 0.6016 |
143
+ | emotion | 0.4840 | 0.4950 | 0.4860 | 0.4165 |
144
+ | cap_sotu | 0.5020 | 0.4770 | 0.5230 | 0.3823 |
145
+ | rotten_<br>tomatoes | 0.8680 | 0.8600 | 0.8410 | 0.4728 |
146
+ | massive | 0.5180 | 0.5200 | 0.5200 | 0.3314 |
147
+ | banking77 | 0.5670 | 0.4460 | 0.2900 | 0.4972 |
148
+ | snips | 0.8340 | 0.7477 | 0.5430 | 0.7227 |
149
+ | **AVERAGE** | **0.6821** | **0.6559** | **0.6152** | **0.5331** |
150
+
151
+
152
+ Inference Speed:
153
+
154
+ Each model was tested on examples with 64, 256, and 512 tokens in text and 1, 2, 4, 8, 16, 32, 64, and 128 labels on an a6000 GPU. Then, scores were averaged across text lengths.
155
+
156
+ ![image/png](https://cdn-uploads.huggingface.co/production/uploads/6405f62ba577649430be5124/YipDUMZuIqL4f8mWl7IHt.png)
157
+
158
+ Model  Name / n samples per second per m labels | 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | **Average** |
159
+ |---------------------|---|---|---|---|----|----|----|-----|---------|
160
+ | [gliclass‑edge‑v3.0](https://huggingface.co/knowledgator/gliclass-edge-v3.0) | 103.81 | 101.01 | 103.50 | 103.50 | 98.36 | 96.77 | 88.76 | 82.64 | **97.29** |
161
+ | [gliclass‑modern‑base‑v3.0](https://huggingface.co/knowledgator/gliclass-modern-base-v3.0) | 56.00 | 55.46 | 54.95 | 55.66 | 54.73 | 54.95 | 53.48 | 50.34 | **54.46** |
162
+ | [gliclass‑modern‑large‑v3.0](https://huggingface.co/knowledgator/gliclass-modern-large-v3.0) | 46.30 | 46.82 | 46.66 | 46.30 | 43.93 | 44.73 | 42.77 | 32.89 | **43.80** |
163
+ | [gliclass‑base‑v3.0](https://huggingface.co/knowledgator/gliclass-base-v3.0) | 49.42 | 50.25 | 40.05 | 57.69 | 57.14 | 56.39 | 55.97 | 45.94 | **51.61** |
164
+ | [gliclass‑large‑v3.0](https://huggingface.co/knowledgator/gliclass-large-v3.0) | 19.05 | 26.86 | 23.64 | 29.27 | 29.04 | 28.79 | 27.55 | 17.60 | **25.22** |
165
+ | [deberta‑v3‑base‑zeroshot‑v2.0](https://huggingface.co/MoritzLaurer/deberta-v3-base-zeroshot-v2.0) | 24.55 | 30.40 | 15.38 | 7.62 | 3.77 | 1.87 | 0.94 | 0.47 | **10.63** |
166
+ | [deberta‑v3‑large‑zeroshot‑v2.0](https://huggingface.co/MoritzLaurer/deberta-v3-large-zeroshot-v2.0) | 16.82 | 15.82 | 7.93 | 3.98 | 1.99 | 0.99 | 0.49 | 0.25 | **6.03** |
167
+ | [roberta‑large‑zeroshot‑v2.0‑c](https://huggingface.co/MoritzLaurer/roberta-large-zeroshot-v2.0-c) | 50.42 | 39.27 | 19.95 | 9.95 | 5.01 | 2.48 | 1.25 | 0.64 | **16.12** |
168
+ | [comprehend_it‑base](https://huggingface.co/knowledgator/comprehend_it-base) | 21.79 | 27.32 | 13.60 | 7.58 | 3.80 | 1.90 | 0.97 | 0.49 | **9.72** |
169
+
170
+ ## Citation
171
+ ```bibtex
172
+ @misc{stepanov2025gliclassgeneralistlightweightmodel,
173
+ title={GLiClass: Generalist Lightweight Model for Sequence Classification Tasks},
174
+ author={Ihor Stepanov and Mykhailo Shtopko and Dmytro Vodianytskyi and Oleksandr Lukashov and Alexander Yavorskyi and Mykyta Yaroshenko},
175
+ year={2025},
176
+ eprint={2508.07662},
177
+ archivePrefix={arXiv},
178
+ primaryClass={cs.LG},
179
+ url={https://arxiv.org/abs/2508.07662},
180
+ }
181
+ ```
182
 
183
  ## ONNX Weights
184
 
 
186
 
187
  File in this repo: `model.onnx`.
188
 
189
+ ## Using this Model with the SAS GLiText API
190
+
191
+ This repo is consumed by the SAS GLiText product. To download it onto a SAS GLiText server:
192
+
193
+ ```
194
+ POST /v1/models/download?name=class-large
195
+ ```
196
+
197
+ To download and load into memory in one step:
198
+
199
+ ```
200
+ PUT /v1/models?name=class-large
201
+ ```
202
+
203
  ## Security Scan
204
 
205
  Scanned with [modelaudit](https://github.com/promptfoo/modelaudit) v0.2.40 on 2026-04-26. 16/16 checks passed. [Full results](modelaudit.json).
 
208
  | File | Size | SHA-256 |
209
  |------|------|---------|
210
  | `model.onnx` | 1756.9 MB | `741d548cc1e6480c…` |