Ollama Apple Silicon MLX 引擎更新

Ollama 已更新其 MLX 引擎,通过利用 Apple 的统一内存和基于 Metal 的 MLX 框架,在 Apple Silicon 上提供更高的性能。这些更新带来了更高质量的响应、更快的输出速度以及更低的内存占用。

支持 NVFP4 实现更高质量的推理

Ollama 的 MLX 引擎现在支持 NVIDIA 为模型优化的 NVFP4 格式。这种 4 位量化格式通过更紧密地追踪模型权重的局部动态范围,从而比其他 4 位格式减少了质量损失。

对于 Gemma 4 12B 模型,与未量化的 BF16 权重相比,NVFP4 在质量损失(以困惑度衡量)方面大约减少了一半,而这与 q4_K_M 量化格式相比也是如此。此外,这种支持实现了数据中心与桌面端之间的可移植性,因为针对数据中心部署优化的模型现在可以通过 MLX 引擎导入并运行。

提升输出性能

更新后的 MLX 引擎可提供高达 20% 的输出速度提升。这种性能增益是通过两个主要的的技术优化实现的:

  1. Kernel Fusion: 使用 MLX 的即时 (JIT) 编译器功能,将多个操作融合进单个 Metal 内核中。
  2. Sampling Efficiency: Ollama 重构了其基于 GPU 的采样机制,使其运行更加高效。

基准测试表明,在基于 8,300 个 token 的输入提示词、进行 10 次运行的平均输出速度测试中,NVFP4 在更新后的引擎上生成 token 的速度比 q4_K_M 快约 20%。

通过状态快照优化智能体工作流

为了解决智能体工作负载中提示词处理的开销问题——在这些场景中,工具调用和重复的对话记录往往迫使模型重新处理数十次相同的上下文——Ollama 引入了快照系统。该系统在关键点保存模型状态,以避免冗余处理。

快照系统的应用场景

  • 多智能体: 当一个智能体将任务移交给子智能体或运行多个并发会话时,每个智能体都会从其各自保存的状态中恢复。常见的上下文(如系统提示词和工具定义)仅需处理一次。
  • 思考型模型: 对于生成 token 但随后会被从历史记录中丢弃的推理模型,在响应开始前立即拍摄的快照允许下一轮对话在无需重新处理整个对话的情况下恢复。
  • 分支与重试: 当用户重新生成响应或选择不同的后续路径时,引擎会从对话发生分歧的快照点恢复,而不是重新处理整个历史记录。

技术实现

由于滑动窗口注意力机制 (sliding-window attention) 和循环层 (recurrent layers) 携带了无法回溯的状态,Ollama 会在关键点选择性地且增量式地保存状态:在对话分支处、在长提示词的间隔点,以及在每次响应开始前。这种选择性方法在为模型保留内存的同时,确保了响应速度。

实现与使用

用户可以通过下载最新版本的 Ollama 并运行 MLX 优化的模型来体验这些改进。例如,要使用 MLX 引擎运行 Gemma 4 12B:

ollama run gemma4:12b-mlx

若要集成到编程智能体中,可以使用 ollama launch 命令:

ollama launch pi --model gemma4:12b-mlx

Sources

相关