ITADN

MLX backend uses CPU variant on Apple Silicon despite gpu_available=true (M5 Pro)

#723OpenPetrusreno 创建于 2026-05-31
P
Petrusrenocommented
## Environment - macOS Darwin 25.5.0, Apple M5 Pro, 24 GB - Voicebox v0.5.0 (DMG `Voicebox_0.5.0_aarch64.dmg`) - Model: Qwen3-TTS-12Hz-1.7B-Base (loaded) - Settings → GPU enabled ## Symptom `GET /health` correctly detects MPS but reports `backend_variant: cpu`: ```json { "status": "healthy", "model_loaded": true, "model_size": "1.7B", "gpu_available": true, "gpu_type": "MPS (Apple Silicon)", "backend_type": "mlx", "backend_variant": "cpu", "gpu_compatibility_warning": null } ``` `~/Library/Application Support/sh.voicebox.app/backends/` contains only an empty `cuda/` subfolder — no MPS-variant directory shipped. ## Performance impact End-to-end test through `POST /generate` (Petrus PT-BR cloned profile, ~80 chars input): - Wall-clock to `status=completed`: **20.1 s** - Audio duration: **5.44 s** - **RTF: 3.7** (vs. Qwen3-TTS upstream claim of sub-realtime via Metal/MLX) `POST /generate/stream` is non-streaming in practice — it returns audio/wav only after the full clip is rendered (TTFB = total time, 15.5 s in another test). ## Repro ```bash curl -X POST http://127.0.0.1:17493/generate \ -H "Content-Type: application/json" \ -d '{"profile_id":"<your-petrus-id>","text":"Bom dia, doutor. Tudo bem?","language":"pt","engine":"qwen","model_size":"1.7B"}' # poll GET /history/{id} until status=completed ``` ## Expected On Apple Silicon, MLX should use the Metal backend (typically 5-10× faster than CPU for autoregressive LMs of this size). Qwen3-TTS reports ~97 ms TTFB and sub-realtime RTF on properly configured Apple Silicon stacks. ## Suggested - Ship MLX-Metal variant alongside MLX-CPU in the `backends/` distribution - OR: expose a runtime override so users can pull the Metal variant on first launch - Bonus: make `/generate/stream` actually stream chunks as they're produced (Qwen3-TTS supports incremental output) Happy to test a build with the Metal variant when ready. Voicebox is otherwise excellent — voice clone quality on Brazilian Portuguese is the first non-paid alternative I've found that holds up against ElevenLabs PVC.
0 条评论