gpt-oss 120b mit vLLM auf AMD-GPUs ausführen

Eine der wichtigsten Fragen beim Einstieg in groß angelegte LLM-Technologien ist die verfügbare Rechenleistung. VRAM, Durchsatz, Hardwarearchitektur und Software-Stacks können sich je nach System stark unterscheiden und dadurch schnell unübersichtlich werden. Besonders bei der Bereitstellung von LLMs spielt dieser Punkt eine zentrale Rolle. In der Regel besteht das Ziel darin, eine hohe Modellqualität zu möglichst effizienten Kosten zu erreichen. Genau diese Balance macht die eigentliche Herausforderung aus.

In diesem Tutorial wird die AMD Instinct MI300X GPU beim Betrieb von gpt-oss 120b genauer betrachtet. Diese leistungsstarke GPU gehört zu den Flaggschiff-Beschleunigern von AMD und bietet eine sehr hohe Rechenleistung. Mit 192 GB HBM3-Speicher kann sie bis zu 653,7 TFLOPs sowie einen theoretischen maximalen Durchsatz von 5,3 TB/s erreichen. Dadurch eignet sie sich sehr gut für das Testen und Bereitstellen großer Sprachmodelle. Als Beispiel kommt OpenAI gpt-oss 120b zum Einsatz, ein leistungsfähiges Sprachmodell, das besonders für agentische Anwendungsfälle und Coding-Aufgaben bekannt ist.

Diese Anleitung zeigt, wie vLLM mit AMD-GPUs genutzt werden kann. Am Ende wissen Sie, was vLLM ist, warum gpt-oss sinnvoll eingesetzt werden kann und wie gpt-oss 120b mit vLLM auf einem AMD-basierten GPU-Server betrieben wird.

Wichtige Erkenntnisse

  • vLLM ist ein leistungsstarkes Open-Source-Werkzeug, um LLMs skalierbar auf AMD-GPUs bereitzustellen.
  • gpt-oss 120b ist ein sehr leistungsfähiges Open-Source-LLM für agentische Coding-Anwendungen und lässt sich effizient mit vLLM betreiben.
  • GPU-Server mit AMD MI300X eignen sich sehr gut, um gpt-oss 120b in größerem Maßstab bereitzustellen.

Was ist vLLM?

vLLM ist eine Open-Source-Inference-Engine, die für die schnelle und speichereffiziente Bereitstellung großer Sprachmodelle entwickelt wurde. Sie verbessert die Nutzung des GPU-Speichers und ermöglicht dadurch schnellere Antworten, höheren Durchsatz und geringere Latenzen als viele andere Bereitstellungsoptionen. Zu den wichtigsten Funktionen gehören der PagedAttention-Algorithmus, kontinuierliches Batching und die Kompatibilität mit bekannten Modell-Ökosystemen wie Hugging Face. Diese Eigenschaften machen vLLM zu einer starken Lösung für den Betrieb großer Modelle.

Warum gpt-oss verwenden?

gpt-oss ist in den Varianten 20b und 120b verfügbar und gehört zu den wichtigsten Open-Source-LLM-Veröffentlichungen von OpenAI. Beide Versionen zählen in ihrer jeweiligen Größenklasse zu den leistungsstärksten Modellen für agentische Aufgaben und Coding-Szenarien. Zum Zeitpunkt der Veröffentlichung war gpt-oss 120b auf etablierten Reasoning-Benchmarks konkurrenzfähig mit o4 Mini, während die 20b-Variante bei gängigen Benchmarks ähnlich wie o3 mini abschnitt und auf Edge-Geräten mit nur 16 GB virtuellem Speicher lauffähig war.

gpt-oss 120b eignet sich besonders, weil es Open Source ist, unter der Apache-2.0-Lizenz veröffentlicht wurde und für zahlreiche Anwendungsfälle feinabgestimmt werden kann. Zusätzlich bietet es eine sehr starke Leistung bei Reasoning- und Coding-Aufgaben. Wie die oben dargestellten Benchmark-Ergebnisse zeigen, erreicht das Modell im Codeforces-Benchmark vergleichbare Werte wie leistungsfähige Reasoning-Modelle wie o3 und o4-Mini mit Tools. Deshalb ist gpt-oss 120b ein sehr guter Ausgangspunkt, um Coding-orientierte Modelle mit vLLM bereitzustellen.

vLLM auf einem AMD-basierten GPU-Server ausführen

