ml-explore/mlx

MLX: An array framework for Apple silicon

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 6 minutes ago
Added to GitGenius on April 14th, 2025
Created on November 28th, 2023
Open Issues & Pull Requests: 129 (+0)
Number of forks: 2,176
Total Stargazers: 28,127 (+0)
Total Subscribers: 199 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 14.5 hours
Mean response time: 44.0 days
90th percentile: 120.7 days
Tracked items: 1,017

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 91% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Work labelled "distributed" is answered fastest, typically in about 7 hours, while "documentation" waits about 5 days. 15% of tracked open issues have had no activity in three months. Only 11% of issues opened in the past year have been closed.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 93
New in 7 days: 21
Closed in 7 days: 27
Avg open age: 232 days
Stale 30+ days: 30
Stale 90+ days: 18

Recent activity

Opened in 7 days: 13
Closed in 7 days: 22
Comments in 7 days: 24
Events in 7 days: 84

Top labels

  • bug (223)
  • enhancement (187)
  • low priority (59)
  • performance (40)
  • wontfix (32)
  • good first issue (30)
  • cuda (26)
  • distributed (23)

Detailed Description

MLX is an array framework for machine learning on Apple silicon developed by Apple's machine learning research team. The framework provides Python, C++, C, and Swift APIs designed to make machine learning research and development accessible while maintaining computational efficiency on Apple hardware.

The core design of MLX draws inspiration from established frameworks including NumPy, PyTorch, JAX, and ArrayFire. A defining characteristic of MLX is its unified memory model, where arrays live in shared memory and can be operated on by any supported device type without requiring explicit data transfers between CPU and GPU. This architectural choice distinguishes MLX from other machine learning frameworks and simplifies the development experience for researchers working with Apple silicon.

MLX implements several key technical features that support modern machine learning workflows. The framework supports composable function transformations enabling automatic differentiation, automatic vectorization, and computation graph optimization. Computations in MLX are lazy, meaning arrays are only materialized when necessary, which can improve performance and memory efficiency. The framework constructs computation graphs dynamically, allowing function arguments to change shapes without triggering slow compilations and enabling intuitive debugging practices.

The Python API closely follows NumPy conventions, making it familiar to researchers with existing NumPy experience. Higher-level packages like mlx.nn and mlx.optimizers mirror PyTorch APIs to simplify the construction of complex models. The framework supports multi-device operations, currently supporting CPU and GPU execution on Apple silicon systems.

The examples repository demonstrates MLX's capabilities across diverse applications including transformer language model training, large-scale text generation with LLaMA, fine-tuning with LoRA, image generation with Stable Diffusion, and speech recognition using OpenAI's Whisper. MLX is available on PyPI for macOS installation, with CUDA backend support for Linux and CPU-only Linux packages also provided. The framework is designed specifically for machine learning researchers, prioritizing both user-friendliness and the ability to efficiently train and deploy models while maintaining a conceptually simple design that encourages extension and experimentation with new research ideas.