Strojový překlad · Anglický originál
Clef- flash: místní rozhodnutí v Swift
Náhled vývoje. V speech-swift se rozvíjí místní textová podpora.
Clef- flash čte stav a soubor otázek, pak skóre povolené odpovědi společně. Swift modul běží 9B model lokálně na Apple Silicon se MLX a 4-bit závaží. Žádný Python proces nebo hostitel API je používán při inference.
Použití 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)
Volba otázky vrátí pravděpodobnosti pro každou možnost. A noul otázka vrací pravděpodobnost pravdy. Skóre otázka má objednaný seznam, jako je .score(["normal", "urgent"]) a vrací očekávaný index na nulové bázi. Modul neprovádí příkazy.
Příkazová linka
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
Výchozí model je aufklarer / Clef-flash-9B-MLX-4bit. První příkaz jej v případě potřeby stáhne. Pomocí místního adresáře nebo offline vlajky se vyhnete stahování.
Samostatný příkaz
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"}}
]}
Výstup zahrnuje pravděpodobnosti, počet vstupů a čas rozhodnutí bez zatížení modelu. Příkaz přijímá objednané pole otázek; není to koncový bod SystemOne HTTP.
Jak to funguje
Qwen3.5 páteř čte text a schémata. Hlava společného rozhodnutí se věnuje tomuto kontextu, umožňuje interakci otázek, a kombinuje kontextové skóre s předchůdci z výstupních vkládání modelu. Skóruje volby přímo místo generování JSON odpověď token po token.
Požadavky a omezení
- Apple Silicon, macOS 15+, a MLX. Podporovaná afine 4-bitový export je přibližně 5.3 GB; runtime memory is additional.
- Pouze text. Obrázky, video, model 27B Clef a jiné formáty hmotnosti nejsou podporovány.
- Použijte každou instanci seriálně. Výchozí limit je 4096 kódovaných žetonů, konfigurovatelných na 16384; nadměrné požadavky selhávají spíše než tiše zkrátí stav.
- Pravděpodobnosti nejsou kalibrované záruky. Udržujte příkaz provedení a potvrzení oddělené od modelu bodování.
- Publikované hostované latence není měřítkem místní implementace Swift.
Místní validace
Říjen Aktualizace 3: Dva čerstvé závody dvacet teplých opakuje každý průměrně kolem 276 ms pro stejný 303- token, trojitý požadavek (pozorovaný rozsah 274-284 ms), s výjimkou zatížení modelu. Starší 291 ms běží níže, dodal samostatné měření RSS a fyzikálně-stopy. Jedná se o jeden opakovaný požadavek textu; rozpoznávání řeči, výstup řeči a vizuální odvod nebyly měřeny.
Na M5 Pro s 48 GB sjednocená paměť, dvacet zahřátých řad jedné 303-token, tři-pole žádost v průměru 0.291 sekund (medián 0.290; rozsah 0.280–0.299), s výjimkou vzorového zatížení. GPU činnosti a 512-symbolické kousky snížily originál 0.921-druhý průměr asi 68%, s nezměněnými vahami a vybranými odpověďmi. 5.11 GiB; špička macOS Paměťová stopa byla 6.81 GiB. Samotný RSS nezachycuje všechny unified- memory using. Delší vstupy mohou potřebovat více paměti. 462–897 ms zatímco jiné aplikace byly aktivní, takže 291 ms mean není pevná záruka latence. Jedná se o vývojová měření na jednu opakovanou žádost, ne široká měřítko kvality. 303 referenční symbol ID odpovídá, a maximální pravděpodobnost rozdíl od Python reference je o 0.00266.