ml-explore/mlx
GitHub: ml-explore/mlx
Apple 官方推出的专为 Apple Silicon 优化的机器学习数组框架,采用统一内存模型并支持动态计算图构建。
Stars: 24144 | Forks: 1537
# MLX
[**快速开始**](#quickstart) | [**安装**](#installation) |
[**文档**](https://ml-explore.github.io/mlx/build/html/index.html) |
[**示例**](#examples)
[](https://circleci.com/gh/ml-explore/mlx)
MLX 是一个用于 Apple silicon 上机器学习的数组框架,由 Apple 机器学习研究团队提供。
MLX 的一些主要功能包括:
- **熟悉的 API**:MLX 拥有紧随 NumPy 的 Python API。MLX 还拥有功能齐全的 C++、[C](https://github.com/ml-explore/mlx-c) 和 [Swift](https://github.com/ml-explore/mlx-swift/) API,这些 API 与 Python API 高度一致。MLX 拥有像 `mlx.nn` 和 `mlx.optimizers` 这样的高级包,其 API 紧随 PyTorch,以简化构建更复杂的模型。
- **可组合的函数变换**:MLX 支持用于自动微分、自动向量化和计算图优化的可组合函数变换。
- **惰性计算**:MLX 中的计算是惰性的。数组仅在需要时才被实例化。
- **动态图构建**:MLX 中的计算图是动态构建的。更改函数参数的形状不会触发缓慢的编译,并且调试简单直观。
- **多设备**:操作可以在任何支持的设备(目前是 CPU 和 GPU)上运行。
- **统一内存**:MLX 与其他框架的一个显著区别是*统一内存模型*。MLX 中的数组位于共享内存中。对 MLX 数组的操作可以在任何支持的设备类型上执行,而无需传输数据。
MLX 由机器学习研究人员为机器学习研究人员设计。该框架旨在用户友好,但在训练和部署模型方面仍然高效。框架本身的设计在概念上也很简单。我们旨在让研究人员能够轻松扩展和改进 MLX,目标是快速探索新想法。
MLX 的设计受到 [NumPy](https://numpy.org/doc/stable/index.html)、[PyTorch](https://pytorch.org/)、[Jax](https://github.com/google/jax) 和 [ArrayFire](https://arrayfire.org/) 等框架的启发。
## 示例
[MLX 示例仓库](https://github.com/ml-explore/mlx-examples) 包含多种示例,包括:
- [Transformer 语言模型](https://github.com/ml-explore/mlx-examples/tree/main/transformer_lm) 训练。
- 使用 [LLaMA](https://github.com/ml-explore/mlx-examples/tree/main/llms/llama) 进行大规模文本生成以及使用 [LoRA](https://github.com/ml-explore/mlx-examples/tree/main/lora) 进行微调。
- 使用 [Stable Diffusion](https://github.com/ml-explore/mlx-examples/tree/main/stable_diffusion) 生成图像。
- 使用 [OpenAI 的 Whisper](https://github.com/ml-explore/mlx-examples/tree/main/whisper) 进行语音识别。
## 快速开始
请参阅文档中的[快速开始指南](https://ml-explore.github.io/mlx/build/html/usage/quick_start.html)。
## 安装
MLX 可在 [PyPI](https://pypi.org/project/mlx/) 上获取。要在 macOS 上安装 MLX,请运行:
```
pip install mlx
```
要在 Linux 上安装 CUDA 后端,请运行:
```
pip install mlx[cuda]
```
要安装仅限 CPU 的 Linux 包,请运行:
```
pip install mlx[cpu]
```
请查看[文档](https://ml-explore.github.io/mlx/build/html/install.html#)以获取有关从源代码构建 C++ 和 Python API 的更多信息。
## 引用 MLX
MLX 软件套件最初由 Awni Hannun、Jagrit Digani、Angelos Katharopoulos 和 Ronan Collobert 共同贡献开发。如果您发现 MLX 在您的研究中有用并希望引用它,请使用以下 BibTex 条目:
```
@software{mlx2023,
author = {Awni Hannun and Jagrit Digani and Angelos Katharopoulos and Ronan Collobert},
title = {{MLX}: Efficient and flexible machine learning on Apple silicon},
url = {https://github.com/ml-explore},
version = {0.0},
year = {2023},
}
```
标签:AI基础设施, Apex, Apple Silicon, Apple机器学习, autograd, C++, iOS, MacOS, Metal, MLX, M系列芯片, NumPy替代, Python, PyTorch风格, Swift, Vectored Exception Handling, 动态图, 张量计算, 懒执行, 数据擦除, 数组框架, 无后门, 本地大模型, 机器学习, 深度学习, 神经 网络, 统一内存, 自动微分, 逆向工具