Skip to main content
PromptQuorum
Accueil/LLM locaux avancés/mlxcel : test du runtime d'inférence MLX natif en Rust
Overview & Reference

mlxcel : test du runtime d'inférence MLX natif en Rust

·11 min de lecture·Par Hans Kuepper · Fondateur de PromptQuorum, outil de dispatch multi-modèle · PromptQuorum

mlxcel est une CLI et un serveur d'inférence gratuits, open source (Apache 2.0) et natifs en Rust qui exécutent des LLM, des modèles vision-langage, des embeddings, des rerankers et des modèles audio sur Apple Silicon et NVIDIA CUDA, avec un support expérimental d'AMD ROCm sous Linux. Développé par Lablup — l'entreprise également connue pour sa plateforme d'infrastructure IA Backend.AI — il charge les checkpoints MLX SafeTensors directement via des bindings MLX C++ natifs, sans interpréteur Python dans le chemin de la requête, et s'installe via Homebrew ou une compilation depuis les sources.

mlxcel (github.com/lablup/mlxcel) est une CLI et un serveur d'inférence gratuits, open source et natifs en Rust pour les grands modèles de langage, les modèles vision-langage, les embeddings, le reranking et l'audio, développés par Lablup, l'entreprise derrière Backend.AI. Il exécute directement les checkpoints MLX SafeTensors via des bindings MLX C++ natifs, sans interpréteur Python dans le chemin de la requête et sans étape de conversion de checkpoint séparée. Ce test présente ce que l'outil fait réellement, comment l'installer et à qui il convient.

Points clés

  • mlxcel (github.com/lablup/mlxcel) est une CLI et un serveur d'inférence gratuits et open source, installables via Homebrew ou une compilation depuis les sources
  • Développé par Lablup, l'entreprise derrière la plateforme d'infrastructure IA Backend.AI
  • Sous licence Apache 2.0, confirmé via le fichier LICENSE du dépôt GitHub
  • Exécution entièrement native : Rust plus bindings MLX C++, aucun interpréteur Python dans le chemin de la requête, aucune étape de conversion de checkpoint pour les poids MLX SafeTensors
  • Expose des routes compatibles OpenAI, Anthropic et Vertex AI, ainsi qu'une surface de routes et de flags compatible llama-server, documentée et liée à une version précise
  • Cible principale : Apple Silicon (Metal) ; NVIDIA CUDA sous Linux est une cible secondaire ; AMD ROCm sous Linux est expérimental et disponible uniquement via compilation depuis les sources
  • Gère la génération de texte, les entrées vision-langage, les embeddings, le reranking et l'audio (transcription et synthèse vocale) depuis un seul runtime
  • Plus de 467 étoiles GitHub au moment de ce test

📍 En une phrase

mlxcel est une CLI et un serveur d'inférence gratuits, open source (Apache 2.0) et natifs en Rust pour LLM, modèles vision-langage, embeddings, rerankers et audio, développés par Lablup pour Apple Silicon et NVIDIA CUDA, avec un support expérimental d'AMD ROCm.

💬 En termes simples

mlxcel est un outil en ligne de commande et un serveur, écrit en Rust plutôt qu'en Python, qui charge les modèles d'IA directement depuis leurs fichiers téléchargés et les exécute sur un Mac ou une machine Linux équipée d'un GPU CUDA — sans environnement Python séparé à configurer, ni étape de conversion avant qu'un modèle ne se charge. Il utilise le même format de requête que les API d'OpenAI et d'Anthropic, ce qui permet à du code client existant de le cibler directement.

📌Remarque: Ce test s'appuie sur le dépôt GitHub de mlxcel, son README et sa documentation liée. Il ne reprend pas les comparaisons de performance publiées par mlxcel lui-même face à mlx-lm et mlx-vlm comme des faits vérifiés indépendamment — ces chiffres proviennent de la méthodologie de benchmark propre au projet et doivent être considérés comme rapportés par l'éditeur, non testés par PromptQuorum. Ce test est le complément approfondi de la fiche de mlxcel dans le Local LLM Software Directory.

Qu'est-ce que mlxcel ?

