# Guide d'affinage des LLM sur GPU AMD avec Unsloth

Affinez des LLM jusqu’à 2x plus vite avec \~70 % de mémoire en moins sur du matériel AMD, sans NVIDIA requis. Unsloth prend en charge AMD Radeon RDNA 2/3/3.5/4 (séries RX 6000–9000) ainsi que les GPU de centre de données, y compris le MI300X (192 Go).

{% stepper %}
{% step %}

#### **Installateur en une ligne**

**Installation la plus simple :** Passez toutes les étapes ci-dessous avec l’installateur en une ligne ; il détecte automatiquement votre GPU AMD, installe PyTorch optimisé pour ROCm, bitsandbytes et lance Unsloth Studio :

```
curl -fsSL https://unsloth.ai/install.sh | sh
```

<div data-with-frame="true"><figure><img src="/files/06d040a96aee605c3ffb21d999739351553e4ff1" alt="" width="563"><figcaption></figcaption></figure></div>

Les étapes manuelles ci-dessous s’adressent aux utilisateurs qui souhaitent une installation de la seule bibliothèque Python, sans Studio.
{% endstep %}

{% step %}

#### **Créer un nouvel environnement isolé (facultatif)**

Pour ne pas casser les paquets système, vous pouvez créer un environnement pip isolé. Pensez à vérifier la version de Python que vous avez ! Elle pourrait être `pip3`, `pip3.13`, `python3`, `python.3.13` etc.

{% code overflow="wrap" %}

```bash
apt update && apt install python3.10-venv python3.11-venv python3.12-venv python3.13-venv -y

python3 -m venv unsloth_env
source unsloth_env/bin/activate
pip install uv
```

{% endcode %}

<div data-with-frame="true"><figure><img src="/files/3556ed20e2ef8f6bdd393eefca7ec9933a63d334" alt="" width="563"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/73c5c705e1688cf50427cada0b57e8993a32e913" alt="" width="365"><figcaption></figcaption></figure></div>
{% endstep %}

{% step %}

#### **Installer PyTorch**

*Installez PyTorch avec la prise en charge de ROCm depuis* <https://pytorch.org/> Vérifiez votre version de ROCm via \`amd-smi --version\`, puis modifiez `https://download.pytorch.org/whl/rocm7.1` pour qu’elle corresponde. **ROCm 6.0 ou plus récent est requis.** ROCm 5.x et versions antérieures n’ont pas de wheels PyTorch.

{% code overflow="wrap" %}

```bash
uv pip install "torch>=2.4,<2.11.0" "torchvision<0.26.0" "torchaudio<2.11.0" \
    --index-url https://download.pytorch.org/whl/rocm7.1 --upgrade --force-reinstall
```

{% endcode %}

<div data-with-frame="true"><figure><img src="/files/b0ec8cf03815c8c78627ec10516dbd51f2f6eaf5" alt="" width="563"><figcaption></figcaption></figure></div>

*Les limites de version empêchent de récupérer par erreur torch 2.11+ qui n’a que des wheels ROCm 7.2 et cassera tout. Mettez à jour `rocm7.1` pour correspondre à votre version détectée, comme précédemment.*

Nous avons également écrit une seule commande terminal pour extraire la bonne version ROCM si cela peut aider.

```bash
ROCM_TAG="$({ command -v amd-smi >/dev/null 2>&1 && amd-smi version 2>/dev/null | awk -F'ROCm version: ' 'NF>1{split($2,a,"."); print "rocm"a[1]"."a[2]; ok=1; exit} END{exit !ok}'; } || { [ -r /opt/rocm/.info/version ] && awk -F. '{print "rocm"$1"."$2; exit}' /opt/rocm/.info/version; } || { command -v hipconfig >/dev/null 2>&1 && hipconfig --version 2>/dev/null | awk -F': *' '/HIP version/{split($2,a,"."); print "rocm"a[1]"."a[2]; ok=1; exit} END{exit !ok}'; } || { command -v dpkg-query >/dev/null 2>&1 && ver="$(dpkg-query -W -f="${Version}\n" rocm-core 2>/dev/null)" && [ -n "$ver" ] && awk -F'[.-]' '{print "rocm"$1"."$2; exit}' <<<"$ver"; } || { command -v rpm >/dev/null 2>&1 && ver="$(rpm -q --qf '%{VERSION}\n' rocm-core 2>/dev/null)" && [ -n "$ver" ] && awk -F'[.-]' '{print "rocm"$1"."$2; exit}' <<<"$ver"; })"; [ -n "$ROCM_TAG" ] && uv pip install "torch>=2.4,<2.11.0" "torchvision<0.26.0" "torchaudio<2.11.0" --index-url "https://download.pytorch.org/whl/$ROCM_TAG" --upgrade --force-reinstall
```

*Remarque : si votre version de ROCm est 7.2 ou supérieure, remplacez `$ROCM_TAG` dans la commande ci-dessus par `rocm7.1,` aucune wheel PyTorch n’existe encore pour 7.2+.*

