# Comment fine-tuner des LLMs sur Windows avec Unsloth (guide étape par étape)

Vous pouvez désormais affiner des modèles directement sur votre appareil Windows local sans WSL en utilisant [Unsloth](https://github.com/unslothai/unsloth). Pour ce guide, il existe 3 méthodes principales que vous pouvez utiliser ([Conda](#method-1-windows-via-conda), [Docker](#method-2-docker) et [WSL](#method-3-wsl)).\
Si PyTorch est déjà installé sur Windows, `pip install unsloth` devrait fonctionner. Sinon, suivez nos guides ci-dessous :

<a href="#method-1-windows-via-conda" class="button secondary">Tutoriel Conda</a><a href="#method-2-docker" class="button secondary">Tutoriel Docker</a><a href="#method-3-wsl" class="button secondary">Tutoriel WSL</a>

### Unsloth Studio

Nous avons lancé une nouvelle interface web appelée [Unsloth Studio](https://unsloth.ai/docs/fr/nouveau/studio/install) qui fonctionne directement sur Windows :

```bash
irm https://unsloth.ai/install.ps1 | iex
```

Utilisez la même commande pour mettre à jour ou utiliser `unsloth studio update`.

Puis pour lancer à chaque fois :

```bash
unsloth studio -H 0.0.0.0 -p 8888
```

Pour des instructions d'installation et des exigences détaillées pour Unsloth Studio, [consultez notre guide](https://unsloth.ai/docs/fr/nouveau/studio/install).

Voici les instructions d'installation pour le **Unsloth Core**:

### Méthode #1 - Windows via Conda :

{% stepper %}
{% step %}
**Installez Miniconda (ou Anaconda)**

Téléchargez Anaconda [ici](https://www.anaconda.com/download). Nous vous suggérons d'utiliser [Miniconda](https://www.anaconda.com/docs/getting-started/miniconda/install#quickstart-install-instructions). Pour l'utiliser, ouvrez d'abord PowerShell - recherchez « Windows PowerShell » dans le menu Démarrer :

<figure><img src="https://550366147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FvCgJ3hTR5ChVmCR1ndAh%2Fimage.png?alt=media&#x26;token=bcabe210-793f-40ae-944a-a349dddc8c35" alt="" width="375"><figcaption></figcaption></figure>

Ensuite, PowerShell s'ouvrira :

<figure><img src="https://550366147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2Fm7J0b8Qz5W2aGktt3KA9%2Fimage.png?alt=media&#x26;token=f84327e4-408f-492c-a909-982ed458f393" alt="" width="375"><figcaption></figcaption></figure>

Ensuite, copiez-collez le texte ci-dessous : CTRL+C, puis collez-le dans PowerShell avec CTRL+V :

{% code overflow="wrap" %}

```ps
Invoke-WebRequest -Uri "https://repo.anaconda.com/miniconda/Miniconda3-latest-Windows-x86_64.exe" -OutFile ".\miniconda.exe"
Start-Process -FilePath ".\miniconda.exe" -ArgumentList "/S" -Wait
del .\miniconda.exe
```

{% endcode %}

Acceptez l'avertissement et cliquez sur « Coller quand même » puis attendez.

<figure><img src="https://550366147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FZCFxO1FrYGk7sV7AmCe8%2Fimage.png?alt=media&#x26;token=f753dbdb-efa9-462c-875b-0a18509a10cf" alt="" width="375"><figcaption></figcaption></figure>

Le programme d'installation se télécharge comme ci-dessous :

<figure><img src="https://550366147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2F2TzsqlGZyUI4wBT0hXW9%2Fimage.png?alt=media&#x26;token=a680690a-3179-4525-bf83-0163424b5ddc" alt="" width="375"><figcaption></figcaption></figure>

Après l'installation, ouvrez **Anaconda Powershell Prompt** pour utiliser Miniconda via Démarrer -> Recherchez-le :

<figure><img src="https://550366147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FWoQSFFfmB26WT6BdzrvJ%2Fimage.png?alt=media&#x26;token=747c6c4e-f676-4927-abad-cb667e757309" alt="" width="375"><figcaption></figcaption></figure>

Ensuite, vous verrez :

<figure><img src="https://550366147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FNTTeflwW9Gw7lxJdCUcy%2Fimage.png?alt=media&#x26;token=77f093b7-9fd5-47f2-856d-18f238f5a95e" alt="" width="375"><figcaption></figcaption></figure>
{% endstep %}

{% step %}
**Créer un environnement conda**

```bash
conda create --name unsloth_env python==3.12 -y
conda activate unsloth_env
```

**Vous verrez :**

<figure><img src="https://550366147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FEFYV6IhOeXIDbzxYHzEJ%2Fimage.png?alt=media&#x26;token=e3452b73-cfd2-4148-a735-cfe400369c17" alt="" width="375"><figcaption></figcaption></figure>
{% endstep %}

{% step %}
**Vérifiez `nvidia-smi` pour confirmer que vous avez un GPU, et repérez la version de CUDA**

Après avoir tapé `nvidia-smi` dans PowerShell, vous devriez voir quelque chose comme ci-dessous. Si vous n'avez pas `nvidia-smi` ou si le message ci-dessous ne s'affiche pas, vous devez réinstaller les [pilotes NVIDIA](https://www.nvidia.com/en-us/drivers/).

<figure><img src="https://550366147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2F1CMAzx7LX8LEc8GHy1I9%2Fimage.png?alt=media&#x26;token=a0ad52e3-be17-4dc4-ae97-ba400a639098" alt="" width="375"><figcaption></figcaption></figure>
{% endstep %}

{% step %}
**Installer PyTorch**

Lors de l'exécution de `nvidia-smi` vous verrez en haut à droite : « CUDA Version: 13.0 ». Installez PyTorch dans PowerShell via. Remplacez `130` par votre version CUDA - assurez-vous que la [version existe](https://pytorch.org/) et correspond à la version de votre pilote CUDA.

{% code overflow="wrap" %}

```bash
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu130
```

{% endcode %}

Vous verrez :

<figure><img src="https://550366147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2Fo4aNeIbILGYvfpjYa1X2%2Fimage.png?alt=media&#x26;token=444d6907-04e0-4d5e-8de5-d8cdcaf85364" alt="" width="563"><figcaption></figcaption></figure>

Essayez d'exécuter ceci dans Python via `python` une fois PyTorch installé :

{% code overflow="wrap" %}

```python
import torch
print(torch.cuda.is_available())
A = torch.ones((10, 10), device = "cuda")
B = torch.ones((10, 10), device = "cuda")
A @ B
```

{% endcode %}

Vous devriez voir une matrice de 10. Vérifiez également que la première valeur est True.

<figure><img src="https://550366147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FJkf39Nyfgyt4QmTLGhOx%2Fimage.png?alt=media&#x26;token=2d1a16a6-e524-461a-ac75-a24b6bda333f" alt="" width="375"><figcaption></figcaption></figure>
{% endstep %}

{% step %}
**Installer Unsloth (seulement si PyTorch fonctionne !)**

{% hint style="danger" %}
**Confirmez que PyTorch fonctionne correctement et s'exécute - sinon PyTorch est cassé et cela signifie malheureusement que votre machine Windows pourrait nécessiter une réinstallation des pilotes CUDA.**
{% endhint %}

Dans PowerShell (après avoir quitté Python via `exit()` , faites-le et attendez :

```bash
pip install unsloth
```

{% endstep %}

{% step %}
**Vérifier qu'Unsloth fonctionne**

Utilisez maintenant n'importe quel script dans [unsloth-notebooks](https://unsloth.ai/docs/fr/commencer/unsloth-notebooks "mention") (enregistrez-le dans un fichier .py), ou utilisez le script de base ci-dessous :

{% code expandable="true" %}

```python
from unsloth import FastLanguageModel, FastModel
import torch
from trl import SFTTrainer, SFTConfig
from datasets import load_dataset
max_seq_length = 512
url = "https://huggingface.co/datasets/laion/OIG/resolve/main/unified_chip2.jsonl"
dataset = load_dataset("json", data_files = {"train" : url}, split = "train")

model, tokenizer = FastLanguageModel.from_pretrained(
    model_name = "unsloth/gemma-3-270m-it",
    max_seq_length = max_seq_length, # Choisissez n'importe quelle valeur pour un long contexte !
    load_in_4bit = True,  # Quantification 4 bits. False = LoRA 16 bits.
    load_in_8bit = False, # Quantification 8 bits
    load_in_16bit = False, # LoRA 16 bits
    full_finetuning = False, # À utiliser pour un affinement complet.
    trust_remote_code = False, # Activez pour prendre en charge les nouveaux modèles
    # token = "hf_...", # utilisez-en un si vous utilisez des modèles à accès restreint
)

# Effectuez le patching du modèle et ajoutez des poids LoRA rapides
model = FastLanguageModel.get_peft_model(
    model,
    r = 16,
    target_modules = ["q_proj", "k_proj", "v_proj", "o_proj",
                      "gate_proj", "up_proj", "down_proj",],
    lora_alpha = 16,
    lora_dropout = 0, # Prend en charge n'importe quelle valeur, mais = 0 est optimisé
    bias = "none",    # Prend en charge n'importe quelle valeur, mais = "none" est optimisé
    # [NOUVEAU] "unsloth" utilise 30 % de VRAM en moins, permet des tailles de lots 2x plus grandes !
    use_gradient_checkpointing = "unsloth", # True ou "unsloth" pour un très long contexte
    random_state = 3407,
    max_seq_length = max_seq_length,
    use_rslora = False,  # Nous prenons en charge LoRA à rang stabilisé
    loftq_config = None, # Et LoftQ
)

trainer = SFTTrainer(
    model = model,
    train_dataset = dataset,
    tokenizer = tokenizer,
    args = SFTConfig(
        max_seq_length = max_seq_length,
        per_device_train_batch_size = 2,
        gradient_accumulation_steps = 4,
        warmup_steps = 10,
        max_steps = 60,
        logging_steps = 1,
        output_dir = "outputs",
        optim = "adamw_8bit",
        seed = 3407,
        dataset_num_proc = 1,
    ),
)
trainer.train()
```

{% endcode %}

Vous devriez voir :

```bash
🦥 Unsloth : nous allons patcher votre ordinateur pour permettre un affinement gratuit 2x plus rapide.
🦥 Unsloth Zoo va maintenant tout patcher pour accélérer l'entraînement !
==((====))==  Unsloth 2026.1.4 : patching rapide de Gemma3. Transformers : 4.57.6.
   \\   /|    NVIDIA GeForce RTX 3060. Nombre de GPU = 1. Mémoire maximale : 12.0 Go. Plateforme : Windows.
O^O/ \_/ \    Torch : 2.10.0+cu130. CUDA : 8.6. Kit d'outils CUDA : 13.0. Triton : 3.6.0
\        /    Bfloat16 = VRAI. FA [Xformers = 0.0.34. FA2 = Faux]
 "-____-"     Licence gratuite : http://github.com/unslothai/unsloth
Unsloth : le téléchargement rapide est activé - ignorez les barres de téléchargement de couleur rouge !
Unsloth : Gemma3 ne prend pas en charge SDPA - passage en mode eager rapide.
Unsloth : mise de `model.base_model.model.model` en mode nécessitant des gradients
Unsloth : Tokenizing ["text"] (num_proc=1):   0%|                 | 0/210289 [00:00<?, ? examples/s]�  Unsloth : nous allons patcher votre ordinateur pour permettre un affinement gratuit 2x plus rapide.
🦥 Unsloth : nous allons patcher votre ordinateur pour permettre un affinement gratuit 2x plus rapide.
```

Et l'entraînement :

<figure><img src="https://550366147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FfJalYwpN7ffC88J2dsOQ%2Fimage.png?alt=media&#x26;token=e2129773-9255-4983-b52e-51de5729a7ab" alt="" width="375"><figcaption></figcaption></figure>
{% endstep %}
{% endstepper %}

### Méthode #2 - Docker :

Docker est peut-être le moyen le plus simple pour les utilisateurs de Windows de commencer avec Unsloth, car aucune configuration ni problème de dépendance n'est nécessaire. [**`unsloth/unsloth`**](https://hub.docker.com/r/unsloth/unsloth) est la seule image Docker d'Unsloth. Pour [Blackwell](https://unsloth.ai/docs/fr/blog/fine-tuning-llms-with-blackwell-rtx-50-series-and-unsloth) et les GPU de série 50, utilisez cette même image - aucune image distincte n'est nécessaire.

Pour les instructions d'installation, veuillez suivre notre [guide Docker](https://unsloth.ai/docs/fr/blog/how-to-fine-tune-llms-with-unsloth-and-docker), sinon voici un guide de démarrage rapide :

{% stepper %}
{% step %}
**Installez Docker et NVIDIA Container Toolkit.**

Installez Docker via [Linux](https://docs.docker.com/engine/install/) ou [Desktop](https://docs.docker.com/desktop/) (autre). Puis installez [NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html#installation):

```bash
export NVIDIA_CONTAINER_TOOLKIT_VERSION=1.17.8-1
sudo apt-get update && sudo apt-get install -y \
  nvidia-container-toolkit=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
  nvidia-container-toolkit-base=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
  libnvidia-container-tools=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
  libnvidia-container1=${NVIDIA_CONTAINER_TOOLKIT_VERSION}
```

{% endstep %}

{% step %}
**Lancez le conteneur.**

[**`unsloth/unsloth`**](https://hub.docker.com/r/unsloth/unsloth) est la seule image Docker d'Unsloth.

```bash
docker run -d -e JUPYTER_PASSWORD="mypassword" \
  -p 8888:8888 -p 2222:22 \
  -v $(pwd)/work:/workspace/work \
  --gpus all \
  unsloth/unsloth
```

{% endstep %}

{% step %}
**Accéder à Jupyter Lab**

Allez à [http://localhost:8888](http://localhost:8888/) et ouvrez Unsloth. Accédez aux onglets `unsloth-notebooks` pour voir les notebooks Unsloth.
{% endstep %}

{% step %}
**Commencer l'entraînement avec Unsloth**

Si vous débutez, suivez notre guide [Guide d'affinement](https://unsloth.ai/docs/fr/commencer/fine-tuning-llms-guide), [Guide RL](https://unsloth.ai/docs/fr/commencer/reinforcement-learning-rl-guide) ou contentez-vous d'enregistrer/copier n'importe lequel de nos [notebooks](https://unsloth.ai/docs/fr/commencer/unsloth-notebooks).
{% endstep %}

{% step %}
**Problèmes Docker - GPU non détecté ?**

Essayez WSL via [#method-2-wsl](#method-2-wsl "mention")
{% endstep %}
{% endstepper %}

### Méthode #3 - WSL :

{% stepper %}
{% step %}
**Installer WSL**

Ouvrez l'Invite de commandes, le Terminal, et installez Ubuntu. Définissez le mot de passe si on vous le demande.

```bash
wsl.exe --install Ubuntu-24.04
wsl.exe -d Ubuntu-24.04
```

{% endstep %}

{% step %} <mark style="color:$primary;background-color:orange;">**Si vous n'avez PAS effectué (1), donc si vous avez déjà installé WSL**</mark>**, entrez dans WSL en tapant `wsl` et ENTRÉE dans l'invite de commandes**

```bash
wsl
```

{% endstep %}

{% step %}
**Installer Python**

{% code overflow="wrap" %}

```bash
sudo apt update
sudo apt install python3 python3-full python3-pip python3-venv -y
```

{% endcode %}
{% endstep %}

{% step %}
**Installer PyTorch**

{% code overflow="wrap" %}

```bash
pip install torch torchvision --force-reinstall --index-url https://download.pytorch.org/whl/cu130
```

{% endcode %}

Si vous rencontrez des problèmes d'autorisation, utilisez `–break-system-packages` ainsi `pip install torch torchvision --force-reinstall --index-url https://download.pytorch.org/whl/cu130 –break-system-packages`
{% endstep %}

{% step %}
**Installer Unsloth et Jupyter Notebook**

{% code overflow="wrap" %}

```bash
pip install unsloth jupyter
```

{% endcode %}

Si vous rencontrez des problèmes d'autorisation, utilisez `–-break-system-packages` ainsi `pip install unsloth jupyter –-break-system-packages`
{% endstep %}

{% step %}
**Lancer Unsloth via Jupyter Notebook**

{% code overflow="wrap" %}

```bash
jupyter notebook
```

{% endcode %}

Puis ouvrez nos notebooks dans [unsloth-notebooks](https://unsloth.ai/docs/fr/commencer/unsloth-notebooks "mention")et chargez-les ! Vous pouvez également aller sur les notebooks Colab et télécharger > télécharger .ipynb puis les charger.

![](https://550366147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FVbqNWsG2CCHKJJjrnU4s%2Funknown.png?alt=media\&token=854a6d0e-fc84-4e44-bf8e-4bf254801692)
{% endstep %}
{% endstepper %}

{% hint style="warning" %}
Si vous utilisez GRPO ou prévoyez d'utiliser vLLM, actuellement vLLM ne prend pas en charge Windows directement mais uniquement via WSL ou Linux.
{% endhint %}

### **Dépannage /** Avancé

Pour **les instructions d'installation avancées** ou si vous voyez des erreurs étranges pendant les installations :

1. Installez `torch` et `triton`. Allez sur <https://pytorch.org> pour l'installer. Par exemple `pip install torch torchvision torchaudio triton`
2. Confirmez si CUDA est installé correctement. Essayez `nvcc`. Si cela échoue, vous devez installer `cudatoolkit` ou les pilotes CUDA.
3. Si vous utilisez un GPU Intel, vous devrez suivre notre [guide Windows Intel](https://unsloth.ai/docs/fr/commencer/intel#windows-only-runtime-configurations)
4. Installez `xformers` manuellement. Vous pouvez essayer d'installer `vllm` et voir si `vllm` réussit. Vérifiez si `xformers` a réussi avec `python -m xformers.info` Allez sur <https://github.com/facebookresearch/xformers>. Une autre option est d'installer `flash-attn` pour les GPU Ampere.
5. Vérifiez à nouveau que vos versions de Python, CUDA, CUDNN, `torch`, `triton`et `xformers` sont compatibles entre elles. La [matrice de compatibilité PyTorch](https://github.com/pytorch/pytorch/blob/main/RELEASE.md#release-compatibility-matrix) peut être utile.
6. Enfin, installez `bitsandbytes` et vérifiez-le avec `python -m bitsandbytes`
7. Si Unsloth ne détecte pas ou n'utilise pas votre GPU et que vous utilisez notre conteneur Docker sur Windows, votre version du kit d'outils CUDA `nvcc --version` doit correspondre à la version de CUDA affichée par nvidia-smi sur l'hôte ; la prise en charge des GPU pour les conteneurs Docker sous Windows n'est pas automatique. [Vous devez suivre le guide de Docker](https://docs.docker.com/desktop/features/gpu/).

### Désinstaller Unsloth Studio

Pour désinstaller Unsloth Studio sur Windows, suivez ces 4 étapes :

#### **1. Supprimez l'application**

* Windows (PowerShell) : `Remove-Item -Recurse -Force "$HOME\.unsloth\studio\unsloth", "$HOME\.unsloth\studio\studio"`&#x20;

Cela supprime l'application mais conserve intacts vos points de contrôle de modèle, exports, historique, cache et discussions.

#### **2. Supprimez les raccourcis et les liens symboliques**

**WSL / Windows (PowerShell) :**

```bash
Remove-Item -Force "$HOME\Desktop\Unsloth Studio.lnk"
Remove-Item -Force "$env:APPDATA\Microsoft\Windows\Start Menu\Programs\Unsloth Studio.lnk"
```

#### **3. Supprimez la commande CLI**

**WSL :**

```bash
rm -f ~/.local/bin/unsloth
```

**Windows (PowerShell) :** Le programme d'installation a ajouté le répertoire `Scripts` du venv à votre PATH utilisateur. Pour le supprimer, ouvrez Paramètres → Système → À propos → Paramètres système avancés → Variables d'environnement, recherchez `Path` dans les variables utilisateur, et supprimez l'entrée pointant vers `.unsloth\studio\...\Scripts`.

#### **4. Supprimez tout (facultatif)**

Pour supprimer également l'historique, le cache, les discussions, les points de contrôle des modèles et les exports de modèles, supprimez le dossier Unsloth entier :

* WSL, Linux : `rm -rf ~/.unsloth`
* Windows (PowerShell) : `Remove-Item -Recurse -Force "$HOME\.unsloth"`&#x20;

Notez que les fichiers de modèles HF téléchargés sont stockés séparément dans le cache Hugging Face - aucune des étapes ci-dessus ne les supprimera. Voir **Suppression des fichiers de modèle** ci-dessous si vous souhaitez récupérer cet espace disque.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://unsloth.ai/docs/fr/commencer/install/windows-installation.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
