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

Feinabstimmung von LLMs auf AMD-GPUs mit Unsloth – Leitfaden

Lerne, wie du große Sprachmodelle (LLMs) mit Unsloth auf AMD-GPUs feinabstimmst.

LLMs bis zu 2x schneller feinabstimmen mit ~70 % weniger Speicher auf AMD-Hardware, ganz ohne NVIDIA. Unsloth unterstützt AMD Radeon RDNA 3/3.5/4 (RX 6000–9000-Serie) sowohl unter Windows als auch Linux sowie Rechenzentrums-GPUs einschließlich der MI300X (192 GB).

1

Einzeilen-Installer

Einfachste Installation: Überspringe alle Schritte unten mit dem Einzeilen-Installer; er erkennt deine AMD-GPU automatisch, installiert ROCm-optimiertes PyTorch, bitsandbytes und startet Unsloth Studio:

Linux:

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

Windows (PowerShell):

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

Die manuellen Schritte unten sind für Nutzer gedacht, die die Unsloth-Python-Bibliothek auf AMD mit den erforderlichen Abhängigkeiten installieren möchten.

2

Erstelle eine neue isolierte Umgebung (optional)

Um keine Systempakete zu beschädigen, kannst du eine isolierte pip-Umgebung erstellen. Denk daran, zu prüfen, welche Python-Version du hast! Es könnte pip3, pip3.13, python3, python.3.13 usw.

