# Guide de déploiement et d'inférence vLLM

### :computer:Installation de vLLM

Pour les GPU NVIDIA, utilisez uv et exécutez :

```bash
pip install --upgrade pip
pip install uv
uv pip install -U vllm --torch-backend=auto
```

Pour les GPU AMD, veuillez utiliser l'image Docker nightly : `rocm/vllm-dev:nightly`

Pour la branche nightly pour les GPU NVIDIA, exécutez :

{% code overflow="wrap" %}

```bash
pip install --upgrade pip
pip install uv
uv pip install -U vllm --torch-backend=auto --extra-index-url https://wheels.vllm.ai/nightly
```

{% endcode %}

Voir [docs vLLM](https://docs.vllm.ai/en/stable/getting_started/installation) pour plus de détails

### :truck:Déploiement des modèles vLLM

Après avoir sauvegardé votre fine-tune, vous pouvez simplement faire :

```bash
vllm serve unsloth/gpt-oss-120b
```

### :fire\_engine:Options, arguments et flags du serveur de déploiement vLLM

Quelques flags importants du serveur à utiliser se trouvent à [#vllm-deployment-server-flags-engine-arguments-and-options](#vllm-deployment-server-flags-engine-arguments-and-options "mention")

### 🦥Déploiement des finetunes Unsloth dans vLLM

Après le fine-tuning [fine-tuning-llms-guide](https://unsloth.ai/docs/fr/commencer/fine-tuning-llms-guide "mention") ou en utilisant nos notebooks à [unsloth-notebooks](https://unsloth.ai/docs/fr/commencer/unsloth-notebooks "mention"), vous pouvez sauvegarder ou déployer vos modèles directement via vLLM dans un seul flux de travail. Un exemple de script de finetuning Unsloth par ex :

```python
from unsloth import FastLanguageModel
import torch
model, tokenizer = FastLanguageModel.from_pretrained(
    model_name = "unsloth/gpt-oss-20b",
    max_seq_length = 2048,
    load_in_4bit = True,
)
model = FastLanguageModel.get_peft_model(model)
```

**Pour sauvegarder en 16 bits pour vLLM, utilisez :**

{% code overflow="wrap" %}

```python
model.save_pretrained_merged("finetuned_model", tokenizer, save_method = "merged_16bit")
## OU pour téléverser sur HuggingFace :
model.push_to_hub_merged("hf/model", tokenizer, save_method = "merged_16bit", token = "")
```

{% endcode %}

**Pour sauvegarder seulement les adaptateurs LoRA**, utilisez soit :

```python
model.save_pretrained("finetuned_lora")
tokenizer.save_pretrained("finetuned_lora")
```

Ou utilisez simplement notre fonction intégrée pour le faire :

{% code overflow="wrap" %}

```python
model.save_pretrained_merged("finetuned_model", tokenizer, save_method = "lora")
## OU pour téléverser sur HuggingFace
model.push_to_hub_merged("hf/model", tokenizer, save_method = "lora", token = "")
```

{% endcode %}

Pour fusionner en 4 bits afin de charger sur HuggingFace, appelez d'abord `merged_4bit`. Puis utilisez `merged_4bit_forced` si vous êtes certain de vouloir fusionner en 4 bits. Je vous le déconseille fortement, sauf si vous savez ce que vous allez faire avec le modèle 4 bits (par ex. pour l'entraînement DPO ou pour le moteur d'inférence en ligne de HuggingFace)

{% code overflow="wrap" %}

```python
model.save_pretrained_merged("finetuned_model", tokenizer, save_method = "merged_4bit")
## Pour téléverser sur HuggingFace :
model.push_to_hub_merged("hf/model", tokenizer, save_method = "merged_4bit", token = "")
```

{% endcode %}

Puis pour charger le modèle finetuné dans vLLM dans un autre terminal :

```bash
vllm serve finetuned_model
```

Vous devrez peut-être fournir le chemin complet si ce qui précède ne fonctionne pas, par ex :

```bash
vllm serve /mnt/disks/daniel/finetuned_model
```

Voir autre contenu :

### [vllm-engine-arguments](https://unsloth.ai/docs/fr/bases/inference-and-deployment/vllm-guide/vllm-engine-arguments "mention")

### [lora-hot-swapping-guide](https://unsloth.ai/docs/fr/bases/inference-and-deployment/vllm-guide/lora-hot-swapping-guide "mention")
