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.

VariantRepositoryVægtRoutingUdvindingSpidshukommelse
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, 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

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.

Kilder og tildeling