> ## Documentation Index
> Fetch the complete documentation index at: https://docsmlx.otterly.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Quick Start

> Lancer un premier modèle local avec MLX et mlx-lm

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.

```bash theme={null}
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                                   |
| -------------- | -------------------------------------------------- |
| `--model`      | Choisir le modèle Hugging Face ou un dossier local |
| `--prompt`     | Fournir la demande à exécuter                      |
| `--max-tokens` | Limiter la longueur de la réponse                  |
| `--temp`       | Rendre 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` :

```bash theme={null}
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 :

```python theme={null}
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 :

```python theme={null}
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.

<CardGroup cols={2}>
  <Card title="3B ou 4B instruct" icon="microchip">
    Idéal pour valider un setup, écrire des scripts et faire des tests rapides.
  </Card>

  <Card title="7B instruct" icon="bolt">
    Bon compromis pour un usage général sur une machine avec un peu plus de marge.
  </Card>

  <Card title="Modèles plus grands" icon="scale-balanced">
    À réserver aux machines avec beaucoup de mémoire unifiée et à des besoins réels.
  </Card>

  <Card title="Versions 4-bit" icon="compress">
    Le meilleur point de départ dans la plupart des cas.
  </Card>
</CardGroup>

Vous trouverez des exemples concrets dans [MLX Community](/mlx/models/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 :

```bash theme={null}
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é :

```bash theme={null}
mlx_lm.server \
  --model mlx-community/Llama-3.2-3B-Instruct-4bit \
  --port 8080
```

Puis consommez-le avec un client compatible :

```python theme={null}
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](/mlx/local-llms/overview).
* Si vous voulez fine-tuner un modèle, commencez par [LoRA](/mlx/fine-tuning/lora-guide).
* Si vous voulez intégrer un modèle dans une app Swift, lisez [Intégration Swift](/mlx/local-llms/swift-integration).

<Card title="Étape suivante : LLMs locaux sur Mac" icon="server" href="/mlx/local-llms/overview">
  Comparer MLX, Ollama, llama.cpp et les options Swift.
</Card>
