### [MLX](https://hello123.com/) **Published:** 2026-11-05T07:00:00 **Author:** hello123 **Excerpt:** MLX 是苹果为 Apple Silicon 设计的开源机器学习框架,统一内存模型避免 CPU 与 GPU 间… ## MLX 是什么:苹果芯片上的阵列框架 **MLX** 是苹果**机器学习**研究团队推出的阵列框架,专为 Apple Silicon 芯片设计。它从 NumPy、PyTorch、JAX 和 ArrayFire 中吸取灵感,核心卖点是统一内存模型。 ![MLX截图](https://cdn.hello123.com/wp-content/uploads/2026/09/mlx.jpg) - **定位**:面向 Mac 上机器学习开发、训练和部署的开源框架。 - **核心卖点**:统一内存,数组共享内存,无需在 CPU 和 GPU 之间复制数据。 - **设计哲学**:API 熟悉、计算惰性、图动态构建,降低上手门槛。 该工具与 PyTorch、JAX 直接竞争,但在 Mac 上优势明显。关键区别在于内存管理方式。 ### 从 NumPy 到 MLX:熟悉的 API 与设计取舍 MLX 的 `Python` **API** 与 NumPy 紧密一致。这意味着如果你写过 NumPy 代码,几乎不用学新语法。更高层的 mlx.nn 和 mlx.optimizers 则遵循 PyTorch 约定。 这种设计取舍很明确:降低学习曲线,吸引已有 NumPy 或 PyTorch 经验的开发者。但代价是,它不像 JAX 那样完全函数式,也不像 PyTorch 那样生态庞大。 ### 统一内存模型:为什么 Mac 上不需要搬数据 传统框架中,CPU 和 **GPU** 有各自显存。数据要在两者间来回拷贝,耗时且占内存。MLX 不同。数组存在共享内存里,操作可以在任何支持的设备上执行,无需移动数据。 这直接减少了数据搬运开销。对 Mac 用户来说,训练和推理都更快,内存占用也更低。 ## MLX 主要功能一览:从惰性计算到动态图 - **惰性计算**:数组只在需要时具体化,避免不必要的中间结果。 - **可组合函数转换**:自动微分、自动向量化、计算图优化,三者可组合使用。 - **动态图构建**:改变函数参数形状不会触发缓慢编译,调试直观。 - **多设备支持**:操作可在 CPU 或 GPU 上运行。 - **统一内存**:数组共享内存,无需设备间复制。 这些功能共同降低了 Mac 上机器学习开发的门槛。 ### 惰性计算:数组只在需要时具体化 MLX 中的计算是惰性的。你写下一串操作,它不会立即执行。只有当你真正需要结果时,数组才会被创建。 这带来两个好处:一是减少内存占用,二是允许计算图优化。比如,多个操作可以合并,避免中间数组的存储。 ### 可组合函数转换:自动微分与向量化 MLX 支持可组合的函数转换。你可以用 `grad` 求梯度,用 `vmap` 自动向量化,用 `compile` 优化计算图。 这些转换可以叠加。比如先向量化再求梯度,或者先优化再微分。这种灵活性让模型训练和科研实验更高效。 ### 动态图构建:调试更直观,无需等待编译 与静态图框架不同,MLX 的计算图是动态构建的。你改一个函数参数的形状,不会触发重新编译。 调试时,你可以逐行执行,随时查看中间结果。这对快速迭代模型很有帮助。PyTorch 也采用动态图,但 MLX 在 Mac 上结合统一内存,体验更流畅。 ## MLX 第一次怎么用:安装、建数组、跑模型 从安装到训练模型,流程很直接。 1. 安装 MLX:用 pip 一行命令。 2. 导入库:在 Python 脚本中 `import mlx.core as mx`。 3. 创建数组:用 `mx.array()` 或类似 NumPy 的函数。 4. 执行操作:数组运算自动利用惰性计算和自动微分。 5. 构建模型:用 `mlx.nn` 定义网络结构。 6. 训练与优化:用 `mlx.optimizers` 和训练循环。 7. 保存与加载:用 `mx.save` 和 `mx.load`。 ### 安装 MLX:一行 pip 命令 安装很简单。在终端运行 `pip install mlx` 即可。需要 `macOS` 13.3 以上,且是 Apple Silicon 芯片。 没有复杂的依赖。安装后直接导入就能用。 ### 创建数组与执行操作:NumPy 风格上手 创建数组和 NumPy 几乎一样。例如 `mx.array([1, 2, 3])` 或 `mx.zeros((2, 3))`。 操作也类似。`mx.add(a, b)`、`mx.matmul(a, b)` 等。但底层是惰性计算,结果在需要时才生成。 ### 构建与训练模型:用 mlx.nn 和 optimizers `mlx.nn` 提供类似 PyTorch 的模块接口。你可以定义 `nn.Linear`、`nn.Conv2d` 等层。 `mlx.optimizers` 提供 Adam、SGD 等优化器。训练循环需要手动编写,但代码量不大。 ## MLX 与主流工具对比:PyTorch 和 JAX 差在哪 在 Mac 上,MLX 的直接对手是 PyTorch 和 JAX。三者各有侧重。 | 特性维度 | 统一内存 | API 熟悉度 | 动态图 | 生态成熟度 | Mac 优化 | | :--- | --- | --- | --- | --- | --- | | MLX | ✓ | NumPy 风格 | ✓ | 较弱 | 深度优化 | | PyTorch | ✗ | 自成一派 | ✓ | 强 | 一般 | | JAX | ✗ | NumPy 风格 | 部分 | 中等 | 一般 | 关键在于统一内存。PyTorch 和 JAX 在 Mac 上仍需要显存拷贝,MLX 则省去这一步。 ### 统一内存 vs 显存拷贝:MLX 与 PyTorch 的核心差异 PyTorch 在 Mac 上使用 MPS 后端时,数据仍要在 CPU 和 GPU 之间拷贝。MLX 的数组存在共享内存中,操作无需移动数据。 这带来两个实际好处:训练速度更快,内存占用更低。尤其对大模型,差异更明显。 ### 生态成熟度:PyTorch 的库更多,MLX 在追赶 PyTorch 有庞大的第三方库和预训练模型。MLX 的生态还小,但正在增长。 > 目前 MLX 有 mlx-lm、mlx-vlm 等官方接口,以及 LM Studio 等第三方工具。但与 PyTorch 相比,模型数量和社区支持仍有差距。 ## MLX 真实用户案例:训练、推理、科研 - **本地大模型推理**:通过 LM Studio 或 mlx-engine 运行 LLM。 - **图像与视频处理**:目标检测、行为识别等计算机视觉任务。 - **科学研究**:物理模拟、分子动力学、基因序列分析。 - **数据分析**:高效处理大规模数据集。 这些场景都受益于统一内存和惰性计算。 ### 本地大模型推理:LM Studio 与 mlx-engine LM Studio 是流行的本地模型运行工具。它的 MLX 后端基于 mlx-engine,针对 Apple 芯片优化。 mlx-engine v1.8.5 通过 KV **缓存**检查点,显著提升重复长上下文场景的性能。基准测试显示,并行聊天吞吐量提升 2.2 倍,长提示内存占用降低 **82%**。 ### 图像与视频处理:目标检测与行为识别 MLX 可用于构建图像分类和视频分析模型。目标检测、行为识别等任务都能在 Mac 上高效运行。 统一内存让大尺寸图像和视频数据无需频繁拷贝,处理速度更快。 ## MLX 用户价值:训练速度与内存占用的实际收益 MLX 的核心价值在于效率。统一内存减少数据搬运,惰性计算降低内存占用。 - **训练速度**:省去 CPU/GPU 拷贝,迭代更快。 - **内存占用**:惰性计算避免中间数组,KV 缓存优化进一步降低。 - **易用性**:NumPy 风格 API,学习成本低。 ### 训练速度提升:统一内存减少数据搬运 传统框架中,每个训练步骤都要在 CPU 和 GPU 之间传输数据。MLX 没有这一步。 数据留在共享内存里,操作直接在设备上执行。这缩短了每个迭代的时间,尤其对数据密集型任务。 ### 内存占用降低:惰性计算与 KV 缓存优化 惰性计算意味着数组只在需要时创建。这避免了不必要的中间结果存储。 在 **LLM** 推理中,KV 缓存是内存大户。mlx-engine v1.8.5 的磁盘缓存方案,让长提示内存占用降低 **82%**。 ## MLX 的更新频率:从 v1.8.5 看迭代节奏 MLX 相关生态更新活跃。近期 mlx-engine 和量化方案都有重要进展。 - mlx-engine v1.8.5:KV 缓存检查点,持续批处理。 - JANG 量化:2-bit 混合精度跑 230B 模型。 - MLX Studio:桌面端集成应用。 ### mlx-engine v1.8.5:KV 缓存检查点与持续批处理 LM Studio 发布的 mlx-engine v1.8.5 带来两个关键更新。 一是 KV 缓存检查点,让重复长上下文**工作流**性能大幅提升。二是 VLM 请求的持续批处理,图像请求处理速度提升 3.5 倍。 ### JANG 量化方案:2-bit 混合精度跑 230B 模型 JANG 被称为“MLX 的 GGUF”。它采用混合精度量化,不同层给不同精度。 以 230B 参数的 **MiniMax** M2.5 为例:MLX 4-bit 只有 **26.5%** MMLU,而 JANG 2-bit 混合达到 **74%**,体积还更小。 ## MLX 总体评价:适合谁,不适合谁 MLX 是 Apple Silicon 上机器学习的有力选择。但并非人人适用。 - **适合**:Mac 用户、NumPy/PyTorch 经验者、本地推理需求。 - **不适合**:需要庞大第三方库、跨平台部署、极致生态支持的用户。 ### 推荐指数:Apple Silicon 开发者的优先选择 如果你在 Mac 上做机器学习,MLX 值得优先考虑。统一内存和惰性计算带来实际效率提升。 但如果你依赖大量 PyTorch 专属库,或需要跨平台训练,PyTorch 仍是更稳妥的选择。 ## MLX 集成生态:API、插件与第三方工具 MLX 的生态正在扩展。官方提供高级接口,第三方工具也在增加。 - **mlx-lm**:语言模型接口。 - **mlx-vlm**:视觉语言模型接口。 - **LM Studio**:桌面端推理应用。 - **MLX Studio**:另一款桌面应用。 ### mlx-lm 与 mlx-vlm:语言与视觉模型接口 mlx-lm 和 mlx-vlm 是官方提供的高级包。它们封装了模型加载、推理等常见操作。 用户无需从头编写模型代码,几行就能跑起 LLM 或 VLM。 ### LM Studio 与 MLX Studio:桌面端集成 LM Studio 是流行的本地模型工具,其 MLX 后端基于 mlx-engine。MLX Studio 则提供更友好的界面。 这些工具让非技术用户也能在 Mac 上运行大模型。 ## 参考资料 - [知乎](https://zhuanlan.zhihu.com/p/670750303)(2023-12-06)— 介绍 MLX 的特性与安装方式。 - [CSDN](https://m.blog.csdn.net/gitblog_00283/article/details/141807083)(2024-09-02)— 提及 MLX Chat 与 mlx-lm 的集成。 - [网易](https://m.163.com/dy/article/KPF7R9A60519EA27.html)(2026-04-01)— 报道 JANG 量化方案与 MLX Studio。 ---