Maskinöversättning · Engelskt original

GLiNER: lokala beslut och utvinning av företaget

Utvecklingsförhandsgranskning. Vikterna publiceras på Hugging Face; Swift-modulen är i granskning och ännu inte i en speech-swift release.

GLiNER-modulen körs GLiNER2.5-Decide i MLX Swift. Ge den text och en lista över tillåtna etiketter för att få klassificeringspoäng, eller be om entitetsspannor som en person och tid.

Hur det fungerar

En DeBERTa-kodare läser texten och schemat tillsammans. Klassificeringshuvuden gör dina etiketter. Entity-huvud identifierar spänner av den ursprungliga meningen. Runtiden genererar inte en JSON-svarstoken av token.

import GLiNER
let model = try await GLiNER.fromPretrained()
let choices = try model.classify(
    "Remind me to call Dad at six PM.",
    labels: ["create_reminder", "send_message", "other"]
)
let spans = try model.extractEntities(
    "Remind me to call Dad at six PM.",
    labels: ["person", "time"]
)

Vikter

Tre MLX omvandlingar av den pinned uppströms revision 7ee5da4c publiceras på Hugging Face. Runtiden laddar ner den valda varianten vid första användning och återanvänder den lokala cache efteråt; ingen Python

VariantRepositoryVikterRoutingExtraktionPeak memory
int8 (standard)aufklarer/GLiNER2.5-Decide-340M-MLX-8bit567 MB7,6 ms8,9 ms0,85 GB
fp16aufklarer/GLiNER2.5-Decide-340M-MLX-fp16973 MB8,8 ms10,0 ms1,58 GB
fp32aufklarer/GLiNER2.5-Decide-340M-MLX1,95 GB11.1 ms12,6 ms2.55 GB

Apple M5 Pro, idle machine: median full förfrågan inklusive tokenization och toppprocessminne. Alla tre varianter returnerar samma etiketter, spänner och kompensationer som den uppströms PyTorch-modellen på 24 referensfall, med förtroende inom 0,006.

Command line

Den som speech CLI avslöjar båda uppgifterna som speech gliner classify och speech gliner extractPass etiketter som en komma-separerad lista och upprepa --description label=text Omit texten för att läsa den från stdin. --variant plockar int8 (default), fp16 eller fp32och --model-dir lastar en lokal bunt i stället för nedladdning. Ogiltiga argument avvisas innan modellbelastningen. --jsonUtgången innehåller varje etikett sannolikhet, eller spänner med UTF-16-kompensationer, plus belastning och inferenstider.

swift build -c release --product speech --disable-sandbox
scripts/build_mlx_metallib.sh release
.build/release/speech gliner classify "Remind me to call Dad at six PM." \
  --labels create_reminder,send_message,set_timer,other
.build/release/speech gliner extract "Remind me to call Dad at six PM." \
  --labels person,time --json

modellkortet för agenter är en Markdown-fil som listar exakt API, utgångsfält och verifierade resultat.

Noggrannhet på en liten kommandouppsättning

Sexton handskrivna routingexemplar matchade förväntningar i 12 fall; åtta extraktionsexempel matchade i 7 fall. Swift porten reproducerar den uppströms PyTorch-modellen på 24 referensfall: identiska token-ID, etiketter och spänner, med poäng inom 0.001. Dessa små set kontrollerar beteende och fidelitet; de är inte ett brett noggrannhetsriktmärke.

Räckvidd och begränsningar

Precision och minne

FP16 halverar viktlagring till 973 MB. INT8 kvantiserar kodarens matriser och token inbäddningar till 8 bitar i grupper av 64, med huvuden, normalisering och aktiveringar i FP16, för en 567 MB-fil. Runtime håller INT8 matriser packade och avkodar endast de inbäddade raderna som en förfrågan använder.

Kodarens relativa positionsprognoser beror bara på vikter, så de beräknas en gång i belastning istället för på varje begäran. Den valfria GLiNER.load(from:evaluateLayers:) läge materialiserar kodare lager en i taget för att sänka toppallokeringar.

Källor och attribution