Fastino Labs has launched GLiNER2.5-Decide, a 340M-parameter open-weight choice mannequin. It takes textual content and a schema of typed questions and returns structured solutions. Every reply comes with a likelihood distribution, a confidence rating, and constraint-feasibility metadata. It targets the frequent judgment calls inside agent pipelines: routing, triage, instrument choice, and guardrails.
Is it deployable? Sure, the weights ship underneath Apache 2.0 and set up with pip set up gliner2. They run on CPU, GPU, or in air-gapped environments. Fastino crew additionally provides hosted inference and fine-tuning via its GLiNER API.
What GLiNER2.5-Resolve Truly Does
GLiNER2.5-Resolve is a non-generative classifier. It makes use of a DeBERTa-v3-large encoder and is fine-tuned from gliner2-large-v1. It produces no generated tokens and desires no immediate template.
Label units are handed at name time. Every query within the schema declares its permitted solutions. It additionally declares whether or not it expects one reply, a number of solutions, or an ordered worth. Schemas can carry directions, examples, label descriptions, and guidelines linking solutions throughout questions.
The pipeline has 2 levels. The encoder reads the textual content and schema collectively and scores each permitted reply. A constrained decoder then searches for the highest-scoring joint task the declared guidelines permit.
Fastino is specific about scope. The mannequin doesn’t cause, clarify, or reply open questions. It’s a specialist for operational selections.
Why Joint Decoding Issues
Fastino team illustrates the worth with a guardrail instance. Decoded independently, the mannequin flagged immediate injection at 0.82. It additionally labeled the identical immediate protected at 0.52. The assault was detected, however the 2 outputs conflicted.
Joint decoding applies a rule that any detected hurt requires an unsafe verdict. The mannequin then returns security=unsafe and harm_type=prompt_injection collectively. Downstream code can use these scores to dam, route, or escalate.
Schemas can specific implications, exclusions, cardinality limits, and ordinal bounds. The identical encoder can even extract entities, relations, and structured data with character-level offsets in 1 ahead cross. Classification solutions don’t return proof spans.
‘});
el.innerHTML=h;ping();
setTimeout(operate(){el.querySelectorAll(“.fill”).forEach(operate(f){f.fashion.width=f.getAttribute(“data-w”)+”%”})},cut back?0:60);
}
operate showB(v){var d=B[v];bars($(“bBars”),d.rows,d.max,”%”);$(“bCap”).textContent=d.cap}
operate showL(v){var rows=L[v],finest=Math.min.apply(null,rows.filter(operate(r){return r[1]!=null}).map(operate(r){return r[1]}));bars($(“lBars”),rows,180,” ms”,finest)}
operate seg(id,fn){var s=$(id);s.querySelectorAll(“button”).forEach(operate(b){b.onclick=operate(){s.querySelectorAll(“button”).forEach(operate(x){x.setAttribute(“aria-pressed”,x===b)});fn(b.getAttribute(“data-v”))}})}
seg(“bSeg”,showB);seg(“lSeg”,showL);
doc.querySelectorAll(“.tab”).forEach(operate(t){t.onclick=operate(){doc.querySelectorAll(“.tab”).forEach(operate(x){x.setAttribute(“aria-selected”,x===t);$(x.getAttribute(“data-p”)).hidden=x!==t});var p=t.getAttribute(“data-p”);if(p===”p2″)showB($(“bSeg”).querySelector(‘[aria-pressed=”true”]’).getAttribute(“data-v”));if(p===”p3″)showL($(“lSeg”).querySelector(‘[aria-pressed=”true”]’).getAttribute(“data-v”));ping()}});
operate ping(){attempt{father or mother.postMessage({mtpFrame:”gliner-decide”,h:$(“wrap”).offsetHeight+40},”*”)}catch(e){}}
window.addEventListener(“load”,ping);window.addEventListener(“resize”,ping);
if(window.ResizeObserver)new ResizeObserver(ping).observe($(“wrap”));
chips();load();later(run,500);
})();

