Strojový překlad · Anglický originál

GLiNER: místní rozhodnutí a extrakce účetní jednotky

Náhled vývoje. Váhy jsou zveřejněny na Hugging Face; modul Swift je v recenzi a ještě není ve verzi speech-swift.

Modul GLiNER běží GLiNER2.5-Decide v MLX Swift. Dejte mu text a seznam povolených štítků pro získání skóre klasifikace, nebo požádejte o entitu, jako je osoba a čas.

Jak to funguje

DeBERTa enkodér čte text a schémata společně. Třídění hlavy skóre vaše štítky. Hlava entity identifikovat oblasti původní věty. runtime nevytváří JSON odpověď token po 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"]
)

Váhy

Tři konverze MLX z pripované předchůdkové revize 7ee5da4c jsou publikovány na Hugging Face. Běh stahuje zvolenou variantu při prvním použití a následně znovu používá lokální cache; není do toho zapojen Python

VariantaÚložištěVáhySměrováníExtrakceVrcholová paměť
int8 (přednastaveno)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, volnoběžné zařízení: medián plného požadavku včetně tokenizace a špičkové procesní paměti. Všechny tři varianty vrací stejné štítky, rozsahy a ofsety jako model PyTorch na referenčních případech 24, s jistotou v rámci 0.006.

Příkazová linka

V speech CLI odhaluje oba úkoly jako speech gliner classify a speech gliner extract. Předávat štítky jako comma- oddělený seznam a opakovat --description label=text Omit text číst to ze Stdin. --variant výběry int8 (přednastaveno), fp16 nebo fp32, a --model-dir načte lokální svazek místo stahování. Neplatné argumenty jsou odmítnuty před zatížením modelu. --json, výstup zahrnuje každou pravděpodobnost štítků, nebo se vztahuje na odstupy UTF-16, plus zatížení a měření odvodu.

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

V vzorová karta pro agenty je Markdown soubor, který zobrazuje přesné API, výstupní pole a ověřené výsledky.

Přesnost na malé velitelské sadě

Šestnáct ručně psaných příkladů směrování odpovídá očekávání v 12 případy; osm příkladů těžby se shoduje v 7 případy. Swift Port reprodukuje model PyTorch proti proudu na 24 referenční případy: identické identifikátory, štítky a rozpěry, s počtem bodů v rámci 0.001Tyto malé sady kontrolují chování a věrnost, nejsou širokým měřítkem přesnosti.

Oblast působnosti a omezení

Přesnost a paměť

FP16 polovinu hmotnosti skladování do 973 MB. INT8 kvantifikuje enkodér matice a symbolické vkládání do 8 bity ve skupinách 64, s hlavami, normalizace a aktivace v FP16, pro 567 Soubor MB. Běh trvá INT8 matrice zabalené a dekóduje pouze vkládací řádky, které žádost používá.

Výčnělky relative- position encoder závisí pouze na hmotnosti, takže jsou vypočteny jednou při zatížení místo na každé žádosti. Volitelné GLiNER.load(from:evaluateLayers:) režim zhmotňuje vrstvy kódéru jedna po druhé, aby se snížily maximální příděly.

Zdroje a přidělení