Fastino's GLiNER2.5-Decide Beats 1B Models at Agent Routing With 340M Parameters

Fastino's 340M encoder classifier scores typed decisions in one forward pass, beats a 4B baseline on 17 tasks, and runs on CPU.

·
·
Fastino's GLiNER2.5-Decide Beats 1B Models at Agent Routing With 340M ParametersPRO
  • Fastino released GLiNER2.5-Decide, a 340M open-weight encoder for structured classification decisions.
  • DeBERTa-v3-large backbone, Apache 2.0, fine-tuned from gliner2-large-v1, runs on CPU or air-gapped.
  • Scores 60.1% average on a 17-domain suite, beating a 4B Qwen-based baseline and Fastino's own 1B model.
  • P50 latency: 38.3 ms on V100, 167.3 ms on a 48-vCPU CPU for short inputs.
  • Accepts free-form labels at call time, scores multiple heads in one pass, no prompt template.
  • Targets routing, triage, tool selection, moderation, and LLM-as-judge use cases inside agent pipelines.

Fastino’s 340M classifier targets agent decisions

Fastino Labs has released GLiNER2.5-Decide, a 340-million-parameter, open-weight classifier for recurring decisions inside AI-agent workflows. The model accepts text plus a schema of named classification tasks, then returns structured answers in one forward pass. Fastino’s release coverage says responses can include probabilities, confidence scores and metadata indicating whether requested constraints can be satisfied.

A single encoder pass reads the full input and scores the supplied labels without generating tokens one at a time. That design targets high-frequency operations such as routing requests, selecting tools, applying moderation policies and deciding when to involve a human. Its output is limited to classification; open-ended answers, explanations and conversations fall outside the model’s scope.

Labels arrive with every request

GLiNER2.5-Decide uses a DeBERTa-v3-large encoder and was fine-tuned from gliner2-large-v1. DeBERTa is an encoder architecture that builds a representation of the complete input, allowing a small scoring head to grade each candidate label directly.

The request format places the task and its candidate labels before the source text:

css
[P] task [L] label1 [L] label2 ... [SEP] text

Each [L] marker introduces a label that the scoring head evaluates against the text. Labels remain free-form at call time, so an application can change its categories without retraining the checkpoint.

Several classification heads can run in one call. A single-label head returns the highest-scoring string, while a multi-label head returns every label above a configured threshold.

swift
from gliner2 import AutoExtractor

model = AutoExtractor.from_pretrained("fastino/GLiNER2.5-Decide")

model.classify_text(
    "From: compliance@group.example\nSubject: Protocol update - action required today",
    {
        "intent": ["fyi", "request", "approval", "complaint", "security_alert"],
        "urgency": ["low", "normal", "high", "critical"],
        "route": ["support", "billing", "legal", "security", "finance"],
    },
)

# {"intent": "request", "urgency": "high", "route": "legal"}

Pro article

This story is for Pro members

You've reached the end of the free preview. Upgrade to AlphaSignal Pro to read the full article - and everything else behind the paywall.

Trending
  • No trending articles

Comments

avatar

Next Reads