Erstellen Sie zunächst einen GPU-Server mit AMD MI300X über einen geeigneten Cloud- oder Infrastruktur-Anbieter. Wählen Sie einen Standort aus, an dem AMD-GPU-Ressourcen verfügbar sind, legen Sie AMD als GPU-Plattform fest und wählen Sie eine einzelne MI300X GPU. Anschließend wählen Sie den passenden SSH-Schlüssel aus den verfügbaren Optionen Ihres Kontos oder Teams aus.

Nachdem die Konfiguration bestätigt wurde, kann der GPU-Server erstellt werden. Es kann einige Momente dauern, bis die Maschine vollständig verfügbar ist.

Umgebung für vLLM mit Docker einrichten

Sobald der GPU-Server bereitsteht, verbinden Sie sich über Ihr lokales Terminal per SSH mit der Maschine. Wechseln Sie anschließend in das Verzeichnis, in dem Sie arbeiten möchten. Danach können Sie vLLM mit Docker starten.

gpt-oss mit vLLM bereitstellen

Definieren Sie zunächst einen Alias, der den Docker-Container herunterlädt und startet. Fügen Sie den folgenden Befehl in das Terminal ein. Dieser Container ist für eine MI300X GPU vorgesehen.

alias drun='sudo docker run -it --network=host --device=/dev/kfd --device=/dev/dri --group-add=video --ipc=host --cap-add=SYS_PTRACE --security-opt seccomp=unconfined --shm-size 32G -v /data:/data -v $HOME:/myhome -w /myhome'

drun rocm/vllm-dev:open-mi300-08052025

Der Download- und Startvorgang kann einige Zeit dauern. Nach Abschluss sollten Sie sich innerhalb des Containers befinden. Von dort aus kann das Modell gpt-oss 120b mit vLLM bereitgestellt werden. Fügen Sie die folgenden Befehle in das Terminal ein, um das Modell auf dem AMD-MI300X-basierten GPU-Server zu starten.

export VLLM_ROCM_USE_AITER=1
export VLLM_USE_AITER_UNIFIED_ATTENTION=1
export VLLM_ROCM_USE_AITER_MHA=0

vllm serve openai/gpt-oss-120b --compilation-config '{"full_cuda_graph": true}'

Damit wird die vLLM-Bereitstellung gestartet und der Download der Modelldateien in den Container angestoßen. Wenn alles korrekt funktioniert, erscheint eine Bestätigungsmeldung ähnlich der oben gezeigten Abbildung. Danach ist das bereitgestellte Modell unter „0.0.0.0:8000“ oder „localhost:8000“ erreichbar und kann mit OpenAI’s Python-Bibliothek angesprochen werden.

Mit dem bereitgestellten gpt-oss 120b Modell interagieren

Als Nächstes benötigen Sie eine Möglichkeit, mit dem bereitgestellten Modell zu interagieren. Dafür gibt es mehrere Ansätze. In diesem Abschnitt werden zwei gängige Methoden gezeigt: cURL und OpenAI’s Python-Bibliothek. Zunächst wird cURL verwendet. Öffnen Sie ein neues Terminalfenster und verbinden Sie sich per SSH mit der entfernten Maschine. Fügen Sie anschließend den folgenden Befehl in das Terminal ein. Dieses Beispiel fordert das Modell auf, einen Witz zu erzählen.

curl http://localhost:8000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-oss-120b",
    "messages": [
      { "role": "system", "content": "You are a helpful assistant." },
      { "role": "user", "content": "Tell me a joke." }
    ],
    "temperature": 0.7,
    "max_tokens": 100
  }'

Die Ausgabe sollte ungefähr wie folgt aussehen:

{"id":"[anonymized]","object":"chat.completion","created":1762542942,"model":"openai/gpt-oss-120b","choices":[{"index":0,"message":{"role":"assistant","content":"analysisUser asks for a joke. Provide a joke. Keep it appropriate.assistantfinalSure, here's a classic one for you:\n\n**Why don’t scientists trust atoms?**\n\n*Because they make up everything!*","refusal":null,"annotations":null,"audio":null,"function_call":null,"tool_calls":[],"reasoning_content":null},"logprobs":null,"finish_reason":"stop","stop_reason":null}],"service_tier":null,"system_fingerprint":null,"usage":{"prompt_tokens":85,"total_tokens":134,"completion_tokens":49,"prompt_tokens_details":null},"prompt_logprobs":null,"kv_transfer_params":null}root@ml-ai-ubuntu-gpu-mi300curl http://localhost:8000/v1/chat/completions \hat/completions \

