# Evaluation: Vela 2.0 9B [Model card](README.md) · [Usage](USAGE.md) · [Training](TRAINING.md) The tables retain the full released results, including comparisons and task breakdowns. Test texts are held out of training; calibration and release-selection protocols are described separately below. ## Family results

Four sizes, one family: 0.3B, 0.8B, 4B, 9B

| Model | Safety (AUC, 14 sets) | PII, 8K (F1; Vela 2.0 shipped calibration) | Hallucination (F1) | RAGTruth (F1) | fast-decisions | Jev Index (Vela 2.0: `noul_calibration=True`) | | --- | ---: | ---: | ---: | ---: | ---: | ---: | | **Vela 2.0 9B** | 0.921 | **0.940** | 0.885 | 0.774 | 62.5 | 41.63 | | [Vela 2.0 0.3B (encoder)](https://huggingface.co/vllm-sr/Vela-2.0-0.3B) | 0.871 | 0.929 | 0.848 | 0.706 | 49.4 | – | | [Vela 2.0 0.8B](https://huggingface.co/vllm-sr/Vela-2.0-0.8B) | 0.875 | 0.603 | 0.828 | 0.652 | 56.8 | 16.01 | | [Vela 2.0 4B](https://huggingface.co/vllm-sr/Vela-2.0-4B) | **0.921** | 0.906 | 0.874 | 0.770 | 61.5 | 31.91 | | Vela 1.0 specialists (one model per task) | – | 0.908 | 0.875 | 0.747 | – | – | | [LettuceDetect v2 qwen-2b](https://huggingface.co/KRLabsOrg/lettucedect-v2-qwen-2b) (generative, hallucination only) | – | – | **0.921** | **0.817** | – | – | | [LettuceDetect v2 mmBERT-base](https://huggingface.co/KRLabsOrg/lettucedect-v2-mmbert-base) (hallucination only) | – | – | 0.869 | 0.743 | – | – | | [GLiNER2.5-Decide](https://huggingface.co/fastino/GLiNER2.5-Decide) | 0.704 | – | – | – | **62.9** | – | | [Decision-2.0-Lux-9B](https://huggingface.co/vllm-sr/Decision-2.0-Lux-9B) (our base, Decision 2.0) | – | – | – | – | – | **46.23** | The decoder checkpoints, temperatures and thresholds were selected on dev data only. The **0.3B encoder follows a different release-selection protocol**: final release selection also considered test results. Its 0.929 shipped 8K PII result uses a threshold floor lowered after the test effect was seen; the test-blind 0.001 floor gives 0.896, and the research scorer gives 0.894. The 0.3B fast-decisions result is not an independent zero-shot evaluation for that checkpoint. See the [0.3B evaluation disclosures](https://huggingface.co/vllm-sr/Vela-2.0-0.3B/blob/main/EVALUATION.md). | Comparison detail | Protocol | | --- | --- | | LettuceDetect v2, RAGTruth | Re-scored by us on the same 2,700 rows, using its own evaluation input; reproduces its model cards | | LettuceDetect v2, 10,698 examples | Values from its model cards on the same test set | | Jev Decision Index | Edition 0.2.1, 38 general decision benchmarks; optional Noul calibration enabled | | This decoder, default Jev mode | 41.09 with optional Noul calibration off | | Decision 2.0 bases | Same harness, reproducing released cards within 0.1: Eos 20.14, Nox 42.55, Lux 46.23 | The routing recipe trades part of the base model's general-decision score for the router tasks. The family table keeps the base and specialist references visible so that this tradeoff can be assessed. ## Router tasks against per-task references PII rows in this table use the research scorer's per-length dev thresholds. All other metrics retain the released task definitions. The delta column is paired against the named task reference. | Task | Reference model | Reference score | **Vela 2.0 9B (research PII thresholds)** | Δ points [95% CI] | Vela 2.0 0.8B | Vela 2.0 4B | Vela 2.0 0.3B | |---|---|---:|---:|---:|---:|---:|---:| | Request harm, RTP-LX (AUC) | Safety | 0.761 | **0.801** | +4.0 [+3.4, +4.5] | 0.710 | 0.774 | 0.728 | | Hate speech, Multilingual HateCheck (AUC) | Safety | 0.646 | **0.855** | +20.9 [+20.3, +21.5] | 0.653 | 0.769 | 0.662 | | Request harm, CultureGuard (AUC) | Safety | 0.863 | **0.902** | +4.0 [+3.6, +4.2] | 0.850 | 0.898 | 0.900 | | Prompt attacks, unseen families (AUC) | Guard | 0.792 | **0.989** | +19.8 [+15.4, +23.9] | 0.940 | 0.985 | 0.882 | | Domain (macro-F1) | Domain | 0.831 | **0.844** | +1.3 [−0.3, +2.8] | 0.759 | 0.820 | 0.825 | | Modality (macro-F1) | Modality | 0.889 | **1.000** | +11.1 [+9.4, +12.7] | **1.000** | **1.000** | 0.961 | | Fact-check needed (macro-F1) | FactCheck | 0.501 | **1.000** | +49.9 [+46.1, +53.5] | 0.999 | **1.000** | 0.997 | | Feedback (macro-F1) | Feedback | 0.425 | 0.939 | +51.3 [+48.8, +54.1] | 0.904 | 0.920 | **0.989** | | PII, short texts (F1) | PII | 0.976 | 0.985 | +0.9 [+0.1, +1.9] | 0.984 | 0.987 | **0.995** | | PII, 4K-token documents (F1) | PII | 0.928 | 0.965 | +3.6 [−0.3, +6.8] | 0.624 | 0.898 | **0.987** | | PII, 8K-token documents (F1) | PII | 0.908 | **0.940** | +3.2 [−1.1, +7.0] | 0.603 | 0.905 | 0.894 | | Hallucination, 10,698 examples (F1) | Halu | 0.875 | **0.885** | +1.0 [+0.4, +1.7] | 0.828 | 0.874 | 0.848 | | RAGTruth (F1) | LettuceDetect v2 mmBERT | 0.743 | **0.774** | +3.0 [+0.5, +5.4] | 0.652 | 0.770 | 0.706 | | Toxic spans (char-F1) | mmBERT span head | **0.451** | 0.446 | −0.5 [−1.2, +0.2] | 0.366 | 0.379 | 0.423 | ### PII calibration modes | Mode for this checkpoint | Short / 4K / 8K F1 | | --- | --- | | Research scorer, per-length dev thresholds | 0.985 / 0.965 / 0.940 | | Shipped calibration, end to end | 0.987 / 0.959 / 0.940 | The family summary uses shipped 8K calibration; the router comparison uses research-scoring thresholds. Both decoder modes are dev-selected. The 0.3B encoder's research and shipped results, and its test-informed release selection, are disclosed next to the family table above. ## Safety, all 14 sets (AUC) | set | **Vela 2.0 9B** | Vela 2.0 0.8B | Vela 2.0 4B | Vela 2.0 0.3B | Vela 1.0 | GLiNER2.5-Decide | |---|---:|---:|---:|---:|---:|---:| | RTP-LX, request harm | **0.801** | 0.710 | 0.774 | 0.728 | 0.761 | 0.642 | | Multilingual HateCheck | **0.855** | 0.653 | 0.769 | 0.662 | 0.646 | 0.602 | | XSTest, request harm | **0.990** | 0.854 | 0.967 | 0.890 | 0.782 | 0.807 | | CultureGuard, request harm | **0.902** | 0.850 | 0.898 | 0.900 | 0.863 | 0.674 | | Prompt attacks, unseen families | **0.989** | 0.940 | 0.985 | 0.882 | 0.792 | 0.893 | | Prompt attacks, known families | **0.962** | 0.948 | 0.956 | 0.950 | 0.820 | 0.569 | | deepset prompt injections | **0.990** | 0.970 | 0.989 | 0.957 | 0.779 | 0.761 | | CultureGuard, response harm | **0.941** | 0.860 | 0.937 | 0.916 | 0.828 | 0.624 | | AEGIS 2.0, response harm | 0.931 | 0.883 | **0.934** | 0.917 | 0.872 | 0.660 | | PolyGuard, response harm | **0.957** | 0.901 | 0.925 | 0.936 | 0.884 | 0.759 | | Do-Not-Answer, response harm | 0.777 | 0.883 | **0.931** | 0.656 | 0.418 | 0.416 | | Do-Not-Answer, refusal | 0.913 | **0.918** | 0.893 | 0.896 | – | 0.886 | | XSTest, refusal | 0.989 | 0.973 | **0.992** | 0.955 | – | 0.887 | | PolyGuard, refusal | 0.894 | 0.907 | 0.945 | **0.947** | – | 0.683 | | **mean** | 0.921 | 0.875 | **0.921** | 0.871 | – | 0.704 | These comparisons cover trained safety families. They are not zero-shot comparisons against GLiNER2.5-Decide, which was not trained on these families. Vela 1.0 uses Safety for harm and Guard for attacks; it has no refusal output. ## General and held-out decisions | benchmark | **Vela 2.0 9B** | Vela 2.0 0.8B | Vela 2.0 4B | Vela 2.0 0.3B | reference | |---|---:|---:|---:|---:|---| | `fastino/fast-decisions` (17 domains) | 62.5 | 56.8 | 61.5 | 49.4 | GLiNER2.5-Decide 62.9 | | MASSIVE, unseen scenarios: intent / scenario accuracy | 0.763 / 0.871 | 0.544 / 0.632 | 0.727 / 0.814 | 0.510 / 0.575 | – | | QASC, 8-way science QA (held out) | 0.644 | 0.434 | 0.640 | 0.251 | chance 0.125 | | Super-NI task 1568 (held out) | 0.574 | 0.340 | 0.494 | 0.370 | – | Differences are paired bootstrap 95% intervals with 2,000 resamples. This decoder's checkpoint, temperatures and thresholds were chosen on dev data only. The 0.3B fast-decisions figure follows the encoder's separately disclosed release-selection protocol and is not an independent zero-shot result for that checkpoint. ## Open extraction benchmarks The broad span head is evaluated on open-label NER, relations, extractive QA and evidence. **SQuAD v2 dev is not zero-shot for this model**: its training split is in the broad-head data. NER and ACL-Verbatim are evaluated with the held-out protocols below. | Model | NER, 7 sets (F1) | Relations, CoNLL04 (F1) | SQuAD v2 dev (F1) | ACL-Verbatim evidence (word F1) | Latency, 3K-token context (ms) | |---|---:|---:|---:|---:|---:| | **Vela 2.0 9B, broad span head** | 43.5 | **10.1** | **71.5** | 24.5 | 2288 | | [GLiNER2.5-base](https://huggingface.co/fastino/gliner2.5-base-v1) | 55.9 | 8.5 | 45.5 | 2.8 | **360** | | [GLiNER2.5-Decide](https://huggingface.co/fastino/GLiNER2.5-Decide) | 51.5 | 1.5 | 46.0 | 2.3 | 415 | | [GLiFormer-base](https://huggingface.co/knowledgator/gliformer-base-v1) | 60.4 | 8.6 | 53.1 | 2.7 | 386 | | [GLiFormer-large](https://huggingface.co/knowledgator/gliformer-large-v1) | **63.6** | 6.2 | 47.0 | 7.0 | 930 | | [GLiNER large-v2.5](https://huggingface.co/gliner-community/gliner_large-v2.5) | 61.3 | 7.5 | 54.9 | 4.6 | 496 | | [ACL-Verbatim ModernBERT](https://huggingface.co/KRLabsOrg/acl-verbatim-modernbert) (trained in-domain, evidence only) | – | – | – | **53.4** | – | NER per set (CrossNER and MIT, strict micro-F1, label names only): | Model | AI | Literature | Music | Politics | Science | Movie | Restaurant | mean | |---|---:|---:|---:|---:|---:|---:|---:|---:| | **Vela 2.0 9B, broad span head** | 39.6 | 34.7 | 40.2 | 50.9 | 56.7 | 45.7 | 36.7 | 43.5 | | [GLiNER2.5-base](https://huggingface.co/fastino/gliner2.5-base-v1) | 52.5 | 52.2 | 57.4 | 63.2 | 59.3 | **60.6** | 46.4 | 55.9 | | [GLiNER2.5-Decide](https://huggingface.co/fastino/GLiNER2.5-Decide) | 48.8 | 48.0 | 56.2 | 63.5 | 47.0 | 55.5 | 41.6 | 51.5 | | [GLiFormer-base](https://huggingface.co/knowledgator/gliformer-base-v1) | **56.4** | 62.6 | 67.6 | 71.4 | 67.5 | 56.8 | 40.5 | 60.4 | | [GLiFormer-large](https://huggingface.co/knowledgator/gliformer-large-v1) | 54.2 | 60.3 | 66.7 | 71.8 | **70.0** | 60.4 | **61.9** | **63.6** | | [GLiNER large-v2.5](https://huggingface.co/gliner-community/gliner_large-v2.5) | **56.4** | **65.6** | **71.4** | **72.4** | 65.0 | 53.7 | 44.9 | 61.3 | | Evaluation | Protocol | | --- | --- | | Shared harness | Every model is scored by us on the same rows; reproduces the GLiFormer-base card on all seven NER sets and the gliner_large-v2.5 card average within 0.2 | | NER | CrossNER and MIT; dataset's full label list per sentence, label names only; strict entity-level micro-F1 following GLiNER evaluation | | Thresholds | GLiNER-family baselines: 0.5 defaults; this model: shipped broad-head threshold 0.5 | | Relations | Per `(entity, relation type)`, ask “Which spans are the relation of entity?” over the sentence; tail-span micro-F1 on CoNLL04, SciERC, NYT11 and FewRel (one split) | | Relation baselines | GLiNER-family models receive the same query as an entity label | | SQuAD v2 | Train split is in the broad-head data; dev F1 is not zero-shot | | ACL-Verbatim | Held out; paragraph-scale evidence in scientific papers | | ACL-Verbatim ModernBERT reference | Trained on ACL-Verbatim itself, evidence only | | Latency | One question per call, approximately 3K-token multi-passage context, mean over 100 questions after five warm-up calls, one A40 GPU for every model | ### Router versus broad head on zero-shot dev These ablations are on held-out **dev sets**, distinct from the benchmark test results above. Values use the original 0–1 F1 scale. | Task | Router span head | Broad span head | | --- | ---: | ---: | | NER | 0.219 | 0.427 | | Relations | 0.230 | 0.510 | | Verbatim evidence | 0.424 | 0.487 | The broad head was added with the backbone, candidate head and router span head frozen. Router outputs were checked to be bitwise identical on 700 rows; see [training stages](TRAINING.md#training-stages).