Konekäännös · Englanninkielinen alkuperäinen

Clef-flash: paikalliset päätökset Swift

Kehittämisen esikatselu. Paikallinen tekstituki on kehitteillä, eikä sitä ole julkaistu speech-swift.

Clef-flash lukee tilan ja joukon kysymyksiä, sitten pisteet sallitut vastaukset yhdessä. Swift moduuli ajaa 9B-mallin paikallisesti Apple Silicon kanssa MLX ja 4-bittiset painot. No Python -prosessia tai isännöityä API -menetelmää käytetään inferenssissä.

Käytetään Swift

import Clef
let model = try await Clef.fromPretrained()
let result = try model.decide(
    state: "Please turn the kitchen lights on.",
    questions: [
        ClefQuestion(id: "action", instructions: "Which action?",
            kind: .choice(["on": "Lights on", "off": "Lights off", "other": "Other"])),
        ClefQuestion(id: "urgent", instructions: "Is this urgent?", kind: .noul())
    ])
print(result.decisions[0].probabilities)

Valitsemalla kysymykset palauttaa todennäköisyyksiä kunkin vaihtoehdon osalta. A noul kysymys palauttaa totuuden todennäköisyyden. Pistemääräkysymys ottaa tilatun listan, kuten .score(["normal", "urgent"]) ja palauttaa odotetun nollapohjaisen indeksin. Moduuli ei suorita komentoja.

Komentorivi

speech clef decide request.json
speech clef decide request.json --model-dir /path/to/Clef-flash-9B-MLX-4bit
speech clef decide request.json --offline --max-tokens 4096

Oletusmalli on aufklarer/Clef-flash-9B-MLX-4bit. Ensimmäinen komento lataa sen tarvittaessa. Käytä paikallista hakemistoa tai offline-lippua välttääksesi latauksen.

Yksittäinen komento

swift build -c release --product clef-decide --disable-sandbox
scripts/build_mlx_metallib.sh release
.build/release/clef-decide /path/to/clef-flash-mlx-4bit request.json
{"state":"Turn the lights on.","questions":[
  {"id":"action","type":"choice","instructions":"Which action?",
   "choices":{"on":"Lights on","off":"Lights off","other":"Other"}}
]}

Tulokseen sisältyy todennäköisyyksiä, syötelukuja ja päätösaika ilman mallin kuormitusta. Komento hyväksyy tilatun kysymysrivistön; se ei ole SystemOne HTTP päätepiste.

Miten se toimii?

A Qwen3.5 runko lukee tekstin ja kaavan. Yhteispäätöksen pää osallistuu tähän kontekstiin, antaa kysymysten vuorovaikutuksen ja yhdistää kontekstipisteet mallin tulostustuloksiin. Se tekee vaihtoehdot suoraan sen sijaan, että luot JSON-vastauksen tokennuksen.

Vaatimukset ja rajoitukset

Paikallinen validointi

Lokakuun 3 päivitys: Kaksi tuoretta kahdenkymmenen lämpimän toiston juoksua, joista jokainen oli keskimäärin noin 276 ms saman 303-tayn osalta, kolmen kentän pyyntö (havaittu etäisyys 274...284 ms), lukuun ottamatta mallikuormaa. Alla olevat 291 ms:n juoksut toimittivat erilliset RSS- ja fysikaalisen jalanjäljen mittaukset. Tämä on yksi toistuva tekstipyyntö; puheentunnistusta, puheen lähtöä ja näköhavaintoa ei mitattu.

@ info: whatsthis M5 Pro 48 GB yhtenäinen muisti, kaksikymmentä lämmitettyä juoksua yksi 303-Token, kolmen kentän pyyntö keskimäärin 0.291 sekuntia (mediaani) 0.290; vaihteluväli 0.280–0.299), lukuun ottamatta mallikuormaa. GPU toimet ja 512-Token palat vähensivät alkuperäistä 0.921- toinen keskiarvo noin 68%, jossa on muuttumaton paino ja valitut vastaukset. Huippuprosessi RSS oli 5.11 GiB; huippuarvo macOS muistijalanjälki oli 6.81 GiB. RSS ei yksin kuvaa kaikkea yhtenäistä muistin käyttöä. Pidemmät syötteet voivat tarvita enemmän muistia. 462–897 ms kun taas muut sovellukset olivat aktiivisia, joten 291 Ms keskiarvo ei ole kiinteä latenssi takuu. Nämä ovat kehitysmittauksia yhdestä toistuvasta pyynnöstä, ei laaja laatu vertailuarvo. 303 referenssitunnisteet täsmäävät, ja suurin todennäköisyysero on Python viite on noin 0.00266.

Lähteet