Apex-core / README.md
aleks-wordcab's picture
Publish Apex-core with GLiClass 4 attribution and Apex family documentation
666bded verified
|
Raw History Blame Contribute Delete
5.62 kB
---
language:
- en
license: apache-2.0
library_name: gliclass
pipeline_tag: zero-shot-image-classification
base_model: knowledgator/gliclass-v4-2b
model_name: Apex-core
tags:
- apex
- gliclass
- gliclass-v4
- zero-shot-classification
- text-classification
- multi-label-classification
- instruction-following
- reranking
- multimodal
- image-classification
---
# Apex-core
**Evidence in, decisions out.** Explore [SCX Apex](https://labs.scx.ai/apex), a family of GLiClass 4 based Large Decision Models.
**A 2B Large Decision Model for everyday text and image decisions on a single GPU.**
Apex-core reads text and images alongside instructions, policies, and candidate answers. Use it for everyday routing, triage, document and screenshot classification, and choosing the next action in your application.
Part of the [SCX Apex family](https://huggingface.co/collections/scx-admin/apex-family-6ad58a4ea2e0c9875ddb4061), **based on GLiClass 4**. Give the model evidence, an instruction, and the answers you would accept. It scores the candidate answers in one forward pass without generating text.
| Property | Value |
| --- | --- |
| Parameters | Approximately 2B |
| Inputs | Text and images |
| Backbone | [Qwen/Qwen3.5-2B](https://huggingface.co/Qwen/Qwen3.5-2B) |
| Framework | [GLiClass](https://github.com/Knowledgator/GLiClass) |
| License | Apache 2.0 |
| Scores | Uncalibrated; tune thresholds on representative data |
## Use an LLM to write. Use Apex to decide.
- **Change the policy, not the model.** Supply instructions, policies, or rubrics at inference time, and change candidate answers as your workflow evolves.
- **Set thresholds for your workflow.** This release provides uncalibrated scores, which can cluster near 0 or 1. Evaluate thresholds on representative data before automating decisions or escalating cases to a person or an LLM.
- **Make decisions directly.** Get structured label scores for routing, triage, moderation, ranking, extraction decisions, judging, and selecting the next step.
- **Bring images and conversations into the decision.** Score text alongside screenshots, receipts, charts, or camera frames. The GLiClass decoder-KV architecture also supports text-only streaming classification with a per-session cache. See the [upstream streaming examples](UPSTREAM_README.md).
## Choose an Apex model
| Model | Size | Inputs | Best suited to |
| --- | --- | --- | --- |
| [Apex-flash](https://huggingface.co/scx-admin/Apex-flash) | 0.4B | Text | High-volume decisions on CPU or GPU |
| [Apex-core](https://huggingface.co/scx-admin/Apex-core) | 2B | Text and images | Everyday decisions on a single GPU |
| [Apex-large](https://huggingface.co/scx-admin/Apex-large) | 9B | Text and images | Knowledge-heavy and visual decisions |
Explore the [Apex family collection](https://huggingface.co/collections/scx-admin/apex-family-6ad58a4ea2e0c9875ddb4061). All three releases provide open weights under Apache 2.0. Apex-core's scores are uncalibrated; evaluate thresholds for each model on your own data.
## Quick start
Use Python 3.10+ and an up-to-date GLiClass installation:
```bash
pip install -U gliclass
```
The example uses a GPU with BF16 support. The checkpoint weights occupy approximately 4.7 GB; allow additional memory for inference.
```python
import torch
from gliclass import GLiClassModel, ZeroShotClassificationPipeline
model_id = "scx-admin/Apex-core"
device = "cuda:0"
model = GLiClassModel.from_pretrained(model_id, torch_dtype=torch.bfloat16)
pipeline = ZeroShotClassificationPipeline(
model,
model_id,
classification_type="multi-label",
max_length=8192,
device=device,
)
results = pipeline(
"My parcel has not arrived. Please check the delivery status.",
["delivery issue", "refund request", "technical support"],
threshold=0.5,
)[0]
for result in results:
print(result["label"], result["score"])
```
Pass `prompt="your instruction or policy"` to guide the decision. Use `classification_type="single-label"` for mutually exclusive choices. Multi-label results may contain more than one label or no labels above the threshold.
### Images
Use the same pipeline with an image path, URL, or PIL image:
```python
results = pipeline(
["Which fruit is shown?"],
["strawberry", "lime", "fig", "peach"],
images=[["fruit.jpg"]],
classification_type="single-label",
)[0]
print(results)
```
## Limitations
Predictions depend on label wording, instructions, domain, input length, and thresholds. English is the primary language. The upstream release reports that its scores are uncalibrated: a score of 0.9 does not imply 90% accuracy. Evaluate scores and thresholds on representative data. See the [upstream model card](https://huggingface.co/knowledgator/gliclass-v4-2b) for training details, evaluations, and further limitations.
## Attribution and license
This release republishes the upstream checkpoint under the Apex name. The weights, configuration, tokenizer, and other inference assets are unchanged; no additional fine-tuning is claimed.
Based on **GLiClass 4**, developed by **Knowledgator**. Original checkpoint: [knowledgator/gliclass-v4-2b](https://huggingface.co/knowledgator/gliclass-v4-2b/tree/40fe023b45e8d97d1ae4f7f9342279ac1c76317d), revision `40fe023b45e8d97d1ae4f7f9342279ac1c76317d`. Distributed under the upstream **Apache License 2.0**; see [LICENSE](LICENSE). The original model card is preserved in [UPSTREAM_README.md](UPSTREAM_README.md) and at the upstream link.
Related work: [GLiClass](https://arxiv.org/abs/2508.07662) and [SCX Router](https://arxiv.org/abs/2609.02292).