Hochleistungs-Inferenz mit vLLM

Einführung

vLLM ist eine Hochleistungs-LLM-Serving-Engine für Produktionsbereitstellungen. Während Ollama und llama.cpp hervorragend für den persönlichen Gebrauch geeignet sind, glänzt vLLM, wenn Sie LLMs als API-Backend mit hohem Durchsatz und effizientem Speichermanagement bereitstellen müssen.

Denken Sie an den Unterschied so:

  • Ollama/llama.cpp = Persönliche Entwicklungstools (Einzelbenutzer)
  • vLLM = Produktionsserver (mehrere Benutzer, hoher Durchsatz)

vllm

Installation

NVIDIA Jetson AI Lab bietet offiziell optimierte Docker-Images und kuratierte Modellrezepte für vLLM auf Jetson Orin — alle Abhängigkeiten sind vorab erstellt und getestet, keine Versionskonflikte.

Schritt 1: Das vLLM Docker-Image pullen

bash
sudo docker pull ghcr.io/nvidia-ai-iot/vllm:latest-jetson-orin

Schritt 2: Einen Modellserver starten

bash
sudo docker run -it --rm --pull always \
  --runtime=nvidia --network host \
  -e HF_ENDPOINT=https://hf-mirror.com \
  -v $HOME/.cache/huggingface:/root/.cache/huggingface \
  ghcr.io/nvidia-ai-iot/vllm:latest-jetson-orin \
  vllm serve cyankiwi/Qwen3.5-4B-AWQ-4bit \
  --gpu-memory-utilization 0.8 \
  --enable-prefix-caching \
  --reasoning-parser qwen3 \
  --enable-auto-tool-choice \
  --tool-call-parser qwen3_coder

Schritt 3: Die API testen

Sobald der Server läuft (Sie sehen Uvicorn running on http://0.0.0.0:8000), öffnen Sie ein neues Terminal und testen Sie:

bash
# Verfügbare Modelle auflisten
curl http://localhost:8000/v1/models

# Chat-Anfrage senden
curl -s http://localhost:8000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "cyankiwi/Qwen3.5-4B-AWQ-4bit",
    "messages": [{"role": "user", "content": "What is edge computing?"}]
  }'

vllm-test

Mehr Modelle ausprobieren

Alle folgenden Modelle sind verifiziert und bereit, mit demselben Docker-Image auf Jetson Orin ausgeführt zu werden. Ersetzen Sie einfach den Modellnamen im obigen Befehl:

ModellBefehl
Qwen3.5 2Bvllm serve Qwen/Qwen3.5-2B
Qwen3.5 9Bvllm serve Qwen/Qwen3.5-9B
Qwen3 8Bvllm serve Qwen/Qwen3-8B
Gemma 4 E4Bvllm serve google/gemma-4-E4B-it
Gemma 4 E2Bvllm serve google/gemma-4-E2B-it
Gemma 3 4Bvllm serve google/gemma-3-4b-it
Gemma 4 26B-A4B (AWQ)vllm serve cyankiwi/gemma-4-26B-A4B-it-AWQ-4bit
Nemotron Nano 9B v2vllm serve nvidia/Nemotron-Nano-9B-v2
Nemotron3 Nano 30B-A3Bvllm serve nvidia/Nemotron3-Nano-30B-A3B

Größere Modelle (Qwen3.5 9B+) oder AWQ-quantisierte Modelle benötigen mehr VRAM. Auf Orin Nano 8GB verwenden Sie 2B–4B Modelle. Auf Orin NX 16GB oder AGX Orin 32GB/64GB können Sie bequem 8B–30B (MoE) Modelle ausführen.

Durchsuchen Sie die vollständige Liste und kopieren Sie sofort ausführbare Befehle unter: jetson-ai-lab.com/models

Python-Beispiele

Einfacher Chat

python
from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:8000/v1",
    api_key="not-needed"
)

response = client.chat.completions.create(
    model="Qwen/Qwen3.5-2B",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Explain edge computing in 3 sentences."}
    ],
    temperature=0.7,
    max_tokens=150
)

print(response.choices[0].message.content)

Streaming-Antworten

python
from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:8000/v1",
    api_key="not-needed"
)

stream = client.chat.completions.create(
    model="Qwen/Qwen3.5-2B",
    messages=[{"role": "user", "content": "Write a haiku about robots."}],
    stream=True,
    max_tokens=100
)

for chunk in stream:
    if chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)
print()

vllm-stream

Referenzen


Weiter: Fahren Sie mit Modul 5.5: Jetson Beispiele Schnellstart fort, um LLMs mit einem einzigen Befehl bereitzustellen!