SPB Git

spb/zyquo-mlx Public MIT

The local MLX foundry for your Mac — run, fine-tune, quantize, and ship models. Nothing leaves your machine.

Swift 93.4% Python 3.8% Makefile 2.2% Shell 0.5%
6.3 KB · 119 lines markdown
Rendered Raw Blame History
1<!--2  README.md3  Zyquo MLX45  Author: Simon-Pierre Boucher6  Mail: contact@spboucher.ai7-->89<div align="center">1011<img src="assets/icon/app-icon.png" width="128" alt="Zyquo MLX icon">1213# Zyquo MLX1415**The local MLX foundry for your Mac — run, fine-tune, quantize, and ship models. Nothing leaves your machine.**1617[![Release](https://img.shields.io/github/v/release/spboucher-ai/zyquo-mlx?color=EA6A2B&label=release)](https://github.com/spboucher-ai/zyquo-mlx/releases/latest)18[![macOS 14+](https://img.shields.io/badge/macOS-14%2B-334155)](https://github.com/spboucher-ai/zyquo-mlx)19[![Apple Silicon](https://img.shields.io/badge/Apple%20Silicon-arm64-334155)](https://github.com/spboucher-ai/zyquo-mlx)20[![Swift](https://img.shields.io/badge/Swift-SwiftUI-EA6A2B)](Package.swift)21[![MLX](https://img.shields.io/badge/Apple-MLX-EA6A2B)](https://github.com/ml-explore/mlx)22[![License: MIT](https://img.shields.io/badge/license-MIT-334155)](LICENSE)23[![Downloads](https://img.shields.io/github/downloads/spboucher-ai/zyquo-mlx/total?color=EA6A2B)](https://github.com/spboucher-ai/zyquo-mlx/releases)24[![Signed & Notarized](https://img.shields.io/badge/Signed%20%26%20Notarized-Developer%20ID-2FA36B)](docs/BUILD.md)2526*Where **Zyquo Local** is the chat client, **Zyquo MLX** is the foundry: the complete workbench for the on-device MLX lifecycle on Apple Silicon.*2728</div>2930---3132## ✨ What it does3334- 🧠 **Run every MLX model type** — streaming LLM chat, vision-language models with images, embeddings with a live similarity inspector, and Whisper speech-to-text — with tokens/sec, time-to-first-token, and verified memory release on every run35- 🔥 **Fine-tune on your own data** — LoRA, QLoRA, DoRA, and full fine-tuning with a real configurator: live loss curves, checkpoints, cancel and warm resume, and memory gating that blocks impossible configs *before* they run36- ⚗️ **Quantize & convert** — 4/8-bit affine quantization with size previews accurate to 0.1 %, adapter fusing (with a smart de-quantize default that actually preserves your adapter), and Hugging Face → MLX conversion37- 📚 **Datasets, done right** — import JSONL (chat / prompt-completion / text), row-by-row validation with concrete fixes, deterministic train/valid splits, token stats38- 🌐 **Model discovery** — a live-verified Featured catalog plus full mlx-community search, with RAM compatibility badges for *your* Mac and resumable downloads39- 📊 **Evaluate** — base vs. fine-tuned side by side on the same prompt, with per-side stats40- 🔒 **100 % local** — no API keys, no telemetry; the only network traffic is downloading models you ask for4142## 📸 Screenshots4344| Light — model library | Dark — derived forge theme |45|---|---|46| ![Models, light](assets/screenshots/models-light.png) | ![Models, dark](assets/screenshots/models-dark.png) |4748| Training run — live loss curves, console, checkpoints | Playground — streaming chat with live stats |49|---|---|50| ![Training run](assets/screenshots/train-run.png) | ![Playground](assets/screenshots/playground-chat.png) |5152## ⚡ Measured performance (M5 Max, 48 GB)5354| Task | Model | Result |55|---|---|---|56| LLM inference | Qwen3-0.6B-4bit | **604–630 tok/s**, TTFT 0.03–0.83 s |57| VLM + image | Qwen3-VL-4B-Instruct-4bit | 97 tok/s, TTFT 1.95 s |58| Embeddings | Qwen3-Embedding-0.6B-DWQ | 2 texts in 0.36 s (1024-dim) |59| Speech-to-text | whisper-large-v3-turbo | 7 s clip transcribed in **1.0 s** |60| QLoRA training | Qwen3-0.6B-4bit | ~2,300 tok/s, peak 0.8 GB |61| LoRA training | 0.6B fp16 base | ~3,300 tok/s, peak 1.6 GB |62| Quantization | 0.6B fp16 → 4-bit | 1.19 GB → 335.5 MB (predicted 335.3) |6364Full matrix: [`docs/VERIFICATION.md`](docs/VERIFICATION.md).6566## 📦 Installation6768**[⬇️ Download Zyquo MLX.dmg](https://github.com/spboucher-ai/zyquo-mlx/releases/latest/download/ZyquoMLX.dmg)** — signed & notarized (Developer ID)69701. Open the DMG and drag **Zyquo MLX** to Applications712. Launch — grab a model from **Models › Discover** and you're forging7273**Requirements:** Apple Silicon Mac (M1 or later), macOS 14+. For fine-tuning, conversion, and speech, the app provisions an isolated Python environment on first use (needs [`uv`](https://docs.astral.sh/uv/): `brew install uv`; speech also uses `brew install ffmpeg`).7475## 🛠 Build from source7677Built **without the Xcode IDE** — command-line only, no `.xcodeproj`:7879```bash80# One-time: Xcode toolchain + Metal toolchain component (see docs/BUILD.md)81sudo xcode-select -s /Applications/Xcode.app82xcodebuild -downloadComponent metalToolchain8384git clone https://github.com/spboucher-ai/zyquo-mlx && cd zyquo-mlx85make app     # release build + assemble "Zyquo MLX.app"86make dev     # build + launch87```8889## 🏛 Architecture9091```92Sources/ZyquoMLX/93├── Engine/        # InferenceEngine actor (LLM/VLM/embeddings), MemoryAdvisor, SpeechService94├── Training/      # TrainingService, RunStore, MetricsStream (live JSON protocol)95├── Convert/       # ConversionService (Swift-native quant + Python fuse/convert)96├── Data/          # DatasetService — JSONL validation, splits, previews97├── Hub/           # HubService, resumable DownloadManager, ModelStore98├── PyBridge/      # PythonRunner + pinned venv (mlx-lm 0.31.3) + JSON-lines scripts99├── DesignSystem/  # ZyquoTheme — copper-on-slate tokens, light + dark100└── Views/         # SwiftUI workbench: Models, Datasets, Train, Convert, Playground, Evaluate101```102103Swift-native inference and quantization via [mlx-swift](https://github.com/ml-explore/mlx-swift) + [mlx-swift-lm](https://github.com/ml-explore/mlx-swift-lm); training and speech drive a pinned [mlx-lm](https://github.com/ml-explore/mlx-lm) through a strict JSON progress protocol. Research docs with the full ground truth live in [`docs/`](docs/) — including two upstream landmines the app works around (documented in [`docs/TRAINING-RESEARCH.md`](docs/TRAINING-RESEARCH.md)).104105## 🗺 Roadmap106107- Image generation (Swift `StableDiffusion` / FLUX pipelines)108- One-click "send to Zyquo Local"109- lm-evaluation-harness integration for benchmark scorecards110- DWQ/AWQ/GPTQ advanced quantization recipes111112## 🤝 The Zyquo family113114**Zyquo Local** (chat client) · **Zyquo MLX** (this foundry) · Zyquo Term · Zyquo Atlas115116## 📄 License117118[MIT](LICENSE) — © 2026 Simon-Pierre Boucher · contact@spboucher.ai119