Diese Methode kann für viele verschiedene Aufgaben verwendet werden, darunter Codevervollständigung, Workflows mit Tool Calling und komplexe Funktionsaufrufe. Testen Sie eigene Prompts, um die Leistungsfähigkeit des Modells besser kennenzulernen.

Wenn Sie lieber mit Python arbeiten, können Sie OpenAI’s Python-Bibliothek verwenden. Starten Sie in einem separaten Fenster, während der vLLM-Server weiterläuft, Jupyter Lab. Fügen Sie die folgenden Befehle in das Terminal ein, um die benötigten Komponenten zu installieren.

python3 -m venv venv
source venv/bin/activate
pip install openai jupyter
jupyter lab --allow-root

Nutzen Sie eine Browser-Funktion Ihrer Entwicklungsumgebung, zum Beispiel den einfachen Browser in Cursor oder VS Code, um lokal auf die Jupyter-Lab-Oberfläche zuzugreifen. Sobald sie läuft, erstellen und öffnen Sie ein neues Jupyter Notebook. Fügen Sie in die erste Code-Zelle den folgenden Python-Code ein.

from openai import OpenAI
# Set OpenAI's API key and API base to use vLLM's API server.
openai_api_key = "EMPTY"
openai_api_base = "http://localhost:8000/v1"

client = OpenAI(
    api_key=openai_api_key,
    base_url=openai_api_base,
)

chat_response = client.chat.completions.create(
    model="openai/gpt-oss-120b",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Tell me a joke."},
    ]
)
print("Chat response:", chat_response)

Wenn alles korrekt funktioniert, sollte eine Ausgabe ähnlich der folgenden erscheinen:

Chat response: ChatCompletion(id='chatcmpl-b600ce13dfd041a4a934ebe7826c8a44', choices=[Choice(finish_reason='stop', index=0, logprobs=None, message=ChatCompletionMessage(content='analysisThe user wants a joke. Provide a joke. Should be appropriate. Simple.assistantfinalWhy don’t scientists trust atoms?\n\nBecause they **make up** everything!', refusal=None, role='assistant', annotations=None, audio=None, function_call=None, tool_calls=[], reasoning_content=None), stop_reason=None)], created=1762543674, model='openai/gpt-oss-120b', object='chat.completion', service_tier=None, system_fingerprint=None, usage=CompletionUsage(completion_tokens=41, prompt_tokens=85, total_tokens=126, completion_tokens_details=None, prompt_tokens_details=None), prompt_logprobs=None, kv_transfer_params=None)

Mit diesem Python-basierten Setup lässt sich die Interaktion mit vLLM in viele Anwendungen und Workflows integrieren, einschließlich eigener Agenten. Dieser Ansatz ist ähnlich flexibel wie cURL und ermöglicht zusätzlich die Nutzung des breiten Python-Ökosystems.

Fazit

Der Betrieb von vLLM mit gpt-oss auf AMD-MI300X-basierten GPU-Servern ist dank der Arbeit der vLLM- und ROCm-Community vergleichsweise unkompliziert. Mit geeigneter GPU-Infrastruktur lässt sich dieses leistungsfähige Modell schnell auf performanter Hardware starten.

Quelle: digitalocean.com

Jetzt 200€ Guthaben sichern

Registrieren Sie sich jetzt in unserer ccloud³ und erhalten Sie 200€ Startguthaben für Ihr Projekt.

Das könnte Sie auch interessieren:

Moderne Hosting Services mit Cloud Server, Managed Server und skalierbarem Cloud Hosting für professionelle IT-Infrastrukturen

Hidden Markov Models: Theorie, Algorithmen & Python

AI/ML, Tutorial
Vijonavor 3 Stunden Hidden Markov Models: Theorie, Algorithmen, Python-Implementierung und moderne Alternativen Hidden Markov Models (HMMs) sind probabilistische Modelle des maschinellen Lernens, die Muster in sequenziellen Daten erkennen können. Ein HMM…
Moderne Hosting Services mit Cloud Server, Managed Server und skalierbarem Cloud Hosting für professionelle IT-Infrastrukturen

Agentenkommunikationsprotokolle einfach erklärt

AI/ML, Tutorial
Vijonavor 4 Stunden Agentenkommunikationsprotokolle: Wie autonome KI-Systeme Informationen austauschen In den vergangenen Jahren hat sich künstliche Intelligenz rasant von einem vorwiegend forschungsgetriebenen Bereich zu einer Technologie entwickelt, die in praktischen Anwendungen…