Skip to content

本地 Qwen3-ASR 的 MLX 引擎在 Apple M5 上崩溃(进程直接退出) #1006

Closed

Description

@zenbao

Issue 草稿:本地 Qwen3-ASR 的 MLX 引擎在 Apple M5 上崩溃(进程直接退出)

提交人:M5 MacBook 用户(Mac17,2 / Apple M5 / 24GB / macOS 26.x)
目标仓库:https://github.com/Open-Less/openless
版本:OpenLess 1.3.18(darwin-aarch64)

现象

  • ASR provider 设为 local-qwen3-mlx(新版默认)时,只要一按听写热键,应用就直接退出(窗口消失,无崩溃报告、无错误弹窗)。
  • 用旧版 / 或切到 local-qwen3-c(C 引擎)后一切正常。
  • 结论:问题只出在 MLX 引擎,且只在 M5 芯片上。

关键证据

  1. 日志(~/Library/Logs/OpenLess/openless.log),退出前最后一条:

    [local-asr cache] loading mlx:qwen3-asr-0.6b from .../models/qwen3-asr/qwen3-asr-0.6b
    

    之后 29ms 进程即退出。

  2. 退出码 255:launchd 记录 exited due to exit(255),voluntary 退出(不是崩溃、不是被 kill)。

  3. 反汇编二进制 openless 定位到退出点:

    mlx_error_handler_default:
        printf("MLX error: %s\n")
        mov w0, #-0x1
        bl _exit        ; ← MLX 内部错误时 exit(-1),即 exit(255)
    

    → MLX 出错时会直接终止整个进程,连错误信息都只打到 stdout(用户看不到)。

  4. 根因对比:OpenLess 打包的 MLX(C++,静态链接)在 M5 上 Metal shader 加载失败(MLX error),而 2026 新版 Python MLX(0.31.2)在同一台 M5 上实测可用:

    mlx 0.31.2 / default_device: Device(gpu, 0) / Metal: True / 张量计算 OK
    

    → 不是 MLX 框架不支持 M5,而是 OpenLess 打包的 MLX 版本过旧。

  5. 同类问题(第三方确认 M5 + MLX 兼容性):

建议(二选一,或都做)

  1. 升级打包的 MLX 依赖到支持 M5 的新版本(qwen3-asr-rs 里 vendored mlx-c 版本过旧)。
  2. 更重要的健壮性修复:MLX 初始化/加载失败时不要直接 exit(-1) 杀死进程,应:

复现步骤

  1. Apple M5(Mac17,2)机器,安装 OpenLess 1.3.18
  2. ASR provider 保持默认 local-qwen3-mlx
  3. 下载 qwen3-asr-0.6b 模型
  4. 按听写热键 → 应用立即退出

临时 workaround(已验证)

设置 → 高级 → 本地模型 → 引擎切到 C/CPU(local-qwen3-c),一切正常、离线可用。


(本 issue 由用户在社区协助下诊断,证据均来自本机实测。)

Activity

  1. jimersylee commented on Aug 26, 2026

    @jimersylee
    Contributor

    已修复, 等下个beta版本发布, #999

  2. Sheldontao commented on Sep 1, 2026

    @Sheldontao

    同样1.7b的qwen3-asr在macos27b8 m4上,只要load就闪退

  3. jimersylee commented on Sep 2, 2026

    @jimersylee
    Contributor

    同样1.7b的qwen3-asr在macos27b8 m4上,只要load就闪退

    如果能运行源码, 可以运行beta分支, 已修复

  4. Sheldontao commented on Sep 10, 2026

    @Sheldontao

    "native ASR provider failed: MLX worker fÆ1FIEIJ; local ASR activation rollback failed: native ASR
    provider failed: MLX worker tAfFIZEJ"
    运行2.0.0版本的b1发现,报错,需要重新下载吗?

  5. jimersylee commented on Sep 11, 2026

    @jimersylee
    Contributor

    "native ASR provider failed: MLX worker fÆ1FIEIJ; local ASR activation rollback failed: native ASR provider failed: MLX worker tAfFIZEJ" 运行2.0.0版本的b1发现,报错,需要重新下载吗?

    目前的2.0.0版本有bug, 修复pr在 #1058

  6. Longado commented on Sep 13, 2026

    @Longado
    Contributor

    补一条 M5 实机验证(#1058 合并后):

    • 环境:Apple M5 / macOS 26,beta c4e8e88(含 fix/cannot-use-local-mlx-qwen3-asr: 修复不能使用本地qwen3-asr模型的问题 #1058)源码 tauri dev 构建
    • 设置 → Local models → qwen3-asr-0.6b →「Load & Test」,后端 MLX Metal (Apple Silicon)
    • 日志:loading mlx:qwen3-asr-0.6b 后 3 秒左右出现 loaded qwen3-asr-0.6b,主进程和 MLX worker 都没有退出(原报告里是 loading 之后 29ms 即 exit(255))
    • 内置音频结果:期望 "Hello. This is a test of the Voxtrail speech-to-text system.",识别 "Hello. This is a test of the Vox Troll speech-to-text system."

    所以 M5 上加载即闪退的问题在 beta 上已经不复现了。

    另外说明一下:当前 beta 下载本地模型会报 unsupported Hugging Face LFS oid,导致根本走不到加载这一步。我这次是带着 #1072 的修复下载的模型,没有它的话 M5 用户在 beta 上还复现不了这个验证。

  7. zenbao commented on Sep 13, 2026

    @zenbao
    Author

    补一条 M5 实机验证(#1058 合并后):

    • 环境:Apple M5 / macOS 26,beta c4e8e88(含 fix/cannot-use-local-mlx-qwen3-asr: 修复不能使用本地 qwen3-asr 模型的问题 #1058)源码 tauri dev 构建
    • 设置 → Local models → qwen3-asr-0.6b →「Load & Test」,后端 MLX Metal (Apple Silicon) 设置 →本地型号→ qwen3-asr-0.6b →“负载测试”,后端 MLX Metal(Apple Silicon)
    • 日志:loading mlx:qwen3-asr-0.6b 后 3 秒左右出现 loaded qwen3-asr-0.6b,主进程和 MLX worker 都没有退出(原报告里是 loading 之后 29ms 即 exit (255))
    • 内置音频结果:期望 "Hello. This is a test of the Voxtrail speech-to-text system.",识别 "Hello. This is a test of the Vox Troll speech-to-text system."内置音频结果:期望 “Hello. This is a test of the Voxtrail speech-to-text system.",识别 “Hello. This is a test of the Vox Troll speech-to-text system.”

    所以 M5 上加载即闪退的问题在 beta 上已经不复现了。

    另外说明一下:当前 beta 下载本地模型会报 unsupported Hugging Face LFS oid,导致根本走不到加载这一步。我这次是带着 #1072 的修复下载的模型,没有它的话 M5 用户在 beta 上还复现不了这个验证。

    多谢,🙏

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions