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áhy | Směrování | Extrakce | Vrcholová paměť |
|---|---|---|---|---|---|
int8 (přednastaveno) | aufklarer / GLiNER2.5-Decide-340M-MLX-8bit | 567 MB | 7.6 ms | 8.9 ms | 0.85 GB |
fp16 | aufklarer / GLiNER2.5-Decide-340M-MLX-fp16 | 973 MB | 8.8 ms | 10.0 ms | 1.58 GB |
fp32 | aufklarer / GLiNER2.5-Decide-340M-MLX | 1.95 GB | 11.1 ms | 12.6 ms | 2,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í
- Klasifikace jednoznačkových štítků a rozsah účetní jednotky; až 512 kódovaných žetonů na vyžádání.
- Kontrolní body Span / count _ lstm se sdílenou relativní pozorností, v FP32, FP16 nebo INT8. Hranice, relativní grafy a společná omezení nejsou součástí tohoto původního API
- Výstupy entity používají UTF-16, odpovídající NSRange. Data a časy vyžadují oddělenou normalizaci.
- Výsledky nezaručují, že je rozhodnutí správné. Modul žádný nástroj neprovádí.
- Model velikosti stahování, procesní paměti a unifikované paměti fyzické stopy jsou různá měření.
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.