<div data-with-frame="true"><figure><img src="/files/e882b3336a5abe59d65f49ffa24fde2c79c9c8a7" alt="" width="563"><figcaption></figcaption></figure></div>
{% endstep %}

{% step %}

#### **Installer Unsloth**

Installez Unsloth avec les extras AMD :

{% code overflow="wrap" %}

```bash
uv pip install unsloth[amd]
```

{% endcode %}

<div data-with-frame="true"><figure><img src="/files/56290c9ebec3af5e28230609ed40c5e3b789b4ca" alt="" width="547"><figcaption></figcaption></figure></div>

⚠️ Requis pour AMD : installer bitsandbytes compatible ROCm\
Tous les systèmes ROCm ont besoin d’une version préliminaire de bitsandbytes ; les versions ≤ 0.49.2 présentent un bug de décodage en 4 bits NaN sur tous les GPU AMD. Remarque : utilisez `pip` et non `uv` pour cette étape, `uv` rejette la wheel préliminaire en raison d’une incompatibilité de version dans le nom de fichier.

{% code overflow="wrap" %}

```bash
# systèmes x86_64 :
pip install --force-reinstall --no-cache-dir --no-deps \
    "https://github.com/bitsandbytes-foundation/bitsandbytes/releases/download/continuous-release_main/bitsandbytes-1.33.7.preview-py3-none-manylinux_2_24_x86_64.whl"

# systèmes aarch64 : remplacez x86_64 par aarch64 dans l’URL ci-dessus

# Solution de repli si l’URL est inaccessible :
# pip install --force-reinstall --no-cache-dir --no-deps "bitsandbytes>=0.49.1"
```

{% endcode %}

<div data-with-frame="true"><figure><img src="/files/dba5bd6e91537714f4f1978da3224b6f85d732cd" alt="" width="563"><figcaption></figcaption></figure></div>
{% endstep %}

{% step %}

#### **Commencez à affiner avec Unsloth !**

Et voilà. Essayez quelques exemples dans notre page [**Unsloth Notebooks**](/docs/fr/commencer/unsloth-notebooks.md) !

Vous pouvez consulter nos guides dédiés [d’affinage](/docs/fr/commencer/fine-tuning-llms-guide.md) ou [d’apprentissage par renforcement](/docs/fr/commencer/reinforcement-learning-rl-guide.md) . Voici aussi un bref exemple :

**1. Définir les variables d’environnement**

{% code overflow="wrap" %}

```bash
export HSA_OVERRIDE_GFX_VERSION=9.4.2  # Requis pour AMD MI300X
export HF_HUB_DISABLE_XET=1            # Corrige les problèmes de téléchargement HuggingFace sur AMD
```

{% endcode %}

***Remarque :*** *`HSA_OVERRIDE_GFX_VERSION=9.4.2` indique à ROCm de traiter votre GPU comme gfx942 (MI300X). Sans cela, certains noyaux peuvent échouer à se compiler ou à s’exécuter.*

**2. Charger et configurer le modèle**

{% code overflow="wrap" %}

```python
from unsloth import FastModel

model, tokenizer = FastModel.from_pretrained(
    model_name = "unsloth/gemma-4-26b-a4-b-it",
    max_seq_length = 2048,
    load_in_4bit = True,
)

model = FastModel.get_peft_model(
    model,
    r = 16,
    lora_alpha = 16,
    target_modules = ["q_proj", "k_proj", "v_proj", "o_proj"],
)
```

{% endcode %}

**3. Entraîner**

{% code overflow="wrap" %}

```python
from trl import SFTTrainer, SFTConfig

trainer = SFTTrainer(
    model = model,
    tokenizer = tokenizer,
    train_dataset = dataset,
    formatting_func = formatting_func,
    args = SFTConfig(
        per_device_train_batch_size = 1,
        gradient_accumulation_steps = 4,
        max_steps = 60,
        output_dir = "outputs",
        report_to = "none",
    ),
)

trainer_stats = trainer.train()
```

{% endcode %}

<div data-with-frame="true"><figure><img src="/files/7fc28a6dd0df02da2d8263b7a5153dc763f9f25b" alt="" width="375"><figcaption></figcaption></figure></div>

***Remarque :** Sur les GPU AMD, Flash Attention 2 n’est pas disponible. Unsloth revient automatiquement à Xformers, qui offre des performances équivalentes sur ROCm. L’avertissement peut être ignoré sans risque.*
{% endstep %}
{% endstepper %}

### :1234: Apprentissage par renforcement sur les GPU AMD

