# Feinabstimmung von LLMs mit NVIDIA DGX Spark und Unsloth

Unsloth ermöglicht lokales Fine-Tuning von LLMs mit bis zu **200B Parametern** auf dem NVIDIA DGX™ Spark. Mit 128 GB Unified Memory können Sie massive Modelle wie **gpt-oss-120b**trainieren und Inferenz direkt auf dem DGX Spark ausführen oder bereitstellen.

Wie gezeigt auf [OpenAI DevDay](https://x.com/UnslothAI/status/1976284209842118714), wurde gpt-oss-20b mit RL und Unsloth auf DGX Spark trainiert, um 2048 automatisch zu gewinnen. Sie können mit Unsloth in einem Docker-Container oder einer virtuellen Umgebung auf DGX Spark trainieren.

<div align="center" data-full-width="false"><figure><img src="/files/14e8845777be1529f14b9c26874a8b13fbdf1cc7" alt="" width="375"><figcaption></figcaption></figure> <figure><img src="/files/39127e6ea8c8741ac905c92f3a2a40e36adaa9c5" alt="" width="375"><figcaption></figcaption></figure></div>

In diesem Tutorial trainieren wir gpt-oss-20b mit RL unter Verwendung von Unsloth-Notebooks, nachdem Unsloth auf Ihrem DGX Spark installiert wurde. gpt-oss-120b wird etwa **68GB** Unified Memory verwenden.

Nach 1.000 Schritten und 4 Stunden RL-Training übertrifft das gpt-oss-Modell das Original bei 2048 deutlich, und längeres Training würde die Ergebnisse weiter verbessern.

<div><figure><img src="/files/c37816185476440df547fbe49b0e4b8bd5eaad22" alt="" width="375"><figcaption><p>Sie können Unsloth, vorgestellt auf dem OpenAI DevDay 2025, ansehen <a href="https://youtu.be/1HL2YHRj270?si=8SR6EChF34B1g-5r&#x26;t=1080">hier</a>.</p></figcaption></figure> <figure><img src="/files/564825bd8e9d04170886e223c8a72f414a61d086" alt="" width="375"><figcaption><p>gpt-oss, mit RL trainiert, übertrifft konstant bei 2048.</p></figcaption></figure></div>

### ⚡ Schritt-für-Schritt-Anleitung

{% stepper %}
{% step %}
**Beginnen Sie mit dem Unsloth-Docker-Image für DGX Spark**

Zuerst bauen Sie das Docker-Image mit dem DGX Spark Dockerfile, das [hier zu finden ist](https://raw.githubusercontent.com/unslothai/notebooks/main/Dockerfile_DGX_Spark). Sie können außerdem Folgendes im Terminal auf dem DGX Spark ausführen:

```bash
sudo apt update && sudo apt install -y wget
wget -O Dockerfile "https://raw.githubusercontent.com/unslothai/notebooks/main/Dockerfile_DGX_Spark"
```

Dann bauen Sie das Trainings-Docker-Image mit dem gespeicherten Dockerfile:

```bash
docker build -f Dockerfile -t unsloth-dgx-spark .
```

<figure><img src="/files/c85d7e85bcf248cb2230d80c5f278f71c3824c70" alt="" width="563"><figcaption></figcaption></figure>

<details>

<summary>Sie können auch hier klicken, um das vollständige DGX Spark Dockerfile zu sehen</summary>

```python
FROM nvcr.io/nvidia/pytorch:25.09-py3

# Setzen Sie CUDA-Umgebungsvariablen
ENV CUDA_HOME=/usr/local/cuda-13.0/
ENV CUDA_PATH=$CUDA_HOME
ENV PATH=$CUDA_HOME/bin:$PATH
ENV LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH
ENV C_INCLUDE_PATH=$CUDA_HOME/include:$C_INCLUDE_PATH
ENV CPLUS_INCLUDE_PATH=$CUDA_HOME/include:$CPLUS_INCLUDE_PATH

# Installieren Sie triton aus dem Quellcode für aktuelle Blackwell-Unterstützung
RUN git clone https://github.com/triton-lang/triton.git && \
    cd triton && \
    git checkout c5d671f91d90f40900027382f98b17a3e04045f6 && \
    pip install -r python/requirements.txt && \
    pip install . && \
    GPU_ARCHS="$ARCH" python3 setup.py install

# Installieren Sie xformers aus dem Quellcode für Blackwell-Unterstützung
RUN git clone --depth=1 https://github.com/facebookresearch/xformers --recursive && \
    cd xformers && \
    export TORCH_CUDA_ARCH_LIST="12.1" && \
    python setup.py install && \
    GPU_ARCHS="$ARCH" python3 setup.py install

# Installieren Sie unsloth und andere Abhängigkeiten
RUN pip install unsloth unsloth_zoo bitsandbytes==0.48.0 transformers==4.56.2 trl==0.22.2

# Starten Sie die Shell
CMD ["/bin/bash"]
```

</details>
{% endstep %}

{% step %}
**Container starten**

Starten Sie den Trainingscontainer mit GPU-Zugriff und Volume-Mounts:

```bash
docker run -it \
    --gpus=all \
    --net=host \
    --ipc=host \
    --ulimit memlock=-1 \
    --ulimit stack=67108864 \
    -v $(pwd):$(pwd) \
    -v $HOME/.cache/huggingface:/root/.cache/huggingface \
    -w $(pwd) \
    unsloth-dgx-spark
```

<div><figure><img src="/files/440c3f6b13c60cb95030c3445b38904ab8b5ef7e" alt=""><figcaption></figcaption></figure> <figure><img src="/files/ebf0403d5d59dbf1a6dbf6640bf5f838bc3fa821" alt=""><figcaption></figcaption></figure></div>
{% endstep %}

{% step %}
**Jupyter starten und Notebooks ausführen**

Starten Sie innerhalb des Containers Jupyter und führen Sie das erforderliche Notebook aus. Sie können das Reinforcement-Learning gpt-oss 20b Notebook verwenden, um 2048 zu gewinnen [Notebook hier](https://github.com/unslothai/notebooks/blob/main/nb/gpt_oss_\(20B\)_Reinforcement_Learning_2048_Game_DGX_Spark.ipynb). Tatsächlich funktionieren alle [Unsloth-Notebooks](https://docs.unsloth.ai/get-started/unsloth-notebooks) im DGX Spark, einschließlich des **120b** Notebooks! Entfernen Sie einfach die Installationszellen.

<figure><img src="/files/39127e6ea8c8741ac905c92f3a2a40e36adaa9c5" alt="" width="563"><figcaption></figcaption></figure>

Die folgenden Befehle können ebenfalls verwendet werden, um das RL-Notebook auszuführen. Nachdem Jupyter Notebook gestartet wurde, öffnen Sie das „`gpt_oss_20B_RL_2048_Game.ipynb`”

```bash
NOTEBOOK_URL="https://raw.githubusercontent.com/unslothai/notebooks/refs/heads/main/nb/gpt_oss_(20B)_Reinforcement_Learning_2048_Game_DGX_Spark.ipynb"
wget -O "gpt_oss_20B_RL_2048_Game.ipynb" "$NOTEBOOK_URL"

jupyter notebook --ip=0.0.0.0 --port=8888 --no-browser --allow-root
```

<figure><img src="/files/1f112ba49b79048e4cf360b3abf8b2b58fd17fa7" alt="" width="563"><figcaption></figcaption></figure>

Vergessen Sie nicht, Unsloth ermöglicht Ihnen auch, [Ihre Modelle zu speichern und auszuführen](/docs/de/grundlagen/inference-and-deployment.md) nach dem Fine-Tuning, sodass Sie sie anschließend lokal direkt auf Ihrem DGX Spark bereitstellen können.
{% endstep %}
{% endstepper %}

Vielen Dank an [Lakshmi Ramesh](https://www.linkedin.com/in/rlakshmi24/) und [Barath Anandan](https://www.linkedin.com/in/barathsa/) von NVIDIA für die Unterstützung beim DGX Spark-Start von Unsloth und beim Erstellen des Docker-Images.

### Unified Memory-Verwendung

gpt-oss-120b QLoRA 4-Bit Fine-Tuning wird etwa **68GB** Unified Memory verwenden. Wie Ihre Unified Memory-Auslastung aussehen sollte **vorher** (links) und **nach** (rechts) Training:

<div><figure><img src="/files/aaf1ba75560619da1d79af04872641f622768f4e" alt=""><figcaption></figcaption></figure> <figure><img src="/files/dd1fe84bf72a3e134797bbd618efecb174d164c3" alt=""><figcaption></figcaption></figure></div>

Und das war's! Viel Spaß beim Trainieren und Ausführen von LLMs komplett lokal auf Ihrem NVIDIA DGX Spark!

### Video-Tutorials

Dank an Tim von [AnythingLLM](https://github.com/Mintplex-Labs/anything-llm) für die Bereitstellung eines großartigen Fine-Tuning-Tutorials mit Unsloth auf DGX Spark:

{% embed url="<https://www.youtube.com/watch?t=962s&v=zs-J9sKxvoM>" %}


---

# 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/de/blog/fine-tuning-llms-with-nvidia-dgx-spark-and-unsloth.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.
