Traducere automată · Originalul în engleză

GLINER: decizii locale și extracție de entități

Previzualizarea dezvoltării. Greutatea este publicată pe Hugging Face; modulul Swift este în recenzie și nu este încă disponibil într-o versiune speech-swift

Modulul GLINER ruleaza GLiNER2.5-Decide in MLX Swift. Oferiti-i un text si o lista de etichete permise pentru a obtine scoruri de clasificare sau cereti pentru entitate, cum ar fi o persoana si timp.

Cum funcționează

Un encodor DeBERTa citeste textul si schema impreuna. Clasificarea capetelor puncteaza etichetele dumneavoastra. Capetele de entitate identifica duratele propozitiei originale. Timpul de rulare nu genereaza un raspuns JSON prin jeton.

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"]
)

Greutate

3 MLX conversii ale reviziei în amonte cu vârf 7ee5da4c sunt publicate la Hugging Face. Runtime-ul descarcă varianta aleasă pentru prima utilizare și reutilizează cache-ul local ulterior; nu este implicat niciun Python.

Variantă Depozit Greutate RutareExtragere Memorie de vârf
int8 (default)aufklarer/GLiNER2.5-Decide-340M-MLX-8bit567 MO7,6 ms8,9 ms 0,85 GB
fp16aufklater/GLiNER2.5-Decide-340M-MLX-fp16973 MO8,8 ms10,0 ms1.58 GB
fp32aufklarer/GLiNER2.5-Decide-340M-MLX 1.95 GB11.1 ms 12,6 ms2.55 GB

Apple M5 Pro, mașină inactivă: cerere completă mediană, inclusiv tokenizare, și memorie de proces de vârf. Toate cele trei variante returnează aceleași etichete, întinderi și offset-uri ca modelul PyTorch în amonte pe 24 de cazuri de referință, cu încredere în 0.006.

Linia de comandă

ă speech CLI expune ambele sarcini ca speech gliner classify şi speech gliner extract. Trece etichetele ca o listă separată de virgulă și se repetă --description label=text Omit textul să-l citească de la Stdin. --variant culesuri int8 (default); fp16 sau fp32, și --model-dir încarcă un pachet local în loc de descărcare. Argumentele nevalide sunt respinse înainte de încărcarea modelului. --json, ieșire include fiecare probabilitate de etichetă, sau se întinde cu UTF-16 offset-uri, plus încărcare și temporizări de interferență.

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

Cardul model pentru agenți este un fișier Markdown care enumeră exact API, câmpurile de ieșire și rezultatele verificate.

Precizie pe un set mic de comenzi

Șaisprezece exemple de rutare de mână se potrivesc așteptărilor în 12 cazuri; opt exemple de extracție se potrivesc în 7 cazuri. Portul Swift reproduce modelul PyTorch din amonte în 24 de cazuri de referință: ID-uri, etichete și intervale identice, cu scoruri în 0.001. Aceste seturi mici verifică comportamentul și fidelitatea; acestea nu sunt un criteriu de referință de precizie larg.

Domeniu de aplicare și limitări

Precizie și memorie

FP16 jumătate din greutatea de stocare la 973 MB. INT8 cuantizează matricele de codor și tokenul înglobează 8 biți în grupuri de 64, cu capete, normalizări și activări în FP16, pentru un fișier 567 MB. Timpul de funcționare păstrează INT8 matrice ambalate și decodează numai rândurile de înglobare o utilizare a cererii.

Proiecțiile relative de poziție ale encodorului depind doar de greutăți, astfel încât acestea sunt calculate o dată la sarcină în loc de fiecare cerere. Încărcătura opțională GLiNER.load(from:evaluateLayers:) mod materializează straturile de codor unu la un moment dat pentru a reduce alocările maxime.

Surse și atribuire