For the complete documentation index, see llms.txt. This page is also available as Markdown.

Fine-tuning de LLM sur GPU AMD avec le guide Unsloth

Apprenez à fine-tuner de grands modèles de langage (LLM) sur des 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).

1

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

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

2

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.

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
3

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.

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

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.

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+.

4

Installer Unsloth

Installez Unsloth avec les extras AMD :

uv pip install unsloth[amd]

⚠️ 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.

# 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"
5

Commencez à affiner avec Unsloth !

Et voilà. Essayez quelques exemples dans notre page Unsloth Notebooks !

Vous pouvez consulter nos guides dédiés d’affinage ou d’apprentissage par renforcement . Voici aussi un bref exemple :

1. Définir les variables d’environnement

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

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

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"],
)

3. Entraîner

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()

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.

🔢 Apprentissage par renforcement sur les GPU AMD

Vous pouvez utiliser notre exemple 📒gpt-oss RL auto win 2048 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.

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.

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é !

Vous pouvez aussi utiliser notre 📒notebook RL de génération automatique de noyaux é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.

L’invite que nous avons utilisée pour créer automatiquement ces noyaux était :

Le processus de RL apprend par exemple à appliquer l’algorithme de Strassen pour accélérer la multiplication de matrices en Python.

📚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) :

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 Notebooks Unsloth 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

Mis à jour

Ce contenu vous a-t-il été utile ?