Skip to main content
Vous avez installé MLX. L’objectif maintenant est simple : lancer un modèle, poser une question, puis comprendre les trois modes d’usage les plus utiles.

1. Tester en ligne de commande

Commencez avec la CLI. C’est le moyen le plus rapide de vérifier que tout fonctionne.
mlx_lm.generate \
  --model mlx-community/Llama-3.2-3B-Instruct-4bit \
  --prompt "Explique la différence entre MLX et Foundation Models."
Si la commande aboutit, votre environnement est prêt.

Options utiles

OptionÀ quoi elle sert
--modelChoisir le modèle Hugging Face ou un dossier local
--promptFournir la demande à exécuter
--max-tokensLimiter la longueur de la réponse
--tempRendre la génération plus stable ou plus créative

2. Passer en mode chat

Si vous voulez conserver le contexte entre plusieurs messages, utilisez mlx_lm.chat :
mlx_lm.chat --model mlx-community/Llama-3.2-3B-Instruct-4bit
Ce mode est pratique pour :
  • tester plusieurs prompts sans recharger le modèle
  • comparer le comportement d’un modèle
  • simuler une conversation avant de l’intégrer dans une app

3. Utiliser mlx-lm en Python

Quand la CLI devient trop limitée, passez à l’API Python :
from mlx_lm import load, generate

model, tokenizer = load("mlx-community/Llama-3.2-3B-Instruct-4bit")

response = generate(
    model,
    tokenizer,
    prompt="Explique la mémoire unifiée d'Apple Silicon.",
    max_tokens=250,
)

print(response)

Avec un modèle de type chat

Pour les modèles instruction ou chat, appliquez le template du tokenizer :
from mlx_lm import load, generate

model, tokenizer = load("mlx-community/Mistral-7B-Instruct-v0.3-4bit")

messages = [
    {"role": "system", "content": "Tu réponds de façon concise."},
    {"role": "user", "content": "Quand utiliser LoRA ?"},
]

prompt = tokenizer.apply_chat_template(
    messages,
    tokenize=False,
    add_generation_prompt=True,
)

response = generate(model, tokenizer, prompt=prompt, max_tokens=300)
print(response)

4. Choisir un premier modèle raisonnable

Pour débuter, ne cherchez pas “le meilleur modèle” dans l’absolu. Choisissez un modèle qui rentre confortablement dans la mémoire de votre machine.

3B ou 4B instruct

Idéal pour valider un setup, écrire des scripts et faire des tests rapides.

7B instruct

Bon compromis pour un usage général sur une machine avec un peu plus de marge.

Modèles plus grands

À réserver aux machines avec beaucoup de mémoire unifiée et à des besoins réels.

Versions 4-bit

Le meilleur point de départ dans la plupart des cas.
Vous trouverez des exemples concrets dans MLX Community.

5. Convertir un modèle Hugging Face en format MLX

Si le modèle qui vous intéresse n’existe pas déjà côté mlx-community, vous pouvez le convertir :
mlx_lm.convert \
  --hf-path microsoft/Phi-3-mini-4k-instruct \
  -q \
  --q-bits 4 \
  --mlx-path ./my-mlx-model
Vous obtenez un dossier local utilisable ensuite avec mlx_lm.generate.

6. Exposer un serveur local compatible API

Si votre app Swift, votre frontend ou un autre outil doit parler à un modèle local via HTTP, lancez le serveur intégré :
mlx_lm.server \
  --model mlx-community/Llama-3.2-3B-Instruct-4bit \
  --port 8080
Puis consommez-le avec un client compatible :
from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:8080/v1",
    api_key="not-used",
)

response = client.chat.completions.create(
    model="mlx-community/Llama-3.2-3B-Instruct-4bit",
    messages=[{"role": "user", "content": "Bonjour"}],
)

print(response.choices[0].message.content)

La bonne suite selon votre objectif

  • Si vous voulez comparer plusieurs backends locaux, allez vers LLMs locaux sur Mac.
  • Si vous voulez fine-tuner un modèle, commencez par LoRA.
  • Si vous voulez intégrer un modèle dans une app Swift, lisez Intégration Swift.

Étape suivante : LLMs locaux sur Mac

Comparer MLX, Ollama, llama.cpp et les options Swift.