mlxcel est un runtime d'inférence natif — à la fois un outil en ligne de commande et un serveur — pour exécuter des modèles d'IA en local sans interpréteur Python dans le chemin de la requête. Son propre README GitHub le décrit comme fournissant « une inférence LLM, VLM, embedding, reranking et audio hautement performante pour les systèmes Apple Silicon et NVIDIA CUDA », exécutée via des « bindings MLX C++ natifs ».

  • Type de produit : une CLI native en Rust (mlxcel) et un serveur (mlxcel-server), distribués sous forme de binaires compilés via Homebrew ou compilés depuis les sources — pas un paquet Python, pas une application de bureau graphique
  • Créateur : Lablup Inc., une entreprise également connue pour Backend.AI, une plateforme open source d'infrastructure IA et de MLOps
  • Dépôt : github.com/lablup/mlxcel, le projet d'origine — plusieurs forks du nom existent sous d'autres identifiants GitHub, qui listent ce dépôt comme parent
  • Licence : Apache 2.0, confirmée via le fichier LICENSE du dépôt
  • Produit complémentaire : Backend.AI Go, décrit dans le propre README de mlxcel comme une interface graphique complémentaire optionnelle pour le chat local et la gestion de modèles, pouvant s'installer au-dessus de mlxcel-server

Historique du projet

Le README de mlxcel documente son historique de versions via le CHANGELOG et décrit la branche main actuelle comme la v0.7.0 plus des travaux non publiés. Le projet a traversé une série de versions taguées, ajoutant progressivement des cibles de plateforme et des fonctionnalités de serving, selon son propre changelog et README.

  1. 1
    Premières versions (jusqu'à v0.0.28) — inférence Apple Silicon en priorité
    Why it matters: Le README du projet fait référence à une campagne de benchmark antérieure (datée de mai 2026 dans le texte même du README) menée sur mlxcel 0.0.28, indiquant que le projet disposait déjà d'un benchmarking fonctionnel du décodage de texte et du prefill dans ses premières versions publiées.
  2. 2
    v0.6.0 — Décodage spéculatif avec une politique d'exactitude
    Why it matters: Selon le README, cette version a introduit une politique qui vérifie l'exactitude gloutonne avant d'activer des chemins de décodage spéculatif plus rapides, plutôt que d'utiliser toujours le noyau le plus rapide disponible sans égard à la correction du résultat.
  3. 3
    v0.7.0 — Base de la version actuelle
    Why it matters: Le README décrit cette version comme la dernière version taguée au moment de ce test, avec la prise en charge de l'architecture DeepSeek-V4, une compatibilité étendue des routes llama-server, et des corrections de dtype qui ont amélioré la performance en demi-précision sur plusieurs familles de modèles.
  4. 4
    Branche main non publiée — support AMD ROCm expérimental
    Why it matters: Au moment de ce test, le support des GPU AMD via `--features rocm` est présent sur la branche `main` mais ne fait pas encore partie d'une version taguée, selon la section « Current main highlights » du README.

Que peut-on faire avec mlxcel ?

L'ensemble des fonctionnalités de mlxcel se concentre sur l'exécution native d'un large éventail de types de modèles, avec des contrôles de serving orientés production. Voici ce que fait réellement chaque partie, selon le propre README du projet.

  • Chargement direct de checkpoints — charge directement les checkpoints MLX SafeTensors depuis Hugging Face, y compris l'organisation mlx-community, de nombreux checkpoints d'embedding SafeTensors standards se chargeant également sans étape de conversion
  • Compatibilité API multi-format — expose des routes compatibles OpenAI (Chat Completions, Completions, Responses, Embeddings, Reranking, Audio), Anthropic Messages et Vertex AI, ainsi qu'une surface de routes et de flags native compatible llama-server, documentée et liée à une version amont précise
  • Large couverture d'architectures — transformeurs denses, modèles Mixture-of-Experts épars, modèles hybrides à espace d'état, modèles vision-langage/OCR, embeddings, rerankers, speech-to-text et text-to-speech, interrogeables via la commande mlxcel arch
  • Routage multi-modèles — le mode routeur découvre les checkpoints depuis un stockage de modèles ou un répertoire, les charge à la demande et limite l'ensemble résident par éviction du moins récemment utilisé
  • Adaptateurs LoRA en direct — plusieurs adaptateurs LoRA peuvent rester non fusionnés pour basculer par requête, ou être fusionnés pour un surcoût de décodage nul, selon le README
  • Décodage spéculatif — décodage spéculatif mesuré et vérifié pour son exactitude, pour plusieurs familles de modèles (dont les chemins MTP Gemma, Qwen et GLM-4.7-Flash), exposé via un point de terminaison /v1/internal/mtp-policy
  • Contrôles opérationnels — configuration de clé API et CORS/TLS, mise en veille/réveil des modèles inactifs, grammaires GBNF, contrôles de sampling étendus, observabilité des prompts et du cache
  • Modification reproductible de modèles — modifications de poids au chargement définies en YAML (scale, add, prune, replace, interpolate) via un flag --surgery, pour une modification reproductible des checkpoints sans édition manuelle des poids

Exemples d'utilisation : trois façons d'utiliser mlxcel

Voici des workflows concrets construits à partir des fonctionnalités documentées ci-dessus de mlxcel, avec des commandes issues du propre README du projet.

Tarifs de mlxcel : mlxcel est-il vraiment gratuit ?

Oui — mlxcel n'a aucune offre payante. Il est distribué comme un projet open source gratuit, sous licence Apache 2.0, sans compte, clé de licence ni plafond d'utilisation. Le dépôt GitHub n'a pas de page de tarification.

  • Aucun coût pour installer ou exécuter mlxcel lui-même — la formule Homebrew et la compilation depuis les sources sont toutes deux gratuites
  • La licence Apache 2.0 autorise l'usage commercial, la modification et la redistribution, sous réserve des conditions standard de la licence (attribution et conservation de l'avis de licence)
  • Le seul coût réel est le matériel nécessaire pour l'exécuter (un Mac Apple Silicon ou un GPU équipé CUDA) et l'espace disque pour les modèles téléchargés séparément
  • Lablup, l'entreprise derrière mlxcel, vend également Backend.AI comme produit commercial d'infrastructure IA, mais ce test n'a trouvé aucune preuve qu'une fonctionnalité de mlxcel soit conditionnée à un achat de Backend.AI — l'application complémentaire optionnelle Backend.AI Go est décrite dans le README de mlxcel comme une interface graphique séparée et optionnelle, non comme un prérequis

