# Déployer des modèles vers LM Studio

Vous pouvez exécuter et déployer votre LLM affiné directement dans LM Studio. [LM Studio](https://lmstudio.ai/) permet d'exécuter et de déployer facilement des **GGUF** modèles (format llama.cpp).

Vous pouvez utiliser notre [carnet LM Studio](https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/FunctionGemma_\(270M\)-LMStudio.ipynb) ou suivez les instructions ci-dessous :

1. **Exportez votre modèle affiné Unsloth vers `.gguf`**
2. **Importez / téléchargez le GGUF dans LM Studio**
3. **Chargez-le dans Chat** (ou exécutez-le derrière une API locale compatible OpenAI)

<div><figure><img src="https://550366147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FUZEwmNLcs5Oc7bIT7iXV%2Fprefinetune-unsloth.png?alt=media&#x26;token=ceb701d3-1f32-406e-a5be-2a7bde4cb4b6" alt="" width="375"><figcaption><p>Avant l'affinage dans LM Studio</p></figcaption></figure> <figure><img src="https://550366147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FvLEmVH22LQ4hjAA3SGIV%2Fpostfinetune-unsloth.png?alt=media&#x26;token=5a473857-6700-4f0a-89c6-0c72c6b507c4" alt="" width="375"><figcaption><p>Après l'affinage dans LM Studio</p></figcaption></figure></div>

### 1) Exporter en GGUF (depuis Unsloth)

Si vous avez déjà exporté un `.gguf`, passez à **Importation dans LM Studio**.

```python
# Enregistrer localement (crée des artefacts GGUF dans le dossier)
model.save_pretrained_gguf("my_model_gguf", tokenizer, quantization_method = "q4_k_m")
# model.save_pretrained_gguf("my_model_gguf", tokenizer, quantization_method = "q8_0")
# model.save_pretrained_gguf("my_model_gguf", tokenizer, quantization_method = "f16")

# Ou pousser le GGUF sur le Hugging Face Hub
model.push_to_hub_gguf("hf_username/my_model_gguf", tokenizer, quantization_method = "q4_k_m")
```

{% hint style="info" %}
`q4_k_m` est généralement la valeur par défaut pour les exécutions locales.

`q8_0` est l'optimum pour une qualité proche de la pleine précision.

`f16` est le plus grand / le plus lent, mais la précision d'origine non quantifiée.
{% endhint %}

### 2) Importer le GGUF dans LM Studio

{% tabs %}
{% tab title="Import CLI (lms import)" %}
LM Studio fournit une CLI appelée `lms` qui peut importer un `.gguf` local dans le dossier des modèles de LM Studio.

**Importer un fichier GGUF :**

```bash
lms import /path/to/model.gguf
```

**Conserver le fichier d'origine (copier au lieu de déplacer) :**

```bash
lms import /path/to/model.gguf --copy
```

<details>

<summary><strong>Cliquez pour des paramètres privés plus personnalisables</strong></summary>

**Garder le modèle à son emplacement (lien symbolique) :**

Ceci est utile pour les grands modèles stockés sur un disque dédié.

```bash
lms import /path/to/model.gguf --symbolic-link
```

**Passer les invites et choisir vous-même l'espace de noms cible :**

```bash
lms import /path/to/model.gguf --user-repo my-user/my-finetuned-models
```

**Exécution à blanc (montre ce qui va se passer) :**

```bash
lms import /path/to/model.gguf --dry-run
```

</details>

Après l'importation, le modèle devrait apparaître dans LM Studio sous **Mes modèles**.

<figure><img src="https://550366147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FqAgsPwtQv6sSLdRJi6vp%2Flms-modeldirectory-fxngemma.png?alt=media&#x26;token=ea11eaed-5684-4a0d-91fc-d540e703a54c" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Depuis Hugging Face" %}
Si vous avez poussé votre dépôt GGUF sur Hugging Face, vous pouvez le télécharger directement depuis LM Studio.

**Option A : Utiliser le téléchargeur intégré de LM Studio**

1. Ouvrez LM Studio
2. Allez au **Découvrir** onglet
3. Recherchez `hf_username/repo_name` (ou collez l'URL Hugging Face)
4. Téléchargez la quantisation que vous voulez (par ex. `Q4_K_M`)

**Option B : Utiliser le téléchargeur CLI**

```bash
# Télécharger depuis HF par nom de dépôt
lms get hf_username/my_model_gguf

# Choisir une quantification avec @
lms get hf_username/my_model_gguf@Q4_K_M
```

{% endtab %}

{% tab title="Importation manuelle (structure du dossier)" %}
Si vous ne voulez pas utiliser la CLI, vous pouvez placer le `.gguf` fichier dans la structure de répertoires de modèles attendue par LM Studio.

LM Studio s'attend à ce que les modèles ressemblent à ceci :

```
~/.lmstudio/models/
└── publisher/
    └── model/
        └── model-file.gguf
```

Exemple :

```
~/.lmstudio/models/
└── my-name/
    └── my-finetune/
        └── my-finetune-Q4_K_M.gguf
```

Puis ouvrez LM Studio et vérifiez **Mes modèles**.

**Astuce :** Vous pouvez gérer / vérifier votre répertoire de modèles depuis l'onglet **Mes modèles** dans LM Studio.
{% endtab %}
{% endtabs %}

### 3) Charger et chatter dans LM Studio

1. Ouvrez LM Studio → **Chat**
2. Ouvrez l' **chargeur de modèles**
3. Sélectionnez votre modèle importé
4. (Optionnel) ajustez les paramètres de chargement (déchargement GPU, longueur du contexte, etc.)
5. Discutez normalement dans l'interface utilisateur

### 4) Servir votre modèle affiné en tant qu'API locale (compatible OpenAI)

LM Studio peut servir votre modèle chargé derrière une API compatible OpenAI (pratique pour des applications comme Open WebUI, agents personnalisés, scripts, etc.).

{% tabs %}
{% tab title="GUI (onglet Développeur)" %}

1. Chargez votre modèle dans LM Studio
2. Allez au **Développeur** onglet
3. Démarrez le serveur local
4. Utilisez l'URL de base affichée (la valeur par défaut est généralement `http://localhost:1234/v1`)
   {% endtab %}

{% tab title="CLI (lms load + lms server start)" %}

#### 1) Lister les modèles disponibles

```bash
lms ls
```

#### 2) Chargez votre modèle (options facultatives)

```bash
lms load <model-identifier> --gpu=auto --context-length=8192
```

Remarques :

* `--gpu=1.0` signifie « essayer de décharger 100 % vers le GPU »
* Vous pouvez définir un identifiant stable :

```bash
lms load <model-identifier> --identifier="my-finetuned-model"
```

#### 3) Démarrer le serveur

```bash
lms server start --port 1234
```

{% endtab %}
{% endtabs %}

**Test rapide : lister les modèles**

```bash
curl http://localhost:1234/v1/models
```

**Exemple Python (OpenAI SDK) :**

{% code expandable="true" %}

```python
from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:1234/v1",
    api_key="lm-studio",  # LM Studio peut ne pas nécessiter de clé réelle ; ceci est un placeholder courant
)

resp = client.chat.completions.create(
    model="model-identifier-from-lm-studio",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Hello! What did I fine-tune you to do?"},
    ],
    temperature=0.7, # ajustez la température selon les besoins de votre modèle
)

print(resp.choices[0].message.content)
```

{% endcode %}

**Exemple cURL (chat completions) :**

{% code expandable="true" %}

```bash
curl http://localhost:1234/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "model-identifier-from-lm-studio",
    "messages": [
      {"role": "user", "content": "Say this is a test!"}
    ],
    "temperature": 0.7 # ajustez la température selon les besoins de votre modèle
  }'
```

{% endcode %}

{% hint style="info" %}
**Conseil de débogage :** Si vous dépannez des formats/modèles de templates, vous pouvez inspecter le *brut* prompt que LM Studio envoie au modèle en exécutant : `lms log stream`
{% endhint %}

### Dépannage

#### **Le modèle fonctionne dans Unsloth, mais la sortie dans LM Studio est du charabia / se répète**

Ceci est presque toujours un **mismatch du modèle de prompt / modèle de chat**.

LM Studio va **détecter automatiquement** le modèle de prompt à partir des métadonnées GGUF quand c'est possible, mais les modèles personnalisés ou mal étiquetés peuvent nécessiter une substitution manuelle.

**Correction :**

1. Allez à **Mes modèles** → cliquez sur l'engrenage ⚙️ à côté de votre modèle
2. Trouvez **Modèle de prompt** et réglez-le pour correspondre au template avec lequel vous avez entraîné
3. Alternativement, dans la barre latérale Chat : activez la **Modèle de prompt** case (vous pouvez forcer son affichage permanent)

#### LM Studio n'affiche pas mon modèle dans « Mes modèles »

* Préférez `lms import /path/to/model.gguf`
* Ou confirmez que le fichier est dans la structure de dossiers correcte : `~/.lmstudio/models/publisher/model/model-file.gguf`

#### OOM / performances lentes

* Utilisez une quantification plus petite (ex : `Q4_K_M`)
* Réduisez la longueur du contexte
* Ajustez le déchargement GPU ("Paramètres par modèle" / paramètres de chargement de LM Studio)

***

### Plus de ressources

* [Article de blog LM Studio + Unsloth](https://lmstudio.ai/blog/functiongemma-unsloth) (Parcours FunctionGemma) :&#x20;
* LM Studuo [Docs Importer des modèles](https://lmstudio.ai/docs/app/advanced/import-model)
* LM Studio [Docs Modèle de prompt](https://lmstudio.ai/docs/app/advanced/prompt-template)
* LM Studio [Docs API compatible OpenAI](https://lmstudio.ai/docs/developer/openai-compat)
