Maskinoversettelse · Engelsk original

GLiNER: lokale beslutninger og enhetsutvinning

Utviklingsforhåndsvisning. Vektene er publisert på Hugging Face; Swift-modulen er i gjennomgang og ennå ikke i en speech-swift-utgivelse.

GLiNER-modulen kjører GLiNER2.5-Decide i MLX Swift. Gi den tekst og en liste over tillatte etiketter for å få klassifiseringsscore, eller be om enhet spenner som en person og tid.

Hvordan det fungerer

En DeBERTa-koder leser teksten og skjemaet sammen. Klassifiseringshoder scorer etikettene. Entitetshoder identifiserer spændinger av den opprinnelige setningen. Runtime genererer ikke et JSON-responssymbol ved 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"]
)

Vekter

Tre MLX konverteringer av den festede oppstrøms revisjonen 7ee5da4c er publisert på Hugging Face. Kjøretiden lastes ned den valgte varianten ved første bruk og gjenbruker den lokale cache etterpå; ingen Python er involvert.

Variant ArkiverVekterRouting UtvinningPeak-minne
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, inaktiv maskin: median full forespørsel inkludert tokenisering og toppprosessminne. Alle tre varianter returnerer de samme etikettene, spenner og offset som oppstrøms PyTorch-modellen på 24 referanse tilfeller, med tillit innen 0,006.

Kommandolinje

Den speech CLI avslører begge oppgavene som speech gliner classify og speech gliner extract. Pass etiketter som en kommaseparert liste og gjenta --description label=text Hvis det er nødvendig, ikke la teksten lese den fra stdin. --variant picks int8 (standard), fp16 eller fp32, og --model-dir laster en lokal pakke i stedet for å laste ned. Ugyldige argumenter blir avvist før modellen lastes. Med --json Utgangen inkluderer alle sannsynlighetene for etiketten, eller spenner med UTF-16-forskyvninger, pluss belastnings- og inferenstid.

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

modelkortet for agenter er en Markdown-fil som viser nøyaktig API, utgangsfelt og verifiserte resultater.

Presisjon på et lite kommandosett

Seksten håndskrevne rutineeksempler matchet forventninger i 12 tilfeller; åtte utvinningseksempler som matches i 7 tilfeller. Swift porten reproduserer oppstrøms PyTorch-modellen på 24 referansetilfeller: identiske token-IDer, etiketter og spenn, med poeng innen 0,001. Disse små settene sjekker atferd og fidelitet; de er ikke et bredt nøyaktighets benchmark.

Omfang og begrensninger

presisjon og minne

FP16 halver vektlagring til 973 MB. INT8 kvantiserer kodermatriser og token innbefatter 8 biter i grupper på 64, med hoder, normalisering og aktiveringer i FP16, for en 567 MB-fil. Runtid holder INT8 matriser pakket og dekoder bare innebygde rader en forespørsel bruker.

Koderens relative posisjonsframspring avhenger bare av vekter, så de beregnes en gang på belastning i stedet for på hver forespørsel. Den valgfrie GLiNER.load(from:evaluateLayers:) modus materialiserer koder lag ett om gangen for å senke topptildelinger.

Kilder og tildeling