mlxcel vs. llama.cpp

mlxcel et llama.cpp sont tous deux des runtimes d'inférence natifs (non-Python), mais diffèrent par le langage, la plateforme cible principale et le format de checkpoint. llama.cpp est un projet C/C++ prenant en charge le plus large éventail de matériels et de modèles quantifiés au format GGUF ; mlxcel est un projet Rust axé sur les checkpoints MLX SafeTensors, avec Apple Silicon comme cible principale et une compatibilité documentée avec les routes llama-server pour un remplacement plus simple.

Langage

mlxcel:
Rust
llama.cpp:
C/C++

Format de checkpoint principal

mlxcel:
MLX SafeTensors
llama.cpp:
GGUF

Plateforme principale

mlxcel:
Apple Silicon (Metal), CUDA secondaire
llama.cpp:
Support matériel le plus large : CPU, CUDA, Metal, Vulkan et plus

Mainteneur

mlxcel:
Lablup (entreprise Backend.AI)
llama.cpp:
Maintenu par la communauté, initié par Georgi Gerganov

Compatibilité API

mlxcel:
OpenAI, Anthropic, Vertex, plus routes compatibles llama-server
llama.cpp:
Son propre llama-server est l'implémentation de référence avec laquelle mlxcel vise la compatibilité

Il s'agit d'une comparaison factuelle des fonctionnalités basée sur la documentation propre de chaque projet, pas d'un benchmark réalisé par PromptQuorum sur l'un ou l'autre outil. mlxcel vise explicitement la compatibilité avec la surface de routes llama-server de llama.cpp, selon son propre manifeste de compatibilité b10621 documenté, plutôt que de se positionner comme une alternative indépendante.

À qui s'adresse mlxcel ?