Vous pouvez utiliser notre exemple :ledger:[gpt-oss RL auto win 2048](https://github.com/unslothai/notebooks/blob/main/nb/AMD-gpt_oss_\(20B\)_Reinforcement_Learning_2048_Game_BF16.ipynb) sur un GPU MI300X (192 Go). L’objectif est de jouer automatiquement au jeu 2048 et de le gagner avec RL. Le LLM (gpt-oss 20b) élabore automatiquement une stratégie pour gagner au jeu 2048, et nous calculons une récompense élevée pour les stratégies gagnantes, et de faibles récompenses pour les stratégies perdantes.

{% columns %}
{% column %}

<figure><img src="/files/3cadd91340e63b0562100bb73710efc5c7359901" alt=""><figcaption></figcaption></figure>
{% endcolumn %}

{% column %}
La récompense au fil du temps augmente après environ 300 étapes ou plus !

L’objectif du RL est de maximiser la récompense moyenne pour gagner au jeu 2048.

<figure><img src="/files/35798f90e1ed33ff069b0c1ce1a8444b567044a1" alt=""><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

Nous avons utilisé une machine AMD MI300X (192 Go) pour exécuter l’exemple RL 2048 avec Unsloth, et cela a très bien fonctionné !

<div><figure><img src="/files/204d29be924da780008880c800f066cd8e3f4ee4" alt=""><figcaption></figcaption></figure> <figure><img src="/files/8a689b36bb45d149bc645e55f346f590928afe54" alt=""><figcaption></figcaption></figure></div>

Vous pouvez aussi utiliser notre :ledger:[notebook RL de génération automatique de noyaux](https://github.com/unslothai/notebooks/blob/main/nb/AMD-gpt_oss_\(20B\)_GRPO_BF16.ipynb) également avec gpt-oss pour créer automatiquement des noyaux de multiplication de matrices en Python. Le notebook propose aussi plusieurs méthodes pour contrer le reward hacking.

{% columns %}
{% column width="50%" %}
L’invite que nous avons utilisée pour créer automatiquement ces noyaux était :

{% code overflow="wrap" %}

````
Créez une nouvelle fonction rapide de multiplication de matrices en utilisant uniquement du code Python natif.
On vous donne une liste de listes de nombres.
Sortissez votre nouvelle fonction entre des backticks en utilisant le format ci-dessous :
```
python
def matmul(A, B):
    return ...
```
````

{% endcode %}
{% endcolumn %}

{% column width="50%" %}
Le processus de RL apprend par exemple à appliquer l’algorithme de Strassen pour accélérer la multiplication de matrices en Python.

<figure><img src="/files/c3c38d8a05f5c9a2f3e29ff5012d3bf334fb1a8e" alt="" width="375"><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

### :books:Notebooks AMD gratuits en un clic

AMD propose des notebooks en un clic équipés de **GPU MI300X gratuits avec 192 Go de VRAM** via leur Dev Cloud. Entraînez de grands modèles entièrement gratuitement (aucune inscription ni carte bancaire requise) :

* [Qwen3 (32B)](https://amd-ai-academy.com/github/unslothai/notebooks/blob/main/nb/Qwen3_\(32B\)_A100-Reasoning-Conversational.ipynb)
* [Llama 3.3 (70B)](https://amd-ai-academy.com/github/unslothai/notebooks/blob/main/nb/AMD-Llama3.3_\(70B\)_A100-Conversational.ipynb)
* [Qwen3 (14B)](https://amd-ai-academy.com/github/unslothai/notebooks/blob/main/nb/AMD-Qwen3_\(14B\)-Reasoning-Conversational.ipynb)
* [Mistral v0.3 (7B)](https://amd-ai-academy.com/github/unslothai/notebooks/blob/main/nb/AMD-Mistral_v0.3_\(7B\)-Alpaca.ipynb)
* [GPT OSS MXFP4 (20B)](https://amd-ai-academy.com/github/unslothai/notebooks/blob/main/nb/AMD-GPT_OSS_MXFP4_\(20B\)-Inference.ipynb) - Inférence
* [Gemma4 (E2B)](https://amd-ai-academy.com/github/unslothai/notebooks/blob/main/nb/Gemma4_\(E2B\)_Reinforcement_Learning_Sudoku_Game.ipynb) - RL Sudoku
* Unsloth Studio

{% embed url="<https://oneclickamd.ai/github/unslothai/notebooks/blob/main/nb/gpt_oss_(20B)_Reinforcement_Learning_2048_Game_BF16.ipynb>" %}

Vous pouvez utiliser n’importe quel notebook Unsloth en faisant précéder <https://amd-ai-academy.com/github/unslothai/notebooks/blob/main/nb> de [Carnets Unsloth](/docs/fr/commencer/unsloth-notebooks.md) en modifiant le lien de <https://github.com/unslothai/notebooks/blob/main/nb/AMD-gpt_oss_(20B)_Reinforcement_Learning_2048_Game_BF16.ipynb>\
à <https://amd-ai-academy.com/github/unslothai/notebooks/blob/main/nb/AMD-Gemma4_(E2B)_Reinforcement_Learning_Sudoku_Game.ipynb>

{% columns %}
{% column width="33.33333333333333%" %}

<figure><img src="/files/8538e846c2aeb1caa27f6be7a045669eb329ef82" alt=""><figcaption></figcaption></figure>
{% endcolumn %}

{% column width="66.66666666666667%" %}

<figure><img src="/files/42e3a49219a1f0ee0fab09cbf2cc45838c810c4c" alt=""><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}


---

# 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/amd.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.
