Konekäännös · Englanninkielinen alkuperäinen
GLINER: paikalliset päätökset ja yksikköjen poimiminen
Kehittämisen esikatselu. Painot julkaistaan Hugging Face; Swift -moduuli on tarkastelun kohteena eikä vielä speech-swift
GLIENER-moduuli toimii GLiNER2.5-Decide MLX Swift. Antakaa teksti ja luettelo sallituista tarroista, jotta saadaan luokituspisteet, tai pyytäkää yhteisöltä esimerkiksi henkilö- ja aikajaksoja.
Miten se toimii?
DeBERTA-koodaaja lukee tekstin ja kaavan yhdessä. Luokituspäät pisteet tarroja. Entity heads tunnistaa spans alkuperäisen lauseen. Runtime ei tuota JSON-vastauksen symbolin 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"]
)
Painot
Kolme MLX -muunnoksia, jotka on tehty ylävirtarevisiosta 7ee5da4c, julkaistaan Hugging Face -muodossa. Runtime lataa valitun muunnelman ensimmäisen käytön yhteydessä ja käyttää paikallista välimuistia uudelleen jälkikäteen; ei Python -versiota.
| Variantti | Versiovarasto | Painot | Ruuti | Uutto | Huippumuisti |
|---|---|---|---|---|---|
int8 (oletusarvo) | aufklarer/GLiNER2.5-Decide-340M-MLX-8bit | 567 Mt | 7,6 ms | 8,9 ms | 0,85 GB |
fp16 | aufklarer/GLiNER2.5-Decide-340M-MLX-fp16 | 973 Mt | 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, joutokäyntikone: Mediaani täydellinen pyyntö mukaan lukien tokenointi, ja huippuprosessin muisti. Kaikki kolme versiota palauttaa samat tarrat, spans ja offsets kuin ylävirtaan PyTorch malli 24 vertailu tapauksissa, luottavaisesti 0.006.
Komentorivi
• speech CLI paljastaa molemmat tehtävät speech gliner classify sekä speech gliner extract. Pass etiketit pilkulla erotettu luettelo ja toista --description label=text Ota teksti lukeaksesi sen stdinistä. --variant poimii int8 (oletus), fp16 tai fp32, --model-dir lataa paikallisen nipun latauksen sijaan. Virheelliset argumentit hylätään ennen mallin kuormia. --json, lähtö sisältää kaikki tarra todennäköisyys, tai spans UTF-16 offsets, plus kuormitus ja inferenssi ajoitusta.
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
agenttien mallikortti on Markdown -tiedosto, jossa on tarkka API -malli, lähtökentät ja todennetut tulokset.
Tarkkuus pienessä komentosarjassa
Kuusitoista käsin kirjoitettua reititysesimerkkiä vastasi odotuksia 12-tapauksissa; kahdeksan uuttoesimerkkiä täsmäytettiin 7 -tapauksissa. Swift:n portti toistaa PyTorch-mallin yläjuoksulla 24 vertailutapauksissa: identtiset tunnisteet, tarrat ja spans, joissa on 0.001. Nämä pienet sarjat tarkistavat käyttäytymisen ja uskollisuuden; ne eivät ole laaja tarkkuusvertailu.
Soveltamisala ja rajoitukset
- Yksimerkkinen luokitus ja yhteisön spans; enintään 512 koodattua rahakkeita per pyyntö.
- Span/count_lstm-tarkastuspisteet, joihin sovelletaan suhteellista huomiota, FP32, FP16 tai INT8. Rajamallit, suhdekäyrät ja nivelrajoitukset eivät kuulu tähän alkuvaiheen API.
- Yksikkövastikkeiden käyttö UTF-16, vastaavat NSRange. Päivämäärät ja ajat vaativat erillistä normalisointia.
- Pisteet eivät takaa, että päätös on oikea. Mikään työkalu ei suorita moduuli.
- Mallin latauskoko, prosessimuisti ja yhtenäinen muistin fyysinen jalanjälki ovat erilaisia mittauksia.
Tarkkuus ja muisti
FP16 puolittaa painovaraston 973 MB:hen. INT8 määrittää koodaajan matriiseja ja tokentteja 8:n bittiä 64-ryhmissä, joissa on päät, normalisointi ja aktivointi FP16, 567 MB-tiedostoon. Runtime pitää INT8 matriisit pakattuina ja koodit vain pyydyksissä.
Koodaimen suhteellinen sijainti riippuu vain painoista, joten ne lasketaan kerran kuormitettuna jokaisen pyynnön sijaan. Valinnainen GLiNER.load(from:evaluateLayers:) -tila materialisoi koodaajan kerrokset yksi kerrallaan pienentää huippujaotteluja.