dstack-Anleitung: DeepSeek R1 Distill Qwen 1.5B mit centron Cloud-GPUs feinabstimmen
dstack ist dafür entwickelt, KI- und Machine-Learning-Aufgaben effizient und sauber organisiert auszuführen. Jede Aufgabe beschreibt einen klar abgegrenzten Job, etwa das Trainieren eines Modells oder das Verarbeiten von Daten, und kann sowohl in einer Cloud-Umgebung als auch On-Premise laufen. Nutzer definieren Aufgaben über eine einfache Konfigurationsdatei und legen dort Ressourcen wie GPUs, Abhängigkeiten und Skripte fest. dstack übernimmt anschließend Terminierung, Ausführung und Ressourcenverteilung, sodass Jobs ohne permanente manuelle Eingriffe stabil durchlaufen. Das erleichtert Teams die Verwaltung von KI-Workloads, das Skalieren von Abläufen und die Leistungsoptimierung, ohne sich mit komplexen Infrastruktur-Setups beschäftigen zu müssen.
In dieser Anleitung wirst du das Modell DeepSeek R1 Distill Qwen 1.5B mit dstack auf centron Cloud-GPUs feinabstimmen. dstack automatisiert dabei das Workload-Handling und nutzt die leistungsstarke GPU-Infrastruktur von centron für ein effizientes Training mit LoRA-Optimierung sowie Logging über Weights & Biases (W&B).
Virtuelle Umgebung erstellen
In diesem Abschnitt richtest du auf deinem System eine virtuelle Umgebung ein und bereitest alles für die Bereitstellung der dstack-Dev-Umgebung vor.
venv-Paket installieren
console
$ apt install python3-venv -y
Virtuelle Umgebung anlegen
console
$ python3 -m venv dstack-env
Virtuelle Umgebung aktivieren
console
$ source dstack-env/bin/activate
dstack installieren
In diesem Teil installierst du alle nötigen Abhängigkeiten für dstack und startest den dstack-Server, damit die Dev-Umgebung im späteren Abschnitt bereitgestellt werden kann.
Backend-Verzeichnis erstellen
Erstelle ein Verzeichnis und wechsle hinein, um dort die Backend-Datei abzulegen.
console
$ mkdir -p ~/.dstack/server
Backend-YAML-Datei anlegen
Erstelle eine Backend-yml-Datei, um centron als Provider festzulegen.
console
$ nano ~/.dstack/server/config.yml
Provider-Konfiguration hinzufügen
Kopiere die folgende Konfiguration und füge sie ein.
YAML
projects:
- name: main
backends:
- type: centron
creds:
type: api_key
api_key: <centron-account-api-key>
Rufe deinen centron API-Key ab.
Speichere die Datei und schließe sie.
dstack installieren
console
$ pip install "dstack[all]" -U
dstack-Server starten
console
$ dstack server
Notiere dir die URL, unter der der dstack-Server läuft, sowie das im Output angezeigte Token.
CLI mit dem Server verbinden
console
$ dstack config --url <URL> \
--project main \
--token <TOKEN>
Fine-Tuning-Task ausführen
In diesem Abschnitt konfigurierst und startest du eine Trainingsaufgabe mit dstack auf centron Cloud-GPUs. Du definierst den Task, richtest Umgebungsvariablen ein und führst das Fine-Tuning für das Modell DeepSeek-R1-Distill-Qwen-1.5B aus.
Projektverzeichnis erstellen und öffnen
Bleibe in der dstack-env virtuellen Umgebung, erstelle anschließend ein Verzeichnis und wechsle hinein.
console
$ mkdir quickstart && cd quickstart
Verzeichnis initialisieren
console
$ dstack init
dstack-Task-Konfigurationsdatei erstellen
Lege eine YAML-Datei für die Task-Konfiguration der dstack-Dev-Umgebung an.
console
$ nano .dstack.yaml
Task-Definition einfügen
Kopiere die folgende Konfiguration und füge sie ein.
YAML
type: task
# The name is optional, if not specified, generated randomly
name: trl-train
python: "3.10"
nvcc: true
# Required environment variables
env:
- WANDB_API_KEY
- WANDB_PROJECT
- MODEL_ID=deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B
# Commands of the task
commands:
- git clone https://github.com/huggingface/trl.git
- pip install transformers
- pip install trl
- pip install peft
- pip install wandb
- cd trl/trl/scripts
- python sft.py
--model_name_or_path $MODEL_ID
--dataset_name trl-lib/Capybara
--learning_rate 2.0e-4
--num_train_epochs 1
--packing
--per_device_train_batch_size 2
--gradient_accumulation_steps 8
--gradient_checkpointing
--logging_steps 25
--eval_strategy steps
--eval_steps 100
--use_peft
--lora_r 32
--lora_alpha 16
--report_to wandb
--output_dir DeepSeek-R1-Distill-Qwen-1.5B-SFT
resources:
gpu:
# 24GB or more vRAM
memory: 24GB..
Speichere die Datei und schließe sie.
Die YAML-Datei beschreibt einen dstack-Task, der DeepSeek-R1-Distill-Qwen-1.5B mit Hugging Face TRL samt LoRA feinabstimmt. Dafür wird das TRL-Repository geklont, die benötigten Bibliotheken installiert und ein Supervised-Fine-Tuning auf trl-lib/Capybara gestartet. Gradient Checkpointing und Gradient Accumulation sorgen dabei für eine speicherschonende Ausführung. Der Trainingsfortschritt wird in Weights & Biases (W&B) protokolliert. Der Task fordert eine GPU mit mindestens 24GB vRAM an, damit das Fine-Tuning über dstack reibungslos läuft.
Hinweis
Diese Konfiguration nutzt die Umgebungsvariablen WANDB_API_KEY und WANDB_PROJECT, um Trainingsmetriken an Weights & Biases (W&B) zu senden. Für W&B musst du einen Account erstellen und deinen API-Key als WANDB_API_KEY hinterlegen. WANDB_PROJECT kann ein beliebiger Projektname sein, um Experimente zu strukturieren.
Konfiguration anwenden
console
$ dstack apply -f .dstack.yaml
Die Konfiguration kann einige Minuten benötigen, bis sie startet (abhängig davon, welche Maschine du verwendest; VMs benötigen meist unter 2 Minuten, Bare-Metal-Systeme können etwa 30 Minuten zur Bereitstellung brauchen). Anschließend kann der Fine-Tuning-Prozess weitere Zeit beanspruchen, bis er abgeschlossen ist und das Modell gespeichert wurde.
Öffne das WandDB-Dashboard über die im Terminal ausgegebene URL, um den Fine-Tuning-Status zu verfolgen.
WandDB Dashboard
Fazit
In dieser Anleitung hast du das Modell DeepSeek R1 Distill Qwen 1.5B mit dstack auf centron Cloud-GPUs feinabgestimmt. Du hast eine virtuelle Umgebung eingerichtet, dstack installiert und centron als Cloud-Provider konfiguriert, wodurch der Trainingsablauf deutlich vereinfacht wurde. Mit diesem Setup kannst du KI-Modelle nun effizient und skalierbar trainieren und optimieren – gestützt durch zuverlässige, leistungsstarke Machine-Learning-Workflows.


