|
|
Metadata-Version: 2.4 |
|
|
Name: mlx |
|
|
Version: 0.29.2.dev20251007+0073096d |
|
|
Summary: A framework for machine learning on Apple silicon. |
|
|
Home-page: https://github.com/ml-explore/mlx |
|
|
Author: MLX Contributors |
|
|
Author-email: mlx@group.apple.com |
|
|
License: MIT |
|
|
Requires-Python: >=3.9 |
|
|
Description-Content-Type: text/markdown |
|
|
License-File: LICENSE |
|
|
Provides-Extra: dev |
|
|
Requires-Dist: nanobind==2.4.0; extra == "dev" |
|
|
Requires-Dist: numpy; extra == "dev" |
|
|
Requires-Dist: pre-commit; extra == "dev" |
|
|
Requires-Dist: setuptools>=80; extra == "dev" |
|
|
Requires-Dist: torch; extra == "dev" |
|
|
Requires-Dist: typing_extensions; extra == "dev" |
|
|
Dynamic: author |
|
|
Dynamic: author-email |
|
|
Dynamic: description |
|
|
Dynamic: description-content-type |
|
|
Dynamic: home-page |
|
|
Dynamic: license |
|
|
Dynamic: license-file |
|
|
Dynamic: provides-extra |
|
|
Dynamic: requires-python |
|
|
Dynamic: summary |
|
|
|
|
|
|
|
|
|
|
|
[**Quickstart**]( |
|
|
[**Documentation**](https://ml-explore.github.io/mlx/build/html/index.html) | |
|
|
[**Examples**]( |
|
|
|
|
|
[](https://circleci.com/gh/ml-explore/mlx) |
|
|
|
|
|
MLX is an array framework for machine learning on Apple silicon, |
|
|
brought to you by Apple machine learning research. |
|
|
|
|
|
Some key features of MLX include: |
|
|
|
|
|
- **Familiar APIs**: MLX has a Python API that closely follows NumPy. MLX |
|
|
also has fully featured C++, [C](https://github.com/ml-explore/mlx-c), and |
|
|
[Swift](https://github.com/ml-explore/mlx-swift/) APIs, which closely mirror |
|
|
the Python API. MLX has higher-level packages like `mlx.nn` and |
|
|
`mlx.optimizers` with APIs that closely follow PyTorch to simplify building |
|
|
more complex models. |
|
|
|
|
|
- **Composable function transformations**: MLX supports composable function |
|
|
transformations for automatic differentiation, automatic vectorization, |
|
|
and computation graph optimization. |
|
|
|
|
|
- **Lazy computation**: Computations in MLX are lazy. Arrays are only |
|
|
materialized when needed. |
|
|
|
|
|
- **Dynamic graph construction**: Computation graphs in MLX are constructed |
|
|
dynamically. Changing the shapes of function arguments does not trigger |
|
|
slow compilations, and debugging is simple and intuitive. |
|
|
|
|
|
- **Multi-device**: Operations can run on any of the supported devices |
|
|
(currently the CPU and the GPU). |
|
|
|
|
|
- **Unified memory**: A notable difference from MLX and other frameworks |
|
|
is the *unified memory model*. Arrays in MLX live in shared memory. |
|
|
Operations on MLX arrays can be performed on any of the supported |
|
|
device types without transferring data. |
|
|
|
|
|
MLX is designed by machine learning researchers for machine learning |
|
|
researchers. The framework is intended to be user-friendly, but still efficient |
|
|
to train and deploy models. The design of the framework itself is also |
|
|
conceptually simple. We intend to make it easy for researchers to extend and |
|
|
improve MLX with the goal of quickly exploring new ideas. |
|
|
|
|
|
The design of MLX is inspired by frameworks like |
|
|
[NumPy](https://numpy.org/doc/stable/index.html), |
|
|
[PyTorch](https://pytorch.org/), [Jax](https://github.com/google/jax), and |
|
|
[ArrayFire](https://arrayfire.org/). |
|
|
|
|
|
|
|
|
|
|
|
The [MLX examples repo](https://github.com/ml-explore/mlx-examples) has a |
|
|
variety of examples, including: |
|
|
|
|
|
- [Transformer language model](https://github.com/ml-explore/mlx-examples/tree/main/transformer_lm) training. |
|
|
- Large-scale text generation with |
|
|
[LLaMA](https://github.com/ml-explore/mlx-examples/tree/main/llms/llama) and |
|
|
finetuning with [LoRA](https://github.com/ml-explore/mlx-examples/tree/main/lora). |
|
|
- Generating images with [Stable Diffusion](https://github.com/ml-explore/mlx-examples/tree/main/stable_diffusion). |
|
|
- Speech recognition with [OpenAI's Whisper](https://github.com/ml-explore/mlx-examples/tree/main/whisper). |
|
|
|
|
|
## Quickstart |
|
|
|
|
|
See the [quick start |
|
|
guide](https://ml-explore.github.io/mlx/build/html/usage/quick_start.html) |
|
|
in the documentation. |
|
|
|
|
|
## Installation |
|
|
|
|
|
MLX is available on [PyPI](https://pypi.org/project/mlx/). To install MLX on |
|
|
macOS, run: |
|
|
|
|
|
```bash |
|
|
pip install mlx |
|
|
``` |
|
|
|
|
|
To install the CUDA backend on Linux, run: |
|
|
|
|
|
```bash |
|
|
pip install mlx[cuda] |
|
|
``` |
|
|
|
|
|
To install a CPU-only Linux package, run: |
|
|
|
|
|
```bash |
|
|
pip install mlx[cpu] |
|
|
``` |
|
|
|
|
|
Checkout the |
|
|
[documentation](https://ml-explore.github.io/mlx/build/html/install.html#) |
|
|
for more information on building the C++ and Python APIs from source. |
|
|
|
|
|
## Contributing |
|
|
|
|
|
Check out the [contribution guidelines](https://github.com/ml-explore/mlx/tree/main/CONTRIBUTING.md) for more information |
|
|
on contributing to MLX. See the |
|
|
[docs](https://ml-explore.github.io/mlx/build/html/install.html) for more |
|
|
information on building from source, and running tests. |
|
|
|
|
|
We are grateful for all of [our |
|
|
contributors](https://github.com/ml-explore/mlx/tree/main/ACKNOWLEDGMENTS.md#Individual-Contributors). If you contribute |
|
|
to MLX and wish to be acknowledged, please add your name to the list in your |
|
|
pull request. |
|
|
|
|
|
## Citing MLX |
|
|
|
|
|
The MLX software suite was initially developed with equal contribution by Awni |
|
|
Hannun, Jagrit Digani, Angelos Katharopoulos, and Ronan Collobert. If you find |
|
|
MLX useful in your research and wish to cite it, please use the following |
|
|
BibTex entry: |
|
|
|
|
|
``` |
|
|
@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}, |
|
|
} |
|
|
``` |
|
|
|