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

LLMs auf AMD-GPUs mit Unsloth feinabstimmen – Anleitung

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

LLMs bis zu 2x schneller feinabstimmen mit ~70 % weniger Speicher auf AMD-Hardware, keine NVIDIA erforderlich. Unsloth unterstützt AMD Radeon RDNA 2/3/3.5/4 (RX-6000–9000-Serie) und Rechenzentrums-GPUs einschließlich der MI300X (192 GB).

1

Einzeiliger Installer

Einfachste Installation: Überspringen Sie alle untenstehenden Schritte mit dem Einzeilen-Installer; er erkennt Ihre AMD-GPU automatisch, installiert ROCm-optimiertes PyTorch, bitsandbytes und startet Unsloth Studio:

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

Die manuellen Schritte unten sind für Nutzer gedacht, die nur eine Python-Bibliotheksinstallation ohne Studio möchten.

2

Neue isolierte Umgebung erstellen (optional)

Um keine Systempakete zu beschädigen, können Sie eine isolierte pip-Umgebung erstellen. Denken Sie daran, zu prüfen, welche Python-Version Sie haben! Es könnte sein pip3, pip3.13, python3, python.3.13 usw.

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

PyTorch installieren

Installieren Sie PyTorch mit ROCm-Unterstützung von https://pytorch.org/ Prüfen Sie Ihre ROCm-Version mit `amd-smi --version` und ändern Sie dann https://download.pytorch.org/whl/rocm7.1 so, dass sie dazu passt. ROCm 6.0 oder neuer ist erforderlich. Für ROCm 5.x und darunter gibt es keine PyTorch-Wheels.

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

Die Versionsobergrenzen verhindern, dass versehentlich torch 2.11+ installiert wird, für das es nur ROCm-7.2-Wheels gibt und das Probleme verursachen würde. Aktualisieren Sie rocm7.1 wie zuvor, damit es zu Ihrer erkannten Version passt.

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

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 Ihre ROCm-Version 7.2 oder höher ist, ersetzen Sie $ROCM_TAG im obigen Befehl durch rocm7.1, für 7.2+ gibt es noch keine PyTorch-Wheels.

4

Unsloth installieren

Installieren Sie 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: Verwenden Sie pip nicht uv für diesen Schritt, uv lehnt das Pre-Release-Wheel wegen einer Versionsabweichung im Dateinamen ab.

# 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: Ersetzen Sie 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

Beginnen Sie mit der Feinabstimmung mit Unsloth!

Und das war's. Probieren Sie einige Beispiele auf unserer Unsloth-Notebooks Seite aus!

Sie können unsere speziellen Feinabstimmungs- oder Reinforcement-Learning- Anleitungen ansehen. Hier ist ebenfalls ein kurzes Beispiel:

1. Umgebungsvariablen setzen

export HSA_OVERRIDE_GFX_VERSION=9.4.2  # Erforderlich für AMD MI300X
export HF_HUB_DISABLE_XET=1            # Behebt Download-Probleme bei HuggingFace auf AMD

Hinweis: HSA_OVERRIDE_GFX_VERSION=9.4.2 weist ROCm an, Ihre GPU als gfx942 (MI300X) zu behandeln. Ohne dies können einige Kerne möglicherweise nicht kompiliert werden oder nicht laufen.

2. Modell laden und konfigurieren

from unsloth import FastModel

model, tokenizer = FastModel.from_pretrained(
    model_name = "unsloth/gemma-4-26b-a4b-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 fällt automatisch auf Xformers zurück, das auf ROCm eine gleichwertige Leistung bietet. Die Warnung kann sicher ignoriert werden.

🔢 Reinforcement Learning auf AMD-GPUs

Sie können unser 📒gpt-oss RL auto win 2048 Beispiel auf einer MI300X-(192-GB)-GPU verwenden. Das 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 gewinnbringende Strategien und niedrige Belohnungen für scheiternde Strategien.

Die Belohnung über die Zeit steigt nach etwa 300 Schritten oder so an!

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!

Sie können auch unser 📒Notebook für automatisierte Kernel-Generierung im RL ebenfalls mit gpt-oss verwenden, um automatisch Matrixmultiplikations-Kerne in Python zu erstellen. Das Notebook verwendet außerdem mehrere Methoden, um Reward Hacking entgegenzuwirken.

Der Prompt, den wir zur automatischen Erstellung dieser Kerne verwendet haben, war:

Der RL-Prozess lernt beispielsweise, wie man den Strassen-Algorithmus für schnellere Matrixmultiplikation in Python anwendet.

📚Kostenlose AMD-Notebooks mit einem Klick

AMD stellt Ein-Klick-Notebooks mit kostenlosen MI300X-GPUs mit 192 GB VRAM über ihre Dev Cloud bereit. Trainieren Sie große Modelle völlig kostenlos (keine Anmeldung und keine Kreditkarte erforderlich):

Sie können jedes Unsloth-Notebook verwenden, indem Sie https://amd-ai-academy.com/github/unslothai/notebooks/blob/main/nb voranstellen Unsloth-Notebooks indem Sie den Link ändern 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?