Maskinoversættelse · Engelsk original
GLINER: lokale beslutninger og udtrækning af virksomheder
Forhåndsvisning om udvikling. Vægtene er offentliggjort på Hugging Face; Swift modulet er i gennemgang og endnu ikke i en speech-swift udgivelse.
GLINER-modulet kører GLiNER2.5-Decide i MLX Swift. Giv det tekst og en liste over tilladte etiketter for at opnå klassifikationsresultater, eller bed om enhedens spande som f.eks. en person og tid.
Sådan virker det
En DeBERTa encoder læser teksten og skemaet sammen. Klassificeringsheads scorer dine etiketter. Enhedsheads identificerer spans af den oprindelige sætning. Løbetiden genererer ikke et JSON-svar token for 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ægt
Tre MLX konverteringer af den fæstede opstrømsrevision 7ee5da4c er offentliggjort på Hugging Face. Runtime downloads den valgte variant ved første brug og genbruger den lokale cache bagefter; ingen Python er involveret.
| Variant | Repository | Vægt | Routing | Udvinding | Spidshukommelse |
|---|---|---|---|---|---|
int8 (standard) | 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, tomgangsmaskine: median fuld anmodning, herunder skalering, og spidsbelastning proces hukommelse. Alle tre varianter returnerer de samme etiketter, spænder og forskudt som opstrøms PyTorch model på 24 reference tilfælde, med tillid inden for 0.006.
Kommandolinje
Den speech CLI udsætter begge opgaver som speech gliner classify og speech gliner extract. Pass etiketter som en kommasepareret liste og gentag --description label=text efter behov. Udelad teksten for at læse den fra stdin. --variant valg int8 (standard) fp16 eller fp32, og --model-dir indlæser et lokalt bundt i stedet for at downloade. Ugyldige argumenter afvises før modelbelastningen. --json, output omfatter hver etiketsandsynlighed, eller spænder med UTF-16 forskudt, plus belastning og inferens timinger.
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
Den modelkort for agenter er en Markdown fil, der viser den nøjagtige API, output felter og verificerede resultater.
Nøjagtighed på et lille kommandosæt
Seksten håndskrevne routing eksempler matchede forventningerne i 12 - otte eksempler på ekstraktion, der blev matchet i 7 sager. Swift port reproducerer opstrøms PyTorch model på 24 referencetilfælde: identiske token ID 'er, etiketter og spænder, med scorer inden for 0.001Disse små sæt kontrollerer adfærd og troskab; de er ikke en bred nøjagtighed benchmark.
Anvendelsesområde og begrænsninger
- Single-label klassificering og enhed spænder; op til 512 kodede tokens per anmodning.
- Span / count _ lstm checkpoints med delt relativ opmærksomhed, i FP32, FP16 eller INT8. Boundary modeller, relationsgrafer og fælles begrænsninger er ikke en del af denne oprindelige API
- Enhed udligner bruge UTF-16, matchende NSRange. Datoer og tidspunkter kræver separat normalisering.
- Scores garanterer ikke, at en beslutning er korrekt. Intet værktøj udføres af modulet.
- Model download størrelse, proces hukommelse, og unified- hukommelse fysisk fodaftryk er forskellige målinger.
Præcision og hukommelse
FP16 Halverer opbevaring af vægt til 973 MB. INT8 kvantificerer encoder matricer og token indlejringer til 8 bits i grupper af 64, med hoveder, normalisering og aktivering i FP16, for a 567 MB-fil. Runtime holder INT8 matricer pakket og dekoder kun de indlejrede rækker en anmodning bruger.
Encoders relative- position fremskrivninger afhænger kun af vægte, så de er beregnet én gang ved belastning i stedet for på hver anmodning. GLiNER.load(from:evaluateLayers:) modus materialiserer encoder lag en ad gangen til lavere spidsbelastning.