Skip to main content

Avant de commencer

Dans ce guide, vous installez MLX et mlx-lm ensemble :
  • mlx fournit les briques de calcul optimisées pour Apple Silicon
  • mlx-lm ajoute les outils LLM utiles au quotidien : chargement de modèles, génération, conversion, quantification, fine-tuning et serveur local
Si votre objectif est de lancer des modèles locaux, installez les deux dès le départ. Ce guide cible le cas le plus simple et le plus courant :
  • un Mac avec Apple Silicon
  • un Python natif arm64
  • un environnement virtuel dédié au projet
Si votre terminal ou votre Python tourne sous Rosetta, vous risquez des erreurs de dépendances ou des performances incohérentes.

Vérifier l’architecture de Python

Sur Apple Silicon, vous voulez voir arm64.

Installer Python

Vous avez deux approches raisonnables :
  • la voie classique : vous installez Python vous-même, puis vous créez un venv
  • la voie uv : uv peut installer Python, créer l’environnement et piloter les commandes

Option 1 : installation classique

La voie classique convient si vous utilisez déjà :
  • l’installateur officiel Python
  • Homebrew
  • pyenv
Si python n’existe pas dans votre shell, testez d’abord :
Si python3.11 fonctionne mais pas python, vous pouvez quand même avancer avec python3.11.

Option 2 : installation via uv

Si vous partez de zéro, uv simplifie souvent le setup :
Vous obtenez ainsi une version de Python exploitable sans passer par pyenv.
Si vous débutez ou si votre shell mélange plusieurs installations Python, uv est souvent la voie la plus simple à documenter et à reproduire.

Installer MLX et mlx-lm

Méthode classique avec venv

Créez un environnement propre, activez-le, puis installez les deux paquets :
Si la commande python existe déjà correctement sur votre machine, vous pouvez aussi utiliser :

Méthode avec uv

uv peut gérer Python, l’environnement virtuel et l’installation des paquets :
Si vous préférez ne pas activer l’environnement, vous pouvez aussi travailler sans source :

Pourquoi ajouter pandas et huggingface_hub

Pour une simple génération locale, mlx et mlx-lm suffisent. Ajoutez ces paquets si vous allez plus loin :
  • pandas est pratique pour préparer, filtrer ou convertir des datasets en csv, jsonl ou tableaux avant un fine-tuning
  • huggingface_hub permet de télécharger, publier et manipuler des dépôts Hugging Face en Python
  • "huggingface_hub[cli]" ajoute les commandes CLI comme hf ou huggingface-cli, utiles pour se connecter, télécharger ou pousser un modèle depuis le terminal
Avec uv :

Vérifier l’installation

Vérifiez d’abord la couche MLX :
Puis vérifiez la couche LLM :
Au premier lancement, mlx-lm télécharge le modèle depuis Hugging Face puis le réutilise depuis le cache local.
Commencez avec un modèle compact en 4bit. Le téléchargement est plus léger et vous réduisez le risque d’erreur mémoire.

Activer et quitter l’environnement

Avec la méthode classique

Pour entrer dans l’environnement :
Pour le quitter :

Avec uv

Deux usages sont possibles :
  • si vous avez activé .venv avec source .venv/bin/activate, vous le quittez aussi avec deactivate
  • si vous utilisez uv run sans activation, vous n’avez rien à quitter

Connexion à Hugging Face

Vous pouvez travailler sans compte pour beaucoup de modèles publics. Connectez-vous seulement si vous voulez :
  • accéder à un dépôt privé
  • publier un modèle converti
  • partager un modèle fine-tuné
Si vous avez installé l’extra CLI, vous pouvez aussi utiliser :

Installer les outils Swift

Cette partie ne concerne que le cas où vous voulez charger un modèle MLX dans une app Swift. Si vous travaillez dans un Swift package, modifiez le fichier Package.swift.
Puis résolvez et compilez :
Si vous travaillez dans une app Xcode, le plus simple est d’utiliser File > Add Package Dependencies... avec :
Xcode mettra à jour la configuration du projet pour vous. Vous pouvez ensuite vérifier la résolution des dépendances en CLI :
Si vous voulez utiliser le modèle système Apple dans une app Swift, vous n’avez pas besoin d’installer MLX, mlx-lm ou mlx-swift. Dans ce cas, vous utilisez le framework FoundationModels fourni par Apple et vous travaillez directement avec LanguageModelSession, SystemLanguageModel et les APIs système. Commencez plutôt par Foundation Models.

Problèmes fréquents

Ce cas arrive quand pyenv connaît une version Python, mais qu’aucune version exploitable n’est activée pour la commande python dans votre shell actuel.Vérifiez d’abord l’état de pyenv :
Si 3.11.9 est installée mais pas activée, essayez :
Si python ne marche toujours pas dans le même terminal, initialisez pyenv dans zsh :
Pour rendre cela persistant, ajoutez pyenv à votre fichier ~/.zshrc puis rechargez votre shell :
Si vous voulez avancer tout de suite, contournez le problème avec :
Dans votre cas, cette erreur est une conséquence directe de l’étape précédente : l’environnement n’a jamais été créé, car python -m venv .venv a échoué.Vérifiez d’abord que la création du venv fonctionne :
Si le fichier existe, l’activation suivante doit fonctionner :
C’est normal si vous avez créé l’environnement avec python3.11 mais que la commande globale python n’existe pas hors du venv.Une fois .venv activé, python et pip pointent en général vers l’environnement virtuel :
Si ces commandes répondent dans le venv, vous pouvez continuer normalement.
Le paquet mlx seul ne suffit pas. La commande mlx_lm.generate vient de mlx-lm.Réinstallez explicitement les deux paquets dans l’environnement actif :
Commencez avec un modèle plus petit ou déjà quantifié en 4bit. Fermez aussi les applications qui consomment beaucoup de mémoire unifiée.
Choisissez selon votre objectif :
  • pour une app Swift qui exploite le modèle système Apple, utilisez FoundationModels et n’installez pas MLX
  • pour embarquer un modèle open weight précis dans l’app, ajoutez mlx-swift
  • pour garder l’app légère, servez le modèle à part avec mlx_lm.server puis appelez-le en HTTP

Étape suivante : prise en main rapide

Générer votre premier texte avec mlx-lm.