# Qwen3-Coder : Comment l'exécuter localement

Qwen3-Coder est la nouvelle série de modèles d’agent de codage de Qwen, disponible en 30B (**Qwen3-Coder-Flash**) et 480B de paramètres. **Qwen3-480B-A35B-Instruct** atteint des performances de pointe en codage rivalisant avec Claude Sonnet-4, GPT-4.1, et [Kimi K2](/docs/fr/modeles/tutorials/kimi-k2-thinking-how-to-run-locally.md), avec 61,8 % sur Aider Polygot et la prise en charge d’un contexte de 256K (extensible à 1M) tokens.

Nous avons également mis en ligne Qwen3-Coder avec un <mark style="background-color:purple;">**contexte natif de 1M tokens**</mark> étendu par YaRN, ainsi que des versions 8 bits et 16 bits en pleine précision. [Unsloth](https://github.com/unslothai/unsloth) prend désormais aussi en charge le fine-tuning et le [RL](/docs/fr/commencer/reinforcement-learning-rl-guide.md) de Qwen3-Coder.

{% hint style="success" %}
[**MISE À JOUR :** Nous avons corrigé l’appel d’outils pour Qwen3-Coder ! ](#tool-calling-fixes)Vous pouvez désormais utiliser l’appel d’outils sans difficulté dans llama.cpp, Ollama, LMStudio, Open WebUI, Jan, etc. Ce problème était universel et affectait tous les téléversements (pas seulement Unsloth), et nous avons communiqué nos correctifs à l’équipe Qwen ! [Lire la suite](#tool-calling-fixes)
{% endhint %}

<a href="#run-qwen3-coder-30b-a3b-instruct" class="button primary">Exécuter 30B-A3B</a><a href="#run-qwen3-coder-480b-a35b-instruct" class="button secondary">Exécuter 480B-A35B</a>

{% hint style="success" %}
**Est-ce que** [**les quants dynamiques Unsloth**](/docs/fr/bases/unsloth-dynamic-2.0-ggufs.md) **fonctionnent ?** Oui, et très bien. Lors de tests tiers sur le benchmark Aider Polyglot, le **UD-Q4\_K\_XL (276 Go)** quant dynamique a presque égalé le modèle **bf16 complet (960 Go)** Qwen3-coder, avec un score de 60,9 % contre 61,8 %. [Plus de détails ici.](https://huggingface.co/unsloth/Qwen3-Coder-480B-A35B-Instruct-GGUF/discussions/8)
{% endhint %}

#### **Qwen3 Coder - Unsloth Dynamic 2.0 GGUFs**:

| Dynamic 2.0 GGUF (à exécuter)                                                                                                                                                                                                 | GGUF Dynamic 2.0 avec contexte 1M                                                                                                                                                                                                   |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <ul><li><a href="https://huggingface.co/unsloth/Qwen3-Coder-30B-A3B-Instruct-GGUF">30B-A3B-Instruct</a></li><li><a href="https://huggingface.co/unsloth/Qwen3-Coder-480B-A35B-Instruct-GGUF">480B-A35B-Instruct</a></li></ul> | <ul><li><a href="https://huggingface.co/unsloth/Qwen3-Coder-30B-A3B-Instruct-1M-GGUF">30B-A3B-Instruct</a></li><li><a href="https://huggingface.co/unsloth/Qwen3-Coder-480B-A35B-Instruct-1M-GGUF">480B-A35B-Instruct</a></li></ul> |

## 🖥️ **Exécution de Qwen3-Coder**

Voici des guides pour les [**30B-A3B**](#run-qwen3-coder-30b-a3b-instruct) et [**480B-A35B**](#run-qwen3-coder-480b-a35b-instruct) variantes du modèle.

### :gear: Paramètres recommandés

Qwen recommande ces paramètres d’inférence pour les deux modèles :

`temperature=0.7`, `top_p=0.8`, `top_k=20`, `repetition_penalty=1.05`

* <mark style="background-color:green;">**Température de 0,7**</mark>
* Top\_K de 20
* Min\_P de 0,00 (facultatif, mais 0,01 fonctionne bien, la valeur par défaut de llama.cpp est 0,1)
* Top\_P de 0,8
* <mark style="background-color:green;">**Pénalité de répétition de 1,05**</mark>
* Modèle de chat :

  ```
  <|im_start|>user
  Salut !<|im_end|>
  <|im_start|>assistant
  Combien font 1+1 ?<|im_end|>
  <|im_start|>user
  2<|im_end|>
  <|im_start|>assistant
  ```
* Contexte de sortie recommandé : 65 536 tokens (peut être augmenté). Détails ici.

**Format du modèle de chat / prompt avec les nouvelles lignes non rendues**

{% code overflow="wrap" %}

```
<|im_start|>user\nSalut !<|im_end|>\n<|im_start|>assistant\nCombien font 1+1 ?<|im_end|>\n<|im_start|>user\n2<|im_end|>\n<|im_start|>assistant\n
```

{% endcode %}

<mark style="background-color:yellow;">**Modèle de chat pour l’appel d’outils**</mark> (Obtenir la température actuelle pour San Francisco). Plus de détails ici sur la façon de formater les appels d’outils.

```
<|im_start|>user
Quelle est la température à San Francisco maintenant ? Et demain ?<|im_end|>
<|im_start|>assistant
<tool_call>\n<function=get_current_temperature>\n<parameter=location>\nSan Francisco, CA, USA
</parameter>\n</function>\n</tool_call><|im_end|>
<|im_start|>user
<tool_response>
{"temperature": 26.1, "location": "San Francisco, CA, USA", "unit": "celsius"}
</tool_response>\n<|im_end|>
```

{% hint style="info" %}
Rappel : ce modèle ne prend en charge que le mode non-réflexion et ne génère pas de `<think></think>` blocs dans sa sortie. Par ailleurs, préciser `enable_thinking=False` n’est plus requis.
{% endhint %}

### Exécuter Qwen3-Coder-30B-A3B-Instruct :

Pour atteindre des vitesses d’inférence de plus de 6 tokens par seconde avec notre quantification dynamique 4 bits, disposez d’au moins **18 Go de mémoire unifiée** (VRAM et RAM combinées) ou **18 Go de RAM système** seuls. En règle générale, votre mémoire disponible devrait être égale ou supérieure à la taille du modèle utilisé. Par exemple, la quantification UD\_Q8\_K\_XL (pleine précision), qui fait 32,5 Go, nécessitera au moins **33 Go de mémoire unifiée** (VRAM + RAM) ou **33 Go de RAM** pour des performances optimales.

**REMARQUE :** Le modèle peut fonctionner avec moins de mémoire que sa taille totale, mais cela ralentira l’inférence. La mémoire maximale n’est nécessaire que pour obtenir les vitesses les plus élevées.

Étant donné qu’il s’agit d’un modèle non-réflexion, il n’est pas nécessaire de définir `thinking=False` et le modèle ne génère pas de `<think> </think>` .

{% hint style="info" %}
Suivez les [**meilleures pratiques ci-dessus**](#recommended-settings). Elles sont les mêmes que pour le modèle 480B.
{% endhint %}

#### 🦙 Ollama : Tutoriel pour exécuter Qwen3-Coder-30B-A3B-Instruct

1. Installez `ollama` si ce n’est pas déjà fait ! Vous ne pouvez exécuter que des modèles jusqu’à 32B.

```bash
apt-get update
apt-get install pciutils -y
curl -fsSL https://ollama.com/install.sh | sh
```

2. Exécutez le modèle ! Notez que vous pouvez appeler `ollama serve`dans un autre terminal si cela échoue ! Nous incluons toutes nos corrections et les paramètres suggérés (température, etc.) dans `params` dans notre téléchargement Hugging Face !

```bash
ollama run hf.co/unsloth/Qwen3-Coder-30B-A3B-Instruct-GGUF:UD-Q4_K_XL
```

#### :sparkles: Llama.cpp : Tutoriel pour exécuter Qwen3-Coder-30B-A3B-Instruct

1. Obtenez la dernière version `llama.cpp` sur [GitHub ici](https://github.com/ggml-org/llama.cpp). Vous pouvez également suivre les instructions de compilation ci-dessous. Changez `-DGGML_CUDA=ON` en `-DGGML_CUDA=OFF` si vous n’avez pas de GPU ou si vous souhaitez simplement une inférence CPU. **Pour les appareils Apple Mac / Metal**, définissez `-DGGML_CUDA=OFF` puis continuez comme d'habitude - la prise en charge de Metal est activée par défaut.

```bash
apt-get update
apt-get install pciutils build-essential cmake curl libcurl4-openssl-dev -y
git clone https://github.com/ggml-org/llama.cpp
cmake llama.cpp -B llama.cpp/build \
    -DBUILD_SHARED_LIBS=OFF -DGGML_CUDA=ON -DLLAMA_CURL=ON
cmake --build llama.cpp/build --config Release -j --clean-first --target llama-cli llama-gguf-split
cp llama.cpp/build/bin/llama-* llama.cpp
```

2. Vous pouvez le télécharger directement depuis HuggingFace via :

   ```bash
   ./llama.cpp/llama-cli \
       -hf unsloth/Qwen3-Coder-30B-A3B-Instruct-GGUF:Q4_K_XL \
       --jinja -ngl 99 --ctx-size 32768 \
       --temp 0.7 --min-p 0.0 --top-p 0.80 --top-k 20 --repeat-penalty 1.05
   ```
3. Téléchargez le modèle via (après avoir installé `pip install huggingface_hub hf_transfer` ). Vous pouvez choisir UD\_Q4\_K\_XL ou d’autres versions quantifiées. Si les téléchargements se bloquent, voir [Hugging Face Hub, débogage XET](/docs/fr/bases/troubleshooting-and-faqs/hugging-face-hub-xet-debugging.md)

```python
# !pip install huggingface_hub hf_transfer
import os
os.environ["HF_HUB_ENABLE_HF_TRANSFER"] = "1"
from huggingface_hub import snapshot_download
snapshot_download(
    repo_id = "unsloth/Qwen3-Coder-30B-A3B-Instruct-GGUF",
    local_dir = "unsloth/Qwen3-Coder-30B-A3B-Instruct-GGUF",
    allow_patterns = ["*UD-Q4_K_XL*"],
)
```

### Exécuter Qwen3-Coder-480B-A35B-Instruct :

Pour atteindre des vitesses d’inférence de plus de 6 tokens par seconde avec notre quantification 1 bit, nous recommandons au moins **150 Go de mémoire unifiée** (VRAM et RAM combinées) ou **150 Go de RAM système** seuls. En règle générale, votre mémoire disponible devrait être égale ou supérieure à la taille du modèle utilisé. Par exemple, la quantification Q2\_K\_XL, qui fait 180 Go, nécessitera au moins **180 Go de mémoire unifiée** (VRAM + RAM) ou **180 Go de RAM** pour des performances optimales.

**REMARQUE :** Le modèle peut fonctionner avec moins de mémoire que sa taille totale, mais cela ralentira l’inférence. La mémoire maximale n’est nécessaire que pour obtenir les vitesses les plus élevées.

{% hint style="info" %}
Suivez les [**meilleures pratiques ci-dessus**](#recommended-settings). Elles sont les mêmes que pour le modèle 30B.
{% endhint %}

#### 📖 Llama.cpp : Tutoriel pour exécuter Qwen3-Coder-480B-A35B-Instruct

Pour Coder-480B-A35B, nous utiliserons spécifiquement Llama.cpp pour une inférence optimisée et une multitude d’options.

{% hint style="success" %}
Si vous voulez une **version non quantifiée en pleine précision**, utilisez nos `versions Q8_K_XL, Q8_0` ou `BF16` !
{% endhint %}

1. Obtenez la dernière version `llama.cpp` sur [GitHub ici](https://github.com/ggml-org/llama.cpp). Vous pouvez également suivre les instructions de compilation ci-dessous. Changez `-DGGML_CUDA=ON` en `-DGGML_CUDA=OFF` si vous n’avez pas de GPU ou si vous souhaitez simplement une inférence CPU.

   ```bash
   apt-get update
   apt-get install pciutils build-essential cmake curl libcurl4-openssl-dev -y
   git clone https://github.com/ggml-org/llama.cpp
   cmake llama.cpp -B llama.cpp/build \
       -DBUILD_SHARED_LIBS=OFF -DGGML_CUDA=ON -DLLAMA_CURL=ON
   cmake --build llama.cpp/build --config Release -j --clean-first --target llama-cli llama-gguf-split
   cp llama.cpp/build/bin/llama-* llama.cpp
   ```
2. Vous pouvez utiliser directement llama.cpp pour télécharger le modèle, mais je recommande généralement d’utiliser `huggingface_hub` Pour utiliser directement llama.cpp, faites :

   ```bash
   ./llama.cpp/llama-cli \
       -hf unsloth/Qwen3-Coder-480B-A35B-Instruct-GGUF:Q2_K_XL \
       --ctx-size 16384 \
       --n-gpu-layers 99 \
       -ot ".ffn_.*_exps.=CPU" \
       --temp 0.7 \\
       --min-p 0.0 \
       --top-p 0.8 \
       --top-k 20 \
       --repeat-penalty 1.05
   ```
3. Ou téléchargez le modèle via (après avoir installé `pip install huggingface_hub hf_transfer` ). Vous pouvez choisir UD-Q2\_K\_XL ou d’autres versions quantifiées..

   ```python
   # !pip install huggingface_hub hf_transfer
   import os
   os.environ["HF_HUB_ENABLE_HF_TRANSFER"] = "0" # Peut parfois entraîner une limitation de débit, donc mettre à 0 pour désactiver
   from huggingface_hub import snapshot_download
   snapshot_download(
       repo_id = "unsloth/Qwen3-Coder-480B-A35B-Instruct-GGUF",
       local_dir = "unsloth/Qwen3-Coder-480B-A35B-Instruct-GGUF",
       allow_patterns = ["*UD-Q2_K_XL*"],
   )
   ```
4. Exécutez le modèle en mode conversation et essayez n’importe quel prompt.
5. Modifier `--threads -1` pour le nombre de threads CPU, `--ctx-size` 262114 pour la longueur de contexte, `--n-gpu-layers 99` pour le déchargement GPU, selon le nombre de couches. Essayez de l’ajuster si votre GPU manque de mémoire. Supprimez-le aussi si vous n'avez qu'une inférence CPU.

{% hint style="success" %}
Utilisez `-ot ".ffn_.*_exps.=CPU"` pour décharger toutes les couches MoE sur le CPU ! Cela permet en pratique de faire tenir toutes les couches non-MoE sur 1 GPU, améliorant les vitesses de génération. Vous pouvez personnaliser l’expression régulière pour faire tenir davantage de couches si vous disposez de plus de capacité GPU. Plus d’options expliquées [ici](#improving-generation-speed).
{% endhint %}

{% code overflow="wrap" %}

```bash
./llama.cpp/llama-cli \
    --model unsloth/Qwen3-Coder-480B-A35B-Instruct-GGUF/UD-Q2_K_XL/Qwen3-Coder-480B-A35B-Instruct-UD-Q2_K_XL-00001-of-00004.gguf \
    --ctx-size 16384 \
    --n-gpu-layers 99 \
    -ot ".ffn_.*_exps.=CPU" \
    --temp 0.7 \\
    --min-p 0.0 \
    --top-p 0.8 \
    --top-k 20 \
    --repeat-penalty 1.05
```

{% endcode %}

{% hint style="success" %}
N’oubliez pas non plus la nouvelle mise à jour de Qwen3. Exécutez [**Qwen3-235B-A22B-Instruct-2507**](/docs/fr/modeles/tutorials/qwen3-next.md) localement avec llama.cpp.
{% endhint %}

#### :tools: Améliorer la vitesse de génération

Si vous avez plus de VRAM, vous pouvez essayer de décharger davantage de couches MoE, ou de décharger des couches entières.

Normalement, `-ot ".ffn_.*_exps.=CPU"` décharge toutes les couches MoE vers le CPU ! Cela permet effectivement de faire tenir toutes les couches non MoE sur 1 GPU, améliorant ainsi les vitesses de génération. Vous pouvez personnaliser l'expression regex pour faire tenir davantage de couches si vous disposez de plus de capacité GPU.

Si vous avez un peu plus de mémoire GPU, essayez `-ot ".ffn_(up|down)_exps.=CPU"` Cela décharge les couches MoE de projection montante et descendante.

Essayez `-ot ".ffn_(up)_exps.=CPU"` si vous avez encore plus de mémoire GPU. Cela décharge uniquement les couches MoE de projection montante.

Vous pouvez aussi personnaliser la regex, par exemple `-ot "\.(6|7|8|9|[0-9][0-9]|[0-9][0-9][0-9])\.ffn_(gate|up|down)_exps.=CPU"` signifie décharger les couches MoE gate, up et down, mais uniquement à partir de la 6e couche.

Le [dernière version de llama.cpp](https://github.com/ggml-org/llama.cpp/pull/14363) introduit également un mode à haut débit. Utilisez `llama-parallel`. En savoir plus [ici](https://github.com/ggml-org/llama.cpp/tree/master/examples/parallel). Vous pouvez aussi **quantifier le cache KV en 4 bits** par exemple pour réduire les déplacements VRAM / RAM, ce qui peut aussi accélérer le processus de génération.

#### :triangular\_ruler:Comment intégrer un long contexte (256K à 1M)

Pour faire tenir un contexte plus long, vous pouvez utiliser <mark style="background-color:green;">**la quantification du cache KV**</mark> pour quantifier les caches K et V en moins de bits. Cela peut aussi augmenter la vitesse de génération grâce à la réduction des transferts de données RAM / VRAM. Les options autorisées pour la quantification K (la valeur par défaut est `f16`) sont les suivantes.

`--cache-type-k f32, f16, bf16, q8_0, q4_0, q4_1, iq4_nl, q5_0, q5_1`

Vous devriez utiliser les `_1` variantes pour une précision légèrement meilleure, bien que ce soit un peu plus lent. Par exemple `q4_1, q5_1`

Vous pouvez aussi quantifier le cache V, mais vous devrez <mark style="background-color:yellow;">**compiler llama.cpp avec la prise en charge de Flash Attention**</mark> via `-DGGML_CUDA_FA_ALL_QUANTS=ON`, et utiliser `--flash-attn` pour l’activer.

Nous avons également mis en ligne des GGUF avec une longueur de contexte de 1 million via une mise à l’échelle YaRN [ici](https://unsloth.ai/docs/fr/).

## :toolbox: Correctifs pour l’appel d’outils

Nous avons réussi à corriger l’appel d’outils via `llama.cpp --jinja` spécifiquement pour le service via `llama-server`! Si vous téléchargez nos quantifications 30B-A3B, pas d’inquiétude, car elles incluent déjà nos correctifs. Pour le modèle 480B-A35B, veuillez :

1. Téléchargez le premier fichier sur <https://huggingface.co/unsloth/Qwen3-Coder-480B-A35B-Instruct-GGUF/tree/main/UD-Q2\\_K\\_XL> pour UD-Q2\_K\_XL, et remplacez votre fichier actuel
2. Utilisez `snapshot_download` comme d’habitude, comme indiqué dans <https://docs.unsloth.ai/basics/qwen3-coder-how-to-run-locally#llama.cpp-run-qwen3-tutorial>, ce qui remplacera automatiquement les anciens fichiers
3. Utilisez le nouveau modèle de chat via `--chat-template-file`. Voir [modèle de chat GGUF](https://huggingface.co/unsloth/Qwen3-Coder-480B-A35B-Instruct-GGUF?chat_template=default) ou [chat\_template.jinja](https://huggingface.co/unsloth/Qwen3-Coder-480B-A35B-Instruct/raw/main/chat_template.jinja)
4. En bonus, nous avons aussi créé un seul fichier UD-IQ1\_M de 150 Go (pour que Ollama fonctionne) à <https://huggingface.co/unsloth/Qwen3-Coder-480B-A35B-Instruct-GGUF/blob/main/Qwen3-Coder-480B-A35B-Instruct-UD-IQ1\\_M.gguf>

Cela devrait résoudre des problèmes comme : <https://github.com/ggml-org/llama.cpp/issues/14915>

### Utilisation de l’appel d’outils

Pour formater les prompts pour l’appel d’outils, prenons un exemple.

J’ai créé une fonction Python appelée `get_current_temperature` qui est une fonction censée obtenir la température actuelle pour un lieu. Pour l’instant, nous avons créé une fonction factice qui renverra toujours 21,6 degrés Celsius. Vous devriez la remplacer par une vraie fonction !!

{% code overflow="wrap" %}

```python
def get_current_temperature(location: str, unit: str = "celsius"):
    """Obtenir la température actuelle à un endroit.

    Args :
        location : L’emplacement pour lequel obtenir la température, au format "Ville, État, Pays".
        unit : L’unité dans laquelle renvoyer la température. Par défaut : "celsius". (choix : ["celsius", "fahrenheit"])

    Returns :
        la température, l’emplacement et l’unité dans un dictionnaire
    """
    return {
        "temperature": 26.1, # PRÉCONFIGURÉ -> vous pouvez modifier ceci !
        "location": location,
        "unit": unit,
    }
```

{% endcode %}

Puis utilisez le tokenizer pour créer le prompt complet :

{% code overflow="wrap" %}

```python
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("unsloth/Qwen3-Coder-480B-A35B-Instruct")

messages = [
    {'role': 'user', 'content': "Quelle est la température à San Francisco maintenant ? Et demain ?"},
    {'content': '', 'role': 'assistant', 'function_call': None, 'tool_calls': [
        {'id': 'ID', 'function': {'arguments': {"location": "San Francisco, CA, USA"}, 'name': 'get_current_temperature'}, 'type': 'function'},
    ]},
    {'role': 'tool', 'content': '{"temperature": 26.1, "location": "San Francisco, CA, USA", "unit": "celsius"}', 'tool_call_id': 'ID'},
]

prompt = tokenizer.apply_chat_template(messages, tokenize = False)
```

{% endcode %}

## :bulb:Benchmarks de performance

{% hint style="info" %}
Ces benchmarks officiels concernent le checkpoint BF16 complet. Pour l’utiliser, prenez simplement les `Q8_K_XL, Q8_0, BF16` checkpoints que nous avons mis en ligne - vous pouvez également continuer à utiliser des astuces comme le déchargement MoE pour ces versions !
{% endhint %}

Voici les benchmarks pour le modèle 480B :

#### Codage agentique

<table data-full-width="true"><thead><tr><th>Benchmark</th><th>Qwen3‑Coder 480B‑A35B‑Instruct</th><th>Kimi‑K2</th><th>DeepSeek‑V3-0324</th><th>Claude 4 Sonnet</th><th>GPT‑4.1</th></tr></thead><tbody><tr><td>Terminal‑Bench</td><td><strong>37.5</strong></td><td>30.0</td><td>2.5</td><td>35.5</td><td>25.3</td></tr><tr><td>SWE‑bench Verified avec OpenHands (500 tours)</td><td><strong>69.6</strong></td><td>–</td><td>–</td><td>70.4</td><td>–</td></tr><tr><td>SWE‑bench Verified avec OpenHands (100 tours)</td><td><strong>67.0</strong></td><td>65.4</td><td>38.8</td><td>68.0</td><td>48.6</td></tr><tr><td>SWE‑bench Verified avec Private Scaffolding</td><td>–</td><td>65.8</td><td>–</td><td>72.7</td><td>63.8</td></tr><tr><td>SWE‑bench Live</td><td><strong>26.3</strong></td><td>22.3</td><td>13.0</td><td>27.7</td><td>–</td></tr><tr><td>SWE‑bench Multilingue</td><td><strong>54.7</strong></td><td>47.3</td><td>13.0</td><td>53.3</td><td>31.5</td></tr><tr><td>Multi‑SWE‑bench mini</td><td><strong>25.8</strong></td><td>19.8</td><td>7.5</td><td>24.8</td><td>–</td></tr><tr><td>Multi‑SWE‑bench flash</td><td><strong>27.0</strong></td><td>20.7</td><td>–</td><td>25.0</td><td>–</td></tr><tr><td>Aider‑Polyglot</td><td><strong>61.8</strong></td><td>60.0</td><td>56.9</td><td>56.4</td><td>52.4</td></tr><tr><td>Spider2</td><td><strong>31.1</strong></td><td>25.2</td><td>12.8</td><td>31.1</td><td>16.5</td></tr></tbody></table>

#### Utilisation agentique du navigateur

<table data-full-width="true"><thead><tr><th>Benchmark</th><th>Qwen3‑Coder 480B‑A35B‑Instruct</th><th>Kimi‑K2</th><th>DeepSeek‑V3 0324</th><th>Claude Sonnet‑4</th><th>GPT‑4.1</th></tr></thead><tbody><tr><td>WebArena</td><td><strong>49.9</strong></td><td>47.4</td><td>40.0</td><td>51.1</td><td>44.3</td></tr><tr><td>Mind2Web</td><td><strong>55.8</strong></td><td>42.7</td><td>36.0</td><td>47.4</td><td>49.6</td></tr></tbody></table>

#### Utilisation agentique des outils

<table data-full-width="true"><thead><tr><th>Benchmark</th><th>Qwen3‑Coder 480B‑A35B‑Instruct</th><th>Kimi‑K2</th><th>DeepSeek‑V3 0324</th><th>Claude Sonnet‑4</th><th>GPT‑4.1</th></tr></thead><tbody><tr><td>BFCL‑v3</td><td><strong>68.7</strong></td><td>65.2</td><td>56.9</td><td>73.3</td><td>62.9</td></tr><tr><td>TAU‑Bench Retail</td><td><strong>77.5</strong></td><td>70.7</td><td>59.1</td><td>80.5</td><td>–</td></tr><tr><td>TAU‑Bench Airline</td><td><strong>60.0</strong></td><td>53.5</td><td>40.0</td><td>60.0</td><td>–</td></tr></tbody></table>


---

# 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/modeles/tutorials/qwen3-coder-how-to-run-locally.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.
