Terjemahan mesin · Versi asli bahasa Inggris
Clef-flash: keputusan lokal di Swift
Preview pengembangan. Dukungan teks lokal sedang dalam pengembangan dan belum dirilis di speech-swift.
Clef-flash membaca sebuah negara dan satu set pertanyaan, kemudian skor yang diperbolehkan jawaban bersama-sama. Swift modul berjalan 9Model B lokal pada Apple Silicon dengan MLX dan 4- Sedikit beban. Python proses atau host API Digunakan selama inferensi.
Gunakan dari 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)
Pertanyaan pilihan mengembalikan probabilitas untuk setiap pilihan. noul pertanyaan mengembalikan kemungkinan benar sebuah pertanyaan mengambil daftar yang telah dipesan seperti .score(["normal", "urgent"]) dan mengembalikan indeks berbasis zero-yang diharapkan. Modul tidak menjalankan perintah.
Baris perintah
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
Model baku adalah aufklarer / Clef-flash-9B-MLX-4bitPerintah pertama mengunduh bila diperlukan. Gunakan direktori lokal atau flag luring untuk menghindari pengunduhan.
Perintah standalone
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"}}
]}
Keluaran termasuk probabilitas, jumlah token input, dan waktu keputusan tidak termasuk model load. Perintah menerima sebuah array pertanyaan yang telah dipesan; ini bukan titik akhir SystemOne HTTP.
Bagaimana cara kerjanya
A Qwen3.5 tulang belakang membaca teks dan skema. Kepala keputusan bersama hadir ke konteks itu, memungkinkan pertanyaan berinteraksi, dan menggabungkan skor kontekstual dengan sebelumnya dari keluaran penggelapan model. Ini mencetak pilihan langsung daripada menghasilkan JSON menjawab token dengan token.
Kebutuhan dan batas
- Apple Silicon, macOS 15+, dan MLXYang didukung affine 4-bit ekspor adalah sekitar 5.3 GB; memori waktu-jalan tambahan.
- Hanya teks. Gambar, video, model 27B Clef, dan format berat lainnya tidak didukung.
- Gunakan setiap instansi secara serial. Batas baku adalah 4096 token berkode, dapat diubah menjadi 16384; permintaan terlalu besar gagal daripada diam-diam memotong negara.
- Probabilitas tidak dikalibrasi jaminan. Pertahankan eksekusi perintah dan konfirmasi terpisah dari nilai model.
- Penerbitan latensi yang diselenggarakan bukanlah pengukuran dari implementasi lokal Swift ini.
Validasi lokal
Oktober 3 update: Dua run segar dari dua puluh kali pengulangan hangat masing-masing rata-rata tentang 276 ms untuk yang sama 303-token, request tiga-field (jangkauan diamati 274–284 ms), excluding model load. 291 ms jalankan di bawah ini diberikan terpisah RSS dan pengukuran fisik-jejak kaki. Ini adalah salah satu permintaan teks berulang; pengakuan bicara, keluaran pidato, dan referensi visual tidak diukur.
Pada M5 Pro dengan 48 GB unified memory, dua puluh warm runs of one 303-token, tiga- field permintaan rata-rata 0.291 detik (median 0.290; jangkauan 0.280–0.299), excluding model load. native GPU operasi dan 512-token potongan mengurangi asli 0.921-second mean by about 68%, dengan bobot yang tidak berubah dan jawaban yang dipilih. Proses puncak RSS adalah 5.11 GiB; puncak macOS jejak memori adalah 6.81 GiB. RSS saja tidak menangkap semua penggunaan ingatan unified- masukan lebih lama bisa membutuhkan lebih banyak kenangan. sebuah koreksi kemudian berjalan diukur 462–897 ms ketika aplikasi lain sedang aktif, sehingga 291 MMS berarti bukan jaminan latensi tetap ini adalah pengukuran pengembangan pada satu permintaan berulang, bukan benchmark kualitas yang luas. 303 referensi ID token cocok, dan maksimum perbedaan probabilitas dari Python referensi adalah tentang 0.00266.