mlxcel convient aux développeurs qui souhaitent un runtime d'inférence natif, orienté production, sans dépendance Python dans le chemin de serving.

Erreurs courantes lors de l'évaluation de mlxcel

La plupart des confusions autour de mlxcel viennent de l'hypothèse que son support de plateforme ou son format de checkpoint sont plus larges que ce qui est documenté.

Concurrents et alternatives

mlxcel se situe dans le même segment de serveurs d'inférence Apple Silicon et runtime natif que vllm-mlx, oMLX et Rapid-MLX — des projets indépendants qui exécutent des modèles locaux avec une surface API compatible OpenAI ou similaire, différant principalement par le langage (Rust vs. Python), l'étendue de plateforme et l'accent mis sur les fonctionnalités.

Tool
Réputé pour
Link
vllm-mlxBatching continu façon vLLM pour Apple Silicon, basé sur Pythonvllm-mlx Review
oMLXServeur d'inférence Apple Silicon avec cache de prompts sur SSDoMLX Review
Rapid-MLXServeur d'inférence MLX natif axé sur la vitesse de servingRapid-MLX Review
LoRAXServir des milliers d'adaptateurs LoRA depuis un modèle de base sur un GPULoRAX Review

Cette liste reflète des outils couramment comparés dans l'espace des moteurs d'inférence Apple Silicon et natifs, pas un classement indépendant de PromptQuorum — vérifier l'ensemble de fonctionnalités actuel de chaque outil avant de faire un choix.

Questions fréquemment posées

Qu'est-ce que mlxcel ?

mlxcel (github.com/lablup/mlxcel) est une CLI et un serveur d'inférence gratuits, open source (Apache 2.0) et natifs en Rust pour LLM, modèles vision-langage, embeddings, rerankers et audio, développés par Lablup.

Qui développe mlxcel ?

Lablup Inc., l'entreprise également connue pour la plateforme d'infrastructure IA et de MLOps Backend.AI.

mlxcel est-il gratuit ?

Oui. Il s'installe gratuitement via Homebrew ou une compilation depuis les sources, est sous licence Apache 2.0, et n'a ni offre payante, ni compte, ni plafond d'utilisation.

Comment installer mlxcel ?

Exécuter brew tap lablup/tap && brew install mlxcel sous macOS ou Linux, ou compiler depuis les sources avec Cargo en utilisant le flag de fonctionnalité approprié (metal, cuda, ou le rocm expérimental), selon le README du projet.

Quel matériel mlxcel prend-il en charge ?

Apple Silicon (Metal) est la cible principale. NVIDIA CUDA sous Linux est une cible secondaire prise en charge. AMD ROCm sous Linux est expérimental et disponible uniquement via compilation depuis les sources. Une compilation Linux CPU uniquement fonctionne mais n'est pas une cible de version validée.

mlxcel nécessite-t-il Python ?

Non. mlxcel est écrit en Rust et exécute les checkpoints MLX via des bindings MLX C++ natifs, sans interpréteur Python dans le chemin de la requête.

Quel format de checkpoint mlxcel utilise-t-il ?

Les checkpoints MLX SafeTensors, y compris ceux publiés sous l'organisation Hugging Face mlx-community — pas le format GGUF utilisé par llama.cpp.

mlxcel est-il compatible avec l'API de llama.cpp ?

Oui, partiellement et par conception : mlxcel documente un manifeste de compatibilité figé et lié à une version pour les routes et flags llama-server, aux côtés de ses propres points de terminaison compatibles OpenAI, Anthropic et Vertex.

mlxcel prend-il en charge les modèles audio et vision ?

Oui. Il gère les entrées vision-langage, la transcription speech-to-text et la synthèse text-to-speech (via des modèles de la famille Kokoro), en plus de la génération de texte, des embeddings et du reranking.

PromptQuorum a-t-il testé indépendamment les affirmations de benchmark de mlxcel ?

Non. Ce test s'appuie sur le propre dépôt GitHub et README de mlxcel, plutôt que sur un benchmarking pratique réalisé par PromptQuorum. Les comparaisons de performance dans le README du projet sont auto-mesurées.

Sources

← Retour aux LLM locaux avancés