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í

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.

Zdroje