Lokale Bereitstellung von Devstral mit vLLM
Auf dieser Seite
Lektion aktualisiert am 2. November 2026 basierend auf der Seite Using offline models in der Vibe-Dokumentation. Devstral wurde von der Mistral-API entfernt, seine Gewichte bleiben jedoch veröffentlicht: Devstral Small 2 und Mistral Small 4 sind die beiden empfohlenen offenen Modelle für den lokalen Einsatz. Vibe bündelt kein lokales Modell: Sie verbinden es über einen Preset in
config.tomlmit einem OpenAI-kompatiblen Server und wechseln dann mit/model. Quelle: Using offline models.
Vorbereitung der Bereitstellung
Die lokale Bereitstellung von Devstral bedeutet, einen Inferenzserver auf Ihrem Gerät zu starten, der eine OpenAI-kompatible API bereitstellt. Vibe verbindet sich dann damit genau so, als würde es mit der Mistral-Cloud sprechen. Diese Schnittstellenkompatibilität macht den Wechsel nahtlos; Ihre Werkzeuge haben keinen Grund zu wissen, woher die Antworten stammen. Das empfohlene Framework für diese Rolle ist vLLM, ein Hochleistungs-Inferenz-Engine, die von der Open-Source-Community entwickelt wurde.
Was Ihr Hardware erlaubt
Bevor Sie etwas installieren, prüfen Sie Ihre GPU. Sie bestimmt die nutzbare Präzision und folglich die Größe des Kontextfensters, die Ihnen zur Verfügung steht.
| Konfiguration | GPU | VRAM | Präzision | Kontext |
|---|---|---|---|---|
| Empfohlen | NVIDIA H100 / A100 | 80 GB | FP8 | ~128K Tokens |
| Alternative | RTX 4090 / RTX 6000 | 24–48 GB | 4-bit (quantisiert) | ~32K Tokens |
| Nur CPU | Keine GPU | 64+ GB RAM | - | Langsam (nicht empfohlen) |
Wichtiger Hinweis: Die Konfiguration nur mit CPU ist funktionsfähig, aber für ein 24B-Modell extrem langsam. Sie eignet sich nur zum Testen, nicht für den täglichen Einsatz. Mit anderen Worten, sie ermöglicht es Ihnen, zu überprüfen, ob die Kette funktioniert, aber nicht, dass Sie damit arbeiten können.
vLLM installieren
Die softwareseitige Voraussetzung ist minimal: Python 3.10 oder höher, gefolgt von einem pip install.
# Python 3.10+ erforderlich
python3 --version
# vLLM installieren
pip install vllm
Als Nächstes überprüfen Sie, ob die NVIDIA-Treiber und CUDA installiert und funktionsfähig sind. Dieser Befehl ist der beste End-to-End-Test: Wenn er Ihre GPU und eine CUDA-Version anzeigt, ist die untere Ebene gesund, und alle nachfolgenden Fehler werden von woanders kommen.
nvidia-smi
# Muss Ihre GPU und die CUDA-Version anzeigen
Server starten
Der Startbefehl passt in vier Argumente, wovon zwei für die Arbeit mit Vibe essenziell sind.
vllm serve mistralai/Devstral-Small-2-24B-Instruct-2512 \
--tool-call-parser mistral \
--enable-auto-tool-choice \
--port 8080
Lassen Sie uns die Flags durchgehen:
mistralai/Devstral-Small-2-24B-Instruct-2512: Das Hugging Face-Modell zum Laden--tool-call-parser mistral: Ermöglicht das Parsen von Tool-Aufrufen im Mistral-Format--enable-auto-tool-choice: Erlaubt dem Modell, seine Tools automatisch auszuwählen--port 8080: Der Port, auf dem der Server lauscht
Die beiden Flags, die sich auf Tools beziehen, verdienen Aufmerksamkeit. Ohne sie würde der Server Ihre Fragen beantworten, aber das Modell könnte keine Datei mehr lesen oder einen Befehl ausführen. Vibe würde zu einem einfachen Chatbot, was nicht das Ziel ist.
Befehl an Ihre Maschine anpassen
Wenn Sie mehrere GPUs haben, verteilt Tensor-Parallelismus das Modell über alle Karten. Der kombinierte VRAM ermöglicht dann ein breiteres Kontextfenster.
vllm serve mistralai/Devstral-Small-2-24B-Instruct-2512 \
--tool-call-parser mistral \
--enable-auto-tool-choice \
--tensor-parallel-size 2 \
--port 8080
Bei einer bescheidenen Konfiguration müssen Sie die Präzision senken. Eine H100 oder A100 bewältigt FP8; eine RTX 4090 verwendet 4-Bit-Quantisierung mit AWQ, zum Preis einer leichten Qualitätsminderung, die weitgehend durch die Tatsache kompensiert wird, dass das Modell schließlich in den Speicher passt.
# FP8 auf H100/A100
vllm serve mistralai/Devstral-Small-2-24B-Instruct-2512 \
--tool-call-parser mistral \
--enable-auto-tool-choice \
--dtype float16 \
--port 8080
# 4-bit auf RTX 4090
vllm serve mistralai/Devstral-Small-2-24B-Instruct-2512 \
--tool-call-parser mistral \
--enable-auto-tool-choice \
--quantization awq \
--port 8080
Der letzte Hebel, wenn der VRAM dennoch unzureichend ist, besteht darin, die maximale Kontextlänge zu reduzieren. Der Attention-Cache verbraucht Speicher proportional zum Kontext, und der Abfall auf 16.384 Tokens befreit oft das, was zum Start fehlte.
vllm serve mistralai/Devstral-Small-2-24B-Instruct-2512 \
--tool-call-parser mistral \
--enable-auto-tool-choice \
--max-model-len 16384 \
--port 8080
Vibe verbinden und verifizieren
Der Server läuft; jetzt müssen Sie Vibe sagen, dass er ihn verwenden soll. Vibe bündelt kein lokales Modell: Definieren Sie einen Anbieter und einen Modell-Preset in config.toml.
# ~/.vibe/config.toml
active_model = "devstral-local"
[[providers]]
name = "local"
api_base = "http://localhost:8080/v1"
api_style = "openai"
backend = "generic"
[[models]]
name = "mistralai/Devstral-Small-2-24B-Instruct-2512"
provider = "local"
alias = "devstral-local"
Halten Sie active_model oberhalb der ersten [[...]]-Tabelle, sonst wird TOML es an diese Tabelle anhängen. Setzen Sie max_context_length im Preset, um den Kontext Ihres Servers anzugeben, der auch die Nutzung in Tokens in Streaming-Antworten zurückgeben muss (stream_options.include_usage). Kürzere Variante: Vibe bietet einen vordefinierten Anbieter, llamacpp, der auf http://127.0.0.1:8080/v1 ohne Schlüssel zeigt; in diesem Fall schreiben Sie provider = "llamacpp" im Preset, ohne einen [[providers]]-Block. In einer Sitzung wechselt /model zwischen dem lokalen Modell und gehosteten Modellen.
Testen Sie die Kette auf zwei Ebenen: zuerst die rohe API, die bestätigt, dass das Modell geladen ist, und dann eine echte Anfrage in Vibe, um zu validieren, dass Tool-Aufrufe funktionieren.
# Direkter API-Test
curl http://localhost:8080/v1/models
# Test in Vibe (der ask-Agent fordert vor jedem Tool an)
vibe --agent ask
> Dateien im aktuellen Verzeichnis auflisten
Für den täglichen Einsatz wird das manuelle Neustarten des Befehls schnell mühsam. Ein systemd-Dienst startet den Server beim Booten und startet ihn neu, falls ein Absturz auftritt.
# Ein systemd-Dienst erstellen
sudo tee /etc/systemd/system/vllm-devstral.service << EOF
[Unit]
Description=vLLM Devstral Server
After=network.target
[Service]
Type=simple
User=$USER
ExecStart=/usr/local/bin/vllm serve mistralai/Devstral-Small-2-24B-Instruct-2512 --tool-call-parser mistral --enable-auto-tool-choice --port 8080
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl enable --now vllm-devstral
Die drei Probleme, auf die Sie stoßen werden
Ein Fehler CUDA out of memory bedeutet, dass das Modell nicht passt: Reduzieren Sie --max-model-len oder wechseln Sie zur 4-Bit-Quantisierung. Langsamkeit beim allerersten Start ist normal und kein Symptom – der erste Start lädt und lädt das Modell, etwa 14 GB, und nachfolgende Starts profitieren vom Cache. Schließlich, wenn Vibe den lokalen Server nicht finden kann, prüfen Sie einfach, ob Port 8080 lauscht, bevor Sie weiter suchen.
curl http://localhost:8080/health
Kernaussagen
- vLLM ist das empfohlene Framework für die lokale Bereitstellung von Devstral
- Die Flags
--tool-call-parser mistralund--enable-auto-tool-choicesind zwingend erforderlich - Eine H100/A100 bietet FP8 und 128K Kontext; eine RTX 4090 bietet 4-Bit und 32K
- Reduzieren Sie
--max-model-len, wenn der VRAM unzureichend ist - Verbinden Sie Vibe über einen Anbieter und einen Modell-Preset in
config.toml(oder den vordefiniertenllamacpp-Anbieter) und verwenden Sie dann/model - Führen Sie vLLM als systemd-Dienst für den täglichen Einsatz aus