Linux: 3.13 angezeigt; jede Version 3.11–3.13 funktioniert überall (3.10 funktioniert für manuelle Installationen

# Linux — ersetze 3.13 durch die jeweilige Version 3.10–3.13, die du hast
apt update && apt install python3.13-venv -y
python3.13 -m venv unsloth_env
source unsloth_env/bin/activate
pip install uv

Windows (PowerShell):

3.13 angezeigt; verwende 3.12, wenn du das Extra unsloth[rocm72-torch291] installierst

py -3.13 -m venv unsloth_env
unsloth_env\Scripts\Activate.ps1
pip install uv
3

PyTorch installieren

Planst du, Unsloth mit einem AMD-Extra zu installieren (unsloth[rocm72-torch291] usw., siehe nächster Abschnitt)? Diese enthalten ein passendes PyTorch, sodass du diesen Abschnitt überspringen kannst. Installiere PyTorch hier nur, wenn du es selbst verwalten möchtest oder deine ROCm-Version nicht von einem Extra abgedeckt wird.

Linux: Installiere PyTorch mit ROCm-Unterstützung aus dem PyTorch-Index. Prüfe deine ROCm-Version mit amd-smi version (Achte auf die ROCm-Version: Zeile), dann ändere https://download.pytorch.org/whl/rocm7.1 entsprechend. ROCm 6.0 oder neuer ist erforderlich.

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

ROCm 7.2 bringt neuere Wheels mit (torch 2.11), daher verwende unter ROCm 7.2 stattdessen dies:

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

Verfügbare Index-Tags sind rocm6.0, rocm6.1, rocm6.2, rocm6.3, rocm6.4, rocm7.0, rocm7.1, und rocm7.2. ROCm 6.5–6.9 hat keine eigenen Wheels (verwende rocm6.4), und ROCm 7.3+ verwendet rocm7.2.

Die Versionsobergrenzen verhindern, dass versehentlich torch 2.11+ geladen wird, für das es nur ROCm-7.2-Wheels gibt und das Probleme verursachen würde. Aktualisiere rocm7.1 wie zuvor entsprechend deiner erkannten Version.

Wir haben auch einen einzelnen Terminalbefehl geschrieben, um die richtige ROCM-Version zu ermitteln, falls das hilft.

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

Hinweis: Wenn deine ROCm-Version 7.2 oder höher ist, ersetze $ROCM_TAG im obigen Befehl durch rocm7.1, existieren für 7.2+ noch keine PyTorch-Wheels.

4

Unsloth installieren

Installiere Unsloth mit AMD-Extras:

uv pip install unsloth[amd]

⚠️ Für AMD erforderlich: ROCm-kompatibles bitsandbytes installieren Alle ROCm-Systeme benötigen einen Pre-Release-Build von bitsandbytes; Versionen ≤ 0.49.2 haben auf jeder AMD-GPU einen NaN-Fehler beim 4-Bit-Decoding. Hinweis: Verwende pip nicht uv für diesen Schritt, uv da uv das Pre-Release-Wheel aufgrund einer Versionsinkongruenz im Dateinamen ablehnt.

# x86_64-Systeme:
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"

# aarch64-Systeme: Ersetze x86_64 in der obigen URL durch aarch64

# Fallback, falls die URL nicht erreichbar ist:
# pip install --force-reinstall --no-cache-dir --no-deps "bitsandbytes>=0.49.1"
5

Starte das Fine-Tuning mit Unsloth!

Und das war's. Probiere einige Beispiele in unseren Unsloth-Notebooks Seite!

Du kannst unsere speziellen Fine-Tuning- oder Reinforcement-Learning- Anleitungen ansehen. Hier ist auch ein kurzes Beispiel:

1. Umgebungsvariablen setzen

export HSA_OVERRIDE_GFX_VERSION=9.4.2  # Für AMD MI300X erforderlich
export HF_HUB_DISABLE_XET=1            # Behebt HuggingFace-Downloadprobleme auf AMD

Hinweis: HSA_OVERRIDE_GFX_VERSION=9.4.2 weist ROCm an, deine GPU als gfx942 (MI300X) zu behandeln. Ohne dies können einige Kernel nicht kompiliert oder ausgeführt werden.

2. Modell laden und konfigurieren

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

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

Hinweis: Auf AMD-GPUs ist Flash Attention 2 nicht verfügbar. Unsloth weicht automatisch auf Xformers aus, das unter ROCm eine gleichwertige Leistung bietet. Die Warnung kann sicher ignoriert werden.

🔢 Reinforcement Learning auf AMD-GPUs

Du kannst unser 📒gpt-oss RL auto win 2048 Beispiel auf einer MI300X-(192 GB)-GPU verwenden. Ziel ist es, das 2048-Spiel automatisch zu spielen und es mit RL zu gewinnen. Das LLM (gpt-oss 20b) entwickelt automatisch eine Strategie, um das 2048-Spiel zu gewinnen, und wir berechnen eine hohe Belohnung für erfolgreiche Strategien sowie niedrige Belohnungen für erfolglose Strategien.

Die Belohnung steigt nach etwa 300 Schritten oder so!

Das Ziel von RL ist es, die durchschnittliche Belohnung zu maximieren, um das 2048-Spiel zu gewinnen.

Wir haben eine AMD-MI300X-Maschine (192 GB) verwendet, um das 2048-RL-Beispiel mit Unsloth auszuführen, und es hat gut funktioniert!

Du kannst auch unser 📒RL-Notebook zur automatischen Kernel-Erzeugung auch mit gpt-oss verwenden, um automatisch Matrixmultiplikations-Kernel in Python zu erstellen. Das Notebook entwickelt außerdem mehrere Methoden, um Reward-Hacking entgegenzuwirken.

Der Prompt, den wir zum automatischen Erstellen dieser Kernel verwendet haben, war:

Der RL-Prozess lernt beispielsweise, wie der Strassen-Algorithmus für schnellere Matrixmultiplikation in Python angewendet wird.

📚Kostenlose AMD-Notebooks mit Ein-Klick-Start

AMD bietet Notebooks mit Ein-Klick-Start an, ausgestattet mit kostenlosen MI300X-GPUs mit 192 GB VRAM über ihre Dev Cloud. Trainiere große Modelle völlig kostenlos (keine Anmeldung oder Kreditkarte erforderlich):

Du kannst jedes Unsloth-Notebook verwenden, indem du voranstellst https://amd-ai-academy.com/github/unslothai/notebooks/blob/main/nb in Unsloth-Notebooks indem du den Link änderst von https://github.com/unslothai/notebooks/blob/main/nb/AMD-gpt_oss_(20B)_Reinforcement_Learning_2048_Game_BF16.ipynb zu https://amd-ai-academy.com/github/unslothai/notebooks/blob/main/nb/AMD-Gemma4_(E2B)_Reinforcement_Learning_Sudoku_Game.ipynb

Zuletzt aktualisiert

War das hilfreich?