Nvidia 的 Nemotron Omni 在 Mac 上只能加载文本部分,所以我用 MLX 编写了视觉和音频塔

Reddit r/LocalLLaMA 工具

摘要

作者为 Nvidia 的 Nemotron Omni 模型的视觉和音频塔编写了一个纯 MLX 运行时,使完整的多模态模型能够在 Apple Silicon Mac 上本地运行。所有 23 项测试均通过 PyTorch 参考验证,在 M5 Max 上实现了 67-152 tok/s 的速度。

nvidias nemotron omni 是开放权重的,它能看、能听、能推理。Hugging Face 上已经有一个 4bit 的 MLX 量化版本,但标准 MLX 工具只能加载文本骨干。模型卡上写得很清楚:视觉和音频塔需要一个实现了 c-radio vit-h 和 parakeet conformer 前向传播的运行时。所以我用纯 MLX 写了这个运行时。视觉塔、音频塔、处理器和 token 拼接,全部从 Nvidia 的参考实现移植而来。它使用 mlx-community 的 4bit 量化版语言模型,两个塔则是 bf16 精度。我不想猜它是否正确,所以每个组件都在相同输入和相同权重下与 Nvidia 的 PyTorch 参考实现进行对比测试。23 项全部通过。音频塔余弦相似度最低每帧 0.99999130,视觉塔最低每个 token 0.99996227,而在 MLX CPU 流上视觉塔的输出与参考图完全一致(1.0)。在我的 M5 Max 上,带图像时 67.7 tok/s,带音频时 147 tok/s,纯文本 152 tok/s。全程关闭 Wi-Fi。给它一张截图它就能读,给它一段音频它就能听。这是我写的,采用 MIT 许可。https://github.com/nicedreamzapp/nemotron-omni-mlx 图像路径峰值内存为 22.1GB,所以应该能塞进 32GB 的 Mac,但我手头只有 M5 Max 可以测试。如果你在配置更低的机器上运行,我很想知道结果。感谢 Nvidia 开放权重,也感谢 yayr 做的 4bit 转换。
查看原文

相似文章

jundot/omlx

GitHub Trending (daily)

oMLX 是一个用于在 Apple Silicon Mac 上进行优化 LLM 推理的新开源工具,具备持续批处理和分层 KV 缓存功能,并通过菜单栏应用进行管理。