mlx: MLX: An array framework for Apple silicon
MLX: Ein Array-Framework für Apple-Silizium. Zusammensetzbare Funktionstransformationen: MLX unterstützt zusammensetzbare Funktionstransformationen für automatische Differenzierung, automatische Vektorisierung und Berechnungsdiagrammoptimierung.
Auf einen Blick
- Was ist das?
- MLX: An array framework for Apple silicon. Composable function transformations: MLX supports composable function transformations for automatic differentiation, automatic vectorization, and computation graph optimization. Dieser Überblick ordnet dokumentierte Funktionen, Einstieg und Grenzen ein.
- Für wen ist es gedacht?
- Geeignet ist mlx für Nutzer, deren Aufgabe zu den im README beschriebenen Funktionen passt und die pip install mlx in einer isolierten Umgebung prüfen können. Nicht geeignet ist es als Ersatz für Anforderungen, die die Quelle nicht belegt.
- Darf ich es kommerziell nutzen?
- Ja. MIT ist eine freizügige Lizenz: Sie dürfen darauf aufbauende Software nutzen, verändern und verkaufen, solange Sie die Urheberrechts- und Lizenzhinweise beibehalten.
- Wird es noch gepflegt?
- Ja. Das Repository hat innerhalb des letzten Tages neue Commits erhalten.
- In welcher Sprache ist es geschrieben?
- Hauptsächlich C++, laut der Sprachstatistik von GitHub.
Die Antworten beruhen auf den GitHub-Daten des Projekts (zuletzt abgeglichen am 15. September 2026) und auf unserer Analyse. Sie sind keine Rechtsberatung.
TIEFGEHENDE OPEN-SOURCE-ANALYSE
mlx: pip install mlx (1)
MLX ist ein Array-Framework für maschinelles Lernen auf Apple Silicon, entwickelt von der Machine-Learning-Forschungsgruppe von Apple. Das README beschreibt es als von Machine-Learning-Forschern für Machine-Learning-Forscher entwickelt, mit dem Ziel, benutzerfreundlich und zugleich effizient für das Training und die Bereitstellung von Modellen zu sein. Das Design des Frameworks selbst wird als konzeptionell einfach beschrieben, und die Absicht ist es, Forschern die Erweiterung und Verbesserung von MLX zu erleichtern, um neue Ideen schnell zu erkunden. Das README nennt NumPy, PyTorch, Jax und ArrayFire als Designvorbilder und verweist auf einen Schnellstart-Leitfaden. Es enthält jedoch keine Leistungsbenchmarks oder Vergleiche mit anderen Frameworks.
mlx: mlx.nn (2)
Die Python-API von MLX folgt eng NumPy. Es gibt außerdem vollwertige C++-, C- und Swift-APIs, die die Python-API spiegeln. Die höherstufigen Pakete mlx.nn und mlx.optimizers bieten APIs, die eng PyTorch folgen und den Aufbau komplexerer Modelle vereinfachen sollen. Das README nennt NumPy, PyTorch, Jax und ArrayFire ausdrücklich als Designinspirationen. Es macht jedoch keine Angaben zur Versionskompatibilität mit NumPy oder PyTorch und beschreibt keine funktionalen Unterschiede zwischen den Sprach-APIs. Die C- und Swift-APIs liegen in separaten Repositories, mlx-c und mlx-swift, auf die das README lediglich verlinkt.
mlx: mlx-examples (3)
Berechnungen in MLX sind lazy: Arrays werden nur dann materialisiert, wenn sie benötigt werden. Berechnungsgraphen werden dynamisch aufgebaut, sodass eine Änderung der Formen von Funktionsargumenten keine langsamen Neukompilierungen auslöst. Das Debugging wird als einfach und intuitiv beschrieben. MLX unterstützt zusammensetzbare Funktionstransformationen für automatische Differentiation, automatische Vektorisierung und Optimierung des Berechnungsgraphen. Das README erläutert die internen Mechanismen dieser Transformationen nicht und geht auch nicht darauf ein, wie sie sich von den Transformationen in Jax unterscheiden. Die Kombination aus lazy Auswertung und dynamischem Graphenaufbau bedeutet, dass der Zeitpunkt der Materialisierung von Arrays und der Prozess des Graphenaufbaus von der Laufzeit des Frameworks bestimmt werden; die konkreten Regeln dafür sind im Quellmaterial nicht beschrieben.
mlx: unified memory (4)
Operationen können auf jedem unterstützten Gerät ausgeführt werden, derzeit CPU und GPU. MLX verwendet ein einheitliches Speichermodell: Arrays liegen im gemeinsamen Speicher, und Operationen auf MLX-Arrays können auf jedem unterstützten Gerätetyp ausgeführt werden, ohne Daten zu übertragen. Das README bezeichnet dies als bemerkenswerten Unterschied zu anderen Frameworks. Es wird jedoch nicht erklärt, wie der Speicher zwischen CPU und GPU konkret verwaltet wird und wie dieses Modell zur Unified-Memory-Architektur von Apple Silicon passt. Dass das README CPU und GPU als die derzeit unterstützten Geräte nennt, deutet auf mögliche weitere Gerätetypen hin, aber das Quellmaterial macht dazu keine weiteren Angaben.
mlx: pip install mlx (5)
MLX ist auf PyPI verfügbar. Auf macOS lautet der dokumentierte Installationsbefehl pip install mlx. Für Linux wird das CUDA-Backend mit pip install mlx[cuda] installiert, ein reines CPU-Paket mit pip install mlx[cpu]. Das README verweist für das Erstellen der C++- und Python-APIs aus dem Quellcode und für das Ausführen von Tests auf die Dokumentation. Es nennt keine Mindestversionen für macOS oder Linux, keine Hardwareanforderungen über Apple Silicon hinaus und keinen unterstützten Python-Versionsbereich. Aus den Befehlen geht hervor, dass das CUDA-Backend und das CPU-Paket auf Linux getrennt installiert werden; ob beide nebeneinander existieren können, sagt das README nicht.
mlx: mlx.nn (6)
Das README verweist auf das Repository mlx-examples mit einer Reihe von Beispielen, darunter das Training eines Transformer-Sprachmodells, großangelegte Texterzeugung mit LLaMA, Feintuning mit LoRA, Bilderzeugung mit Stable Diffusion und Spracherkennung mit OpenAIs Whisper. Diese Beispiele liegen in einem separaten Repository; das README bietet nur Links. Das Quellmaterial enthält weder den Code noch Trainingskonfigurationen oder Ergebnisse dieser Beispiele und sagt nichts darüber, auf welcher Hardware sie laufen. Die Beispiele decken natürliche Sprachverarbeitung, Bilderzeugung und Spracherkennung ab, aber das README listet nur die Links auf, ohne Anwendungshinweise.
mlx: mlx-examples (7)
Das README verlinkt die Beitragsrichtlinien und eine Dankesliste für einzelne Beitragende und nennt vier Autoren, die die Software anfänglich zu gleichen Teilen entwickelt haben: Awni Hannun, Jagrit Digani, Angelos Katharopoulos und Ronan Collobert. Es enthält einen BibTeX-Eintrag zum Zitieren von MLX. Das Projekt steht unter der MIT-Lizenz, die das Recht einräumt, Kopien der Software zu verwenden, zu kopieren, zu modifizieren, zu fusionieren, zu veröffentlichen, zu verteilen, zu unterlizenzieren und zu verkaufen. Die Lizenz besagt, dass die Software ohne jegliche Gewährleistung bereitgestellt wird. Weder das README noch die Lizenz machen Aussagen zu Sicherheit, Support oder Produktionsreife. Der Lizenztext stellt außerdem klar, dass Autoren und Rechteinhaber nicht für Ansprüche, Schäden oder andere Haftung verantwortlich sind.
Redaktionelles Fazit
Geeignet ist mlx für Nutzer, deren Aufgabe zu den im README beschriebenen Funktionen passt und die pip install mlx in einer isolierten Umgebung prüfen können. Nicht geeignet ist es als Ersatz für Anforderungen, die die Quelle nicht belegt. Vor der Entscheidung sollten pip install mlx, mlx.nn, mlx-examples mit der eigenen Plattform, Version und erwarteten Ausgabe verglichen werden.
Community-Notizen